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.

5 min readSume
All posts

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.

Input handling, read 2026-10-02
ItemHiggsfieldSume
Getting a file inPresigned upload, then use the public URLHost the file yourself on public HTTPS
URL lifetimeUpload URL valid for one hourYour URL must stay reachable until the job fetches it
Formats namedImages JPEG/JPG/PNG/WebP/GIF, audio WAV, video MP4Per model: see supported_input_references
Where the field goesimage_url, video_url, audio_urlframe_images[], input_references[]
Failure modeMismatched content type on uploadinput_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

All Developers posts

Written by Sume