fal bytedance/seedance-2.0 request fields, mapped to Sume's

Moving a fal Seedance 2.0 call to Sume: the path becomes a bare model id, image_urls become input_references, and seed, auto ratio and auto duration go.

5 min readSume
All posts

A fal Seedance 2.0 request maps to Sume's POST /v1/videos in five changes. The endpoint path becomes a bare model id such as seedance-2; image_urls, video_urls and audio_urls become typed input_references; image_url and end_image_url become frame_images; and seed, aspect_ratio: "auto" and duration: "auto" have no Sume equivalent.

The fal fields below were read on 2026-09-29 from its Seedance 2.0 pages. The Sume fields are in the Video generation docs.

How do the fields line up?

fal splits Seedance 2.0 into one endpoint per mode and tier. Sume has one endpoint and picks the mode from the fields you send.

fal fields from its text-to-video, fast and reference-to-video pages, and Sume's Video generation docs, read 2026-09-29.
falSumeNote
Path bytedance/seedance-2.0/text-to-videomodel: "seedance-2"Sume uses bare catalog ids and no provider-org prefix.
Path bytedance/seedance-2.0/fast/text-to-videomodel: "seedance-2-fast"Sume also lists seedance-2-mini.
promptpromptSame name.
resolution: 480p, 720p, 1080presolutionEach Sume model advertises its own subset.
duration: auto or 4 to 15duration: an integer the model lists in supported_durationsNo auto. Seedance 2.0 lists 4 to 15 in the docs example; check GET /v1/videos/models.
aspect_ratio: auto plus six ratiosaspect_ratio: a ratio the model lists in supported_aspect_ratiosauto is not in that list, so it is refused.
generate_audiogenerate_audioSame name.
seedNot accepted400 unsupported_parameter.
image_url, end_image_urlframe_images with first_frame and last_framelast_frame needs a first_frame.
image_urls, video_urls, audio_urlsinput_references with image_url, video_url, audio_url typesAt most 12 in total.

What does a converted request look like?

Here is an image-to-video call with an end frame, in Sume's shape. The same fields on fal would be image_url and end_image_url on the image-to-video endpoint.

curl -X POST https://api.sume.com/v1/videos \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: seedance-port-001" \
  -d '{
    "model": "seedance-2",
    "prompt": "The door opens and light floods the hallway",
    "duration": 6,
    "resolution": "720p",
    "aspect_ratio": "16:9",
    "frame_images": [
      {"type": "image_url", "frame_type": "first_frame",
       "image_url": {"url": "https://example.com/door-closed.png"}},
      {"type": "image_url", "frame_type": "last_frame",
       "image_url": {"url": "https://example.com/door-open.png"}}
    ]
  }'

What else changes besides the field names?

Sume submits a job and returns an id, then you poll GET /v1/videos/{jobId} until the status is completed, or pass an HTTPS callback_url to receive a webhook when the job completes. Billing is in workspace USD, reserved on submit at provider list × 1.25, and usage.cost is the Sume billable amount. If both frame_images and input_references are sent, frame_images takes precedence and the request is treated as image-to-video.

That means a fal client that sends both a start image and reference lists needs a decision on your side. Pick one field group per request, because frame_images wins when both are present. A reference-to-video call on fal has no start frame, so check which of the two you meant before you port it.

The audio switch keeps its name. On fal, generate_audio covers synchronized sound such as effects, ambient sound and lip-synced speech, and the page says the price is the same either way. Sume's docs default the field to the model's audio capability, so set it explicitly when you port a request that turned audio off.

What if I send a fal field Sume does not know?

Sume refuses seed, size and a non-empty provider.options with 400 unsupported_parameter. Read the refusal message, remove the field and send a new request.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume