ByteDance Seedance 2.0 Mini First Last Frame (Official Edition)
Animate between two images with Seedance Mini (Official Edition)
- first_frame_url
- last_frame_url
- api_config
- video
- request_id
- urls
Give this node a first frame, optionally a last frame, and it returns a video that animates from one to the other - ByteDance's Seedance 2.0 Mini running in the cloud through BizyAirPlus, in its Official Edition (the vendor's direct API route rather than BizyAir's channel). It's the same first-last-frame trick the community uses to turn static images they actually like into clips that keep the composition.
The FLF workflow is the cure for text-to-video's main failure mode: you write a great prompt, the model ignores half of it, and you get a video of the wrong thing. With first/last-frame you've pinned the shot. The model's only job is motion between two points, which is a much smaller ask - and on the cheap Mini tier, a much smaller risk.
How it works
Output node in the BizyAirPlus cloud layer. The BizyAirPlus ON button in the action bar puts the workflow in cloud mode; the node uploads your frames plus the prompt and duration to Seedance's service, and the rendered clip comes back into ComfyUI as a normal video. Closed model, so nothing is ever downloaded locally. The Mini designation is Seedance's fast/budget tier - good enough for drafts and short clips, not the place to demand film-quality rendering.
The inputs that matter
- first_frame_url - required. The starting image, typed
IMAGE, so wire it straight from a Load Image node or your image-generation output. - prompt - describes the motion between the frames. The frames decide what, the prompt decides how.
- duration - 4 to 15 seconds (default 8).
- last_frame_url - optional. Skip it and Seedance invents the ending; provide it and the video lands exactly on it.
- resolution -
480pdefault. - aspect_ratio, seed, generate_audio - the usual suspects.
generate_audiodefaults on;seed = -1is random.
This official Mini node doesn't carry a watermark toggle or web search, so it's the leaner sibling of the Channel Mini FLF node - slightly fewer switches, same core.
The outputs
video goes to a preview or save node. urls is the direct download link. request_id is the ID to keep for support when something fails mid-generation.
Installing it
In BizyAirPlus. Manager install (search "BizyAirPlus") or:
cd ComfyUI/custom_nodes
git clone https://github.com/siliconflow/BizyAirPlus.git
cd BizyAirPlus
python -m pip install -r requirements.txt
Restart ComfyUI, turn BizyAirPlus ON, enter the key from bizyair.ai. Saved to ~/.BizyAirPlus/apikey.ini, or set BIZYAIR_API_KEY. The heavy lifting lives in the bizytrd and bizyair-cloudberry pip packages - no model files, no VRAM requirements, nothing to babysit.
Gotchas
First-run errors are almost always the button being OFF or a missing key; the ComfyUI console has the real error message. Don't panic if you've read things calling BizyAir malware - that was a ComfyUI Manager auto-install mixup from older versions, since fixed, and the pack is a legit SiliconFlow product. For the node itself: choose bookend frames that belong to the same shot. Mismatched lighting or subject detail makes the model compromise, and the compromise is visible in the middle frames.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| first_frame_url | IMAGE | First frame image URL. Required for first-last-frame mode. | |
| prompt | STRING | Text prompt describing the video to create | |
| resolution | COMBO | 480p | Output video resolution |
| duration | INT | 84–15 | Output video length in seconds (4-15) |
| last_frame_urlopt | IMAGE | Last frame image URL. Optional. If provided, the video will end at this frame. | |
| aspect_ratioopt | COMBO | auto | Output video aspect ratio |
| seedopt | INT | 0-1–2147483647 | Random seed, -1 means random |
| generate_audioopt | BOOLEAN | true | Whether to generate audio for the video |
| watermarkopt | BOOLEAN | false | Whether to add a watermark to the output video |
| 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 | — |