Nodes/ERPK Collection/MiniMax H3 Video Extend
ComfyUI Node

MiniMax H3 Video Extend

MiniMax H3 Video Extend

By eRepublik-Labs·Created 11 months ago·Updated a day ago· 1
MiniMax H3 Video Extend
  • last_frame
  • client
  • video
  • video_url
prompt
video_url
last_frame_url
duration5
resolution480p
seed-1

Everyone's generative clips are too short. Four to fifteen seconds is the ceiling on most of these models, and there's no dial for "keep going". Video Extend is the dial. Hand it a clip, tell it what happens next, and it generates a new segment starting from the source's final frame and appends it - the output is the older video plus the new piece, stitched.

That makes it the natural second half of a two-step shot: make five seconds with Text-to-Video, then extend to ten or fifteen without re-rolling the part you already liked. It also makes it the cheapest way to fix "too short", because unlike a video-edit pass it only bills the seconds it creates - roughly $0.04/s at 480p against the edit node's $0.05/s plus the input clip's seconds. If you just want length, extend is close to half the price of editing.

How it works

video_url takes a source URL, and the collection is built for this - every video node in the pack emits a STRING video_url, so Text-to-Video → Video Extend is a direct wire with no intermediate file. If you'd rather keep it local, connect a ComfyUI VIDEO to the video input instead; that one takes precedence, and its bytes are uploaded as-is rather than re-encoded. The node then POSTs to /api/v3/wavespeed-ai/minimax-h3/video-extend, polls every 10 seconds for up to 15 minutes, and returns the finished clip's URL.

The interesting input is last_frame. It's an optional target end frame - a ComfyUI IMAGE tensor, with last_frame_url as the URL fallback - and the new segment interpolates toward it. So instead of writing "the camera drifts left and the sun sets", you can hand it the destination. Chaining H3 Text-to-Image into this node is a genuinely tidy trick: generate the closing shot you want, then let Extend walk the clip toward it.

There's a quiet difference from Video Edit worth knowing: Extend has no generate_audio toggle. Its audio is steered by text instead - the tooltip tells you to add an Audio: line to the prompt. And it has no aspect_ratio input either, so the new segment keeps the source's framing while you choose only a resolution.

The inputs that matter

prompt is required - and it's about continuation, not the whole clip: motion, scene, soundtrack, plus that Audio: line if you want sound steered. duration (default 5, range 3–15) is the length of the new segment, not the total output - the single most misread widget on this node. resolution is 480p/540p/768p/1080p, defaulting to 480p, and the per-second rate climbs with it: about $0.04/s at 480p, $0.06 at 540p, $0.08 at 768p, $0.16 at 1080p. seed is a real generation seed, so pin it and ComfyUI can reuse the cached video instead of re-billing.

One output: video_url, a STRING - wire it into Preview Anything to watch it (and download it), or straight into another video node. You can chain Extend into Extend to keep growing a clip.

Installing

ComfyUI Manager → search erpkERPK Custom Nodes → Install → restart. Or:

cd /path/to/ComfyUI/custom_nodes
git clone https://github.com/eRepublik-Labs/comfyui-nodes-erpk.git erpk
cd erpk && pip install -r requirements.txt

That's the entire monorepo, provider SDKs and all; the WaveSpeed video nodes only need requests, pydantic and Pillow. Add a WaveSpeed key via right-click canvas → ERPK Settings or Settings → ERPK → API Keys - stored per user, never in the workflow file. Nodes live under ERPK → WaveSpeedAI.

Where people get burned

Reading duration as the total. It's the new part. Ask for 5 on a 5-second clip and you get 10 seconds back, and you paid for 5.

Chaining extends and letting the tail wander. Each hop only ever sees the previous segment's final frame, so whatever's slightly off there becomes the starting condition for the next one, and drift compounds down the chain. Pinning last_frame to something concrete resets that.

No source, no call. With neither video_url nor video connected the node raises A source video is required, as either a VIDEO input or a URL.

Fifteen minutes is the patience limit. Extend polls for 15 minutes - the pack's baseline - while H3 Video Edit and the Seedance 2.5 family get 30. If the window expires you get a timeout error even though the job may finish server-side.

Chasing 1080p by default. Four times the 480p rate for a segment whose job is often just "make the clip longer". Block it out at 480p, ship at the highest tier your budget actually wants.

CategoryERPK/WaveSpeedAI

Inputs (9)

NameTypeDefaultDescription
promptSTRINGHow the video continues: motion, scene, soundtrack. Add an 'Audio:' line to steer the sound.
video_urloptSTRINGSource video URL. Connect the video_url output of any video node in this package. The new segment starts from its last frame.
last_frameoptIMAGETarget end frame for the new segment as a ComfyUI IMAGE tensor. Takes precedence over `last_frame_url`.
last_frame_urloptSTRINGTarget end frame image URL. Fallback when `last_frame` is not connected.
clientoptWAVESPEED_AI_API_CLIENTWaveSpeed API client (optional if API key is configured in Settings)
durationoptINT53–15Length of the new segment in seconds (3-15), not the total output.
resolutionoptCOMBO480pResolution of the new segment. Roughly $0.04/s at 480p, $0.06/s at 540p, $0.08/s at 768p and $0.16/s at 1080p.
seedoptINT-1-1–2147483647Generation seed, sent to the API. A fixed seed reproduces the same video and lets ComfyUI reuse the cached result; -1 generates a new one each queue.
videooptVIDEOSource clip as a ComfyUI VIDEO. Uploaded to WaveSpeed and used instead of `video_url` when connected.

Outputs (1)

NameTypeDescription
video_urlSTRING