Emu 3.5 Loader V2
The loader you actually want, with a Blackwell fix built in
- model
- tokenizer
- vq_model
- device_info
Emu 3.5 Loader V2 is the loader the pack wants you to use. Everything from the original Loader is here - the folder dropdowns, the precision selection, the same three outputs - plus the two things that actually make it workable on real hardware: control over where things load, and an attention implementation that doesn't produce garbage on Blackwell GPUs.
The Blackwell thing is worth stopping on. SDPA attention on NVIDIA's sm_120 architecture (RTX 50-series, with CUDA 12.8) has a known failure mode with Emu 3.5: noise, garbage output, silent corruption. V2 simply hardcodes attn_implementation="eager" on load, which is the recommended setting for Blackwell and works fine on Ampere and Ada too. If you've been getting nonsense images from the V1 path on a 50-series card, this is why the V2 loader fixes it.
On the memory side, device gives you cuda:0, cuda:1, or auto. auto uses accelerate's device map to split the model across multiple GPUs - which is how you get the 65B base model running across two cards. The separate vq_device lets you park the vision tokenizer on a different device entirely, including cpu.
The inputs that matter
- model_name / vq_model_name - folder dropdowns from
ComfyUI/models/emu35/."No folders found in models/emu35"means the weights aren't downloaded yet. - precision -
auto,bf16,fp16,fp32, ornf4 (quantize).autoreadsconfig.jsonand handles pre-quantized NF4 builds correctly. - device -
cuda:0,cuda:1, orauto(multi-GPU split). Defaultcuda:0. - vq_device -
same,cuda:0,cuda:1, orcpu. Thecpuoption is the known 24GB-VRAM trick: the vision tokenizer only runs at encode/decode time, so leaving it on CPU frees the card for the 34B main model.
Outputs
- model (
EMU_MODEL), tokenizer (EMU_TOKENIZER), vq_model (EMU_VQ) - wire all three into your sampler, same as V1. - device_info (
EMU_DEVICE_INFO) - a new V2 port carrying where everything actually landed; useful for debugging multi-GPU placement.
Install
cd ComfyUI/custom_nodes
git clone --recursive https://github.com/EricRollei/Emu35-Comfyui-Nodes.git emu35
cd emu35
pip install -r requirements.txt
Weights in models/emu35/: BAAI/Emu3.5-Image (34B, BF16) + BAAI/Emu3.5-VisionTokenizer, or wikeeyang/Emu35-Image-NF4 for 24GB cards. The base 65B model (BAAI/Emu3.5) is what story and VQA nodes need.
Real-world caveats
Loading is only half the fight. On a single 24GB card people still hit OOM ~30% through inference with NF4 - the fixes that actually worked were ComfyUI's --lowvram flag with --reserved-vram tuned up, plus V2's vq_device=cpu. And mind the expectation on speed: this is autoregressive token prediction, not diffusion. A 1024x1024 image is roughly 4,000 tokens, and at the ~5 tok/s a 96GB card manages, that's over ten minutes a pop. V2 loads the model efficiently; it can't make the model fast.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | 1 options: No folders found in models/emu35 | |
| vq_model_name | COMBO | No folders found in models/emu35 | 1 options: No folders found in models/emu35 |
| precision | COMBO | auto | 5 options: auto, bf16, fp16, fp32, nf4 (quantize) |
| device | COMBO | cuda:0 | 3 options: cuda:0, cuda:1, auto |
| vq_deviceopt | COMBO | same | 4 options: same, cuda:0, cuda:1, cpu |
Outputs (4)
| Name | Type | Description |
|---|---|---|
| model | EMU_MODEL | — |
| tokenizer | EMU_TOKENIZER | — |
| vq_model | EMU_VQ | — |
| device_info | EMU_DEVICE_INFO | — |