🖼️ Resolution Preset Latent
An empty latent with a name instead of two numbers
- latent
This node is an empty latent with a resolution dropdown instead of width/height fields. That's the whole pitch. If you've ever downloaded a ProJX workflow, you've seen these exact presets - 915x1144 "Portrait", 1182x886 "Photo", 1254x836 "Landscape", 1365x768 "Widescreen", 1564x670 "Cinematic" - so the node exists to keep those workflows tidy and drop-in ready. Underneath, it does exactly what ComfyUI's built-in EmptyLatentImage does: produce a blank latent for a text-to-image start. It just lets you pick "Widescreen (16:9)" instead of typing 1365 and 768.
How it works
The math is the boring, correct core: it creates a torch.zeros([batch_size, 4, height // 8, width // 8]) tensor on ComfyUI's intermediate device. The // 8 is the important part - the VAE downsamples the image 8x per side into latent space (true for both SDXL's 4-channel and Flux's 16-channel autoencoders), so a latent is always an eighth of the final pixel size.
Which brings us to the quirk that trips people up. Several presets aren't divisible by 8 - 915, 1182, 1254, 1365, 1564 all are not. The tooltip states it plainly: output follows latent-grid rounding to the nearest lower multiple of 8. So "1365 x 768: Widescreen" actually produces a 1360x768 latent, "915 x 1144" gives you 912x1144, and so on. You'll decode a slightly narrower image than the label promises. That's expected behavior, not a bug, and it's the one thing worth knowing before you use it.
Why care at all about matching a known resolution? Because generating at sensible ratios near a model's native resolution avoids the classic stretched-body, repeated-anatomy artifacts - the KB's resolution table is full of "generate at one of the trained ratios, then upscale" advice. These presets are basically that advice baked into a dropdown, leaning SDXL-lineage sizes.
Inputs and outputs
Only two inputs:
- preset - an enum with 7 choices: Vertical (9:16), Portrait (4:5), square 1:1 (the default), Photo (4:3), Landscape (3:2), Widescreen (16:9), Cinematic (21:9).
- batch_size - 1 to 4096, default 1.
Output is a single latent, which wires straight into your KSampler's latent input.
Installing it
Same pack as intelliPrompt - ComfyUI Manager (search "intelliPrompt"), or:
cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/galpt/comfy-intelliPrompt.git
Restart after cloning. No model downloads. One dependency note: this node is the only part of the pack that actually needs torch. The pack handles that gracefully - the node registers even in an environment without torch and only raises a clear runtime error if you execute it without it. In a normal ComfyUI install you already have torch, so this is theoretical.
When NOT to reach for it
This is a genuinely thin node, and the honest advice is: unless you're running ProJX workflows (or just like the preset names), ComfyUI's core EmptyLatentImage does the identical job and you already have it installed. Don't add a pack for a renamed empty latent.
Two more cautions. It's a text-to-image starter, not an img2img source - if you want to regenerate an existing image, you need VAEEncode on that image, not an empty latent. And batch_size goes up to 4096; the latent itself is cheap, but the sampler downstream will happily eat VRAM on a big batch. Keep it at 1 unless you know why you're raising it.
Simple node, simple job, clear rounding rule. If the presets match how you think about resolutions, it saves you a couple of seconds a workflow - and that's about the honest measure of it.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| preset | COMBO | 1024 x 1024: square 1:1 | Choose a render size preset instead of editing width and height manually. Decoded output follows latent-grid rounding to the nearest lower multiple of 8 when a label is not divisible by 8. |
| batch_size | INT | 11–4096 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | — |