- BrainTools - https://www.braintools.ru -
Всем привет! Музыку я люблю всю жизнь. Сам всегда хотел научиться играть на каком‑нибудь инструменте — пробовал гитару, клавиши, даже барабаны — освоил в итоге только варган. Зато с генерацией музыки нейросетями дело у меня пошло сразу. Написал в своё время [1]один из первых на русском гайдов по Udio [2], недавно собрал платформу для лайвкодинга музыки с ИИ‑агентом [3]. За опенсорсом в этой теме тоже слежу — щупаю каждый раз как что‑то новое появляется. Но после Suno слушать их обычно невозможно. Уровень «ну ок, оно звуки издаёт, и это тоже достижение».
Меня зовут Илья, я блогер, основатель ArtGeneration.me и просто фанат нейросетей. Не разработчик в классическом смысле — скорее продакт с 20-летним стажем, который последние пару лет вайбкодит с помощью нейросетей всё до чего дотянется. И каждый раз когда вижу опенсорс‑проект с потенциалом, у меня чешутся руки его переделать под себя. Обычно я сдерживаюсь. В этот раз — не очень получилось.
В конце марта, когда на одном из моих стримов мы смотрели обзоры на свежую тогда ACE‑Step 1.5 — опенсорсную модель от команды StepFun. Посмотрели примеры, послушали что люди нагенерировали — и я решил что это хрень не достойная внимания [4]. Вокал мычит, куплет примерно похож на куплет, по качеству — где‑то уровень Suno v3.5, то есть позапрошлогодний Suno. Даже скачивать не стал. Подумал: ну опенсорс и опенсорс, подождём когда научится.
И оно научилось! Уже через пару недель ACE‑Step выкатили версию XL.

Для тех кто не в теме, коротко объясню. ACE‑Step [5] — это опенсорс‑модель генерации музыки, построенная на гибридной архитектуре: языковая модель как планировщик плюс DiT (Diffusion Transformer) для синтеза звука. Базовая 1.5 была на 2 миллиарда параметров в DiT‑декодере (~4.7 ГБ весов) и генерировала примерно ничего интересного. А в XL‑релизе (это v0.1.6, вышел 3 апреля) команда раскачала DiT‑декодер до 4 миллиардов (~9 ГБ весов в bf16), дообучила на сильно большем датасете и, судя по ощущениям, поменяла какие‑то внутренности.
В XL выпустили три варианта [6], все на тех же ~4B:
xl‑base — 50 шагов, поддерживает CFG, умеет все задачи включая extract/lego/complete
xl‑sft — 50 шагов, supervised fine‑tuning, качество максимальное но только стандартные задачи
xl‑turbo — 8 шагов, distillation‑accelerated, без CFG, качество сопоставимо с SFT
Все три в официальных весах bf16 — это примерно 18.8 ГБ на диск. Это много. Поэтому в студию по умолчанию подключена сжатая BF16-версия Turbo от комьюнити на 7.5 ГБ, так она влезает хотя бы в 16 гигов VRAM.
Примечание: Все треки кроме последнего созданы в режиме авто‑генерации, то есть модель сама придумала как запрос с описанием жанра, так и текст для лирики. Это лишь один из режимов, можно самостоятельно сгенерировать текст и запрос для стиля в другой нейронке и получить более связанный и разумный текст. Но, по моему и так весело.
Я сгенерировал на XL Turbo, первый трек — и офигел. Нет, это всё ещё не Suno. Но это уже не «оно издаёт звуки». Это полноценная песня с вокалом на русском (!!!), с куплетом и припевом (чаще всего очень тупым), но с осмысленной мелодией. До 8 минут длиной, на любом языке, в любом жанре. Я нагенериовал ещё десяток треков — и понял что вот в эту штуку уже как минимум весело играться.
И тут же всплыла вторая проблема. Родной UI от авторов модели — это Gradio‑демка. Знаете такие, где всё в один столбик, параметров полторы штуки, кнопка «Generate» и баста. Поиграться минут пять можно, делать что‑то серьёзное — невозможно. А мне же хочется и красиво и удобно, иначе проще в суно.
Я пошёл искать что люди уже сделали вокруг этой модели. И нашёл проект ace‑step‑ui [7] от fspecii — нормальный React‑интерфейс в стиле Suno: плейлисты, карточки треков, плеер, история генераций, базовый редактор аудио, разделение дорожек, i18n на 4 языка, без русского правда, даже генератор видео с фонами из Pexels был. Человек проделал большую работу. Единственная проблема — UI был написан под базовую 1.5, про XL он ничего не знал, и там внутри было много косяков которые коипились с прошлых релизов.
И вот тут у меня в голове щёлкнуло — да я же сейчас форкну, прикручу XL, починю то что криво, добавлю то чего нет, и получится реально годная студия. На два вечера дел. Ага, на два. Спойлер: 393 моих коммита и несколько недель позже получилась штука которую я не стыжусь показывать людям.
Я считаю очень важно говорить об этом честно. UI я не писал с нуля. Я форкнул чужой проект и значительно его переделал. fspecii сделал основу — React‑приложение с плеером, плейлистами, карточками треков, тёмной темой, генерацией с вокалом и инструменталом, режимами Cover и Repaint под 1.5, встроенный AudioMass‑редактор, разделение дорожек через Demucs, базовый видео‑генератор, i18n на английский/китайский/японский/корейский, скелет LoRA‑обучения. Это существенный фундамент, и я бы точно не стал начинать с нуля если бы его не было.

Что делал я сверху — адаптация всего этого под XL‑модели (а это не косметика, это серьёзный ре‑инжиниринг), куча новых вещей которых не было вообще, и починка того что работало кое‑как. Дальше пройдусь честно по каждому пункту что именно моё.
В опенсорсе это нормальная практика — брать чужой фундамент и наращивать сверху. Главное — автора оригинала указать в README, лицензию соблюсти, звезду на гитхаб поставить. Всё это я сделал.
Три XL‑модели в одном интерфейсе Это было первое что я начал делать. Оригинальный UI умел работать только с 1.5 и не знал про XL вообще ничего. Разные модели — разные дефолты, разные лимиты на количество шагов сэмплера, разные веса. Turbo крашится если поставить ему 50 шагов (он же distillation‑accelerated, ему 8 шагов хватает). SFT выдаёт кашу если поставить 8. Пришлось делать умный выбор — когда выбираешь модель, UI сам переключает сэмплеры в допустимые для неё значения.
Плюс добавил XL Merge SFT+Turbo от комьюнити — компромиссный вариант который быстрее SFT но чуть качественнее Turbo.

Сами режимы были в оригинальном UI, но работали криво и только под 1.5. На XL нужен был другой набор параметров, другая обработка входного аудио (падало если файл без расширения), другая логика [8] слайдеров силы влияния. Что я переделал:
Разделил загрузку на две независимые зоны — референс отдельно, источник для кавера отдельно. В оригинале это всё лезло в одно поле и путалось.
Сделал выделение региона перетаскиванием на волновой форме для Repaint. Раньше регион задавался двумя числовыми полями — сек от, сек до. Теперь просто выделяешь мышкой.
Починил кучу багов: падение при загрузке файла без расширения, дефолтная сила кавера 100% (модель игнорировала источник, надо было 50%), повторное копирование аудио в референс‑слот.
Добавил подсказки под слайдерами объясняющие что они делают.
Функционально режимы работают как и раньше — загружаешь трек, говоришь «переделай в стиле металл», или выделяешь 15 секунд и перегенеришь. Магия тут не в UI, а в модели. Но под XL это наконец‑то выдаёт что‑то осмысленное.
В оригинале был простой VideoGenerator с фонами из Pexels — буквально картинка + аудиодорожка. Что добавил сверху:
Синхронизированная караоке‑подпись через LRC‑файлы, три стиля (построчно, бегущая строка, посимвольная заливка)
Форматы экспорта 16:9 / 9:16 / 1:1 — под YouTube, Reels/TikTok, Instagram
Серверный рендеринг через ffmpeg с GPU‑ускорением NVENC
Исправил баги что бы все это нормально работало
Вот про рендеринг расскажу отдельно, потому что это была отдельная боль [9]. Базовый генератор рендерил всё на клиенте через ffmpeg.wasm. Работало, но очень медленно и регулярно падал браузер — Chrome не любит когда ему шлёшь 500 мегабайт кадров. Переписал на серверный ffmpeg, добавил кодирование кусками по 50 кадров, поднял лимит body‑parser до 500 МБ — и вот теперь летает.
Отдельная вкладка в студии, которой не было. Это уже не про генерацию музыки, а про работу с самими моделями.
BF16-конвертер — превращает safetensors модель из FP32/FP16 в BFloat16. Получается примерно -50% размера без видимой потери качества. Раньше чтобы это сделать, нужно было ставить питон, ставить зависимости, писать скрипт. Теперь — кнопка в интерфейсе.
Model Merger — объединяет две модели ACE‑Step с настраиваемой альфой. Три метода мерджа: weighted_sum, add_difference и multiply. Это уже для тех кто знает зачем ему это. В мире Stable Diffusion такие мерджи — отдельное искусство, позволяющее получать авторские модели. С музыкой пока поле ещё совсем непаханное, но уже есть комьюнити‑мерджи которые заметно круче базовых.

Bake LoRA — запекает веса LoRA в базовую модель, получая новый самодостаточный чекпоинт. Удобно когда сделал хорошую LoRA и хочешь использовать её всегда, не переключая.
В базовом UI были базовые сэмплеры, я добавил ещё три — и три новых шедулера. В сумме теперь 10 сэмплеров (euler, heun, midpoint, ping‑pong, a2s, bogacki, rk4, dopri5, deis, ipndm) и 7 шедулеров (linear, karras, cosine, beta, sway, logit_normal, laplace). Для каждой комбинации свои компромиссы между скоростью и качеством. Заодно починил баг где SDE‑сэмплер выдавал шум вместо музыки, и залочил комбо для turbo‑моделей — там работает только euler + linear, остальное крашится.
Отдельно — CFG scheduling presets. CFG (classifier‑free guidance) — это параметр который говорит модели насколько строго следовать промпту. Обычно он константный. Но оказывается его можно расписать во времени — в начале генерации строже, к концу свободнее, или наоборот. Я добавил 5 пресетов подсмотренных в комьюнити: Default, Creative, Strict, Smooth, ADG. На моих тестах Smooth давал самые живые треки, но вкусовщина.
Вот эта штука редко где реализована нормально. Жмёшь «Отмена» во время генерации — и реально останавливаешь, а не ждёшь минуту пока оно доделает. Первый этап — soft cancel через сигнал процессу. Второй этап — если процесс не реагирует второй клик отменяет генерацию.

Меняешь модель — и тебе не надо перезапускать сервер. Когда я только прикрутил XL, переключение между моделями работало через рестарт сервера: хочу Turbo — перезапусти. Хочу SFT — перезапусти. Хочу другой LM для генерации текстов — угадайте что. Я переписал всю эту машинерию чтобы модели грузились/выгружались динамически. Отдельно DiT (сама музыкальная модель), отдельно LM (языковая для текстов). Можно отключить LM вообще и освободить VRAM для основной генерации через run‑no‑lm.bat.
В оригинале была i18n на 4 языка — английский, китайский, японский, корейский. Русского не было. Я добавил русский и заодно прошёл по фронту и вычистил все оставшиеся захардкоженные строки (в оригинале их было прям много — часть UI переведена, а часть просто на английском захардкожена). Все 750+ ключей теперь нормально переключаются между 5 языками.
Добавил chunked FFN (feed‑forward network считается кусочками — меньше памяти [10] нужно единовременно), pinned memory для быстрой передачи между CPU и GPU, интеграцию с comfy‑aimdo (оптимизированное внимание), CPU offload опционально через env var ACESTEP_OFFLOAD_TO_CPU=1. Это всё невидимое для юзера, но именно благодаря этому XL SFT стал запускаться на картах с 16 ГБ VRAM, а не только на 24 ГБ как было на старте.
Это моя любимая тема по жизни. Оригинал ставился через setup.bat, который предполагал что у тебя уже есть Python, Node.js и CUDA нужной версии. Если чего‑то нет — читай документацию, ставь сам, страдай. Нормальному человеку такое не дашь.
Я переписал установку чтобы ничего не требовалось заранее. install.bat сам скачивает портативный Python 3.12, портативный Node.js 22, нужную версию PyTorch под вашу CUDA (12.4 / 12.6 / 12.8 — выбор в начале), все зависимости. Ничего в систему не попадает. Вся папка самодостаточная. Скопировал на флешку — унёс на другой компьютер — всё работает. Удалил папку = деинсталлировал. Именно так я делаю все свои портативные сборки и считаю это единственным нормальным способом распространять ML‑тулы для обычных пользователей.
Плюс run.bat, run‑no‑lm.bat, run‑dev.bat, update.bat, reinstall.bat — каждый под свой сценарий, очевидный из названия ярлыка.

Очень полезно следить за тем, сколько ресурсов потребляла система прежде чем все упало, я сделал минималистичный и симпатичный виджет в левом сайдбаре, где отображаются все основные жизненные показатели вашей системы.
Я обещал честно рассказывать про плюсы и минусы. Так что поехали минусы.
Это не Suno. И вряд ли в ближайший год станет. Качество заметно ниже, особенно когда речь про жанры с тонкой аранжировкой — классика, джаз, сложные электронные стили. ACE‑Step XL очень уверенно делает «бодрые песни с вокалом» — поп, рок, электронику. Всё что требует тонкой нюансировки — пока нет.
Вокал местами синтетический. На коротких фразах — норм, на длинных куплетах инногда слышно что это не человек. Suno тут ушёл сильно вперёд.
Надо настраивать. Если вам нужно просто «нажал и получил» — это Suno за $10 в месяц. ACE‑Step Studio — это инструмент для тех кто готов потратить время. Выбрать модель, подобрать сэмплер, покрутить CFG, поэкспериментировать с референсом. Кривая входа — часа два на то чтобы начать получать приличные результаты.
VRAM. Минимум 16 ГБ с BF16-моделью, но рекомендуется 20+. На встроенной графике ноутбука это не запустится.
Очень тупые, но забавные тексты. Они в рифму, но совершенно без смысла, к тому же модель плохо слушается промпта, на русском не понимает совсем, а на английском просто очень избирательно пишет лирику, если вы задаете её в промпте. Но, конечно, никто не мешает сгенерировать лирику, да и сам промпт для генерации музыки — в другой, более умной нейронке.
Нужно время на скачивание. Первый запуск скачивает 7.5 ГБ ( BF16-версия) или 18.8 ГБ (любая официальная XL). Плюс LM на генерацию текстов. В сумме полная установка — это около 20 ГБ на диск.
И вот тут интересно. Есть три сценария где ACE‑Step Studio реально круче чем Suno — не «такое же», а именно круче.
Каверы защищённых копирайтом треков. Suno жёстко режет любые попытки сделать кавер на известную песню. А у вас дома никого не волнует, что вы хотите послушать как «Smells Like Teen Spirit» звучал бы в стиле регги. Загрузил — получил — слушаешь. Для себя, не для публикации. Но в личной коллекции прикольных экспериментов — огонь.
Своя LoRA на любой трек. ACE‑Step поддерживает LoRA из коробки. Можно обучить модель на любом треке. Это огромное пространство возможностей которое в закрытых сервисах в принципе недоступно. Я пока только начал в этом разбираться, но планирую отдельно про это написать — обучение [11] LoRA для музыкальных моделей это своя тема.
Локальность и навсегда. Ни подписок, ни кредитов, ни лимитов, ни цензуры, ни «упс, сервис закрылся». Скачал — работает. Тревожная мысль: как только какой‑то SaaS‑сервис становится мне важен, я сразу думаю «а что если он заавтра умрёт или поднимет цены в 5 раз». С опенсорсом эта мысль не гложет. Что скачал — то твоё, и никто не отниимет.

Можно шарить по сети. Например зайти с телефона принимая ванну, ну или придумайте сами более достойный пример. Плюс есть система профилей, что отлично подойдет скажем для многодетной музыкальной семьи с GPU сервером на балконе.
Скачайте установщик [12]с гита, или установите через Git Clone по инструкции в русскоязычном ReadMe [13].
Если будет мало, то в канале Нейро‑Софт [14] есть еще и архив с окружением под win 11, rtx 4090.
После установки открываете run.bat — браузер откроется автоматически. При первом запуске докачает модели.
Это самая большая штука которую я когда‑либо публиковал. И это уже сейчас работающий продукт — не демо, не proof‑of‑concept, а полноценная студия которой приятно пользоваться.
Но это опенсорс, и ему нужна ваша помощь. Области где я сам не дотянусь:
macOS и Linux‑сборки — я писал под винду, Но оригинальный ACE‑Step-1.5 работает и под mac и под Linux, нужно просто сделать сборку.
Новые пресеты визуализатора — это чистый HTML/Canvas, добавить пресет — часа на два работы
Переводы — если вы носитель языка которого ещё нет (немецкий, французский, испанский…) — берите i18n‑файлы и вперёд
UI обучения LoRA — скелет есть, нужен нормальный пайплайн с прогресс‑барами
Форкните, поправьте что не нравится, пришлите PR. Или создайте issue с идеей. Или напишите туториал. Или просто поставьте звезду на GitHub — чтобы другие нашли проект быстрее. Мне не сложно просить об этом, потому что это реально помогает проекту жить.
И главное — пришлите в комментарии треки которые нагенерите. Очень интересно послушать что из этого получается у других людей. В моей голове ACE‑Step Studio это в первую очередь инструмент для творчества [15], а не ещё одна техно‑игрушка. Покажите что вы делаете — это лучшая мотивация [16] для меня продолжть пилить.
Репозиторий: github.com/timoncool/ACE‑Step‑Studio [17]
Я рассказываю больше о нейросетях и вайбкодинге у себя на YouTube [18], в Телеграме [19]и на Бусти [20]. Всех обнял и удачных генераций.
Автор: timonin
Источник [21]
Сайт-источник BrainTools: https://www.braintools.ru
Путь до страницы источника: https://www.braintools.ru/article/29125
URLs in this post:
[1] : https://pikabu.ru/story/sozdanie_muzyiki_v_neyroseti_udio_podrobnaya_instruktsiya_s_primerami_ot_soobshchestva_11419239?utm_source=linkshare&utm_medium=sharing
[2] один из первых на русском гайдов по Udio: https://habr.com/ru/companies/timeweb/articles/811167/
[3] платформу для лайвкодинга музыки с ИИ‑агентом: https://habr.com/ru/articles/1006070/
[4] внимания: http://www.braintools.ru/article/7595
[5] ACE‑Step: https://github.com/ace-step/ACE-Step-1.5
[6] выпустили три варианта: https://huggingface.co/collections/ACE-Step/ace-step-15-xl
[7] ace‑step‑ui: https://github.com/fspecii/ace-step-ui
[8] логика: http://www.braintools.ru/article/7640
[9] боль: http://www.braintools.ru/article/9901
[10] памяти: http://www.braintools.ru/article/4140
[11] обучение: http://www.braintools.ru/article/5125
[12] установщик : https://github.com/timoncool/ACE-Step-Studio/releases/tag/v1.0.0
[13] русскоязычном ReadMe: https://github.com/timoncool/ACE-Step-Studio/blob/master/README_RU.md
[14] Нейро‑Софт: https://t.me/neuroport/649
[15] творчества: http://www.braintools.ru/creation
[16] мотивация: http://www.braintools.ru/article/9537
[17] github.com/timoncool/ACE‑Step‑Studio: https://github.com/timoncool/ACE-Step-Studio
[18] YouTube: https://www.youtube.com/@nerual_dreming
[19] Телеграме : https://t.me/nerual_dreming
[20] Бусти: https://boosty.to/neuro_art
[21] Источник: https://habr.com/ru/articles/1025996/?utm_campaign=1025996&utm_source=habrahabr&utm_medium=rss
Нажмите здесь для печати.