MiniMax H3 Singularity LoRA · Video Extend
Continue a clip in the same style it was made
- video_url
- last_image_url
- loras
- video
- task id
If you made the first half of a clip on the Singularity fine-tune, continuing it anywhere else is how you end up with two clips stuck together. This node continues the same clip on the same model - and if you added LoRAs to the original segment, it takes those too, which is the part that actually keeps a style coherent past the join.
What it is
The video-extension node for MiniMax H3 Singularity LoRA in the PopNow pack. From about 9.38 credits ($0.0938) per second of new footage, 3 to 15 seconds per pass, at 480p, 540p, 768p or 1080p. Cloud inference: your clip gets uploaded, PopNow renders the continuation, the node returns one joined file as a ComfyUI VIDEO.
The source clip's seconds aren't billed - you pay for what's added. That's the difference between extending and just generating again, and it's why extension is a reasonable revision tool rather than a luxury.
How it works
The clip is re-encoded to MP4 and uploaded (cached by content hash for 12 hours), then a new segment is requested that opens on the source's last frame. The final file is your clip with the segment appended. Because Singularity H3 generates audio with the picture, the new seconds arrive with sound; the source keeps its own.
The inputs
video_url- the clip to continue: MP4, MOV or WebM up to 60 seconds. Socket input, so come in from a loader. The upload ceiling is 90 MiB, which a long high-res source will exceed - trim to the tail.prompt- the action that follows, the camera move and the sound. The tooltip lists all three because all three carry into the render.resolution-480p,540p,768p,1080p, default 480p. Match your source exactly. This is the single biggest cause of a visible seam: the join is where sharpness changes.duration_seconds- 3 to 15.seed- fixed by default via control-after-generate, so re-queueing the same graph costs nothing new. Randomize when you want a different read on the same prompt.last_image_url(optional) - an end frame to come to rest on.loras(optional) - up to three, each with its own strength, applied to the new segment. Reuse the ones you used for the source; the tooltip says as much, and it's right.
Outputs: video and task id.
The LoRA that makes this worth the price
Chain PopNow LoRA nodes into loras - up to three. source accepts a .safetensors from ComfyUI/models/loras (uploaded once and reused for 12 hours), a Hugging Face repo id or page, a Civitai page, or a direct https:// link. Gated files read HF_TOKEN or CIVITAI_API_KEY from the environment; they're never stored in the workflow.
The discipline that matters: keep a note of the exact LoRAs and scales you used for the original segment. Same weights, same scale, and the extension looks like the same shoot. Same weights at a different scale looks like a different lens and a different grade.
Install
Manager → search PopNow → Install, or:
cd ComfyUI/custom_nodes
git clone https://github.com/popnow-ai/popnow-comfyui
Restart, add a key from popnow.ai/api/console/keys via Settings > PopNow, restart once more. The pack installs no Python dependencies of its own.
What goes wrong
The usual suspects, in order of how much time they cost: a source over 90 MiB (the run fails before generating, so it's fast but annoying); a resolution mismatch with the source (invisible until you watch the joined file); and extending an extension, which compounds drift in colour and motion until the clip looks like a copy of a copy. Two passes is the sensible limit.
On the billing side, PopNow 40201 means an empty wallet, and cancelling a node doesn't cancel the render - PopNow keeps going and charges you if it succeeds. Set Max credits per run in Settings if you like experimenting with 15-second extensions.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | Describe what happens next: the action that follows, the camera move and the sound. | |
| video_url | VIDEO | The clip to continue: MP4, MOV or WebM, up to 60 seconds. Its last frame opens the new segment, and the result is your clip with the new segment joined on. | |
| resolution | COMBO | 480p | Resolution of the new segment. Match your source clip; it sets how sharp the new part is generated. |
| duration_seconds | INT | 53–15 | Length of the new segment in whole seconds, from 3 to 15. The source clip is added on top and is not billed. |
| seed | INT | 00–2147483647 | Same seed and settings, same result. Set 'control after generate' to randomize to get a new result on every run; every run is billed. |
| last_image_urlopt | IMAGE | Optional target end frame: the new segment comes to rest on this picture. | |
| lorasopt | POPNOW_LORAS | Up to three LoRA weight files trained for MiniMax H3, each with its own strength, applied to the new segment. Reuse the ones used for the source clip to keep the style consistent. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| task id | STRING | The PopNow task id, for the API console logs or support. |