Google Veo3.1 Image To Video (Channel Edition)
1080p animation of a still you already have
- images
- api_config
- video
- request_id
- urls
The quality-tier image-to-video node: take a still, add motion, get 1080p video. This is Veo 3.1 Pro in its Channel Edition, and it's the node for the workflow where the source image matters - you already generated or shot a frame you love, and now you want Google's best model to move it.
The Pro tier is where Veo 3.1's image-to-video reputation lives. The community's evaluations of Veo 3.1 against open rivals like Wan and Seedance consistently credit it with strong motion handling and, uniquely, native audio - the capability no open video model has matched. The Channel Edition keeps the inputs lean: images, prompt, resolution (1080p default), aspect_ratio (16:9 default). Notably, the images input carries the constraint right in its tooltip: up to 1 image, 10 MB each. So this is a single-frame I2V, not a multi-reference one.
Why you'd reach for it
Because there's a world of difference between "make some video" and "animate this specific frame." If the still is the star - a portrait, a product shot, a frame you composed for exactly this purpose - Pro I2V is where you get the fidelity back. The 1080p default means the output is actually deliverable, not a draft. The cost is closed-model billing plus a real render wait, and the single-10MB-image constraint means you should crop and compress before you wire it in, not after.
How it works
Wire one image into images (the tooltip's 10MB limit is the one thing to respect), write the motion brief into prompt, pick resolution and aspect_ratio, queue. The node uploads the frame, submits to Veo 3.1 Pro through BizyAir's channel, polls, and returns video (VIDEO - preview or save like any local render), request_id (STRING), and urls (STRING). The prompt should describe not just the scene but the camera and sound - Veo generates audio natively and the prompt is your only steering wheel on this edition.
Optional inputs: api_config (BIZYAIR_OPENAPI_CONFIG) overrides base_url/api_key per request; skip_error swaps a failed call for an error placeholder so the workflow doesn't abort.
Install and setup
One-time install, identical across 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
- Rejected image - check the 10MB and single-image limits before you blame the node; a too-large frame bounces the request.
- Generic motion - I2V follows the source frame's implied dynamics. A static composition gives static video; give the model motion cues in both the image and the prompt.
- Slow and billed - Pro renders take a while and cost per queue. Iterate on Fast, spend Pro on the final.
Pack caveat: BizyAir auto-installs and sends your image to the cloud. Legitimate SiliconFlow product, but keep the switch OFF for local-only sessions.
Inputs (6)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | Up to 1 image, 10 MB each | |
| prompt | STRING | Video cue words | |
| resolution | COMBO | 1080p | Video resolution |
| aspect_ratio | COMBO | 16:9 | Picture scale |
| 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 | — |