Nodes/ComfyUI VIDU/Start-End to Video (VIDU)
ComfyUI Node

Start-End to Video (VIDU)

Fill in the motion between two frames

By 1zhangyy1·Created 2 years ago·Updated about a year ago· 10
Start-End to Video (VIDU)
  • start_frame
  • end_frame
  • video_url
  • task_id
prompt
token
api_basehttps://api.vidu.cn
model
resolution
duration
seed0
movement_amplitude
callback_url

Give this node a starting frame and an ending frame, and it asks Vidu to generate the video that gets you from one to the other. It's the classic first-frame/last-frame interpolation idea - except instead of running locally, the actual generation happens on Vidu's servers, and you're describing the transition in a prompt rather than just letting a model guess the in-between motion on its own.

What it's doing and why it's the newest node in the pack

comfyui-vidu-nodes wraps Vidu's cloud video API, and this node was added specifically to expose Vidu's v2 first-frame/last-frame endpoint - it's newer than the pack's other generator nodes, which is worth knowing because it also has its own, stricter set of image and duration rules that don't match the rest of the pack. Nothing runs on your GPU here; your two images and prompt go to Vidu, a job runs remotely, and you get a URL back.

Local first-frame/last-frame (FLF) chaining is a real capability gap in some of the open video models right now - it's explicitly called out as a weak point even in well-regarded open tools. This node sidesteps that by asking a closed commercial model to do it instead, which is the trade every node in this pack makes: less control and a per-generation cost, in exchange for a capability you might not have a clean local answer for yet.

The inputs and outputs that matter

Required:

  • start_frame / end_frame - your two anchor images. Vidu is picky about how similar they are: their aspect ratios need to fall within 0.8 to 1.25 of each other, and each image's own aspect ratio has to stay under 1:4 or 4:1. Per the pack's v2 notes, images here are capped at 10MB - tighter than the 50MB ceiling on the pack's other nodes.
  • prompt - multiline text describing the transition or action between the two frames.
  • token - your Vidu API token.
  • api_base - defaults to https://api.vidu.cn.
  • model - vidu2.0 or vidu1.5. Worth flagging: vidu2.0 only supports 4-second clips, per the pack's docs - if you need 8 seconds, you need vidu1.5.
  • resolution - 360p, 720p, or 1080p.

Optional fields: duration (4 or 8, subject to the model constraint above), seed, movement_amplitude (auto / small / medium / large), and callback_url - a webhook URL Vidu can hit when the job's done. That last one is there for building an external pipeline around Vidu's API; inside a normal ComfyUI graph, which already waits for the node to finish before continuing, you almost certainly don't need it and can leave it blank.

Outputs are video_url and task_id - notably, no cover_url thumbnail here, unlike the pack's other generator nodes. As with everything else in this pack, video_url expires in an hour, so route it into the Video Downloader node if you want to keep the result.

Installing it

Same as the rest of the pack. ComfyUI Manager: search ComfyUI VIDU. Manual: cd ComfyUI/custom_nodes && git clone https://github.com/1zhangyy1/comfyui-vidu-nodes, then restart. No local weights, no heavy dependency chain - you just need a Vidu API token.

Where people get stuck

The aspect-ratio-matching rule between start_frame and end_frame is the one that catches people off guard, because it's not something you'd expect from a node that looks like a straightforward "before/after" pair - a portrait-crop start frame and a landscape-crop end frame will get rejected even if both images are individually valid. The 10MB image cap is also easy to trip if you're feeding in frames straight from a high-res source without resizing first. And the vidu2.0 + 8-second combination is a silent constraint, not something the node stops you from selecting - check the pack's README or the console log if an 8-second request on vidu2.0 doesn't behave the way you expect. As always, the [Vidu StartEnd2Video]-prefixed console output carries the real request/response detail, which beats guessing from whatever ComfyUI shows in the UI.

CategoryVIDU

Inputs (11)

NameTypeDefaultDescription
start_frameIMAGE
end_frameIMAGE
promptSTRING
tokenSTRING
api_baseSTRINGhttps://api.vidu.cn
modelCOMBO2 options: vidu2.0, vidu1.5
resolutionCOMBO3 options: 360p, 720p, 1080p
durationoptCOMBO2 options: 4, 8
seedoptINT00–2147483647
movement_amplitudeoptCOMBO4 options: auto, small, medium, large
callback_urloptSTRING

Outputs (2)

NameTypeDescription
video_urlSTRING
task_idSTRING