Nodes/ComfyUI_Rebels_NLD/NVIDIA NLD Text to Image
ComfyUI Node

NVIDIA NLD Text to Image

NVIDIA NLD Text to Image

By RealRebelAI·Created about a month ago·Updated about a month ago· 2
NVIDIA NLD Text to Image
  • nld_model
  • IMAGE
prompt
width1024
height1024
steps50
guidance7.0
temperature1.0
seed0
decode_devicegpu
dequant_cache_gb0.0
kv_cacheoff (flat step time)
sample_policyargmax
alg_temp0.00
top_k0
top_p1.00
shift3

Most image models denoise. NVIDIA's NL-Diffusion-Image does something weirder: its 8B backbone is a language model that "writes" an image as a sequence of discrete tokens - one per 16×16 patch, drawn from a 128k-entry codebook - via iterative masked diffusion, the same family trick Emu3 pioneered. Then a second network, an IBQ VQ decoder, turns that token grid into pixels.

NLDTextToImage (display name "NVIDIA NLD Text to Image") is the half of the pack where any of that actually happens. Feed it the NLD_MODEL from the pack's loader plus a prompt, and out the other end comes a real IMAGE tensor you can save, upscale, or run through any normal ComfyUI node. There's no KSampler here and no denoise schedule - this is token sampling, LLM-style, which is exactly why the knobs look the way they do.

The settings that matter

  • prompt - plain text, multiline. The tokenizer and modeling code ship inside the pack, so there's no CLIP encoder in the graph; you type and it goes.
  • width / height - 256 to 2048, stepped in 32s, default 1024². This is a transformer, so bigger means slower and a lot more VRAM, but the model handles high resolution natively.
  • steps - default 50. Counts unmasking iterations, not diffusion steps.
  • guidance - default 7.0, CFG-style: raise for prompt adherence, lower for freedom.
  • seed - set it if you want a reproducible run.
  • decode_device - gpu (default) or cpu (slow, no OOM). The transformer is offloaded off the card during vqvae decode so the conv decoder gets the whole GPU; if decode OOMs anyway, this is your escape hatch.
  • kv_cache - off keeps per-step time flat and avoids the runaway-memory failure mode; on is faster when it fits. Off is the default for a reason.

Then the sampler trio that actually changes image character: sample_policy (argmax vs multinomial), alg_temp, top_k, top_p, and shift. The honest take: NVIDIA's stock defaults randomize both which codebook token gets picked and the order tokens get committed - great for variety, terrible for text and fine structure. Set sample_policy to argmax and alg_temp to 0 and the model commits its most-confident tokens first, letting ambiguous regions resolve after neighbors exist. That's the single biggest quality lever this node has; the pack's own code comments argue exactly this.

Two VRAM helpers worth knowing if you're tight: dequant_cache_gb (0–12) caches dequantized weights across steps so redundant work gets skipped - it trades system RAM for speed - and temperature (1.0 default, 0.1–2.0) scales the sampling distribution.

Output and wiring

You get one IMAGE tensor, RGB, already 0–1 on CPU. Plug it into SaveImage, an upscaler, or anything downstream. There's no separate VAE decode step - the vqvae decoding happens inside this node - so a minimal workflow is just Loader → this node → SaveImage.

Installing it

Same pack as the loader - install once and you get both nodes:

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

You also need the city96 ComfyUI-GGUF fork in custom_nodes/ (the loader uses its dequant code) and the pack's Python deps in ComfyUI's embedded Python. The loader article covers all of it in detail - this node adds no models of its own, it just consumes the NLD_MODEL.

Where people get burned

It's slow, and the README says so flat-out: "operational but slow," with speed patches landing continuously, so keep the pack git pull-ed. Flash attention in the loader matters more for speed than anything on this node - if generation drags, fix that first. Don't be alarmed that VRAM looks chunky across runs: the ~5.5GB of weights stay resident deliberately, and the node clears its own transients between runs. And NVIDIA's noncommercial license covers everything this produces, so keep it to research and hobby use.

CategoryRebels_NLD

Inputs (16)

NameTypeDefaultDescription
nld_modelNLD_MODEL
promptSTRING
widthINT1024256–2048
heightINT1024256–2048
stepsINT501–200
guidanceFLOAT7.00–20
temperatureFLOAT1.00.1–2
seedINT00–18446744073709550000
decode_deviceCOMBOgpu2 options: gpu, cpu (slow, no OOM)
dequant_cache_gbFLOAT0.00–12
kv_cacheCOMBOoff (flat step time)2 options: off (flat step time), on
sample_policyCOMBOargmax2 options: argmax, multinomial
alg_tempFLOAT0.000–2
top_kINT00–4096
top_pFLOAT1.000–1
shiftINT31–8

Outputs (1)

NameTypeDescription
IMAGEIMAGE