PixVerse V6 First & Last Frame Transition
The shot between two stills
- first_frame_image_url
- last_frame_image_url
- video
- url
- all_urls_json
- task_id
- raw_json
- credits_consumed
- credits_left
What it is
Keyframe interpolation with a model that understands what's in the frames. You give it a first image and a last image, plus a prompt describing how you get from one to the other, and it generates the video between them.
This is one of the small number of genuinely directing tools in a hosted-video workflow. Most text-to-video nodes give you a shot and hope; here you specify the destination, which makes it the natural way to do a costume change, a camera move, a day-to-night shift, or that specific art-direction trick of landing a shot on an exact frame you've already generated. Pair it with a local image pipeline - generate your start and end stills on your own card with whatever checkpoint you like - and you're using the API only for the part you can't do locally.
Worth knowing: the pack's Seedance 2.0 family treats first-frame and first+last-frame as mutually exclusive scenarios with reference modes, and validates that locally before sending. PixVerse's version here is a dedicated node instead, so there's no mode juggling - it's a transition endpoint with two image inputs and nothing else competing for them.
How it works
The node is generated from KIE's request schema for the transition endpoint. Both first_frame_image_url and last_frame_image_url are native IMAGE sockets, so the pack uploads each to KIE's storage and substitutes the URLs. The job is submitted as a task, polled until it completes or timeout_seconds (1200 by default) is reached, and the resulting clip returns as a ComfyUI VIDEO.
Inputs and outputs
Required:
- first_frame_image_url (IMAGE) - where the shot starts.
- last_frame_image_url (IMAGE) - where the shot ends.
- prompt (STRING) - 3 to 5000 characters. This is the how, not the what: describe the motion, the camera move, the transition, the lighting change.
- quality -
720pdefault, plus360p,540p,1080p. - duration (INT, 1–15, default 5) - how long the transition takes. A one-second morph and a fifteen-second camera sweep are very different films; this is the setting that decides which you're making.
Optional:
- generate_audio_switch - off by default.
- seed - default
123456789, range 0–2147483647. Pin it while you tune the prompt. - timeout_seconds, callback_url.
Outputs: video, url, all_urls_json, task_id, raw_json, credits_consumed, credits_left.
Install
Manager: search KIE-Nodes-Next by felipederosilva, install, restart ComfyUI. Or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/felipederosilva/ComfyUI-KIE-Nodes-Next
Then Settings → KIE.ai Nodes Next → Connection → Paste / replace KIE.ai API key. The key is validated before saving and displayed masked, along with your credit balance. Headless installs can set KIE_API_KEY, which takes priority. requirements.txt is requests, Pillow, numpy, PyYAML - nothing to compile.
Where people get burned
Wildly different endpoints make ugly middles. If your two frames disagree on subject position, style or framing, the model has to invent a path, and invented paths look like morphs. Keep the two frames plausibly related.
Sixteen by nine from a portrait pair. There's no aspect_ratio input on this node - the frame follows your images. Feed it a landscape start and a portrait end and see what it decides.
Duration sets the genre. Five seconds of travel between two very different images reads as a dissolve; fifteen reads as a journey. Pick deliberately.
Prompting the "what" instead of the "how". The images already define what's on screen. Spend your characters on movement, pacing and light.
Two uploads, one generation. Cheaper than a chain, still not free - and credits_consumed will tell you exactly what a transition costs before you build a hundred-shot sequence around it.
Timeout on long, high-quality jobs. Raise timeout_seconds above 1200 before assuming a failure if you're running 15 seconds at 1080p.
Inputs (9)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | A cinematic sunrise illuminates a mist-shrouded mountain lake; the camera slowly sweeps across the water's surface as a flock of birds flies overhead. | Generate prompt, cannot be empty, length is limited to 3-5000 characters. |
| first_frame_image_url | IMAGE | — | |
| last_frame_image_url | IMAGE | — | |
| quality | COMBO | 720p | Output video resolution. Supports 360p, 540p, 720p, and 1080p. |
| duration | INT | 51–15 | Output video duration in seconds. PixVerse V6 supports 1–15 seconds. |
| generate_audio_switchopt | BOOLEAN | false | Whether to generate audio synchronized with the video content. |
| seedopt | INT | 1234567890–2147483647 | Random seed, value range is 0–2147483647. Using the same parameters and seed helps improve result reproducibility. |
| timeout_secondsopt | INT | 120030–7200 | — |
| callback_urlopt | STRING | Optional KIE callback URL. Leave empty for normal ComfyUI use. |
Outputs (7)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| url | STRING | — |
| all_urls_json | STRING | — |
| task_id | STRING | — |
| raw_json | STRING | — |
| credits_consumed | FLOAT | — |
| credits_left | FLOAT | — |