Seed Volcengine I2V Config
Animate from a first frame, or bookend a clip
- first_frame_image
- last_frame_image
- request
SeedVolcengineI2VConfig is where the Seedance API gets specific about control. Its mode input offers exactly two options - first_frame and first_last_frame - and that pair covers most of what anyone actually wants from image-to-video: "animate this picture" and "start here, end there, invent the middle."
It's a config node: builds a MEDIAHUB_VIDEO_REQUEST for MediaHubSubmitVideo → MediaHubResolveVideo → SaveVideo. Uses the same ARK key as the rest of the Seed Volcengine nodes.
The mode input
- first_frame - the default mental model.
first_frame_imageis required; the model animates forward from it. This is your "make my still image move" button. - first_last_frame - you supply
first_frame_imageandlast_frame_image(the optional input), and Seedance invents a plausible path between the two. Great for bookended shots, transitions, and anything where the ending matters as much as the start.
The source images are JPEG-encoded to base64 and uploaded with the request. In first_last_frame mode both frames go up, and the node will raise a validation error if you select that mode without providing the last frame - a nice guard, because the provider would otherwise fail with a far less clear message.
Inputs that matter
- mode -
first_frame/first_last_frame(above). - first_frame_image - required, the anchor of the clip.
- last_frame_image - optional, only meaningful in
first_last_framemode. - model - the same five Seedance versions as T2V,
doubao-seedance-2-0-260128(and-fast) down through the 1.x line. The fast variants are your iteration picks. - resolution -
480p/720p/1080p. - ratio - seven options incl.
adaptive. - duration - default 5, up to 15.
- generate_audio - on by default, same as T2V.
- watermark, seed - the usual.
Output: request → MediaHubSubmitVideo.
Why you'd reach for it
First/last-frame control is the reason. Most video APIs let you anchor the start and then pray; Seedance's explicit end-frame support means storyboarded shots - where you already know the final composition - actually hold their landing. If that's your workflow, this node is the strongest of the three providers' I2V options.
Installing it
cd ComfyUI/custom_nodes
git clone https://github.com/vantang/ComfyUI-MediaHub.git
/path/to/ComfyUI/python -m pip install -r ComfyUI-MediaHub/requirements.txt
Restart ComfyUI; under MediaHub/Provider/Seed Volcengine/Video. Dependencies requests/Pillow/numpy, and an ARK API key.
Common gotchas
Mode mismatches, again: first_last_frame without the last frame throws immediately (the node's own validation), and it's worth wiring images that match the resolution/ratio you selected - a portrait input into a 16:9 request can letterbox or crop in ways that look like the model failed. Watch generate_audio if you don't want sound, and expect the queue time that comes with every async video render in this pack.
Inputs (11)
| Name | Type | Default | Description |
|---|---|---|---|
| mode | COMBO | 2 options: first_frame, first_last_frame | |
| prompt | STRING | — | |
| first_frame_image | IMAGE | — | |
| model | COMBO | 5 options: doubao-seedance-2-0-260128, doubao-seedance-2-0-fast-260128, doubao-seedance-1-5-pro-251215, doubao-seedance-1-0-pro-250528, doubao-seedance-1-0-pro-fast-251015 | |
| resolution | COMBO | 3 options: 480p, 720p, 1080p | |
| ratio | COMBO | 7 options: 16:9, 4:3, 1:1, 3:4, 9:16, 21:9, +1 | |
| duration | INT | 5-1–15 | — |
| seed | INT | -1-1–4294967295 | — |
| watermark | BOOLEAN | false | — |
| generate_audio | BOOLEAN | true | — |
| last_frame_imageopt | IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| request | MEDIAHUB_VIDEO_REQUEST | — |