ComfyUI-Drama3: Drama 3 от Fish Audio локально на 8 ГБ
ComfyUI-Drama3: пакет узлов, запускающий Fish Audio Drama 3 внутри ComfyUI на 8 ГБ видеопамяти, с клонированием голоса, диалогом на 16 говорящих, встроенными метками и Qwen3-ASR.
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_bf16 | 38.6 GB | FP8, как их поставляет Fish Audio | ~48 GB |
drama3_int8experts_bf16 | 38.7 GB | int8 ConvRot | ~48 GB |
drama3_w6a8experts_bf16 | 32.7 GB | W6A8 | ~40 GB |
drama3_w4a8experts_bf16 | 24.6 GB | W4A8 | ~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 и перекодировать или редактировать без повторной генерации.
Транскрибирование и редактирование дублей
Шесть примеров со страницы примеров пакета: клонирование, метки, сцена с двумя говорящими, сцена с пятью говорящими, пение и португальский. Каждый сгенерирован на 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 4090 | W4A8 | 16 GB | 52 | 21.3 GB |
| RTX 4090 | W4A8 | 4 GB | 67 | 11.7 GB |
| RTX 4090 | int8 | 16 GB | 69 | 21.5 GB |
| RTX 3090 | int8 | 16 GB | 69 | 21.6 GB |
| RTX 3090 | FP8 | 16 GB | 84 | 21.6 GB |
| RTX 3090 | FP8 | 4 GB | 119 | 11.9 GB |
| RTX 3090 ограничена до 12 GB | FP8 | автоматически | 137 | 9.8 GB |
| RTX 3090 ограничена до 8 GB | FP8 | автоматически | 214 | 6.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, чтобы участвовать в обсуждении.