Select Flux.1 Dimensions
Flux resolutions without the arithmetic — plus the 16-channel latent Flux actually wants
- width
- height
- latent
- upscale factor
- upscaled width
- upscaled height
Ask a Flux.1 user what resolution to generate at and you get a lecture about tensor cores, the VAE's 8× downsampling, and why everything has to be a multiple of 16 (ideally 64). The arithmetic isn't hard - it's just annoying, and it's exactly the kind of thing you shouldn't have to do every workflow. Select Flux.1 Dimensions turns that into an 18-item dropdown and, more importantly, emits an empty latent with the right channel count so Flux actually runs on it.
What it actually does
The dropdown holds 18 presets split into two tiers. Thirteen are the ~1MP community-standard Flux resolution table - the same numbers you'd get from the ControlAltAI resolution calculator the pack's source credits - from 1024×1024 Square up through 1536×640 Ultrawide and its tall twin. The other five are the ~2MP "community sweet spot": 1408×1408, 1728×1152, 1920×1088, and their portraits. Every value is a multiple of 16, matching the BFL reference implementation.
Pick one and the node hands you width, height, and a latent sized for it. That latent is the whole game: Flux's VAE runs on 16 channels at 8× spatial compression, not the 4 channels SDXL uses. A 1024×1024 Flux latent is 128×128×16, and if you feed it a four-channel SDXL latent you get noise or flat color. This node allocates the correct 16-channel tensor (with downscale_ratio_spacial: 8 tagged onto it) so you can drop the EmptyLatentImage node entirely and wire the latent straight into the sampler.
The inputs and outputs that matter
- dimensions - the dropdown. That's the node.
- upscale_factor - default 2.0, 1.0–8.0 in 0.25 steps. Pure math helper.
- batch_size - default 1; bump it and the latent comes pre-batched.
Outputs are width, height, latent, plus upscale factor, upscaled width, and upscaled height. The last two are the hires-fix target, pre-computed: wire upscaled width/upscaled height into a latent upscale node for the second pass. That matters more here than on SDXL, because Flux's quality genuinely degrades once you push past ~2MP without a second pass - the ~2MP tier in this dropdown is the realistic ceiling in one shot, and the upscaled outputs are how you go beyond it cleanly.
Installing it
Part of ComfyUI-LatentPresets, which also ships SDXL and Z-Image dimension nodes. Zero extra Python dependencies, zero model downloads:
cd ComfyUI/custom_nodes
git clone https://github.com/bnwa/ComfyUI-LatentPresets
Restart ComfyUI. In ComfyUI Manager, use Install via Git URL with that address - the pack isn't in the Manager registry yet, so a name search won't find it.
Where people get burned
The README's own warning is the one that bites: the pack uses the comfy_api.latest v3 node API and needs ComfyUI 0.3.x or newer. Old installs silently skip the nodes - no error, they just never show up under models/latent. If that happens, update ComfyUI, not the pack.
Second, resist the urge to pick the 2MP tier and call it a day. Those presets are the sweet spot for one pass, not a free upgrade - beyond ~2MP you're in hires-fix territory regardless of which dropdown you used. It's a tiny convenience pack, but for anyone who runs Flux Dev it removes a surprising amount of fiddly typing.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| dimensions | COMBO | 18 options: 1024 × 1024 (1:1) — Square, 1152 × 896 (9:7) — Landscape, 896 × 1152 (7:9) — Portrait, 1152 × 864 (4:3) — Classic Landscape, 864 × 1152 (3:4) — Classic Portrait, 1216 × 832 (3:2) — Photo Landscape, +12 | |
| upscale_factor | FLOAT | 2.001–8 | — |
| batch_size | INT | 1 | — |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| width | INT | — |
| height | INT | — |
| latent | LATENT | — |
| upscale factor | FLOAT | — |
| upscaled width | INT | — |
| upscaled height | INT | — |