EmptySD3LatentImage
The right blank canvas for SD3 and Flux-family models
- LATENT
SD3 didn't just change the prompt encoder - it changed the latent itself. Where SD 1.5 and SDXL stuff an image into a 4-channel latent, the SD3-generation (and Flux, which adopted the same idea) uses a 16-channel latent. That's a fourfold richer representation, and it's why EmptySD3LatentImage exists as its own node instead of you just reusing the classic Empty Latent Image. It makes the empty 16-channel latent tensor that SD3, SD3.5, and the Flux family sample from.
Three inputs:
- width / height - default 1024×1024, step 16. Note the step: SD3-family models want resolutions divisible by 16, not the /8 that SD 1.5/SDXL use. 1024 is the native sweet spot; going 512 will give you visibly worse results.
- batch_size - default 1, up to 4096, how many latents to make.
Output is a LATENT: zeros of shape [batch, 16, height/8, width/8], plus the downscale_ratio_spacial: 8 metadata that tells the pipeline the latent is 8× smaller per side than the final image.
Why not just use Empty Latent Image?
Honest answer: for pure SD3/Flux generation, you often can - ComfyUI has a fix_empty_latent_channels step in the sampler that notices the model expects 16 channels and pads a 4-channel empty latent up to match. That's why so many Flux workflows float around using the plain node. But the dedicated node skips that adapt-and-pad entirely, and it's the one the official SD3 and Flux templates ship with. If you're building an SD3/Flux graph from a template and it contains this node, keep it - swapping in the generic one works, but it's doing unnecessary work and occasionally trips up on channel-count edge cases (the model's latent handling, img2img chains, reference-latent tricks).
Also worth knowing: SD3's VAE is 16-channel and the model family has that whole three-text-encoder prompt stack (CLIP-L, CLIP-G, T5). The empty latent is the easy part of an SD3 workflow; the conditioning is where people actually struggle.
The gotchas
- Resolution discipline matters more here. SD3 and Flux were trained with strong resolution bias at 1024. The step-16 constraint is hard - off-grid values round or fail, and at 512 everything falls apart. If you want a different aspect ratio, change it in multiples of 16.
- It's not a Flux-only node. Despite the name it's the empty-latent for the whole 16-channel DiT family - SD3, SD3.5, and the Flux lineage all use it. If you see it in a Flux template, that's correct, not a leftover.
- Channel count is the compatibility wall. 16-channel latents from this node are not interchangeable with the 4-channel latents of SD 1.5/SDXL. Feed an SDXL model a 16-channel latent and you'll get noise or flat color - that's the "which VAE/which latent" trap made visible. The channel count is part of the model's contract, and crossing it silently breaks output.
It's a boring node - zeros in, zeros out, nothing to tune - but it's the correct start for a whole generation of models, and knowing why it's separate from Empty Latent Image is the part that'll save you from a head-scratching evening.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| width | INT | 102416–16384 | — |
| height | INT | 102416–16384 | — |
| batch_size | INT | 11–4096 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | — |