Latent Size Picker π²
32 SDXL-shaped resolutions in a dropdown, snapped to a multiple you pick
- latent
- width
- height
An empty latent is where every text-to-image run starts, and ComfyUI's core EmptyLatentImage node is fine at that job - except it doesn't help you pick a good resolution, and it doesn't snap to a multiple. Latent Size Picker fixes both: it's an empty-latent generator with a dropdown of 32 predefined ~1MP resolutions tuned for SDXL, plus the pack's scale-to-multiple math bolted on. Pick a shape, pick a multiple, get a latent and the numbers to match.
What it does
It builds an empty latent tensor (all zeros) and hands you three outputs: latent, width, and height. The resolution comes from a dropdown of 32 precomputed ~1MP sizes covering the full aspect-ratio spread around 1024x1024 - from 1728x576 (3:1, ultra-wide) through 1024x1024 (1:1, the default) down to 576x1728 (1:3, ultra-tall). These are the standard SDXL resolutions people actually generate at, which saves you from inventing a weird aspect ratio that a checkpoint wasn't trained on. Generating far off native resolution is a classic source of tiling and duplicated anatomy, per the troubleshooting docs, so starting from a sane ~1MP size is genuinely good hygiene.
On top of that base resolution it applies the pack's scaling logic:
multiple- snap to a multiple (default 64, step 8). This is the killer feature:EmptyLatentImagewill happily give you 1026x1024; this node won't.rounding_mode-nearest/floor/ceil.scale_factor- prescale before snapping.width_override/height_override- set to a nonzero value to override that axis entirely (0 means "use the resolution").batch_size- how many empty latents to stack (default 1).
The latent itself is created as [batch, 4, height/8, width/8] - the 8x spatial compression of the VAE - so the values you see are real latent-space dims, not pixels.
The nice UI touch
This is one of the few nodes in the pack with custom frontend code: after a run, it draws the current width and height in blue text right on the node body, next to the output sockets. So you can see at a glance what resolution the last run produced without squinting at a KSampler. Small thing, genuinely useful.
The inputs that matter
resolution- the dropdown. Default1024x1024 (1:1). Pick your aspect ratio here.multiple- default 64. Set to 8 if your model wants 8-multiples (SDXL happily takes 64; some pipelines want 8).batch_size- stack count if you're generating multiple at once.width_override/height_override- your escape hatch for non-preset sizes (0 = off).
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/DraconicDragon/ComfyUI-RyuuNoodles
Restart ComfyUI, or install via Manager (search "RyuuNoodles"). No models, no extra dependencies.
Gotchas
The dimension math floors to multiples of 8 internally (min 8x8), so an extreme override might not land exactly where you typed - that's the latent-compatibility safety net, not a bug. And the code credits cubiq's ComfyUI_essentials Empty Latent Size Picker (MIT) as the original - this is a fork with the multiple-snapping added, so if you already use cubiq's, the behavior will feel familiar, just with snapping and overrides. One more: it's meant as the starting latent for txt2img. If you're doing img2img, you want the VAE-encoded latent, not this.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| resolution | COMBO | 1024x1024 (1:1) | Select a predefined resolution or use overrides. |
| multiple | INT | 64 | Multiple to scale to. Setting to 1 effectively disables this. |
| rounding_mode | COMBO | nearest | Rounding mode for both width and height. 'nearest' will round to the nearest multiple of 'multiple' value. 'floor' will round down to the nearest multiple. 'ceil' will round up. |
| scale_factor | FLOAT | 1.000 | How much to multiply both width and height by before scaling to multiple. |
| batch_size | INT | 11β4096 | Number of latent samples to generate. |
| width_override | INT | 00β16384 | Override width. Set to 0 to use resolution width. |
| height_override | INT | 00β16384 | Override height. Set to 0 to use resolution height. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| latent | LATENT | β |
| width | INT | β |
| height | INT | β |