Initial ACE-Step Studio: captions, lyrics, logs
This commit is contained in:
commit
72a33beaca
7 files changed
+489
No files matched your search
@@ -0,0 +1,117 @@
|
||||
#!/usr/bin/env python3
|
||||
"""XL turbo (4B DiT) — новый вдохновляющий трек для Ника."""
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
|
||||
for v in ['http_proxy', 'https_proxy', 'HTTP_PROXY', 'HTTPS_PROXY', 'ALL_PROXY']:
|
||||
os.environ.pop(v, None)
|
||||
|
||||
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
|
||||
sys.path.insert(0, PROJECT_ROOT)
|
||||
|
||||
from loguru import logger
|
||||
from acestep.handler import AceStepHandler
|
||||
from acestep.inference import GenerationParams, GenerationConfig, generate_music
|
||||
|
||||
SAVE_DIR = os.path.join(PROJECT_ROOT, "output", "personal_new")
|
||||
|
||||
CAPTION = (
|
||||
"An uplifting, cinematic pop-rock anthem with a powerful male vocal. "
|
||||
"Building drums, bright synth pads, soaring electric guitar, emotional "
|
||||
"and hopeful mood. Anthem-like chorus, sense of a new dawn and forward "
|
||||
"motion, determined and inspiring."
|
||||
)
|
||||
|
||||
LYRICS = """[Intro]
|
||||
|
||||
[Verse]
|
||||
Рассвет на стекле, в окне уже не тьма
|
||||
Я снова здесь, я снова в борьбе
|
||||
Прошлые ошибки — лишь следы на пути
|
||||
Я не сдамся, я иду вперёд
|
||||
|
||||
[Pre-Chorus]
|
||||
Пусть руки дрожат, но в груди огонь
|
||||
Я не сломан — я только в пути
|
||||
|
||||
[Chorus]
|
||||
Восход, восход — я иду навстречу свету
|
||||
Восход, восход — хоть и трудно порой
|
||||
Я ещё здесь, я ещё в строю
|
||||
И мой путь только начинается
|
||||
|
||||
[Verse]
|
||||
Дорога длинная, впереди много гор
|
||||
Но каждый восход делает сильнее меня
|
||||
Я не один, я веду этот бой
|
||||
За себя и за тех, кто со мной
|
||||
|
||||
[Chorus]
|
||||
Восход, восход — я иду навстречу свету
|
||||
Восход, восход — хоть и трудно порой
|
||||
Я ещё здесь, я ещё в строю
|
||||
И мой путь только начинается
|
||||
|
||||
[Bridge]
|
||||
Не бойся рассвета, он снова придет
|
||||
Не бойся пути — он твой
|
||||
|
||||
[Chorus]
|
||||
Восход, восход — я иду навстречу свету
|
||||
Восход, восход — хоть и трудно порой
|
||||
Я ещё здесь, я ещё в строю
|
||||
И мой путь только начинается
|
||||
|
||||
[Outro]"""
|
||||
|
||||
|
||||
def main():
|
||||
os.makedirs(SAVE_DIR, exist_ok=True)
|
||||
|
||||
logger.info("Инициализация DiT handler (acestep-v15-xl-turbo, cuda:0)...")
|
||||
t0 = time.time()
|
||||
dit = AceStepHandler()
|
||||
status, ok = dit.initialize_service(
|
||||
project_root=PROJECT_ROOT,
|
||||
config_path="acestep-v15-xl-turbo",
|
||||
device="cuda",
|
||||
offload_to_cpu=True,
|
||||
)
|
||||
if not ok:
|
||||
logger.error(f"DiT init failed: {status}")
|
||||
sys.exit(1)
|
||||
logger.info(f"DiT loaded за {time.time() - t0:.1f}s — {status}")
|
||||
|
||||
params = GenerationParams(
|
||||
task_type="text2music",
|
||||
thinking=False,
|
||||
caption=CAPTION,
|
||||
lyrics=LYRICS,
|
||||
vocal_language="ru",
|
||||
bpm=128,
|
||||
keyscale="F major",
|
||||
timesignature="",
|
||||
duration=150,
|
||||
inference_steps=8,
|
||||
guidance_scale=1.0,
|
||||
seed=-1,
|
||||
)
|
||||
config = GenerationConfig(batch_size=1, audio_format="wav")
|
||||
|
||||
logger.info("Генерация на GPU (замер времени)...")
|
||||
t0 = time.time()
|
||||
result = generate_music(dit, None, params, config, SAVE_DIR)
|
||||
elapsed = time.time() - t0
|
||||
|
||||
if result.success:
|
||||
logger.info(f"OK за {elapsed:.1f}s")
|
||||
for a in result.audios:
|
||||
logger.info(f" -> {a.get('path')}")
|
||||
else:
|
||||
logger.error(f"FAILED за {elapsed:.1f}s — {result.status_message}")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,115 @@
|
||||
#!/usr/bin/env python3
|
||||
"""XL turbo (4B DiT) на GPU 3080 Ti — персональный вдохновляющий трек."""
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
|
||||
for v in ['http_proxy', 'https_proxy', 'HTTP_PROXY', 'HTTPS_PROXY', 'ALL_PROXY']:
|
||||
os.environ.pop(v, None)
|
||||
|
||||
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
|
||||
sys.path.insert(0, PROJECT_ROOT)
|
||||
|
||||
from loguru import logger
|
||||
from acestep.handler import AceStepHandler
|
||||
from acestep.inference import GenerationParams, GenerationConfig, generate_music
|
||||
|
||||
SAVE_DIR = os.path.join(PROJECT_ROOT, "output", "personal_xl_gpu")
|
||||
|
||||
CAPTION = (
|
||||
"An inspirational, uplifting rock anthem with a powerful male vocal. Soaring "
|
||||
"electric guitar leads, guitar-driven melodic riffs, driving drums, emotional and "
|
||||
"determined mood. Anthemic chorus, building energy, inspiring and hopeful, about "
|
||||
"overcoming hardship and chasing a dream."
|
||||
)
|
||||
|
||||
LYRICS = """[Intro]
|
||||
|
||||
[Verse]
|
||||
Пять операций, восемьдесят шагов назад
|
||||
Но я встаю, хоть и болит рука
|
||||
Долги как стены, только я не отступил
|
||||
Пока стучит мотор — я буду жить
|
||||
|
||||
[Chorus]
|
||||
Я ещё пингуюсь, я в сети
|
||||
Мой сервер не погас среди ночи
|
||||
Сквозь холод и года — я иду
|
||||
BMW и два RTX впереди
|
||||
|
||||
[Verse]
|
||||
Работа до темна, но это не предел
|
||||
Из осколков дней я строю завтра сам
|
||||
Дорога длинная, и E30 ждёт меня
|
||||
Мотор M20 согреет в холода
|
||||
|
||||
[Chorus]
|
||||
Я ещё пингуюсь, я в сети
|
||||
Мой сервер не погас среди ночи
|
||||
Сквозь холод и года — я иду
|
||||
BMW и два RTX впереди
|
||||
|
||||
[Bridge]
|
||||
Не говорю, что всё наладится легко
|
||||
Но пока я дышу — я не сломан
|
||||
Каждый день — один маленький шаг
|
||||
И мотор моей мечты не заглохнет
|
||||
|
||||
[Chorus]
|
||||
Я ещё пингуюсь, я в сети
|
||||
Мой сервер не погас среди ночи
|
||||
Сквозь холод и года — я иду
|
||||
BMW и два RTX впереди
|
||||
|
||||
[Outro]"""
|
||||
|
||||
|
||||
def main():
|
||||
os.makedirs(SAVE_DIR, exist_ok=True)
|
||||
|
||||
logger.info("Инициализация DiT handler (acestep-v15-xl-turbo, cuda:0)...")
|
||||
t0 = time.time()
|
||||
dit = AceStepHandler()
|
||||
status, ok = dit.initialize_service(
|
||||
project_root=PROJECT_ROOT,
|
||||
config_path="acestep-v15-xl-turbo",
|
||||
device="cuda",
|
||||
offload_to_cpu=True,
|
||||
)
|
||||
if not ok:
|
||||
logger.error(f"DiT init failed: {status}")
|
||||
sys.exit(1)
|
||||
logger.info(f"DiT loaded за {time.time() - t0:.1f}s — {status}")
|
||||
|
||||
params = GenerationParams(
|
||||
task_type="text2music",
|
||||
thinking=False,
|
||||
caption=CAPTION,
|
||||
lyrics=LYRICS,
|
||||
vocal_language="ru",
|
||||
bpm=120,
|
||||
keyscale="D major",
|
||||
timesignature="",
|
||||
duration=120,
|
||||
inference_steps=8,
|
||||
guidance_scale=1.0,
|
||||
seed=-1,
|
||||
)
|
||||
config = GenerationConfig(batch_size=1, audio_format="wav")
|
||||
|
||||
logger.info("Генерация на GPU (замер времени)...")
|
||||
t0 = time.time()
|
||||
result = generate_music(dit, None, params, config, SAVE_DIR)
|
||||
elapsed = time.time() - t0
|
||||
|
||||
if result.success:
|
||||
logger.info(f"OK за {elapsed:.1f}s")
|
||||
for a in result.audios:
|
||||
logger.info(f" -> {a.get('path')}")
|
||||
else:
|
||||
logger.error(f"FAILED за {elapsed:.1f}s — {result.status_message}")
|
||||
sys.exit(1)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in new issue
Block a user