Resolution Master
Resolution Master
- input_image
- width
- height
- rescale_factor
- batch_size
- latent
If you've ever generated an image with a stretched body, two heads, or a weirdly repeated horizon, you already know the problem this node solves. Every model was trained at a native resolution and a handful of aspect ratios, and when you wander off those, it falls apart. The most-upvoted answer to a thousand "why does my person look melted" posts is blunt: "You are using a model trained on 1024x1024 images trying to make images with ridiculously different aspect ratios." Resolution Master is a visual, all-in-one dimension picker that keeps you inside the lines - and hands you an empty latent on the way out so you can delete one node from your graph.
What it actually does
Here's the thing to get straight up front: Resolution Master does not touch your pixels. It's a calculator with a nice interface. You drag a dot around a little 2D canvas or pick a preset, and it outputs numbers - a width, a height, a rescale factor, and a ready-made latent. Those numbers go into the nodes that do the real work. The README says it plainly, and it's worth repeating because people trip on it: "Resolution Master doesn't process images directly - it calculates dimensions." If you want to actually resize an image, you still wire its width/height into a Resize Image node.
Where it earns its keep is the preset library and the model-specific math. It ships buckets for SDXL, Flux, Flux.2, WAN video, Qwen-Image, Z-Image Turbo, plus print, social, and cinema ratios. SDXL's real trained ratios - 1024×1024, 1152×896, 1216×832, 1344×768, 1536×640 and their rotations - are baked in as presets, so you stop guessing. Turn on Custom Calc and it'll clamp whatever you've got to something the model is happy with: Flux mode, for example, forces 32px increments and caps you at 4 megapixels. It's the difference between "I think 1216×832 is legal for SDXL?" and just clicking the button.
The inputs and outputs that matter
Most of the controls live in the on-node widget - the canvas, the preset dropdowns, the buttons - so you rarely type into fields directly. The handful worth knowing:
- input_image (optional) + auto_detect: connect a Load Image and flip Auto-Detect on, and the node reads that image's dimensions as your starting point. This is the resize-workflow entry point.
- batch_size: how many latents to make (1–4096). Bump it if you want a batch at one resolution.
- latent_type: leave it at the default
latent_4x8for SD, SDXL, and Flux. Only switch tolatent_128x16if you're on Flux.2, which uses a 128-channel latent.
On the output side you get five slots. width and height go to your checkpoint/sampler (or a resize node). latent is the sleeper feature - it's a correctly-sized empty latent built from your width, height, batch, and type, so you can wire it straight into KSampler and drop the separate Empty Latent Image node entirely. batch_size passes through. And rescale_factor feeds an upscaler.
One gotcha on rescale_factor: it is not the ratio between your input and current size. It's your scaling intent for downstream upscalers. Set a 1080p target and swap in a different input image, and the factor recalculates so you still land on 1080p. That's by design - it makes your workflow resolution-independent - but it surprises people who expect it to reset to 1.0.
Installing it
Easy one. In ComfyUI Manager, search Comfyui-Resolution-Master and hit Install, then restart. Or do it by hand:
cd ComfyUI/custom_nodes/
git clone https://github.com/Azornes/Comfyui-Resolution-Master.git
Restart ComfyUI and it's there under utils/azToolkit. No models to download, no heavy Python dependencies - it's a JavaScript widget plus a bit of backend math, so the install is genuinely painless.
When it breaks
Two known issues, both from the author and both quick fixes. If the node shows up completely blank on the canvas, that's a conflict with comfyui-mixlab-nodes - mixlab overrides a drawing method other nodes rely on. Disable or uninstall mixlab and it renders fine (there's a one-line manual patch in the README if you can't live without mixlab). Second, it does not work with ComfyUI's newer Vue Nodes rendering; if the node looks broken, go to Settings, search "Vue Nodes," and turn off "Modern Node Design (Vue Nodes)."
And the recurring confusion, not a bug: it outputs numbers, not images. If your picture didn't change size, check that you actually wired width/height into a resize node downstream.
Inputs (24)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | Choose how to control the output size. Manual mode uses the Resolution Master canvas. | |
| latent_type | COMBO | latent_4x8 | Choose the latent type. Use 4x8 for most models, or 128x16 for Flux.2. |
| width | INT | 5120–32768 | Final output width in pixels. |
| height | INT | 5120–32768 | Final output height in pixels. |
| auto_detect | BOOLEAN | false | Detect the size from the connected input image. |
| auto_detect_source | STRING | backend | Technical setting used by the Resolution Master interface. |
| auto_detect_width | INT | 00–32768 | Detected input width used by auto-detect. |
| auto_detect_height | INT | 00–32768 | Detected input height used by auto-detect. |
| auto_fit_on_change | BOOLEAN | false | When a new image is detected, fit it to the closest preset automatically. |
| auto_resize_on_change | BOOLEAN | false | When a new image is detected, resize it automatically using the selected scaling mode. |
| auto_snap_on_change | BOOLEAN | false | When a new image is detected, round its size to the selected snap step. |
| smart_fit | BOOLEAN | false | Fit to the closest preset aspect ratio while keeping the size close to the current resolution. |
| use_custom_calc | BOOLEAN | false | When a new image is detected, apply the selected model or category size rules automatically. |
| preserve_scaling_ratio | BOOLEAN | false | Keep the image proportions while scaling. |
| selected_category | STRING | Selected preset category. | |
| snap_value | INT | 641–32768 | Snap step used when rounding width and height. |
| upscale_value | FLOAT | 1.000–100 | Manual scale multiplier. |
| target_resolution | INT | 10801–32768 | Target p-resolution used for scaling. |
| target_megapixels | FLOAT | 2.000–1000 | Target megapixels used for scaling. |
| auto_detect_presets_json | STRING | {} | Technical preset data used by auto-detect. |
| rescale_mode | STRING | resolution | Scaling mode used for the Rescale Factor output. |
| rescale_value | FLOAT | 1.0000–100 | Current Rescale Factor value shown by the interface. |
| batch_size | INT | 11–4096 | How many latent images to create in one batch. |
| input_imageopt | IMAGE | Optional image used for auto-detecting width and height. |
Outputs (5)
| Name | Type | Description |
|---|---|---|
| width | INT | Final output width in pixels. |
| height | INT | Final output height in pixels. |
| rescale_factor | FLOAT | Scale factor calculated from the selected scaling mode. |
| batch_size | INT | Number of latent images created in one batch. |
| latent | LATENT | Empty latent created with the selected size, batch size, and latent type. |