Nodes/IAMCCS-nodes/IAMCCS Drama 3 · CUDA Model
ComfyUI Node

IAMCCS Drama 3 · CUDA Model

Drama 3's memory profile is the whole node, and nobody reads it

By IAMCCS·Created about a year ago·Updated a day ago· 119
IAMCCS Drama 3 · CUDA Model
    • DRAMA3_MODEL
    ◄model_name▾►
    ◄memory_profile12 GB · RAM experts►

    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:

    1. 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.
    2. 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.
    3. 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 Drama3Loader with second_gpu='none' and split_layer=0.
    4. Checks the returned patcher actually landed on CUDA, and raises DRAMA 3 did not select a CUDA execution device; CPU fallback refused if 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 beginning drama3_. 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.

    CategoryIAMCCS/AUDIA/Drama 3

    Inputs (2)

    NameTypeDefaultDescription
    model_nameCOMBO0 options:
    memory_profileCOMBO12 GB · RAM experts4 options: 8 GB · RAM experts, 12 GB · RAM experts, 24 GB · RAM experts, VRAM experts · advanced

    Outputs (1)

    NameTypeDescription
    DRAMA3_MODELDRAMA3_MODEL—