Nodes/BizyAirPlus/Google Veo3.1 First Last Frame (Channel Edition)
ComfyUI Node

Google Veo3.1 First Last Frame (Channel Edition)

First-last-frame video, portrait by default

By siliconflow·Created 5 months ago·Updated about a month ago· 20
Google Veo3.1 First Last Frame (Channel Edition)
  • first_frame_image
  • last_frame_image
  • api_config
  • video
  • request_id
  • urls
prompt
resolution720p
aspect_ratio9:16
skip_errorfalse

First-last-frame-to-video is the most controllable thing Veo does, and this is the Pro tier of it: give the model a starting image, an ending image, and a prompt, and it generates the video that plausibly connects them. This Channel Edition of Veo 3.1 Pro FLF has one small surprise in its defaults - the aspect_ratio comes pre-set to 9:16 (portrait) rather than the 16:9 you see on the rest of the family.

That portrait default is a strong hint about who this node is for: short-form vertical video. Reels, TikTok, the phone-first deliverable. Combine it with the Pro tier's 1080p-class quality and you've got a very direct path from "two frames I composed" to "a finished vertical clip," which is exactly the kind of job people used to stitch together by hand.

Why you'd reach for it

FLF gives you creative control over the destination that plain image-to-video can't: you're not hoping the model lands somewhere nice, you're telling it where to land. The Pro tier brings the fidelity; the portrait default suggests the target platform. If you generate a strong opening and closing frame locally - say, the two key poses of a character - this node turns them into the shot between them. The trade is the usual closed, billed, cloud-rendered one, with the Pro wait on top.

How it works

Required inputs: first_frame_image (IMAGE), prompt, resolution (720p default here), and aspect_ratio (9:16 default). The optional last_frame_image (IMAGE) is the destination frame - connect it and the model has something to reach; leave it unconnected and this degrades to plain image-to-video. The prompt describes the motion, scene, and (since Veo generates audio natively) the sound.

On queue the node uploads both frames, submits to Veo 3.1 Pro through BizyAir's channel, polls, and returns video (VIDEO - preview or save it like any local render), request_id (STRING), and urls (STRING). The optional api_config (BIZYAIR_OPENAPI_CONFIG) overrides base_url/api_key per request; skip_error turns a failed call into a placeholder instead of an aborted workflow.

Install and setup

The same one-time install as the rest of the pack:

cd ComfyUI/custom_nodes
git clone https://github.com/siliconflow/BizyAirPlus.git
cd BizyAirPlus
python -m pip install -r requirements.txt

Restart ComfyUI (or install "BizyAirPlus" via ComfyUI Manager). No model files - the bizyair-cloudberry and bizytrd pip packages auto-install on startup. Click the BizyAirPlus button to ON, get an API key from bizyair.ai, enter it, and queue.

Common issues

  • The bridge looks wrong - FLF interpolates plausibly, not deterministically. Mismatched lighting or framing between the two frames makes the model invent a jarring middle; match the frames' look before queueing.
  • Unexpected portrait output - the 9:16 default is doing its job, but if you want landscape, remember to change aspect_ratio.
  • Last frame quietly ignored - an unconnected last_frame_image silently turns this back into image-to-video. Check the wire.

Pack caveat: BizyAir auto-installs and sends your images to the cloud. Legitimate SiliconFlow product, but flip the switch OFF for local-only sessions.

CategoryBizyAirModelServices/BizyTRD/Veo

Inputs (7)

NameTypeDefaultDescription
first_frame_imageIMAGEFirst image
promptSTRINGVideo cue words
resolutionCOMBO720pVideo resolution
aspect_ratioCOMBO9:16Picture scale
last_frame_imageoptIMAGEEnd frame picture
api_configoptBIZYAIR_OPENAPI_CONFIG单次请求覆盖base_url和api_key
skip_erroroptBOOLEANfalse开启后遇到错误不中断工作流,输出对应类型的错误占位符

Outputs (3)

NameTypeDescription
videoVIDEO
request_idSTRING
urlsSTRING