SD 1.5 Resolution
A dropdown that keeps your 512-native model honest
- width
- height
- aspect_ratio
The SD 1.5 Resolution node is the smallest useful idea in ComfyUI: a dropdown of eight resolutions your SD 1.5 model actually likes, and three clean outputs. It's one of six nodes in the Image Size Tools pack (TheLustriVA/ComfyUI-Image-Size-Tools), and it exists for anyone who's ever stared at an Empty Latent Image node trying to remember whether 576×768 is a legal size before a generate.
It is. But you shouldn't have to hold that in your head.
Why SD 1.5 is fussy about dimensions
SD 1.5 was trained at 512×512, and that's baked into the model in two ways. First, its VAE downscales by 8× per side, so width and height need to be divisible by 8 or the latent math gets grumpy. Second, quality: the deeper you push past 512, the more the model leans into its failure modes - duplicated anatomy, tiling, that classic stretched-limb look. The standard advice is to generate near native resolution and upscale afterward rather than forcing a huge canvas.
Now, SD 1.5 is not dead, and this is part of why a node like this is still worth having. The checkpoint and LoRA library is enormous, and a lot of people still use 1.5 fine-tunes as a fast first draft before re-rendering on something modern. Those fine-tunes still want 512-ish. This node hands you the sane options.
How it works
Honestly? It's a dictionary lookup. Open image_size_nodes.py and there's a hardcoded table mapping labels like "768×512 (3:2) - Landscape" to width, height, and ratio. Pick the dropdown value, the node returns the three numbers. No VAE calls, no calculation, no rounding - every preset is already divisible by 8, so you can't feed a bad value through by accident.
That's the pack's whole design philosophy. The author (websinthe on Reddit, TheLustriVA on GitHub) made it deliberately single-file and zero-dependency so the nodes can't break when ComfyUI updates. For a utility this trivial, that's the right call.
The one input and the three outputs
There's a single input: resolution, an enum of eight presets - 512×512 native up to 768×768 "Large Square," with landscape, portrait, 16:9, and 4:3 variants in between.
The outputs are where it pays off:
widthandheight(INT) - wire these straight into an Empty Latent Image node's width and height.aspect_ratio(STRING) - a"1:1"/"3:2"string, handy for workflow bits that need the ratio as text (crop and regional-prompt setups sometimes take one).
That's the whole API. Set one thing, get three values.
Installing
The pack installs like anything else. Easiest: ComfyUI Manager → Install Custom Nodes → search "Image Size Tools" (it's listed by its display name, "ComfyUI Image Size Tool"). Or manually:
cd ComfyUI/custom_nodes
git clone https://github.com/TheLustriVA/ComfyUI-Image-Size-Tools.git
Restart ComfyUI and you're done. There are no dependencies to pip install (the requirements.txt is comments only) and no model files to download - which is exactly why the README's troubleshooting section is so short. If the nodes don't appear, git pull inside the folder, clear __pycache__, and restart.
The honest take
This is a convenience node, not magic. If you already know "512, multiples of 8," you can type those numbers yourself. Where it earns its keep is a busy canvas: one click instead of two, no memorizing which ratios are legal, and zero risk of a stale resolution breaking a generation. The flip side is you get exactly eight options - if your favourite fine-tune wants something off-list, you're editing the source file. For a zero-dependency dropdown, that's a trade worth making.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| resolution | COMBO | 8 options: 512×512 (1:1) - Native, 768×512 (3:2) - Landscape, 512×768 (2:3) - Portrait, 768×576 (4:3) - Standard, 576×768 (3:4) - Standard Portrait, 912×512 (16:9) - Widescreen, +2 |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| width | INT | — |
| height | INT | — |
| aspect_ratio | STRING | — |