Higgsfield upload URL: 1 hour, MP4 and WAV. Sume takes public URLs
Higgsfield inputs go through a presigned upload that expires in one hour. Sume has no upload step: pass public HTTPS URLs in frame_images or input_references.

To feed an image, video or audio file to a Higgsfield model you first call POST https://api.higgsfield.ai/files/generate-upload-url, upload to the presigned URL it returns, and then pass the resulting public URL as image_url, video_url or audio_url. Sume has no upload step in the video API: you pass a public HTTPS URL directly in frame_images or input_references.
Higgsfield's three-step upload
Higgsfield's upload page lists the constraints. The presigned upload URL expires after one hour. The content type you ask for must match the file you upload. Images can be JPEG, JPG, PNG, WebP or GIF, audio can be WAV or X-WAV, and video must be MP4. Uploads are tagged x-amz-tagging: retention=temporary. The page says not to send your Higgsfield credentials to the storage URL, and it does not state a file size limit.
| Item | Higgsfield | Sume |
|---|---|---|
| Getting a file in | Presigned upload, then use the public URL | Host the file yourself on public HTTPS |
| URL lifetime | Upload URL valid for one hour | Your URL must stay reachable until the job fetches it |
| Formats named | Images JPEG/JPG/PNG/WebP/GIF, audio WAV, video MP4 | Per model: see supported_input_references |
| Where the field goes | image_url, video_url, audio_url | frame_images[], input_references[] |
| Failure mode | Mismatched content type on upload | input_media_unreachable or image_not_fetchable |
Where the Sume fields go
On /v1/videos, first and last frames go in frame_images with a frame_type of first_frame or last_frame. Style or content references go in input_references. If you send both, frame_images takes precedence and the request is treated as image-to-video. Which reference types a model accepts (image_url, video_url, audio_url) is listed in supported_input_references from GET /v1/videos/models.
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"
}]
}'When the input cannot be fetched
The Sume troubleshooting section says a failed generation can come from reference images that are not accessible over public HTTPS or not in a supported format. The error table lists image_not_fetchable and input_media_unreachable for media Sume could not fetch or mirror safely, with the advice to check that the input is a public HTTPS URL and then retry.
Porting tip
If you are porting a Higgsfield integration, the upload helper can usually be replaced by a plain upload to your own bucket and a URL that outlives the job. A URL that was valid only for an hour is a poor fit for a queued job, so keep the object reachable until the job is terminal.
Sources
Related posts
More in Developers
- Higgsfield webhook retries: two hours vs Sume's ten attempts
Higgsfield retries 5xx for up to two hours and wants a reply in ten seconds. Sume makes 10 attempts, 30 seconds apart, then lets you redeliver by hand.
- Ideogram color_palette parameter: brand colours in Sume prompts
Ideogram's API takes a color_palette parameter. The Sume image API has no palette field, so brand colours go in the prompt and a reference swatch image.
- Ideogram negative_prompt: what to send to the Sume image API instead
Ideogram has a negative_prompt parameter, but Sume's image API does not. Rewrite exclusions as positive instructions and check each result.
- Ideogram style_type REALISTIC, DESIGN, FICTION: the Sume equivalent
Ideogram 3.0 has a style_type with five values. Sume has none; get a realistic, design or fiction look through prompt wording and model choice.
Written by Sume