ComfyUI-Drama3: Drama 3 от Fish Audio локально на 8 ГБ

ComfyUI Wikinews

ComfyUI-Drama3: пакет узлов, запускающий Fish Audio Drama 3 внутри ComfyUI на 8 ГБ видеопамяти, с клонированием голоса, диалогом на 16 говорящих, встроенными метками и Qwen3-ASR.

<strong>ComfyUI-Drama3</strong> приносит Fish Audio Drama 3 в ComfyUI в виде пакета пользовательских узлов. Речевая модель на 35B запускается на карте с 8 ГБ видеопамяти: её маршрутизируемые эксперты остаются в системной RAM и передаются потоком через кэш видеопамяти, а встроенный Qwen3-ASR создаёт транскрипт, необходимый клонированному голосу. Пакет также добавляет Drama 3 Editor поверх холста для монтажа, тишины и одной дорожки на каждый голос.
Баннер ComfyUI-Drama3

ComfyUI-Drama3: Drama 3 и Qwen3-ASR как узлы ComfyUI, без установки дополнительных пакетов.

Drama 3 представляет собой модель текст-в-речь mixture-of-experts на 35B с 3B активных параметров на токен. Собственный пакет Fish Audio это восемь шардов safetensors плюс кодек, около 40 ГБ на диске, а партнёрский узел ComfyUI обращается к ней через API. Этот пакет это локальный путь: он сам загружает опубликованные чекпойнты, генерирует аудиокоды внутри ComfyUI и декодирует их в 44,1 кГц на том же графе.

Модель на 35B на карте с 8 ГБ

Drama 3 это mixture of experts в стиле Qwen3.5: 40 слоёв, в каждом по 256 маршрутизируемых экспертов, из которых 8 работают на аудиокадр, плюс внимание или DeltaNet, общий эксперт и 13-слойный декодер кодовой книги. Всё, кроме маршрутизируемых экспертов, занимает около 6 ГБ и остаётся на GPU. При экспертах в RAM 32 ГБ весов экспертов находятся в закреплённой системной памяти: каждый кадр копирует восемь нужных ему экспертов на слой, а кэш с вытеснением наименее недавно использованных в оставшейся свободной видеопамяти удерживает те, что возвращаются, при этом 85-95% чтений попадают в кэш объёмом 13 ГБ.

Пакет поставляет четыре сборки чекпойнта и позволяет выбрать одну под конкретную машину:

ФайлРазмерЭкспертыRAM при экспертах в RAM
drama3_fp8experts_bf1638.6 GBFP8, как их поставляет Fish Audio~48 GB
drama3_int8experts_bf1638.7 GBint8 ConvRot~48 GB
drama3_w6a8experts_bf1632.7 GBW6A8~40 GB
drama3_w4a8experts_bf1624.6 GBW4A8~32 GB

FP8 сохраняет собственные веса экспертов Fish Audio байт в байт. int8 имеет тот же размер и работал на 14-17% быстрее на RTX 3090, потому что эксперты int8 выполняются как int8, тогда как эксперты FP8 преобразуются в bf16 на каждом проходе. Файлы меньшего размера предназначены для машин, которым не хватает примерно 48 ГБ RAM, нужных для файла FP8. Вторая GPU может взять веса экспертов на себя, если для experts задано VRAM вместо RAM.

Голоса, диалог и метки

Пакет придерживается собственного синтаксиса промптов Drama 3, того же, что описан в техническом отчёте:

УправлениеКак записатьПример
Говорящий<|speaker:N|> в начале строки, N от 0 до 15<|speaker:0|> Ready?
Точечная метка[tag] там, где должен прозвучать звукWell [sighs] fine, you win.
Метка с областью действия<tag>...</tag> вокруг слов, к которым она относитсяPromise me <whisper>you won't tell her</whisper>.
Префикс стиля[style] в начале строки[with bright eager excitement] We won!
Заметка режиссёраDirection: затем Line: на следующей строкеDirection: icy calm.
Подсказка языка[language: xx] после строки, не произноситсяWelcome back. [language: en]

До 16 говорящих могут делить один текст, и каждому достаётся слот голоса. Длинный текст нарезается на фрагменты примерно по 300 байт, не разрывая метку. У генерации дублей четыре режима: один дубль на строку, один дубль на строку, который слышит предыдущую строку, один дубль на говорящего или весь сценарий целиком, так что каждая строка слышит остальные. Декодирование объединяет отдельные дубли 0,3 секунды тишины и может сокращать долгие паузы.

Голос кодируется один раз из клипа вместе с его транскриптом, после чего может быть сохранён как файл размером в несколько килобайт в output/drama3_voices, так что последующим запускам не нужны ни клип, ни кодек. Сгенерированные дубли можно сохранять так же в output/drama3_codes и перекодировать или редактировать без повторной генерации.

Транскрибирование и редактирование дублей

Шесть примеров Drama 3: клонирование голоса, встроенные метки, два говорящих, пять говорящих, пение и португальский

Шесть примеров со страницы примеров пакета: клонирование, метки, сцена с двумя говорящими, сцена с пятью говорящими, пение и португальский. Каждый сгенерирован на RTX 3090 или RTX 4090 со сборкой FP8.

Клонирование голоса начинается с транскрипта, и пакет его предоставляет: Load Qwen3-ASR вместе с Qwen3-ASR Transcribe запускают модель распознавания речи на 1.7B или 0.6B и принудительный выравниватель, на 30 языках и без дополнительных пакетов. На RTX 3090 клип длительностью 6,6 секунды транскрибируется примерно за 2 секунды с моделью 1.7B и примерно за секунду с 0.6B, включая загрузку модели. Тот же выравниватель питает Drama 3 Editor, который открывается поверх холста ComfyUI: субтитры следуют за голосом слово за словом, одна дорожка на голос, а редактор режет, добавляет тишину, задаёт имена голосам и устанавливает их громкость. Нажатие Use these edits запускает узел заново с этими правками, и они остаются в рабочем процессе.

Скорость

Drama 3 создаёт 21,5 аудиокадра на секунду речи, поэтому 46 мс на кадр равно реальному времени. Декодирование по одному кадру упирается в CPU, поскольку одно ядро запускает множество небольших ядер GPU, поэтому размер кэша экспертов влияет на скорость меньше, чем ожидается. Измерено с клонированным голосом и примерно 9 секундами речи на Intel Core i9-14900K, включая проход промпта:

GPUФайлКэш экспертовмс на кадрПиковая видеопамять
RTX 4090W4A816 GB5221.3 GB
RTX 4090W4A84 GB6711.7 GB
RTX 4090int816 GB6921.5 GB
RTX 3090int816 GB6921.6 GB
RTX 3090FP816 GB8421.6 GB
RTX 3090FP84 GB11911.9 GB
RTX 3090 ограничена до 12 GBFP8автоматически1379.8 GB
RTX 3090 ограничена до 8 GBFP8автоматически2146.5 GB

Последние две строки получены при том, что остальную память 3090 занимал другой процесс, что имитирует карту на 12 ГБ или 8 ГБ. Автор также предупреждает, что сервер Fish Audio отправляет top_k 30, из-за чего дубли замолкают на паузах, поэтому узлы по умолчанию используют настройки самого Space: temperature 1.0, top_p 0.9 и без ограничения top_k.

Начало работы

### Установить узлы Склонируйте репозиторий в ComfyUI/custom_nodes/ и перезапустите ComfyUI. pip install не требуется: узлы используют только то, что уже поставляется с ComfyUI.
cd ComfyUI/custom_nodes
git clone https://github.com/PedroMarinhoDev/ComfyUI-Drama3

Скачать веса

Чекпойнты идут в models/diffusion_models, кодек в models/vae, а файлы ASR и выравнивателя в models/asr:

hf download PedroMarinhoDev/Drama-3-ComfyUI drama3_fp8experts_bf16.safetensors --local-dir ComfyUI/models/diffusion_models
hf download PedroMarinhoDev/Drama-3-ComfyUI drama3_codec.safetensors --local-dir ComfyUI/models/vae
hf download PedroMarinhoDev/Qwen3-ASR-ComfyUI qwen3_asr_0.6b_bf16.safetensors --local-dir ComfyUI/models/asr

Запустить рабочий процесс

Перетащите пример рабочего процесса в ComfyUI, выберите несколько секунд чистой речи в Load Audio, напишите текст в Drama 3 Generate и поставьте в очередь.

Доступность

Пакет узлов: PedroMarinhoDev/ComfyUI-Drama3
Веса: PedroMarinhoDev/Drama-3-ComfyUI · PedroMarinhoDev/Qwen3-ASR-ComfyUI
Примеры: pedromarinhodev.github.io/ComfyUI-Drama3
Базовая модель: fishaudio/drama-3 · новость о Drama 3

Комментарии

Войдите через GitHub, чтобы участвовать в обсуждении.

Загрузка комментариев…
ComfyUI-Drama3: Drama 3 от Fish Audio локально на 8 ГБ | ComfyUI Wiki