В демонстрации мелодия Бетховена становится основой новой песни: ведущий выбирает театральный хард-рок и задаёт песне слова «Где мой кошелёк». В другом примере Jingle Bells переходит в минор. Музыкальная модель YuE2 позволяет использовать знакомую мелодию как основу для нового звучания; перед созданием записи она составляет ноты, которые можно редактировать. Подробный разбор продолжается запуском на ноутбуке и настройками, от которых зависит результат.

Первые песни и языки

Автор представляет YuE2 как музыкальный генератор, который позволяет создавать песни, делать каверы и редактировать уже существующие композиции. По его оценке, на момент обзора это лучший доступный генератор музыки с открытым исходным кодом. Он сразу выделяет два обстоятельства: возможность запуска при 4 ГБ видеопамяти или меньшем объёме и сравнение качества песен, к которому возвращается после демонстраций. Затем он переходит к музыкальным примерам: для каждого отдельно показаны запрос, задающий жанр и стиль, и текст песни.

Первый пример — джазовая песня с атмосферой полутёмного заведения. В её тексте появляются звон бокалов, негромкая мелодия, приглушённый свет, шёпот, неоновые улыбки и тихий смех. Следующая композиция задана как буги-вуги в стиле 1930-х годов. Здесь текст построен вокруг желания танцевать: герой не может стоять на месте, обращается к Джону, зовёт его услышать ритм и кружиться в заполненной комнате. Оба результата звучат в обзоре как примеры двух разных стилевых запросов.

После англоязычных композиций звучат примеры на других языках. Испанский пример задан как фламенко; в песне упоминаются оливковые деревья, улицы, подъём по склону, ветер, Санта-Каталина и Хаэн. Далее звучат русскоязычная песня в жанре фолктроника и корейский пример в стиле эмо. Эти три демонстрации иллюстрируют заявленную поддержку разных языков.

Каверы и последовательное редактирование

Следующая группа примеров посвящена использованию другой песни в качестве аудиообразца. В показанном процессе мелодия существующей композиции сохраняется, а музыкальный стиль меняется. Для первого такого преобразования выбрана Auld Lang Syne: запрос предлагает превратить знакомую песню в ритмичный джаз-фанк. В проигранном фрагменте остаётся узнаваемый текст о старых знакомых. В этой версии исходная песня служит мелодической основой, а новое описание стиля задаёт другое звучание.

Во втором примере исходным материалом становится произведение Бетховена. Автор говорит, что слушатель, вероятно, узнает мелодию, но не называет конкретное произведение. Для новой версии он задаёт театральный хард-рок, а текст сводит к фразе «Where’s My Wallet» — «Где мой кошелёк». Затем в качестве образца использует Jingle Bells и предлагает перевести её в минор. Так в этой последовательности меняются стиль, слова и лад. Автор считает YuE2 очень гибким инструментом и называет его единственным на тот момент открытым генератором, способным делать хорошо звучащие каверы.

Следующая демонстрация — последовательное редактирование через ИИ-агента. В обзоре упоминаются агенты «GPT-6 Astra» и GLM, которым можно поручать генерацию и изменение музыки. Демонстрация начинается с поп-песни. Первый запрос должен сохранить мелодию и текст, но сделать музыку более джазовой за счёт регармонизации — изменения гармонического сопровождения. После прослушивания промежуточного результата автор считает, что джазового характера всё ещё недостаточно, и следующим запросом просит убрать гитару. Одна песня проходит две правки: сначала меняется гармоническое сопровождение, затем исчезает гитара. Для обеих достаточно текстовых команд.

Нотная основа и сравнение моделей

Перед установкой в обзоре объясняется принцип работы YuE2. По описанию ведущего, генератор сначала записывает редактируемую партитуру, а уже затем создаёт полноценное звучание. В показанном примере промежуточная запись содержит ноты вокальной и инструментальной партий, а также тональность и темп. Автор сравнивает её с базовой нотной записью песни и называет основой дальнейшей генерации. Именно с таким промежуточным представлением он связывает возможность гибкого редактирования: создания каверов, замены текста и перехода от мажора к минору.

Далее следует сравнение моделей. По показанному индексу качества песен YuE2 превосходит открытые модели, названные Minimax Music и «ACE-Step 1.5», а также закрытые Suno V6 и Suno 5.5. Ведущий отдельно отмечает, что YuE2 немного уступает Suno V5. В пределах того же сравнения пятая версия Suno оказывается выше версий 5.5 и 6, что автор считает любопытным результатом.

Подготовка ComfyUI и загрузка моделей

Локальный запуск показан в ComfyUI. На странице проекта в GitHub уже есть инструкции, но стандартный вариант требует работы с Python-кодом, которая может быть не всем понятна. Поэтому дальнейшая демонстрация использует визуальный интерфейс. Она предполагает, что ComfyUI уже установлен: сначала ведущий открывает папку update в корневой папке программы и запускает показанный BAT-файл обновления двойным щелчком. После завершения обновления нажимает любую клавишу, закрывает окно и запускает новую сессию ComfyUI.

Следующий шаг — загрузка готовой схемы работы в формате JSON. Файл можно сохранить в любом месте; в демонстрации файл помещается в корневую папку ComfyUI, а затем перетаскивается в интерфейс. После этого открывается заранее собранная рабочая схема, поэтому вручную создавать всю цепочку узлов не требуется. При первом открытии может появиться сообщение об отсутствующих моделях. Для этого случая показана загрузка компонентов, которых не хватает для работы импортированной схемы.

Первый необходимый компонент — аудиоэнкодер. На странице загрузок открывается папка audio_encoders и выбирается файл размером 1,4 ГБ. Сохранить его нужно внутри ComfyUI, в каталоге models, затем в папке audio_encoders. Это файл для обработки исходного аудио; он нужен нижней части схемы, которая принимает исходную аудиозапись для кавера. Аудиоэнкодер загружается отдельно от основного файла модели: второй файл выбирается уже на следующем шаге.

Для файла модели предлагаются два варианта. Полная BF16-версия занимает 7,8 ГБ, а меньшая сжатая версия — 3,96 ГБ. Автор говорит, что при видеопамяти менее 4 ГБ можно выбрать уменьшенный вариант. У него памяти достаточно, поэтому он скачивает полную модель; по его оценке, она должна помещаться примерно в 8 ГБ видеопамяти. Этот файл сохраняется в models/checkpoints внутри ComfyUI. Указанные размеры скачиваемых файлов и приведённые в обзоре оценки видеопамяти относятся к разным характеристикам в его объяснении.

После сохранения моделей список доступных моделей в интерфейсе обновляется нажатием R. В выпадающем списке узла Load Checkpoint выбирается скачанная модель BF16. По его объяснению, после выбора установленной модели сообщения об ошибках должны исчезнуть. На этом подготовка показанной схемы заканчивается. Далее рассматриваются её две основные части: генерация песни по текстовому запросу и использование аудиофайла в качестве образца.

Текстовая генерация и параметры

Верхняя часть схемы отвечает за создание песни по тексту, нижняя — за работу с аудиообразцом и каверами. Для первого сценария в поле style prompt (описание стиля) задаются жанр, характер звучания, темп музыки, инструменты и другие желаемые особенности. В примере используется future bass с характеристиками «современный, энергичный, вдохновляющий». В отдельное поле помещается текст песни. Оно принимает метатеги для куплетов, вступления, окончания, бриджа, припева и предприпева; демонстрация ограничивается одним куплетом и одним припевом.

Эти данные проходят через узел Generate ABC, который создаёт нотную запись. После запуска её можно посмотреть в окне предпросмотра. По объяснению в обзоре, показанные ноты задают и вокальную, и инструментальную мелодии на протяжении песни. Следующий этап получает эту запись вместе со стилевым запросом и текстом и уже создаёт музыку. Так ранее описанный принцип работы становится виден в самой схеме: сначала появляется промежуточная нотная основа, а затем она поступает в генератор звучания.

В узле генерации задаётся максимальная продолжительность песни в секундах. В примере выставлено 360 секунд, то есть шесть минут. Автор подчёркивает, что это верхний предел, и сначала говорит, что при коротком тексте получится более короткая песня. Далее используется KSampler. Параметр seed в обзоре объясняется как уникальный идентификатор песни: сейчас он равен 7 и зафиксирован. При тех же запросах и настройках, по его словам, получится тот же результат. Для другой песни с прежним стилем и словами предлагается изменить seed или включить его последующую рандомизацию.

Параметр steps задаёт число шагов генерации. В обзоре описан обычный для этой настройки компромисс: больше шагов, по словам ведущего, дают более высокое качество, но требуют больше времени, а меньше шагов позволяют получить результат быстрее. В примере оставлено значение по умолчанию — 32. CFG он объясняет как степень буквального следования запросу. Если стиль соблюдается недостаточно точно или в тексте песни появляются ошибки, он предлагает немного повысить CFG. Sampler и scheduler обозначены как алгоритмы генерации; их значения он также оставляет по умолчанию.

Декодирование и результат запуска

Следующий этап — декодирование. В заметке к схеме указано, что при достаточном объёме видеопамяти можно использовать обычное декодирование, которое работает заметно быстрее. Автор предполагает, что речь идёт об объёме свыше 12 ГБ; этот порог он называет приблизительно. При меньшем объёме он рекомендует декодирование по частям. Поскольку у его видеокарты больше 12 ГБ, в показанном запуске он выбирает обычный вариант и меняет подключения в схеме.

Для переключения ведущий зажимает Shift, нажимает на существующее соединение и перетаскивает его к нужному входу обычного декодера. Затем подключает его аудиовыход к следующему узлу. Неиспользуемый вариант декодирования отключает сочетанием Ctrl+B. После этих изменений результат должен поступить в конечный аудиовыход схемы. Нажатие Run запускает генерацию с ранее введёнными стилем, словами и параметрами.

В статистике показанного запуска отмечено: на ноутбуке ведущего с RTX 5000 и 16 ГБ видеопамяти генерация заняла чуть больше двух минут. Рядом показаны стилевой запрос и слова, затем звучит результат. В песне звучит текст о дорогах, которые герой не выбрал, закрытых дверях, желании начать действовать и превратить мечты в произведения искусства. Завершается показанный фрагмент мыслью о том, что необязательно знать окончание пути: нужны искра и смелость последовать за ней. Время относится именно к этому запуску на названном ноутбуке.

У результата обнаруживается проблема с длиной: музыка продолжает генерироваться существенно дольше, чем ожидалось по введённому тексту. Автор говорит, что ему следовало уменьшить максимальную продолжительность, чтобы она лучше соответствовала словам. Сначала он рассчитывал, что небольшого текста хватит для короткой песни, но после прослушивания признаёт, что лимит длительности стоило выставить вручную. После замечания он возвращается к Preview ABC и снова показывает промежуточную запись с нотами вокальной и инструментальной частей.

Инструментальная музыка

В инструментальном примере используется тот же текстовый сценарий. Стилевой запрос задаёт эпическую кинематографическую оркестровую музыку для сцены сражения и явно содержит указание instrumental only — только инструменты. Поле текста всё равно заполняется: вместо слов для пения в квадратных скобках задаётся описание желаемых инструментов. В примере это постепенное нарастание струнных со стаккато (короткими отрывистыми нотами) и этнических барабанов. Затем звучит сгенерированный результат. Здесь показан конкретный способ заполнения двух полей для музыки без вокала.

Кавер из аудиообразца

Переход к аудиообразцу начинается с включения нижней части схемы. Ведущий зажимает Ctrl, выделяет фиолетовые узлы и нажимает Ctrl+B, чтобы включить их. Эта цепочка позволяет загрузить аудиофрагмент и получить из него ABC-запись для дальнейшей генерации песни. Она заменяет верхний Generate ABC, который прежде создавал нотную основу по тексту. Поэтому отдельно выделяет верхний Generate ABC и связанный с ним Preview, затем снова использует Ctrl+B, теперь уже отключая эти два узла.

Выход нижней цепочки соединяется с Generate Music, так что нотная основа для новой песни теперь приходит из блока аудиообразца. Затем в выпадающем списке Load Audio Encoder выбирается ранее скачанный аудиоэнкодер. В поле загрузки аудио помещается фрагмент песни, который звучит в обзоре. В показанном материале звучат слова о человеке, который уходит, пока у героя разбивается сердце. Этот фрагмент становится исходным материалом для следующего преобразования.

В этом блоке можно выбрать, что использовать как образец: только мелодию или песню целиком. Автор называет различие между этими режимами довольно тонким, но для кавера или переноса именно мелодии предлагает melody only — только мелодию. После выбора он переходит к новым входным данным для генерации — описанию стиля и тексту, которые должны сопровождать нотную основу, полученную из загруженного аудио.

Демонстрационный кавер сохраняет те же слова, что и в образце. Стилевой запрос задаёт джаз с непринуждённым фортепиано, саксофоном, контрабасом и барабанами, на которых играют щётками. После нажатия Run звучит новая версия; в ней снова звучит строка о том, как герой смотрит вслед уходящему человеку, пока его сердце разбивается. В обзоре уточняется, что сохранять исходный текст необязательно: слова можно заменить, в том числе сделать так, чтобы исполнитель пел на другом языке.

Лицензии и открытый вопрос

В разборе от 15 сентября автор отдельно рассматривает лицензирование. По его словам, код и документация YuE2 распространяются по Apache 2, которую он характеризует как лицензию с минимальными ограничениями. Веса модели имеют другую лицензию — Creative Commons с некоммерческим условием. Он приводит формулировку о том, что использование не должно быть преимущественно направлено на коммерческую выгоду или денежное вознаграждение. При этом он не делает окончательного вывода о конкретном случае: прямо говорит, что не уверен, можно ли разместить созданную композицию в Spotify и получать от неё прибыль.