Nodes/TTS Audio Suite/⚙️ DramaBox Engine
ComfyUI Node

⚙️ DramaBox Engine

The expressive TTS that wants your whole GPU

By diodiogod·Created about a year ago·Updated about 9 hours ago· 1,166
⚙️ DramaBox Engine
    • TTS_engine
    model_nameDramaBox
    deviceauto
    cfg_scale2.5
    negative_promptworst quality, inconsistent, robotic, distorted, noise, static, muffled, unclear, unnatural, monotone
    stg_scale1.5
    duration_multiplier1.10
    gen_duration0.0
    ref_duration10.0
    rescale_scaleauto
    watermarkfalse
    prompt_template"{seg}"
    precisionauto
    memory_modefast
    transformer_quantizationnone
    compile_modelfalse
    local_lora_adapterNone
    lora_adapter_override
    lora_strength1.00

    If you've ever wished your TTS would act a line instead of reading it like a GPS, DramaBox is the engine you've been waiting for - and it's also the one that'll make you check your VRAM counter twice. It's Resemble AI's 3.3B expressive TTS model, and it's the closest thing in open weights to an actual director's chair. You write prose around quoted dialogue - stage directions, delivery, even a sigh - and the model performs it.

    DramaBox is one of the engines inside TTS Audio Suite (diodiogod's catch-all TTS pack, evolved from the old ChatterBox SRT project). This node configures the engine; its single TTS_engine output feeds the suite's Unified TTS Text or Unified SRT TTS nodes, where the actual generation happens. You don't call anything here - this is pure setup.

    How it works

    Under the hood DramaBox is an LTX-family diffusion model for audio, and it brings diffusion-adjacent controls with it. It uses CFG (text guidance) plus STG (skip-token guidance) to follow your prompt, a negative prompt to discourage artifacts, and a duration estimator that predicts how long each line should take. It's English-only, and the reference window matters: connect a voice reference and the first ref_duration seconds (default 10) are what get cloned.

    The prompt_template field is the secret sauce. Default is "{seg}" - every plain line is treated as spoken dialogue. Change it to something like A man speaks warmly, "{seg}" and every segment picks up that delivery. That's how you get a whole audiobook narrated in one consistent mood without editing per line.

    The inputs that actually matter

    You'll touch maybe four of these:

    • cfg_scale (2.5) - higher is more text-faithful, lower is more natural. If output sounds forced, drift it down toward 2.
    • stg_scale (1.5) - skip-token guidance. Leave it alone until you know what you're doing; it's not the knob you think it is.
    • memory_mode - fast keeps everything on CUDA and targets roughly 24GB VRAM. staged and sequential are experimental ways to fit less VRAM by reloading components per segment. Real, but slow.
    • ref_duration - seconds of your reference audio that get used. A clean 10-second single-speaker clip beats a 30-second one with noise.

    gen_duration should stay at 0 (automatic estimation) for normal work - it's for explicit per-segment durations. transformer_quantization offers fp8_cast for lower VRAM at some speed cost, compile_model trades a very slow first generation for faster later ones, and the local_lora_adapter / lora_strength inputs load a trained DramaBox LoRA right here. The seed isn't on this node - the unified TTS nodes supply it.

    Installing it

    Install the pack once, then this node just works:

    cd ComfyUI/custom_nodes
    git clone https://github.com/diodiogod/TTS-Audio-Suite.git
    cd TTS-Audio-Suite
    python install.py   # or ../../../python_embeded/python.exe install.py on portable
    

    ComfyUI Manager works too - search "TTS Audio Suite". The installer sorts out Python 3.12+/3.13 compatibility and dependency conflicts. On first run the model auto-downloads roughly 16.4GB into ComfyUI/models/TTS/dramabox/DramaBox/ (including the bundled 4-bit Gemma text encoder), so budget disk and patience. You need a CUDA GPU; CPU inference is unsupported.

    Where people get burned

    VRAM. The community consensus is that 16GB runs it only with memory tricks - people reach for staged mode, fp8_cast, and offloading to keep it alive. If it OOMs, that's the first thing to try, not a bug report.

    Near-silent output. DramaBox occasionally returns a near-silent clip for a particular reference/duration/seed combination. The suite detects it and prints a warning - preserve the audio, try a different seed or reference window, and move on.

    The license. DramaBox ships under the LTX-2 Community License. Free under USD $10M annual revenue (all revenue, not profit, and affiliates count), paid above that. Fine for hobbyists and small studios; not free forever.

    The first generation also downloads and loads Gemma, so it feels like the node is broken. It isn't. Give it a minute.

    CategoryTTS Audio Suite/⚙️ Engines

    Inputs (18)

    NameTypeDefaultDescription
    model_nameCOMBODramaBoxOfficial Resemble AI DramaBox 3.3B checkpoint. Downloads about 16.4 GB. Fast mode targets roughly 24 GB VRAM; experimental staged modes can use less. LTX-2 Community License: entities with at least USD 10M annual revenue need a paid commercial license.
    deviceCOMBOautoDramaBox requires an NVIDIA CUDA GPU; CPU inference is unsupported.
    cfg_scaleFLOAT2.51–10Official CFG scale. Lower is more natural; higher is more text-faithful.
    negative_promptSTRINGworst quality, inconsistent, robotic, distorted, noise, static, muffled, unclear, unnatural, monotoneCFG negative prompt: sounds or qualities to discourage.
    stg_scaleFLOAT1.50–5Official skip-token guidance scale.
    duration_multiplierFLOAT1.100.5–3Scales DramaBox's native estimated output duration. Increase for more breathing room; decrease for tighter speech.
    gen_durationFLOAT0.00–60Explicit duration for each generated segment. 0 uses automatic prompt-based estimation and duration_multiplier. Keep 0 for normal SRT generation until native duration targeting is integrated.
    ref_durationFLOAT10.03–30Seconds used from the beginning of the voice reference. Audio after this point is ignored.
    rescale_scaleSTRINGautoCFG latent rescaling: auto, or a fixed value from 0 to 1. Auto adjusts rescaling from cfg_scale.
    watermarkBOOLEANfalseApply the official imperceptible Perth watermark. Disabled by default to keep watermarking optional; requires Perth.
    prompt_templateSTRING"{seg}"Template applied to each plain segment. {seg} is replaced by the segment text. Default: "{seg}" (literal spoken dialogue). Example with a delivery description: A man speaks warmly, "{seg}". Clear the field to send text unchanged. Non-empty templates should contain {seg}; if omitted, a quoted {seg} is appended automatically with a console warning. Complete scene prompts are preserved.
    precisionoptCOMBOautoLTX inference precision. Auto prefers bfloat16 on Ampere-or-newer GPUs.
    memory_modeoptCOMBOfastFast keeps every component on CUDA. Staged and Sequential are experimental strategies for lowering peak VRAM. Staged releases temporary components; Sequential runs one major GPU stage at a time.
    transformer_quantizationoptCOMBOnoneOfficial LTX FP8 weight-storage policy for the diffusion transformer. fp8_cast lowers VRAM but upcasts each linear layer during inference. DramaBox LoRAs remain as an unmerged BF16 branch over the FP8 base.
    compile_modeloptBOOLEANfalseCompile the diffusion transformer blocks. First generation is much slower and may reserve more VRAM; later denoising can be faster.
    local_lora_adapteroptCOMBONoneOptional DramaBox audio LoRA discovered under models/TTS/dramabox/loras. Training outputs are copied there when a run completes.
    lora_adapter_overrideoptSTRINGAdvanced local path to a DramaBox LoRA file or adapter folder. If filled, this overrides the local adapter dropdown.
    lora_strengthoptFLOAT1.000–2Scale applied to the trained DramaBox LoRA. 1.0 uses the adapter's trained strength; 0 disables it.

    Outputs (1)

    NameTypeDescription
    TTS_engineTTS_ENGINE