IAMCCS Drama 3 · CUDA Model
Drama 3's memory profile is the whole node, and nobody reads it
- DRAMA3_MODEL
Two widgets. One of them is a filename you'll set once. The other decides whether Drama 3 runs comfortably on your card or thrashes your RAM until you kill the process - and it's the one people leave on the default.
IAMCCS_Drama3GPUModelLoader ("CUDA Model") loads the Drama 3 diffusion model and publishes it as a DRAMA3_MODEL for IAMCCS_Drama3GenerateGPU. That's the whole contract. What makes it interesting is that the pack refuses to let the load happen quietly in the wrong place.
How it works
The Drama 3 runtime is a separately installed, pinned pack; IAMCCS ships the execution contract around it. This node's load() does four things in order:
- Asks ComfyUI for the current torch device and raises if it isn't CUDA -
DRAMA 3 GPU requires CUDA. Start the selected ComfyUI on its NVIDIA GPU, not --cpu. - Re-resolves the model path (
get_full_path_or_raise) even though the combo already came from a scan, because an untrusted combo string shouldn't be handed to a runtime that loads tensors. - Translates your memory profile into two upstream numbers - whether experts live in RAM or VRAM, and an expert cache ceiling in GiB - then calls the upstream
Drama3Loaderwithsecond_gpu='none'andsplit_layer=0. - Checks the returned patcher actually landed on CUDA, and raises
DRAMA 3 did not select a CUDA execution device; CPU fallback refusedif not.
That last check is the valuable one. Without it you'd get a load that "succeeded" and a generation that took an hour.
The two inputs
model_name comes from a scan of ComfyUI/models/diffusion_models filtered to filenames starting with drama3_. This is exactly the same convention as the codec loader, and it's why the dropdown can be empty on a machine that has the file sitting right there under a nicer name.
memory_profile is the one that matters. Four choices, and the mapping is in the source, not in a tooltip:
| Profile | Experts stored | Expert cache |
| --- | --- | --- |
| 8 GB · RAM experts | system RAM | 0.5 GiB |
| 12 GB · RAM experts | system RAM | 1.5 GiB |
| 24 GB · RAM experts | system RAM | 8.0 GiB |
| VRAM experts · advanced | VRAM | none |
The three RAM profiles are the same offload strategy at different cache sizes: keep the expert weights in system memory and stream the ones you need into VRAM, with a bigger cache meaning fewer round trips and a bigger footprint. Pick the one closest to below your actual VRAM - it's a statement about what you want resident, not about your card's name. VRAM experts · advanced is the no-offload path: everything resident, fastest per step, and it will simply not work if the model doesn't fit. Cheap to try, easy to back out of.
One output, DRAMA3_MODEL, and one place to put it: the generator's model socket. Both gaps in the chain - model and codec - are hard requirements there.
Installing it
ComfyUI Manager, search IAMCCS Nodes, restart, hard-refresh the browser once (the README is blunt about duplicate copies of the pack causing stale node definitions). Or:
cd ComfyUI/custom_nodes
git clone https://github.com/IAMCCS/IAMCCS-nodes.git
Then, specific to this node:
- The pinned ComfyUI-Drama3 runtime installed as its own pack. Missing it gives
Install the pinned ComfyUI-Drama3 runtime and restart ComfyUI: missing Drama3Loader. - The model file in
ComfyUI/models/diffusion_models, filename beginningdrama3_. IAMCCS ships no weights; the README is clear that every model file remains subject to its own licence. - CUDA. There's no CPU path and there isn't going to be one.
Where people get burned
Empty model_name dropdown. The file is in the wrong folder or has the wrong prefix. Fix the name, restart ComfyUI, reopen the node.
It loads, then generation crawls. You picked a RAM profile with a small cache and the model is streaming experts constantly, or you picked VRAM experts · advanced and the runtime is spilling anyway. Move one step down the table and compare. Also check nothing else in the graph is holding VRAM - a loaded image checkpoint plus an offload-happy audio model is an argument you don't want to referee.
"CPU fallback refused" on a gaming laptop. Optimus/hybrid graphics handing ComfyUI the iGPU. Force the discrete GPU for the Python process, or you'll be arguing with this error all evening.
Mixing releases. Model and codec come as a pair. The loader won't tell you they're mismatched; the decoder just produces noise.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | 0 options: | |
| memory_profile | COMBO | 12 GB · RAM experts | 4 options: 8 GB · RAM experts, 12 GB · RAM experts, 24 GB · RAM experts, VRAM experts · advanced |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| DRAMA3_MODEL | DRAMA3_MODEL | — |