SN1000 Resolution
SN1000 Resolution with a real ratio lock
- width
- height
- info
Resolution is the most-retyped number in ComfyUI. It feeds the empty latent, the latent upscale, the detailer, the save size - and every time you type 1024 into a new place, you're one typo away from a silently mismatched render. SN1000 Resolution (class SN1000Resolution, from the SmartNode1000 pack) is a value source that fixes it: pick a size once, and fan plain width/height integers out to every node that needs them. This is the plumbing-layer trick the rest of ComfyUI takes for granted - one authoritative value, wired to many consumers, instead of a number typed in five widgets.
It also fixes the thing most resolution nodes get wrong: the aspect ratio. Set one side, and with link_ratio on, the other side follows the ratio automatically. No more staring at a KSampler that wants 16:9 while your latent is stubbornly square.
How it works
The node is genuinely simple under the hood, which is the point. width and height are real integer inputs (64 to 8192, stepped in 8s), and preset, group and ratio are UI-managed fields that just help you pick and label them. When the run happens:
- Both values are snapped to a multiple of 8 (with a floor of 64). Most models want 8-pixel multiples; typing 1234 gives you 1232, and that's the feature.
swapon swaps width and height on output - handy when a list entry is stored portrait but you need landscape.link_ratiois handled by the UI: change one side and the other follows, using theratiotext (like1:1or16:9).
The pickable list itself is your own: resolutions.json ships a set of defaults (copied from resolutions_default.json on first run), and you add, delete and star favourites as you like. Your edits are never overwritten by an update - the README says so explicitly, and it's the right behavior for a file that's your personal list.
The inputs that matter
width/height- the actual values. Everything else is a convenience around these two.link_ratio- on (default), changing one side drives the other to keep the aspect ratio.swap- flips the pair on output.
preset, group and ratio are display/selection fields the UI fills in - set them through the node, not by hand.
Outputs
Three sockets: width (INT), height (INT), and info (STRING - a label like 1024 x 1024 (1:1) manual). Wire width/height into an Empty Latent Image, or convert them to inputs on nodes that already have baked-in size widgets, and the resolution has one source instead of five.
Install
Same for every SmartNode1000 node. Search SmartNode1000 in ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/1000Pro-1997/SmartNode1000.git
Restart ComfyUI. No extra dependencies, no model downloads.
Where people get tripped up
- The 8-multiple snap surprises people who type odd numbers. It's deliberate - most architectures train and sample in 8-pixel units. Use it, don't fight it.
- The resolution list is shared, not per-workflow.
resolutions.jsonis global, which is great for consistency and mildly annoying if you wanted two graphs with totally different lists. Reset to defaults whenever you want; your list is never silently overwritten. swapis easy to forget. It's a stored toggle, so a workflow can sit swapped and you'll wonder why landscape renders are portrait. Check it first.
It's not a flashy node - it's the kind you install once and stop thinking about, which is exactly the point.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| width | INT | 102464–8192 | Width. May be filled in from the list or ratio. |
| height | INT | 102464–8192 | Height. |
| preset | STRING | Selected list entry. Display only. | |
| group | STRING | Current group name. Managed by the UI. | |
| ratio | STRING | 1:1 | Aspect ratio text, used by the UI when ratio link is on. |
| link_ratio | BOOLEAN | true | On makes the other side follow the ratio when one side changes. |
| swap | BOOLEAN | false | On swaps width and height on output. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| width | INT | — |
| height | INT | — |
| info | STRING | — |