Nodes on GitHub · All samples · Qwen3-ASR for the transcripts · The original model
Fish Audio Drama 3, converted for the native ComfyUI nodes of
ComfyUI-Drama3: a 35B text-to-speech model for voice
cloning, dialogue and inline cues such as [sighs] or [whispers], running on cards from 8 GB. 90% of the model
is routed experts and each audio frame uses only 8 of the 256 in a layer, so the nodes keep the experts in system RAM
and a cache of the ones in use on the GPU. Each file holds the whole model in one file; the codec is separate.
Built with Fish Audio.
Samples
No real person is cloned here: the first three clone voices the model made up from a single line, the rest are voices it invents from the prompt alone. Drama 3 FP8, experts in RAM, temperature 1.0, top_p 0.9, top_k 30 (the nodes now default to top_k 0, as Fish Audio's Space does: top_k 30 made some takes fall silent and drop a sentence). More on the demo page →
Voice cloning: the source clip, a voice the model made up from one line, then a new line in that voice
The lighthouse keeper climbed the last step, set her lantern on the sill, and watched the storm roll in across the bay. Somewhere below, a bell began to ring.
Inline cues
[whispers] Don't move. I think it heard us. [pause] [sighs] Oh, it's only the cat. [laughs] You should have seen your face.
Two speakers
<|speaker:0|> Did you remember the tickets?
<|speaker:1|> [laughs] I thought you had them!
<|speaker:0|> [sighs] Then we're watching the concert from the parking lot.
Five speakers, no voices given: the model casts all five
<|speaker:0|> [dramatic dungeon master] You enter the dark cave. A dragon sleeps on a pile of gold.
<|speaker:1|> [brave, too loud] I attack the dragon! …
Singing
[singing, grand operatic] Oh toast, my golden toast, you're the bread I love the most! [singing softly] Crispy edges, warm and brown, finest slice in all the town. …
Portuguese
[Brazilian football fan, building tension, Portuguese] Vai, vai, vai, vai! Ele passou por um, passou por dois, [shouting] olha o chute! …
Files
Start with FP8: it holds Fish Audio's own expert weights, byte for byte, next to the checkpoint's bf16 layers. The int8 file is the same size, measured as close to the original, and ran 14–17% faster than FP8 on an RTX 3090: the nodes turn FP8 experts into bf16 each time they run, while int8 experts run as int8. Take a smaller file when your system RAM is short of the FP8 file's ~48 GB. Every model file needs the codec.
| File | Size | Experts | System RAM | Notes |
|---|---|---|---|---|
drama3_fp8experts_bf16.safetensors |
38.6 GB | FP8, as Fish Audio ships them | ~48 GB | the original weights |
drama3_int8experts_bf16.safetensors |
38.7 GB | int8 ConvRot | ~48 GB | faster than FP8 on the 3090; no silent take in 12 cloned test takes |
drama3_w6a8experts_bf16.safetensors |
32.7 GB | W6A8 | ~40 GB | no silent take in 16 cloned test takes |
drama3_w4a8experts_bf16.safetensors |
24.6 GB | W4A8 | ~32 GB | falls silent more often with real voice clips |
drama3_codec.safetensors |
1.6 GB | the original codec, fp32 |
Quick start
Install the nodes: clone ComfyUI-Drama3 into
ComfyUI/custom_nodesand restart ComfyUI. Nothing topip install.Download a model file into
models/diffusion_modelsanddrama3_codec.safetensorsintomodels/vae. For transcripts, addqwen3_asr_1.7b_bf16.safetensorsfrom Qwen3-ASR-ComfyUI tomodels/asr, and for the Drama 3 Editor's word-by-word captions,qwen3_forced_aligner_0.6b_bf16.safetensorsfrom the same repository.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_1.7b_bf16.safetensors --local-dir ComfyUI/models/asr hf download PedroMarinhoDev/Qwen3-ASR-ComfyUI qwen3_forced_aligner_0.6b_bf16.safetensors --local-dir ComfyUI/models/asrOpen the workflow
example_workflows/drama3_voice_clone.jsonfrom the pack, pick a few seconds of clean speech, write your text, run.Edit the take (optional): the Drama 3 Editor node, in place of Decode, shows the take on a timeline with one track per voice and captions that follow the words; it shortens long pauses, spaces out lines that run into each other, flags lines that may have lost words, and cuts. For dialogue, give each speaker a voice: the voice in slot
voiceNspeaks for<|speaker:N|>.
Requirements and speed
| GPU | NVIDIA, 8 GB of VRAM or more with experts in RAM (tested: RTX 4090 and RTX 3090; 12 GB and 8 GB simulated on the 3090) |
| System RAM | the model file plus ~8 GB |
| ComfyUI | v0.40 or newer |
Drama 3 makes 21.5 audio frames per second of speech, so 46 ms per frame is real time. Experts in RAM, a cloned voice, ~9 s of speech, prompt pass included, measured on 2026-10-15 with an Intel Core i9-14900K (the held rows on 2026-10-14). One frame at a time, decoding waits on the CPU: int8 runs at the same 69 ms per frame on both GPUs, and a CPU with slower cores adds to these times:
| GPU | File | Expert cache | ms per frame |
|---|---|---|---|
| RTX 4090 (PCIe 4.0 ×8) | W4A8 | 16 GB | 52 |
| RTX 4090 (PCIe 4.0 ×8) | int8 | 16 GB | 69 |
| RTX 3090 (PCIe 4.0 ×8) | int8 | 16 GB | 69 |
| RTX 3090 (PCIe 4.0 ×8) | FP8 | 16 GB | 84 |
| RTX 3090 held to 12 GB | FP8 | automatic | 137 |
| RTX 3090 held to 8 GB | FP8 | automatic | 214 |
How these files were made
From fishaudio/drama-3 with the pack's tools/convert.py:
- FP8: the routed experts' FP8 bytes and 128×128 block scales copied unchanged, gate and up projections fused.
- int8 / W6A8 / W4A8: the experts dequantized from FP8 in fp32 and requantized, in ComfyUI's comfy_kitchen formats: int8 ConvRot (per-channel int8 after a rotation in groups of 256), or 6-bit or 4-bit codebook weights with int8 activations; relative weight error 0.83%, 2.1% and 7.3%.
- Every file: the attention, DeltaNet, shared-expert and codebook-decoder layers are the checkpoint's own bf16; the LM head keeps only the rows generation samples from (end of speech and the 4096 semantic codes).
- Codec: Fish Audio's S2-Pro codec as shipped with Drama 3, weight norm folded in, fp32.
Against Fish Audio's own PyTorch code, with the same frames forced, the main token's distribution differs by a KL of 0.004–0.008 nats with the FP8 and int8 files, the noise of bf16 arithmetic.
License
These Fish Audio Materials are licensed under the Fish Audio Community License, Version 1.0. Copyright © 39 AI, INC. All Rights Reserved. See LICENSE and NOTICE.
Free for research and non-commercial use, and for commercial use below USD 500k annual revenue; a hosted TTS service needs a separate license from Fish Audio. Don't use these files or their output to imitate the voice of an identifiable person without their consent, or to train or improve other speech models.
Built with Fish Audio. This repository is not affiliated with, sponsored or endorsed by Fish Audio.
Model tree for PedroMarinhoDev/Drama-3-ComfyUI
Base model
fishaudio/drama-3