Nodes/IAMCCS-nodes/IAMCCS Drama 3 · GPU Performance
ComfyUI Node

IAMCCS Drama 3 · GPU Performance

This is the Drama 3 node that actually makes the sound

By IAMCCS·Created about a year ago·Updated a day ago· 119
IAMCCS Drama 3 · GPU Performance
  • model
  • codec
  • voice
  • AUDIO
◄text►
◄seed0►
◄temperature1.00►
◄top_p0.90►
◄top_k0►
◄max_frames600►
◄split_long_texttrue►
◄shorten_long_pausestrue►

Audio in ComfyUI is where the ecosystem's seams show. The models are good, the integration is a maintained workaround, and the default failure mode is a dependency conflict - that's not my opinion, it's the honest summary of the whole TTS corner in audio-generation.md. So when a pack wraps a dialogue TTS model, the first question worth asking is what is the wrapper actually doing, because half of them are doing very little.

This one is doing very little, deliberately. IAMCCS_Drama3GenerateGPU is the node in the Drama 3 family that turns a script into a waveform.

What it is and when you'd reach for it

You'd reach for it when you need one voice performance from a text block - narration, a character line, a monologue - and you want it as a normal ComfyUI AUDIO object you can wire anywhere: Save Audio, a preview, an H3 audio-drive branch, a lip-sync pass. It's the drama-shaped corner of the TTS decision tree, not the fast-generic-voice corner (that's Kokoro) and not the API corner (that's ElevenLabs). Reach for Drama 3 when expressiveness per line is the thing you care about.

The catch that shapes everything: it is not a standalone model loader. The Drama 3 runtime is a separate, pinned ComfyUI pack. IAMCCS ships the plumbing that keeps that runtime honest - CUDA-only, no CPU fallback, no implicit downloads, no machine-specific model paths - and nothing else.

How it works

Open iamccs_drama3_gpu.py and the class is about fifteen lines of real logic. It looks up two node classes by name in nodes.NODE_CLASS_MAPPINGS - Drama3Generate and Drama3Decode - from the upstream runtime, passes your widgets through, and returns the decoded waveform. If those classes aren't registered, it raises Install the pinned ComfyUI-Drama3 runtime and restart ComfyUI before it tries anything clever.

Two details matter. The voice you connect goes to the runtime as a single slot, voice0 - one performance, one turn; the docstring points multi-speaker work at the upstream Drama3Generate node, whose autogrow input takes up to 16 voices. And it tells the runtime speakers='one take per line', which is the practical mechanic: line breaks in your text mark the turns. Write your dialogue one line per line, not as a paragraph with quotation marks, and the splitting behaves.

Then it decodes the generated codec frames through your codec model and hands you audio.

The inputs that matter

  • text - multiline, and line-per-turn as above.
  • model and codec - from the two CUDA loader nodes. Both are hard requirements.
  • seed - reuse it with the same text to get the same performance back.
  • temperature / top_p / top_k - default 1.0 / 0.9 / 0, where top_k=0 means it isn't filtering. These are your expressiveness dials, and pushing temperature up is the fastest way to get a take with more life in it and more stumbles.
  • max_frames - default 600, up to 8192. These are codec frames, not video frames. A long script that seems to get cut off wants a bigger number here.
  • split_long_text (default on) - splits long paragraphs into workable chunks. Turn it off only if you want to see what the raw route does with a wall of text.
  • shorten_long_pauses (default on) - applied at decode, trimming dead air between chunks. If a take feels unnaturally clipped, this is the first switch to try.
  • voice (optional) - the DRAMA3_VOICE from the voice encoder.

One output: AUDIO. Nothing exotic, which is the point.

Installing it

Install the pack the normal way - Manager, search IAMCCS Nodes, restart, hard-refresh the browser once (duplicate copies of the pack in custom_nodes are a known cause of stale node definitions). Or manually:

cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git

Then the parts that actually bite. The package ships no weights. You need the Drama 3 model in ComfyUI/models/diffusion_models, and the codec in ComfyUI/models/vae - the loaders only list files with the expected drama3_ / drama3_codec prefixes. And you need the pinned upstream ComfyUI-Drama3 runtime installed as its own custom node pack. Start ComfyUI on the NVIDIA GPU; this family refuses CPU execution on purpose.

Where people get burned

"Install the pinned ComfyUI-Drama3 runtime and restart ComfyUI: missing Drama3Generate." You installed IAMCCS-nodes and no upstream. That's the whole error.

"DRAMA 3 model and codec must use CUDA; CPU fallback refused." You launched with --cpu, or the upstream runtime put the model on CPU because of the memory profile you picked on the loader. Fix the launch flag first, then the profile.

Silent truncation on long scripts. If you're feeding it a scene rather than a line, raise max_frames and keep split_long_text on while you're iterating.

Expecting a dialogue scene with four characters. Not here. This is a single performance node; take the multi-speaker route in the upstream runtime and use these loaders as the way you get there safely.

CategoryIAMCCS/AUDIA/Drama 3

Inputs (11)

NameTypeDefaultDescription
modelDRAMA3_MODEL—
codecDRAMA3_CODEC—
textSTRING—
seedINT00–18446744073709550000—
temperatureFLOAT1.000.01–2—
top_pFLOAT0.900.01–1—
top_kINT00–4096—
max_framesINT6001–8192—
split_long_textBOOLEANtrue—
shorten_long_pausesBOOLEANtrue—
voiceoptDRAMA3_VOICE—

Outputs (1)

NameTypeDescription
AUDIOAUDIO—