Jolly Cosmos3 Model Loader
32GB of weights, one node, zero stock-Cosmos compat
- cosmos3_pipe
Every Cosmos3 workflow in this pack starts here. JollyCosmos3ModelLoader is the node that loads NVIDIA's Cosmos3OmniPipeline from diffusers and hands it to the generation nodes as a COSMOS3_PIPE. No pipe, no output - the other four nodes just sit there waiting for it.
Why a dedicated loader at all? Because the ComfyUI stock Cosmos nodes speak Cosmos 1/1.5 (T5 cross-attention, EDM sampling), and Cosmos3-Nano speaks something else entirely: Qwen2 joint-token sequences with unified 3D mRoPE position embeddings and flow matching. This loader wires up the official inference path from the nvidia/Cosmos3-Nano model card, including the part people usually get wrong - the scheduler. It swaps in UniPCMultistepScheduler(flow_shift=10.0), matching training rather than guessing. (Community recipes elsewhere run flow_shift=5.0; this pack follows the model card, which is the defensible call.)
The inputs
- model_name - defaults to
cosmos3_nano. You can also pass a local path, a folder underComfyUI/models/diffusers/, or an HF repo ID likenvidia/Cosmos3-Nano, and the loader will hunt for amodel_index.jsoninmodels/diffusers/,models/Cosmos3/, or the HF cache. - precision -
bf16(default) orfp16. bf16 is the safer pick on Ada and newer; fp16 shaves a little VRAM if you're scraping by. - device -
autois fine for almost everyone. Thecuda:0–cuda:3options exist for multi-GPU boxes. - disable_guardrails - default
true, and the tooltip says it plainly: "Skip Cosmos safety guardrails." Note this only takes effect if thecosmos_guardrailpackage is actually installed - if it isn't, the safety checker is off regardless.
Output is a single cosmos3_pipe object, wired into JollyCosmos3TextToImage, JollyCosmos3TextToVideo, or JollyCosmos3ImageToVideo. That object carries the whole pipeline - VAE, transformer, tokenizer, scheduler, and the sound tokenizer when the checkpoint has one (that's how the gen nodes know whether generate_sound will do anything).
Installing it - the gotcha
This is a HuggingFace-diffusers loader, not a ComfyUI-native safetensors loader. It loads a whole diffusers model directory, and it requires diffusers from git main:
cd ComfyUI/custom_nodes
git clone https://github.com/JOLLYKRONK/jolly-cosmos3-comfyuinodes
pip install -U 'diffusers @ git+https://github.com/huggingface/diffusers.git'
huggingface-cli download nvidia/Cosmos3-Nano --local-dir ComfyUI/models/diffusers/cosmos3_nano
Restart ComfyUI and the nodes appear under the Cosmos3 category. If you load and get an ImportError saying your diffusers has no Cosmos3OmniPipeline, that's the git-main requirement biting - upgrade and restart. If you get a FileNotFoundError, the error message tells you exactly which directories it looked in, which almost always means the model download landed somewhere unexpected.
The honest hardware talk
Cosmos3-Nano is 16B parameters (8B active, a Mixture-of-Transformers), around 32GB in BF16. Community consensus is that a 5090 is "basically at the limits" of running it properly and the RTX 6000 Pro class is what NVIDIA architected it for. Don't buy this pack expecting it on a 12GB card. The loader does what it can - patches the VAE decode to clear CUDA cache before each call to dodge fragmentation OOMs - but it can't conjure VRAM.
If you're here, you want Cosmos3's world-model behavior (physics, motion, robotics-grade scene understanding) rather than prettier frames - for pure image quality the ecosystem's image models leave it behind, and it knows it.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | STRING | cosmos3_nano | — |
| precision | COMBO | bf16 | 2 options: bf16, fp16 |
| device | COMBO | auto | 6 options: auto, cuda, cuda:0, cuda:1, cuda:2, cuda:3 |
| disable_guardrails | BOOLEAN | true | Skip Cosmos safety guardrails. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| cosmos3_pipe | COSMOS3_PIPE | — |