MiniMax-H3 Guide Target — Image / Video (BFS)
The exact canvas, before anything else happens
- LATENT
A node with three numbers and no surprises
MiniMax-H3 Guide Target - Image / Video (BFS) takes width, height and frames and returns one thing: a LATENT. That's the whole node. It builds an empty joint H3 AV latent - video channels and an audio track sized to match - at exactly the canvas you asked for.
That sounds like nothing, and for most workflows it is: H3's own Empty AV Latent does a similar job. It earns its place in the upscale-guide workflow, where the target latent is a separate object from the guide and has to be pinned down before anything else runs. The node is explicit about this in its own docs: it does not resize anything implicitly. It defines the target. Your guide adapts to it via MiniMax-H3 Downscaled Latent Guide, not the other way round.
When you need it
Use it together with the downscaled-guide node when you're running an H3 upscale LoRA trained with target_grid_stride_v1. The sequence is: this node makes the target canvas, the downscaled guide node keeps the guide small and patches the model's coordinates to match, and your sampler gets the target latent while the guide rides along in the conditioning. The classic pair from the docs is width 1024, height 768, frames 1 for an image; the guide then works at 256×192 and you can read that straight off guide_preview.
Make the target a still by setting frames to 1, or a clip by giving it exact 17n+5 counts - 73 frames is about three seconds at 24 fps. Also useful standalone: this is the clean way to declare an H3 output size without engaging with a latent node's own implicit rules.
The three inputs, and the validation
width and height are integers 32–16384 in steps of 32; anything not a multiple of 32 raises Target width/height must be positive multiples of 32. H3 packs in 32 px patches, so that isn't pedantry - off-grid sizes break the packed layout rather than just looking a bit odd.
frames is where the tooltip earns its keep: 1 for a true still image, or exactly 17*n+5 video frames. Anything else raises Target frames must be 1 or 17*n+5. Handy values are 5, 22, 39, 56, 73, 90, 107 and 124. If you're coming from a 30 fps source, convert to 24 fps first - the node builds the canvas, it doesn't retime anything, and there's no fps input to set.
The output is a single LATENT, and for anyone who wants to check the arithmetic: at frames = 1 you get one video latent-time slice, otherwise (frames - 5) / 17 * 5 + 2, and the audio track runs round(frames / 24 * 40) samples long. That's H3's own temporal structure, not a uniform stride.
Install
It ships in the same pack, so:
cd ComfyUI/custom_nodes
git clone https://github.com/alisson-anjos/ComfyUI-BFSNodes
cd ComfyUI-BFSNodes && pip install -r requirements.txt
Restart ComfyUI. Nothing in this node needs the pack's heavy dependencies, but installing the pack installs them anyway - plan for insightface==0.7.3 and friends in the same environment.
The obvious mistake
Wiring this latent into the sampler as the thing you generate, then wondering why there's no guide involvement at all. In the upscale workflow it is the thing you generate - but if you were reaching for it hoping it would take your small guide and blow it up to the target, that's the other node. This one makes a canvas and stops.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| width | INT | 102432–16384 | — |
| height | INT | 76832–16384 | — |
| frames | INT | 731–3600 | 1 for a true still image, or exactly 17*n+5 video frames. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | — |