Nodes/ComfyUI_Rebels_NLD/NVIDIA NLD GGUF Loader
ComfyUI Node

NVIDIA NLD GGUF Loader

The loader that squeezes NVIDIA's 8B diffusion-LLM onto your card

By RealRebelAI·Created about a month ago·Updated about a month ago· 2
NVIDIA NLD GGUF Loader
    • NLD_MODEL
    gguf_name
    vqvae_name
    devicecuda
    weights_locationcpu_stream (low VRAM)
    attentionauto

    NVIDIA's NL-Diffusion-Image is not a normal checkpoint. The 8B backbone is a language model that generates an image as a sequence of discrete tokens - one per 16×16 patch, picked from a 128k-entry codebook via masked diffusion - then hands the token grid to an IBQ VQ decoder to paint actual pixels. It's the same "diffusion LM" family as Emu3, and for a while that meant only people with big data-center GPUs got to play. NLDLoaderGGUF ("NVIDIA NLD GGUF Loader") is the node that changes that: it loads the quantized 8B model from a .gguf file plus its vqvae decoder, and hands ComfyUI a ready-to-generate NLD_MODEL.

    It's part of the RealRebelAI "Rebels" series - the same community quantizer who ships GGUF packs for SCAIL-2 and SeFi-Image. RealRebelAI converted NVIDIA's model to GGUF and wrapped the whole thing in ComfyUI nodes so you never touch a transformers script. Given that a full-precision 8B dLM plus a big decoder would laugh at a 12GB card, GGUF is the whole reason this runs at all: Q8 is effectively fp16 quality at half the size, which is the same deal that made Flux-class models viable on consumer VRAM.

    What the dropdowns actually read

    • gguf_name - scanned from ComfyUI/models/unet/ and ComfyUI/models/diffusion_models/, so drop the dLM .gguf in either. If the dropdown shows the placeholder "<put dLM .gguf in models/diffusion_models>", it found nothing - that's the pack telling you where to look.
    • vqvae_name - scanned from ComfyUI/models/vae/. This is the Emu3-style decoder's bf16 .safetensors, not a normal latent VAE; it loads through this pack, never through ComfyUI's VAELoader.
    • weights_location - cpu_stream (low VRAM) (default) keeps the quantized weights in system RAM and streams them to the GPU per forward pass; gpu loads them onto the card. The streaming path uses pinned memory so the transfers are genuinely async.
    • attention - auto, flash_attention_2, sdpa, or eager. Auto picks flash if it imports cleanly and falls back to sdpa otherwise. Flash attention helps dramatically - the README says so in all caps, and it's the single biggest speed lever in the whole pack.
    • device - cuda or cpu. Not a real choice on CPU; that's for poking around without a card.

    Under the hood the node dequantizes with the city96 ComfyUI-GGUF fork, then wraps quantized Linear and Embedding layers in custom modules that dequantize lazily on forward - the 131k-row vocab embedding uses row-gather dequant so that monster tensor never fully materializes in VRAM. Smart, and exactly the kind of optimization this model needs.

    Output: a single NLD_MODEL bundle, which wires into the pack's NLDTextToImage node. Nothing else consumes it.

    Installing

    cd ComfyUI/custom_nodes
    git clone https://github.com/RealRebelAI/ComfyUI_Rebels_NLD
    

    Then three things must be true or it won't load:

    1. The city96 ComfyUI-GGUF fork must sit in the same custom_nodes/ folder. This pack imports its dequant module directly. Missing it, you get a warning that quantized models will not run - that's a hard stop, not a suggestion.
    2. Python deps into ComfyUI's embedded Python (transformers ≥4.50, accelerate, gguf, einops, safetensors; torch intentionally isn't listed because ComfyUI ships its own CUDA build): python_embeded\python.exe -m pip install -r requirements.txt
    3. Model files in place: dLM .ggufmodels/unet/ or models/diffusion_models/; vqvae .safetensorsmodels/vae/.

    ComfyUI Manager can also do the clone for you if you search the pack title.

    Gotchas

    The README's "IMPORTANT" note says the vqvae model.safetensors must go in model_assets\emu3_vqvae\ - but the shipped loader actually reads the vqvae from the models/vae/ dropdown. If your vqvae_name list is empty, that's the fix: the file belongs in models/vae/, not in the pack folder. And remember NVIDIA's One-Way Noncommercial License covers the model and its quants - research and development only. Finally, expect some rough edges: the README openly says the nodes are operational but slow, with speed patches landing regularly, so git pull often.

    CategoryRebels_NLD

    Inputs (5)

    NameTypeDefaultDescription
    gguf_nameCOMBO1 options: <put dLM .gguf in models/diffusion_models>
    vqvae_nameCOMBO0 options:
    deviceCOMBOcuda2 options: cuda, cpu
    weights_locationCOMBOcpu_stream (low VRAM)2 options: cpu_stream (low VRAM), gpu
    attentionCOMBOauto4 options: auto, flash_attention_2, sdpa, eager

    Outputs (1)

    NameTypeDescription
    NLD_MODELNLD_MODEL