AI video generator from image: the URL checklist before you submit
Image-to-video on Sume needs a public HTTPS image URL. Five checks, the two error codes when Sume cannot fetch it, and the first-frame request body.

To make a video from an image on Sume, send the image as a public HTTPS URL in frame_images with frame_type: "first_frame" on POST /v1/videos. Sume does not take a file upload for this; the docs tell you to make sure all input media is a public HTTPS image URL. Most failed image-to-video submits come from the URL, not from the prompt.
The request
This body is the image-to-video example from the docs, with Seedance 2.0 as the model:
curl -X POST https://api.sume.com/v1/videos \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "seedance-2",
"prompt": "A character walking through a forest",
"frame_images": [{
"type": "image_url",
"image_url": {"url": "https://example.com/first-frame.png"},
"frame_type": "first_frame"
}],
"resolution": "1080p"
}'Five checks on the image URL
Run these before the first call. They cost nothing.
- The scheme is
https://. A plainhttp://URL, a local path or adata:string is not a public HTTPS image URL. - The URL opens in a private browser window with no login, cookie or expiring signature that lapses before Sume fetches it.
- The host does not block automated fetches or send a login page in place of the file.
- The file is a supported image format, because the docs say reference images must be in supported formats.
- The URL stays up until the job is done, not just until the submit returns.
What Sume returns when the fetch fails
The errors page lists the media failures that happen before provider work is accepted:
| Code | Meaning | Client behavior |
|---|---|---|
| image_not_fetchable | Sume could not fetch or mirror the image safely | Make the URL public HTTPS, then retry |
| input_media_unreachable | Same class: the input media could not be reached | Same fix, or contact support with the request id |
Which models take a first frame
The catalog lists the accepted frame types in supported_frame_images. Seedance 2.0 reports first_frame and last_frame. Gemini Omni Flash 1.1 takes an image and an optional end image through the Video Router fields image_url and end_image_url. Read the list for your model from GET /v1/videos/models before you pin one, because limits differ per model.
Testing the URL from your side
The fastest check is to fetch the URL from a machine that is not logged in to anything. A one-line curl -I against the image URL should return 200 and an image content type. A 302 to a login page, a 403, or an HTML content type are all signs that Sume's fetch will fail too. If the image sits in private storage, create a time-limited public link that lasts well past the job, not a link that expires in a minute.
Remember that a queued job is fetched later than your submit. On a Free workspace with one running job, a clip can wait behind others, so a link that expires at five minutes may be dead by the time the job starts.
Completed jobs return Sume-hosted artifacts under media.sume.com. The docs call those URLs the public contract, not any provider URL. So you do not need to keep the source image hosted for the result to stay available, but keep it for as long as you may want to re-run the job with the same first frame. If a job fails with a media error, correct the URL and retry with the same idempotency key only for an exact retry; the docs return 409 idempotency_conflict when a key is reused for a different payload.
Sources
Related posts
More in Developers
- AI video generator from text: the three fields that set the price
In a text-to-video request on Sume, model, resolution and duration set the price. Prompt length and aspect ratio do not. Worked Wan 3.0 and Omni numbers.
- AI video generator with no sign-up: what Sume needs before clip one
Sume cannot render video without an account, an API key and a funded balance. Four public reads work with no key, so you can check models first.
- AI video seed on Sume: no model accepts one, lock shots with frames
Every Sume v1 video model reports seed false and rejects the field. To repeat a look, lock first and last frames, references, resolution and a stable prompt.
- Write Amazon's contains-synthetic-performer tag with exiftool
Amazon wants contains-synthetic-performer in XMP dc:subject on photorealistic AI people. Sume does not write it; tag the downloaded file yourself with exiftool.
Written by Sume