Nodes/ComfyUI-H3-Multishot/H3 Extend Take (seconds -> windows)
ComfyUI Node

H3 Extend Take (seconds -> windows)

Type how long you want, get the window math done for you

By jlucasmcrell·Created 21 days ago·Updated 2 days ago· 31
H3 Extend Take (seconds -> windows)
  • model
  • num_shots
  • frames_per_shot
  • total_frames
  • summary
take_seconds30.0
windowauto
width736
height1280
fps24
pin_frames22

MiniMax-H3 natively generates blocks of roughly 10-15 seconds, and if you want a 65-second take, somebody has to work out how many windows that is, how many frames each, and how the joins line up. H3ExtendTake is that somebody. Feed it "65 seconds," and it hands you the window count and frames-per-window the chain samplers need - plus the numbers for the prompt writer, so the dialogue budget matches the actual windows. It's the standalone version of the take_seconds feature that shipped in the 2.6.0 "extend take" release, exposed as a node for graphs that want the sizing logic outside the MASTER CONTROLS panel.

How it works

The core decision is window: how many frames per window. The default is auto, which computes the largest window whose estimated activation pool fits beside the model's weights on your card - the fewest joins that won't thrash VRAM. That estimate is only as good as the weight size it assumes: wire your loaded MODEL into the optional model input and it uses the real weight size; otherwise it assumes 15GB. Pick an explicit window value (243, 226, 209, 192, … 90) and it sizes around that instead. take_seconds (3 to 600, default 30) is the target; the last window may run a little long rather than short, which is the right trade - better an extra half-second than a truncated one.

The rest is plumbing: width, height, fps (keep 24; other rates audibly shift voice accents) and pin_frames (the sampler's picture pin, the head-trim per join - 22 unless you changed it on the sampler).

Outputs: num_shots, frames_per_shot, total_frames - wire these into the sampler and the writer's dialogue pacing - plus a human-readable summary string.

How it fits the bigger picture

This node is the front half of the extend-take flow. The writer, in its extend-take join style, writes one continuous speech and cuts it across the windows at sentence boundaries; the memory sampler chains the windows under context_pin, and the result is H3 continuing the speech across every join in its own voice - no TTS, no per-shot dialogue budget to think about. The README's honest limits apply though: keep extend takes to about four windows (~30-40s) for now, because the chain's texture ratchet is not fully solved for very long takes - around +13% fine texture per join measured at 736x1280. Under four windows it's slight; at seven it's visible sharpening.

Install

Ships in the H3 Multishot pack:

cd ComfyUI/custom_nodes
git clone https://github.com/jlucasmcrell/ComfyUI-H3-Multishot

or ComfyUI-Manager → H3 Multishot. Restart; ComfyUI v0.30.0+.

Wiring the model input is the one thing people skip, and it's exactly what makes auto honest. Without it you get the 15GB guess; with it you get a window sized for the quant you actually loaded. One wire, real difference on a tight card.

CategoryH3/episode

Inputs (7)

NameTypeDefaultDescription
take_secondsFLOAT30.03–600How long the finished take should be. Windows are derived; the last one may run a little long rather than short.
windowCOMBOautoFrames per window. auto = the largest window whose estimated activation pool fits beside the model's weights on THIS card (fewest joins that will not thrash). Wire the MODEL for a real weight size; otherwise 15 GB is assumed. Pick a number to override.
widthINT73664–2048Render width - wire from MASTER CONTROLS.
heightINT128064–2048Render height - wire from MASTER CONTROLS.
fpsINT241–60
pin_framesINT220–56The sampler's picture pin (head trim per join). 22 unless you changed it on the sampler.
modeloptMODELOptional: the loaded H3 model, so auto can size the weights.

Outputs (4)

NameTypeDescription
num_shotsINT
frames_per_shotINT
total_framesINT
summarySTRING