MiniMax H3 Video Settings (Upscale)
The second-pass numbers, derived for you
- width
- height
- length
- upscale_factor
- target_width
- target_height
This is MiniMax H3 Video Settings for the two-sampler latent-upscale workflow, and it exists because that workflow has a bookkeeping trap in the middle of it. When you generate an H3 clip at one resolution and refine it with a second sampler at a higher one, every node in the chain needs to agree on two separate sizes: the generation canvas and the upscaled target. Mistype either and the second pass gets conditioning and a latent that don't match. This node derives both from the same inputs, so they can't disagree.
Mechanically it's the plain settings node plus an upscale_factor: the canvas comes from aspect_ratio + megapixels on the 32-pixel grid, length from duration in seconds on the 17k+5 frame grid, and target_width/target_height are the canvas scaled by the factor and rounded back onto multiples of 32.
The inputs and outputs that matter
aspect_ratio,megapixels,duration- exactly as on the plain settings node (default 16:9, 1.0 MP, 5.0 s).upscale_factor- the multiplier the latent upscaler between your two samplers applies, default2.0, range 1–8. This is the number you previously had to compute twice and keep in sync.advertise- same behavior as the plain node, but it drives the Advanced hybrid node'starget_width/target_heighttoo.- Outputs:
width,height,length(as before) plusupscale_factor(a FLOAT, for a latent upscaler's multiplier input) andtarget_width,target_height- the upscaled canvas, both multiples of 32.
Wiring it
Video Settings (Upscale) ─ width / height / length ─▶ Hybrid to Video (Advanced)
├ target_width / target_height ─▶ Hybrid to Video (Advanced)
├ upscale_factor ─▶ Latent Upscaler (multiplier)
└ target_width / target_height ─▶ Latent Upscaler (target dims)
With a Minimax H3 Latent Upscaler (3D) in multiplier mode, its 32-pixel alignment matches this node's rounding; in target-dimensions mode, wire target_width/target_height straight into it so the upscaler and the Advanced node agree by construction.
Installing it
Same pack, same zero-dependency story: ComfyUI-Arisu-Nodes (swqa7697, GPL-3.0), needs ComfyUI ≥ 0.30.0 for H3 support. Manager → Install Custom Nodes → "ComfyUI-Arisu-Nodes", or clone into custom_nodes:
cd ComfyUI/custom_nodes
git clone https://github.com/swqa7697/ComfyUI-Arisu-Nodes.git
Restart, then it's under Add Node → Arisu Nodes.
Gotchas
The one thing to keep an eye on is that the upscale factor only produces a sane target if the latent upscaler actually lands on it. A factor of 2.0 on 1344×768 gives 2688×1536 cleanly, but less convenient factors get snapped to the 32-grid on both sides - so if your second sampler throws a shape error, check that the upscaler's own rounding matches this node's before blaming the graph. Everything about advertising (root graph only, one advertiser per graph) carries over from the plain settings node unchanged.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| aspect_ratio | COMBO | 16:9 (Widescreen) | Aspect ratio of the generation canvas. |
| megapixels | FLOAT | 1.00.1–16 | Pixel budget of the canvas in megapixels (1 MP = 1024 x 1024), rounded to multiples of 32. The stock 1344 x 768 canvas is about 0.98 MP. |
| upscale_factor | FLOAT | 2.001–8 | Factor of the latent upscaler between the two samplers; the target size is rounded to multiples of 32. |
| duration | FLOAT | 5.00.2–150 | Clip length in seconds at 24 fps, snapped up to the model's 17k+5 frame grid (5.0 s = 124 frames). |
| advertise | BOOLEAN | false | Drive every MiniMax H3 Hybrid to Video node in this graph: their size and length widgets grey out at once, refuse links, and take these values. Off by default. Read by the frontend; the outputs stay available either way. |
Outputs (6)
| Name | Type | Description |
|---|---|---|
| width | INT | Canvas width in pixels, a multiple of 32. |
| height | INT | Canvas height in pixels, a multiple of 32. |
| length | INT | Frame count on the 17k+5 grid, for the hybrid nodes' length input. |
| upscale_factor | FLOAT | The factor, for a latent upscaler's multiplier input. |
| target_width | INT | Upscaled width in pixels, a multiple of 32. |
| target_height | INT | Upscaled height in pixels, a multiple of 32. |