Reference image preflight checklist before a Seedance 2.5 job

Most reference-to-video failures are input problems. A checklist and a curl preflight for URLs, count and mix before you pay for a Seedance 2.5 job on Sume.

4 min readSume
All posts

Before you submit a Seedance 2.5 reference-to-video job on Sume, check four things: every URL is public HTTPS and reachable, you send at most 9 images, 3 videos and 3 audio files with 12 references in total, audio is never sent alone, and first or last frame fields are not mixed with references. A thirty-second preflight with curl catches the URL problems for free.

The checklist

The rules below come from the Video Router request schema and the Video generation docs read on 2026-10-04. The docs tell you to ensure reference images are "high quality and relevant" and accessible over public HTTPS in supported formats (Video generation).

Seedance request checks on Sume (read 2026-10-04)
CheckRuleIf you break it
URLpublic HTTPS, reachable without a loginjob fails or request is rejected
Counts9 images, 3 videos, 3 audio, 12 total400 at submit
Audioneeds at least one reference image or video400 at submit
Frames and referencesuse one or the other, not both400 at submit
Durationwhole seconds, 4 to 30 on seedance-2.5400 at submit

Preflight the URLs

A reference URL that returns a login page, an expired signed link or a redirect to HTML is the usual cause of a failed download. Request only the headers, then read the status code and content type. A 200 with image/png, image/jpeg or audio/mpeg is what you want.

for url in \
  "https://example.com/hero-front.png" \
  "https://example.com/hero-side.png" \
  "https://example.com/theme.mp3"; do
  curl -sIL -o /dev/null -w "%{http_code} %{content_type} %{url_effective}\n" "$url"
done

Check the content, not only the link

Open each image yourself. Is the subject large enough in frame? Is it cropped at the forehead? Does it contain a watermark you do not want in the video? The model can reproduce what you give it. Put the reference that matters most first in the list and keep the set small and consistent (BytePlus: What is Seedance 2.5 is the vendor overview), and remember Sume enforces its own ceilings regardless.

Send it with an idempotency key

Once the preflight passes, submit with an Idempotency-Key so a network retry cannot create a duplicate paid job. A reused key with a different payload returns 409 idempotency_conflict per Generation admission. Start at 480p; the 4-second minimum costs about $1.07 on Sume's rate card, which is a cheap way to confirm the whole input set works.

curl -X POST https://api.sume.com/v1/video-router/generate \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: preflight-pass-001" \
  -d '{
    "model": "seedance-2.5",
    "prompt": "The hero walks toward the camera to the beat of the theme.",
    "reference_image_urls": ["https://example.com/hero-front.png","https://example.com/hero-side.png"],
    "reference_audio_urls": ["https://example.com/theme.mp3"],
    "resolution": "480p",
    "duration": 4,
    "mode": "async"
  }'

Sources

Related posts

More in Developers

All Developers posts

Written by Sume