Nodes/ComfyUI-RyuuNoodles/Latent Size Picker 🐲
ComfyUI Node

Latent Size Picker 🐲

32 SDXL-shaped resolutions in a dropdown, snapped to a multiple you pick

By DraconicDragonΒ·Created about a year agoΒ·Updated 2 months agoΒ· 12
Latent Size Picker 🐲
    • latent
    • width
    • height
    β—„resolution1024x1024 (1:1)β–Ί
    β—„multiple64β–Ί
    β—„rounding_modenearestβ–Ί
    β—„scale_factor1.000β–Ί
    β—„batch_size1β–Ί
    β—„width_override0β–Ί
    β—„height_override0β–Ί

    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: EmptyLatentImage will 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. Default 1024x1024 (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.

    CategoryRyuuNoodles 🐲/Latents

    Inputs (7)

    NameTypeDefaultDescription
    resolutionCOMBO1024x1024 (1:1)Select a predefined resolution or use overrides.
    multipleINT64Multiple to scale to. Setting to 1 effectively disables this.
    rounding_modeCOMBOnearestRounding 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_factorFLOAT1.000How much to multiply both width and height by before scaling to multiple.
    batch_sizeINT11–4096Number of latent samples to generate.
    width_overrideINT00–16384Override width. Set to 0 to use resolution width.
    height_overrideINT00–16384Override height. Set to 0 to use resolution height.

    Outputs (3)

    NameTypeDescription
    latentLATENTβ€”
    widthINTβ€”
    heightINTβ€”