ComfyUI-Drama3: Fish Audio Drama 3が8 GBのGPUでローカル動作
ComfyUI-Drama3は、8 GBのVRAMでFish Audio Drama 3をComfyUI内で実行できるノードパックです。ボイスクローン、16話者ダイアログ、インラインキュー、Qwen3-ASRを備えています。
ComfyUI-Drama3: Drama 3とQwen3-ASRをComfyUIノードとして利用でき、追加パッケージのインストールは不要です。
Drama 3は35BのMixture-of-Experts音声合成モデルで、トークンあたり3Bのパラメータがアクティブになります。Fish Audioの公式パッケージは8つのsafetensorsシャードとコーデックで構成され、ディスク上で約40 GBあります。ComfyUIパートナーノードはAPI経由でこれにアクセスします。このパックはローカル実行のルートです。公開されたチェックポイントを自身でロードし、ComfyUI内でオーディオコードを生成し、同じグラフ上で44.1 kHzにデコードします。
8 GBのGPUで動く35Bモデル
Drama 3はQwen3.5スタイルのMixture-of-Expertsです。40レイヤーで、各レイヤーに256のルーテッドエキスパートがあり、そのうち8つが音声フレームごとに実行されます。さらにアテンションまたはDeltaNet、共有エキスパート、13レイヤーのコードブックデコーダを備えます。ルーテッドエキスパート以外はすべて約6 GBで、GPU上に常駐します。エキスパートをRAMに置く場合、32 GBのエキスパート重みはピン留めされたシステムメモリに配置されます。各フレームはレイヤーごとに必要な8つのエキスパートをコピーし、空いているVRAM内のLRU(least-recently-used)キャッシュが再利用されるエキスパートを保持します。読み取りの85~95%が13 GBのキャッシュにヒットします。
このパックには4種類のチェックポイントビルドが同梱されており、マシンごとに選択できます:
| ファイル | サイズ | エキスパート | エキスパートを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は同じサイズで、RTX 3090では14~17%高速でした。これはint8エキスパートがint8のまま実行されるのに対し、FP8エキスパートは毎回bf16に変換されるためです。より小さなファイルは、FP8ファイルに必要な約48 GBのRAMを満たさないマシン向けです。expertsをRAMではなくVRAMに設定すると、2台目のGPUがエキスパート重みを担当できます。
音声、ダイアログ、キュー
このパックは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話者が1つのテキストを共有でき、それぞれに音声スロットが割り当てられます。長いテキストはタグを分割しないように約300バイトのチャンクに分割されます。テイク生成には4つのモードがあります。1行ごとに1テイク、前の行を聞いて1行ごとに1テイク、話者ごとに1テイク、スクリプト全体をまとめて生成してすべての行が他の行を聞く、というモードです。デコードは別々のテイクを0.3秒の無音で連結し、長いポーズを短縮できます。
音声はクリップとその文字起こしから一度エンコードすれば、数キロバイトのファイルとしてoutput/drama3_voicesに保存できます。以降の実行ではクリップもコーデックも不要です。生成済みのテイクも同様にoutput/drama3_codesに保存でき、再度生成することなく再デコードや編集ができます。
テイクの文字起こしと編集
このパックのサンプルページにある6つのサンプル: クローン、キュー、2話者のシーン、5話者のシーン、歌唱、ポルトガル語。いずれもFP8ビルドを使い、RTX 3090またはRTX 4090で生成されました。
ボイスクローンは文字起こしから始まりますが、このパックがそれを提供します。Load Qwen3-ASRとQwen3-ASR Transcribeが1.7Bまたは0.6Bの音声認識モデルと強制アライナを、追加パッケージなしで30言語で実行します。RTX 3090では、6.6秒のクリップは1.7Bモデルで約2秒、0.6Bで約1秒で文字起こしされます(モデルのロード時間を含む)。同じアライナがDrama 3 Editorにデータを渡します。これはComfyUIキャンバス上に開きます。キャプションは音声を単語ごとに追い、音声ごとに1トラックとなり、エディタではカット、無音の追加、音声の命名、音量の設定ができます。Use these editsを押すと、その編集内容でノードが再度実行され、編集内容はワークフローに保持されます。
速度
Drama 3は音声1秒あたり21.5フレームを生成するため、1フレームあたり46 msがリアルタイムに相当します。1フレームずつデコードする処理はCPUに律速されます。単一コアが多数の小さなGPUカーネルを起動するため、エキスパートキャッシュのサイズが速度に与える影響は予想より小さいです。クローン音声と約9秒の音声を使い、Intel Core i9-14900Kで測定(プロンプトパスを含む):
| GPU | ファイル | エキスパートキャッシュ | フレームあたりms | ピークVRAM |
|---|---|---|---|---|
| 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 |
最後の2行は、3090の残りのメモリを別のプロセスが占有した状態で実行され、12 GBまたは8 GBのGPUを模しています。作者はまた、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にドラッグし、音声を読み込むで数秒のクリーンな音声を選択し、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でサインインしてディスカッションに参加しましょう。