Google Veo3.1 Fast First Last Frame (Channel Edition)
Veo 3.1 Fast FLF, Channel Edition
- first_frame_image
- last_frame_image
- api_config
- video
- request_id
- urls
First-last-frame video generation is the closest thing this pack has to a magic trick: you give the model the opening image and the closing image, and it invents a believable video that travels between them. This is the Veo 3.1 Fast version, Channel Edition, and it's the node you reach for when you know exactly how a shot should start and end but have no interest in typing the middle.
The "FLF2V" in the class name is the giveaway: first-last-frame-to-video. Veo's FLF mode is one of the reasons the model keeps winning comparisons against open alternatives - it handles the "start here, end there" constraint in a way that local video pipelines make you stitch together manually with frame concatenation and masking. The Fast tier keeps it cheap and quick; the Channel Edition keeps it simple.
Why you'd reach for it
The canonical use is storyboarding or looping: feed a shot's opening composition and its end composition, and let the model fill the motion between. It's also how you get a loop - start and end on similar frames and the seam disappears. Versus the plain image-to-video node in the same family, FLF gives you real creative control over the destination, not just the start. The cost is that you need a second image worth ending on, which is exactly the job of "generate a strong last frame locally, then animate" workflows.
How it works
The required inputs are first_frame_image (IMAGE), prompt, resolution (720p default), and aspect_ratio (16:9 default). The optional last_frame_image (IMAGE) is where the magic lives - leave it disconnected and you've basically got image-to-video; connect it and the model has a destination to reach. The prompt field describes the motion and the scene, and as with all Veo nodes, audio cues are worth including since the model generates sound natively.
On queue the node uploads both frames, submits to Veo 3.1 Fast through BizyAir's channel, and returns video (VIDEO - preview or save it like any local render), request_id (STRING), and urls (STRING). The api_config (BIZYAIR_OPENAPI_CONFIG) input overrides base_url/api_key per request; skip_error swaps a failed call for a placeholder so the workflow survives.
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 downloads - the bizyair-cloudberry and bizytrd pip packages auto-install on startup. Click the BizyAirPlus button to ON, create an account at bizyair.ai, enter the key, and queue.
Common issues
- The middle doesn't match the frames - FLF models interpolate plausibly, not deterministically. If the transition feels wrong, the frames are usually the problem: mismatched lighting or composition makes the model invent a jarring bridge.
- Last frame ignored - check it's actually connected to
last_frame_image; an unconnected port quietly reverts this to plain image-to-video. - Cost - every queue is a billed generation, and FLF isn't cheaper than the other modes. Queue when the frames are final.
Pack caveat: BizyAir auto-installs and sends your images to the cloud. Legitimate SiliconFlow product, but flip the switch OFF for local-only sessions.
Inputs (7)
| Name | Type | Default | Description |
|---|---|---|---|
| first_frame_image | IMAGE | First image | |
| prompt | STRING | Video cue words | |
| resolution | COMBO | 720p | Video resolution |
| aspect_ratio | COMBO | 16:9 | Picture scale |
| last_frame_imageopt | IMAGE | End frame picture | |
| api_configopt | BIZYAIR_OPENAPI_CONFIG | 单次请求覆盖base_url和api_key | |
| skip_erroropt | BOOLEAN | false | 开启后遇到错误不中断工作流,输出对应类型的错误占位符 |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| request_id | STRING | — |
| urls | STRING | — |