Музыка из текста: ACE-Step 1.5
Урок «audio-music» в группе Звук и речь списка уроков. Шагов: 13.
Чему вы научитесь
Вы соберёте граф, который пишет песню по списку стилей и вашему тексту.
Что понадобится
- Урок продолжает Первая картинка из текста. Карточка говорит об этом; это подсказка, а не замок.
- Файлы моделей, которые урок проверяет:
- для поля
ckpt_nameноды Load Checkpoint: файл, в имени которого естьace_step.
- для поля
- Ноды: Load Checkpoint, ModelSamplingAuraFlow, TextEncodeAceStepAudio1.5, Empty Ace Step 1.5 Latent Audio, ConditioningZeroOut, KSampler, VAE Decode Audio, Save Audio (Advanced) / SaveAudio / SaveAudioMP3 / PreviewAudio.
- Приложение ничего не скачивает и не устанавливает. Тексты шагов ниже говорят, какие файлы, в какие папки и какой шаблон ComfyUI их называет.
Шаги
Слова каждого шага, как их показывает урок. Имена нод выделены.
Что делает ACE-Step (чтение)
ACE-Step 1.5 делает музыку. Вы даёте ей стиль в нескольких словах и, если нужно пение, слова песни. Она возвращает целую песню с инструментами и голосом.
Граф похож на граф для картинки: модель, текст, пустая заготовка, сэмплер, декодер. Только заготовка и декодер сделаны для звука.
Урок собирает граф с пустого холста: «Файл ▸ Новый проект».
Загрузите модель
Добавьте ноду Load Checkpoint и выберите файл в поле
ckpt_name. Официальный шаблон берётace_step_1.5_turbo_aio.safetensorsиз папки models/checkpoints.«aio» значит «всё в одном»: модель, её чтение текста и декодер лежат в одном файле, как у чекпойнта для картинок.
Если нужного файла в списке нет, значит, его нет в вашем ComfyUI. Приложение ничего не скачивает. Проще всего открыть в самом ComfyUI шаблон «ACE-Step 1.5 Music Generation AIO»: он покажет, каких файлов не хватает и куда их положить. Потом выберите здесь в меню «Синхронизация ▸ Синхронизировать сейчас», и файлы появятся в списках.
Задайте сдвиг шума
Добавьте ноду ModelSamplingAuraFlow. Соедините выход
MODELноды Load Checkpoint с её входомmodelи поставьтеshiftравным 3.Сдвиг решает, сколько работы уйдёт на общую форму песни, а сколько на детали. Шаблон ставит 3. С намного меньшим числом песня выходит мутной.
Опишите стиль
Добавьте ноду TextEncodeAceStepAudio1.5 и соедините выход
CLIPноды Load Checkpoint с её входомclip. В полеtagsнапишите стиль: жанр, настроение, инструменты, какой голос. Например: calm acoustic folk, warm female vocals, soft guitar, light percussion.Лучше всего работают короткие слова через запятую. Модель училась на таких списках.
Слова песни (чтение)
В поле
lyricsпишут слова, которые поются. Части песни отмечают в квадратных скобках на отдельных строках: [Verse 1], [Chorus], [Bridge]. Куплеты модель поёт одним образом, припев другим.Пишите свои слова или слова, на которые у вас есть права. Поле
languageговорит, на каком языке их петь.Официальный шаблон заполняет это поле целой песней. Прочитайте её в ComfyUI, чтобы увидеть форму.
Задайте темп
В ноде TextEncodeAceStepAudio1.5 поставьте
bpm, число ударов в минуту, например 120.Медленные баллады около 70, танцевальная музыка от 120 до 130. Если темп спорит со стилем («медленная баллада» при 180), модель слышит два разных желания и смешивает их.
Скажите, сколько длится песня
Добавьте ноду Empty Ace Step 1.5 Latent Audio и поставьте
secondsравным 120, две минуты. Потом поставьтеdurationв ноде TextEncodeAceStepAudio1.5 таким же числом.Заготовка задаёт настоящую длину, а текст говорит модели, какой длины песню она задумывает. Когда числа разные, песня кончается слишком рано или обрывается.
Пустой негатив
Добавьте ноду ConditioningZeroOut и соедините выход ноды TextEncodeAceStepAudio1.5 с её входом
conditioning.Этой модели не говорят, чего избегать. Но сэмплеру всё равно нужно что-то на входе
negative, и эта нода даёт ему то же описание, обнулённое целиком.Добавьте сэмплер
Добавьте ноду KSampler и подключите четыре входа:
modelот ModelSamplingAuraFlow;positiveот TextEncodeAceStepAudio1.5;negativeот ConditioningZeroOut;latent_imageот Empty Ace Step 1.5 Latent Audio.
Поставьте
stepsравным 8 иcfgравным 1. Турбо-модель обучена заканчивать за восемь шагов без нажима большогоcfg. Больше шагов лучше не сделают, а большойcfgделает звук резким.Превратите результат в звук
Добавьте ноду VAE Decode Audio. Соедините выход KSampler с её входом samples, а выход VAE ноды Load Checkpoint с её входом vae.
Сэмплер работает в сжатом виде, как и с картинками. Эта нода разворачивает его в звуковую волну.
- Сохраните песню
Добавьте ноду Save Audio (Advanced) и соедините выход VAE Decode Audio с её входом audio.
В ComfyUI она сохраняет файл в папку output/audio. Поле format выбирает вид файла: flac сохраняет всё качество, mp3 меньше и играет везде.
- Если песня не удалась (чтение)
- Не тот стиль: поставьте самые важные слова в начало
tagsи уберите слова, которые тянут в разные стороны. - Голос бормочет: пишите слова короткими строками, одна фраза в строке, и проверьте
language. - Песня обрывается на середине:
durationиsecondsразные. - Песня нравится, но нужен другой дубль: поменяйте
seedв ноде TextEncodeAceStepAudio1.5. То же число снова даст ту же песню.
Шаблон есть и в виде с отдельными файлами: диффузионная модель, два чтения текста и декодер. Граф тот же, отличаются только загрузчики.
- Граф готов (чтение)
Сохраните граф через «Файл ▸ Сохранить workflow для ComfyUI…», откройте файл в ComfyUI и запустите там. Само приложение в ComfyUI ничего не запускает.
На сильной видеокарте песня в две минуты делается за секунды, на слабой за минуты. Первый запуск загружает модель и идёт дольше.
Что проверяет урок
Шаг для чтения сделан, когда вы нажимаете Понятно, дальше. Шаг с делом отмечается сам, когда на холсте есть:
- Шаг 2, Загрузите модель:
- нода Load Checkpoint.
- в поле
ckpt_nameноды Load Checkpoint стоит файл, в имени которого естьace_step(заглавные буквы, точки и дефисы не важны).
- Шаг 3, Задайте сдвиг шума:
- нода ModelSamplingAuraFlow.
MODELноды Load Checkpoint во входmodelноды ModelSamplingAuraFlow.shiftноды ModelSamplingAuraFlow: от 2 до 4; «Сделать за меня» ставит 3.
- Шаг 4, Опишите стиль:
- нода TextEncodeAceStepAudio1.5.
CLIPноды Load Checkpoint во входclipноды TextEncodeAceStepAudio1.5.tagsноды TextEncodeAceStepAudio1.5: не меньше 10 знаков.
- Шаг 6, Задайте темп:
bpmноды TextEncodeAceStepAudio1.5: от 60 до 200; «Сделать за меня» ставит 120.
- Шаг 7, Скажите, сколько длится песня:
- нода Empty Ace Step 1.5 Latent Audio.
secondsноды Empty Ace Step 1.5 Latent Audio: от 10 до 240; «Сделать за меня» ставит 120.durationноды TextEncodeAceStepAudio1.5 равно полюsecondsноды Empty Ace Step 1.5 Latent Audio.
- Шаг 8, Пустой негатив:
- нода ConditioningZeroOut.
CONDITIONINGноды TextEncodeAceStepAudio1.5 во входconditioningноды ConditioningZeroOut.
- Шаг 9, Добавьте сэмплер:
- нода KSampler.
MODELноды ModelSamplingAuraFlow во входmodelноды KSampler.CONDITIONINGноды TextEncodeAceStepAudio1.5 во входpositiveноды KSampler.CONDITIONINGноды ConditioningZeroOut во входnegativeноды KSampler.LATENTноды Empty Ace Step 1.5 Latent Audio во входlatent_imageноды KSampler.stepsноды KSampler:8.cfgноды KSampler:1.
- Шаг 10, Превратите результат в звук:
- нода VAE Decode Audio.
LATENTноды KSampler во входsamplesноды VAE Decode Audio.VAEноды Load Checkpoint во входvaeноды VAE Decode Audio.
- Шаг 11, Сохраните песню:
- нода Save Audio (Advanced) или SaveAudio или SaveAudioMP3 или PreviewAudio.
AUDIOноды VAE Decode Audio во входaudioноды Save Audio (Advanced) или SaveAudio или SaveAudioMP3 или PreviewAudio.