Z Image Turbo Resolutions
This preset picker knows the good sizes
- resolution
- width
- height
Z-Image Turbo is the fastest way to a good image on a modest GPU, but it's picky about canvas size. Its native sweet spot is roughly 1MP to 2MP, and push past that and you get soft degradation, doubled limbs, the usual. You can type 1280x720 into an EmptyLatentImage by hand - but the model's recommended sizes are a specific curated set, and this node is just that set, ready to pick from.
ZImageTurboResolutions is a dropdown that outputs three integers: resolution, width, and height. Pick a preset tier (1024, 1280, or 1536), pick an aspect ratio, and the node hands you clean dimensions to feed straight into an EmptyLatentImage's width/height inputs. That's the whole job. It's so thin it borders on a config file with a UI, which is exactly what a resolution helper should be.
Here's the part people miss: that list of sizes isn't arbitrary. The 33 presets are the resolution/aspect-ratio combos recommended for Z-Image Turbo (the README credits the official Hugging Face Space), and the community treats it as a cheat sheet. There's a real r/comfyui thread where someone was getting eye artifacts at an oddball 1024x789, and the fix offered was "try a recommended resolution" - with a link straight to this repo's table. You don't even have to install the node to benefit from that list, but if you're generating a lot, having it as a dropdown beats scrolling a README.
How it works
Two parts, both simple. The frontend (js/z_image_turbo_resolutions.js) watches your resolution choice and dynamically filters the ratio dropdown down to the 11 ratios that belong to it - pick 1280 and suddenly only the 1280-era sizes are offered. The backend class just takes the selected "1152x896 (9:7)" string, splits off the x, and returns width and height as ints. That's all of it: no model files, no API calls, no requirements.txt, nothing to download.
The inputs that matter
- resolution - the preset tier:
1024,1280, or1536. This is mostly a shortcut to narrow the ratio list. - ratio - one of 33 precomputed sizes. This is the one that actually determines your output.
Outputs are resolution (an int that just echoes your tier choice - don't bother wiring it to anything important), width, and height. Wire width and height into an EmptyLatentImage or a latent-resize node and you're set.
One warning, grounded in the source: the backend INPUT_TYPES lists all 33 ratios regardless of resolution - the filtering is purely a browser-side JS behavior. In the standard ComfyUI web UI it works fine, but if you're driving the node from the API or a non-standard frontend, or a stale cache breaks the JS, you can end up with ratio=1280x1280 while resolution=1024. The node won't complain; it just hands you mismatched ints. If the ratio dropdown ever stops shrinking when you switch resolution, hard-refresh the browser.
Also: several of the 1536-tier presets (2048x1152, 1536x1536) sit at or above the ~2MP native ceiling where Z-Image quality starts to degrade. They're handy for a quick high-res experiment or the later pass of an upscale workflow, but if you're sampling straight there at full denoise, don't be surprised by softer results.
Install
Easiest via ComfyUI Manager - search "Z Image Turbo Resolutions", hit install, restart. Or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/SaTaNoob/ComfyUI-Z-Image-Turbo-Resolutions.git
Then restart ComfyUI. No extra pip packages, no model downloads, MIT licensed. You'll find it under the image/resolution category.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| resolution | COMBO | 1024 | 3 options: 1024, 1280, 1536 |
| ratio | COMBO | 1024x1024 (1:1) | 33 options: 1024x1024 (1:1), 1152x896 (9:7), 896x1152 (7:9), 1152x864 (4:3), 864x1152 (3:4), 1248x832 (3:2), +27 |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| resolution | INT | — |
| width | INT | — |
| height | INT | — |