Video Resolution Picker
Stop doing the aspect-ratio math
- width
- height
- label
Every video-generation node asks you for a width and a height, and every video workflow eventually needs you to compute one from the other. "I want 1280 on the long side at 16:9" - that's 720, but you shouldn't have to reach for a calculator (or a mental-math breakdown) every time you change it. Video Resolution Picker takes an aspect ratio and a longest side, does the multiplication, snaps the result to a model-friendly grid, and hands you width, height, and a readable label. One node, three wires, done.
It's the simplest node in Enigmatic Nodes, a small utility pack by the individual dev enigmatice. Pure local Python, no models, no downloads. It's the kind of plumbing node the ComfyUI ecosystem is full of - and the kind that quietly removes a repetitive annoyance from a graph you build constantly.
How it works
The mechanism is three lines of math, which is exactly what you want from a node like this. It supports three aspect ratios - 1:1, 16:9, and 9:16 - and treats longest_side as the longer dimension. The shorter side is computed as longest_side times the ratio, then floored down to a multiple of 8. So 16:9 at 1280 gives you 1280×720, 9:16 at 1080 gives you 608×1080, and 1:1 just squares it. The label output formats the result as "1280 x 720 (16:9)", which is handy for a display node or a filename.
The multiple-of-8 snapping is the part that actually matters. Video models are picky about resolution grids, and a bare 1280 * 9 / 16 can come out non-divisible. The 8-step snap keeps most pipelines happy without you thinking about it.
The inputs that matter
- aspect_ratio -
1:1,16:9, or9:16. That's the whole menu, which is worth knowing up front: if your model needs something exotic like 4:3, this isn't the node for it. - longest_side (default
1280, step 8) - the longer dimension; the shorter is calculated.
The outputs
width and height as INTs, plus label as a STRING - wire the ints into whatever video node takes resolution, and drop the label on a display or into a filename.
Installing it
Same for every node in the pack:
- ComfyUI Manager - search Enigmatic Nodes, install, restart.
- Manual -
cd ComfyUI/custom_nodes && git clone https://github.com/enigmatice/comfyui-enigmatic-nodes, then restart.
No model files to fetch. The pack declares torch, numpy, scipy, Pillow, opencv-python; ComfyUI core already ships all but opencv-python (which you almost certainly have from another pack), and Manager installs deps for you.
Common issues
- My model rejects the resolution. The 8-step snap is a generic safety net, but different models have different hard rules - Wan wants multiples of 16, and newer LTX models want width and height divisible by 32. If the model errors on the output, this node's 8-grid isn't the grid you need; round up or use a model-specific picker. It's a convenience node, not a compatibility guarantee.
- I need 4:3 or ultrawide. Not supported - the three ratios are the three ratios. If you need something else, do the division yourself or swap in a node with a ratio input.
One honest take: this is the least essential node in the pack. The mask and trim nodes solve problems you can't trivially do elsewhere; this one just saves you mental math, which is nice but not life-changing. Still, if you're building a video-gen template you'll reuse, wiring this in means the resolution is defined in one obvious place instead of scattered across widgets - and that's a real quality-of-life win. It's a young pack with no community footprint yet, but this node does exactly what it says and nothing more.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| aspect_ratio | COMBO | 16:9 | 3 options: 1:1, 16:9, 9:16 |
| longest_side | INT | 128064–8192 | The longer dimension. The shorter side is calculated automatically. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| width | INT | — |
| height | INT | — |
| label | STRING | — |