Initial ACE-Step Studio: captions, lyrics, logs

This commit is contained in:
neo committed 2026-08-30 16:58:07 +05:00
commit 72a33beaca
7 files changed
+489

No files matched your search

+117
View File
@@ -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()
+115
View File
@@ -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()