Seedance 2.5 · Reference to Video
30 images of your own material is the whole trick
- reference_image_urls
- reference_video_urls
- reference_audio_urls
- video
- last frame
- task id
Reference-to-video at 2.5 scale is a different animal from the 2.0 version. The 2.0 reference nodes take up to nine images, three clips and three audio tracks. This one takes thirty images, ten video clips, ten audio tracks, and renders 4 to 30 seconds at 480p, 720p or 1080p. From $0.0738 per second with a video reference attached - cheaper per second than the image-to-video node, oddly, because the video-reference variant is priced differently (the same request without a clip reference is $0.1234/s).
The point of that many references is consistency over a long take. Thirty images is enough to pin down a character from several angles, a location, a wardrobe, a lighting mood - and to have the model keep all of it coherent for half a minute instead of drifting at second ten. This is the mode people ask for a local equivalent of; this KB's honest read is that the local answer is stacking identity adapters on a video model and accepting you'll get closer to "recognisably similar" than "same person".
The reference sockets
No image_url, no first frame. The images tooltip is explicit: reference images "cannot be combined with a first-frame image". Three autogrow groups instead:
reference_image_urls- up to 30. Carries characters, style and scene composition.reference_video_urls- up to 10 clips, 2 to 30 seconds each and 30 seconds total. Carries motion and pacing.reference_audio_urls- up to 10 clips, 2 to 30 seconds each, 30 seconds total. The generated soundtrack follows them, for beat matching or lip sync.
Connect one item and the node grows the next socket (reference_image_0, reference_image_1, …) up to the cap. The pack uploads all of it.
Read the pricing tooltip on the video references. Reference footage is added to the billed duration, so a 30-second reference reel is not free flavour - it's seconds you're paying for on top of the clip you asked for. Keep references tight and purposeful: a few seconds of the walk, the gesture, the camera move.
The rest of the node
prompt does the creative work: what the new shot is, now that your references have established who and how. aspect_ratio gives you 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 or adaptive (default). resolution is 480p, 720p or 1080p. duration_seconds is an integer slider from 4 to 30 and the billed quantity.
generate_audio is on by default and price-neutral at a given resolution. output_format picks mp4 or mov. enable_web_search lets the model look things up before rendering - no surcharge appears in 2.5's published rates, unlike the 2.0 nodes. return_last_frame also emits the closing frame as an IMAGE, the clean handoff into another generation. watermark asks the model to mark it AI-generated. seed is fixed after generate so a double-queue reuses the cache rather than paying again.
Outputs and install
Outputs are video (into Save Video), last frame (an IMAGE, only with return_last_frame on) and task id (a string for the console or support).
cd ComfyUI/custom_nodes
git clone https://github.com/spicyapi-ai/comfyui-spicyapi
Restart, add your key under Settings > SpicyAPI (from spicyapi.ai/console/keys, or SPICY_API_KEY on a server), then restart once more. Manager can do the install if you search SpicyAPI. No dependencies, no weights, no GPU.
Before you upload thirty images
Set Max cost per run in Settings - with this many references and a 30-second duration, the quote can climb faster than you expect, and the cap stops the run before it charges. Image uploads cap out at 10 MiB after a PNG-to-JPEG fallback; video and audio cap at 90 MiB. Interrupting doesn't cancel the server-side job. And everything you attach leaves your machine, which for reference-heavy work means your own footage.
Inputs (13)
| Name | Type | Default | Description |
|---|---|---|---|
| prompt | STRING | What to generate: subject, action, camera movement and mood. | |
| aspect_ratio | COMBO | adaptive | Aspect ratio of the generated video. |
| resolution | COMBO | 720p | Output resolution. Super-resolution tiers are not offered. |
| duration_seconds | INT | 54–30 | Clip length in seconds. This is the billed quantity. |
| generate_audio | BOOLEAN | true | Generate a native soundtrack synchronised to the picture. |
| output_format | COMBO | mp4 | Container of the returned video. |
| enable_web_search | BOOLEAN | false | Let the model search the web for information related to the prompt before rendering. |
| seed | INT | 00–2147483647 | Same seed and settings, same result. Set 'control after generate' to randomize to get a new result on every run; every run is billed. |
| return_last_frame | BOOLEAN | false | Also return the clip’s final frame as a separate image. |
| watermark | BOOLEAN | false | Ask the model to watermark the video as AI-generated. |
| reference_image_urlsopt | COMFY_AUTOGROW_V3 | Reference image URLs that carry over characters, style or scene composition. Up to 30 images. Cannot be combined with a first-frame image. | |
| reference_video_urlsopt | COMFY_AUTOGROW_V3 | Reference video URLs that carry over motion and pacing. Up to 10 clips, 2-30 seconds each and 30 seconds in total. Reference footage is added to the billed duration. | |
| reference_audio_urlsopt | COMFY_AUTOGROW_V3 | Reference audio URLs the generated soundtrack follows, for beat matching or lip sync. Up to 10 clips, 2-30 seconds each and 30 seconds in total. |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| video | VIDEO | — |
| last frame | IMAGE | Needs return_last_frame turned on. |
| task id | STRING | The SpicyAPI task id, for the console logs or support. |