FeiHou Easy H3 Resolution
Stop doing megapixel math in your head
- width
- height
Four widgets, two integers out, no pixels touched. This is the smallest node in the Easy H3 pack and the one you'll reach for when you're tired of typing 1344 into three different boxes.
What it is, and why you'd bother
MiniMax H3 doesn't think in "720p" or "1080p". It thinks in a canvas: a pixel budget and an aspect ratio, and the actual width and height fall out of the arithmetic. The main Easy H3 node does that math internally from its own resolution and aspect_ratio widgets. This node is that same computation pulled out and made available as a wire.
The author's own description is exactly that: the same size rules as the Easy H3 main node; in custom resolution, width and height are used.
So when is a standalone size node useful? The same reason any value node is: one source of truth fanned out to several consumers. The moment that wire goes to a resize node for your reference images, the H3 node's settings, and a video upscaler that needs a target, you have three places to change when you move from 640P to 832P. Miss one and you get a stretched or cropped result with no error message. In the pack's own low-VRAM workflows the same job is done by MAINodes' ResolutionSelector feeding an ImageResize node - which tells you the intended consumers are the things around H3, not H3 itself.
How the number is actually computed
The presets are megapixel tiers, not line counts, and that trips people up. From the source: 360P is 0.2 MP, 416P 0.3, 480P 0.4, 540P 0.5, 640P 0.7, 720P 0.9, 768P 1.0, 832P 1.2, 928P 1.5, 1024P 1.8, 1080P 2.0, plus custom.
Then it does: total pixels = tier × 1024², scale = sqrt(total / (ratio_w × ratio_h)), and width/height = ratio × scale, each rounded to the nearest canvas multiple (32px) with a floor of 32.
Which means "720P, 16:9" is not 1280×720. It's 1280×736. Run it yourself: 0.9 × 1048576 = 943,718; ÷ 144 = 6553.6; √ = 80.95; ×16 = 1295 → 1280, ×9 = 729 → 736. The presets keep the pixel count roughly stable and let the ratio decide the shape, which is the right way to think about a model that resizes to its own grid anyway.
Inputs and outputs
resolution- one of the eleven tiers orcustom. Defaults to720Phere (the main node defaults to480P).aspect_ratio-1:1,2:3,3:2,3:4,4:3,9:16,16:9,21:9. Defaults to16:9. The portrait ratios are there for vertical/short-form output.width/height- integers, 32 to 16384, step 32, defaults 1344×768. These only matter whenresolutioniscustom; otherwise the frontend hides them, and the backend ignores them. That's the single thing to remember about this node.- Outputs:
width(INT) andheight(INT), in that order.
Installing it
This node ships inside the Easy H3 pack, so there's nothing separate to install:
cd ComfyUI/custom_nodes
git clone https://github.com/FX-FeiHou/ComfyUI-FeiHou-Easy-H3
# restart ComfyUI
Or search ComfyUI-FeiHou-Easy-H3 in ComfyUI Manager. You need a ComfyUI new enough to include the official MiniMax H3 nodes - the pack imports comfy_extras.nodes_minimax_h3 at load time, so on an older ComfyUI the whole pack fails to import, this node included. The pack has no pip dependencies at all (the only requirements file is the optional face-refine one, which you don't need here), and every class name carries the FeiHouEasyH3 prefix, so it coexists with the upstream ComfyUI-MiniMaxH3-Easy without node-ID collisions.
Where people get burned
Wiring the output into the main H3 node does nothing unless you also switch that node's own resolution to custom. The main node calls the identical size function, and it only reads width/height in the custom branch. If H3 is ignoring your numbers, that's why - it's the most common hour-waster with this thing.
It has no readout. There's no preview of the numbers it produced; you find out what "832P, 21:9" means by wiring it into something that displays it - a resize node's width field, a text preview, the H3 node's custom dimensions. Queue a tiny graph with it if you just want to see the math.
Custom values get rounded. Step is 32, so 1000 becomes 992 and 1080 becomes 1088. Fine for H3, but if you're feeding a third-party node that doesn't care about the grid, you may be surprised that you didn't get exactly what you typed.
Bigger tiers cost real time. 0.2 MP to 2.0 MP is a tenfold difference in latent work per frame, multiplied by frame count, and nothing about a higher tier is cheaper. If your card is already sweating, start at 480P–640P, confirm the motion reads well, then step up.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| resolution | COMBO | 720P | 12 options: 360P, 416P, 480P, 540P, 640P, 720P, +6 |
| aspect_ratio | COMBO | 16:9 | 8 options: 1:1, 2:3, 3:2, 3:4, 4:3, 9:16, +2 |
| width | INT | 134432–16384 | — |
| height | INT | 76832–16384 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| width | INT | — |
| height | INT | — |