Nodes/VELVET VICE — MiniMax H3/VELVET VICE MiniMax H3 — AUTO Resolution Planner
ComfyUI Node

VELVET VICE MiniMax H3 — AUTO Resolution Planner

Let the node read your reference image's shape, then hand H3 a resolution it can actually digest

By Velvet-Vice·Created 10 days ago·Updated 7 days ago· 2
VELVET VICE MiniMax H3 — AUTO Resolution Planner
  • image
  • last_frame
  • width
  • height
  • status
  • aspect_label
format_modeAUTO
resolution_presetBALANCED
rotate_formatfalse
custom_width1344
custom_height768
custom_megapixels0.4

Image-to-video has a boring but brutal rule: the resolution you hand the model has to respect the reference frame's aspect ratio, or you get a video where everything is subtly squeezed, cropped, or fighting the source image for its whole duration. MiniMax H3 adds its own wrinkle - it's fussy about dimensions that don't land on its expected grid. The Velvet VICE MiniMax H3 AUTO Resolution Planner is the node that reads your first frame, decides the shape, and computes H3-safe dimensions so you never type 1344×768 blind again.

The mechanism is straightforward arithmetic wrapped in taste. Feed it your image (the first frame), and in AUTO mode it measures the actual aspect ratio of that picture. You can override with a forced format_mode (16:9, 9:16, 1:1, or CUSTOM if your source is an oddball). Then resolution_preset decides how many megapixels you're targeting, and this is where the node earns its keep:

  • TEST → 0.4 MP. For iteration. Fast, ugly, cheap.
  • BALANCED → 0.7 MP. The default, and the sane middle ground.
  • QUALITY → 1.0 MP. When you're committing to the final render.
  • CUSTOM → whatever custom_megapixels says (0.1–4.0).

Width and height are then derived from the target area and the chosen ratio, and rounded to the H3-safe grid so you don't hand the model a dimension it'll reject or silently quantize. Two supporting knobs: rotate_format flips the ratio (handy when your reference is portrait but you want a landscape clip - or vice versa), and the optional last_frame input runs an end-frame ratio check so the loop closes without an aspect mismatch between the first and last frames.

Outputs: width (INT) and height (INT) - the two numbers you actually feed downstream; aspect_label (STRING) tells you which format was selected; and status (STRING) reports what it decided and any warnings. In the Velvet VICE H3 layout, those INTs drive the workflow's resolution/conditioning inputs so the sampling area matches the reference.

Install

It's one node in the one-pack install:

cd ComfyUI/custom_nodes
git clone https://github.com/Velvet-Vice/velvet-vice-minimax-h3

Restart ComfyUI (or Manager → search "velvet-vice-minimax-h3"). No pip dependencies, no model files. This is pure math on an IMAGE tensor.

The traps worth knowing

The biggest one is expectation-setting: in CUSTOM mode, custom_width and custom_height are what actually get used (grid-rounded), and custom_megapixels only matters when the preset is CUSTOM - the three named presets ignore it entirely. So if you fiddle custom_megapixels and nothing changes, that's why; switch the preset to CUSTOM first.

Second: TEST at 0.4MP is not a quality setting, it's a smoke test. If you judge motion and pacing at TEST resolution and then re-render at QUALITY, results differ more than you'd like - video models care about absolute resolution, not just aspect. And finally, if your output comes back in the wrong orientation, check rotate_format before you blame the model. One checkbox, that's the whole fix.

CategoryVELVET VICE/MiniMax H3

Inputs (8)

NameTypeDefaultDescription
imageIMAGE
format_modeCOMBOAUTO5 options: AUTO, 16:9, 9:16, 1:1, CUSTOM
resolution_presetCOMBOBALANCED4 options: TEST, BALANCED, QUALITY, CUSTOM
rotate_formatBOOLEANfalse
custom_widthINT1344256–4096
custom_heightINT768256–4096
custom_megapixelsFLOAT0.40.1–4
last_frameoptIMAGE

Outputs (4)

NameTypeDescription
widthINT
heightINT
statusSTRING
aspect_labelSTRING