Nodes/VELVET VICE — MiniMax H3/VELVET VICE MiniMax H3 — Refine Exact Resize
ComfyUI Node

VELVET VICE MiniMax H3 — Refine Exact Resize

An exact Lanczos resize for H3 refine frames — no guessing, no cropping

By Velvet-Vice·Created 10 days ago·Updated 7 days ago· 2
VELVET VICE MiniMax H3 — Refine Exact Resize
  • images
  • images
width1344
height768

Resizing frames is where people quietly ruin a video refine. They eyeball a scale, feed a non-multiple-of-32 resolution to a model that thinks in 32-pixel tiles, and wonder why pass 2 looks off. This node exists to make that step boring: it resizes a batch of images - i.e. your decoded video frames - to an exact width and height, no cropping, no aspect-ratio cleverness.

Where it fits

It's one link in the Decode → Upscale → Re-Encode route of this pack's Quality Refine feature (v1.5.0). The idea is the video equivalent of a hires fix: finish pass 1, decode the video latent to actual frames, make them bigger, re-encode at the higher resolution, then run a low-denoise second sampling pass over the result. This node is the "make them bigger" step. On one side it gets the decoded IMAGE batch; on the other side its output feeds the VAE re-encode.

Don't ask it to invent detail, because it won't. Lanczos is a geometric resize - more pixels, zero hallucination, milliseconds of work. The detail in this pipeline comes later, from the low-denoise second sampler, which is exactly how a two-pass refine is supposed to split labor: cheap geometry here, expensive generation there.

Inputs and outputs

  • images - IMAGE. Your decoded frame sequence (a video frame batch is just an IMAGE with more frames in it).
  • width - INT, default 1344, range 32–8192, steps of 32.
  • height - INT, default 768, range 32–8192, steps of 32.
  • Output: images, resized to exactly those dimensions.

The output is one IMAGE wire, meant for the VAE encoder on the re-encode path.

Under the hood it drops any alpha channel, moves channels into the order ComfyUI's resampler expects, and runs comfy.utils.common_upscale with Lanczos and "disabled" cropping. That "exact" is the point: it stretches the frame to the requested dimensions even if your source aspect differs, so the result lands precisely on the target. Those targets come from the pack's VelvetViceMiniMaxH3RefineResolutionPlan node, which already snapped the dimensions to H3's 32-pixel canvas grid. Wire that plan's width/height outputs straight into this node's and the math stays consistent.

The honest take

Like the other Internal nodes here, you won't place this yourself in a stock setup - the v1.5.0 workflow has it pre-wired on the re-encode branch, and the only thing you normally set is the refine scale upstream (default 1.25, max 2.0). Two practical notes if you do hand-roll it: keep the scale modest, because decoding to pixels, upscaling and re-encoding a video eats VRAM and time; and if you're in the US, EU, UK or Korea, remember the H3 local-weights licence is territory-restricted regardless of which resize node you use.

Installing the pack

This node ships in the Velvet Vice MiniMax H3 pack. ComfyUI Manager → Install Custom Nodes → search velvet-vice-minimax-h3 → install → restart, or:

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

Restart ComfyUI afterwards. Pure Python, no pip requirements - but ComfyUI needs MiniMax H3 model + VAEs present to be useful, plus (recommended) a compatible Turbo LoRA.

CategoryVELVET VICE/MiniMax H3/Internal

Inputs (3)

NameTypeDefaultDescription
imagesIMAGE
widthINT134432–8192
heightINT76832–8192

Outputs (1)

NameTypeDescription
imagesIMAGE