HeyGen lipsync batches of 100 vs Sume Fabric one clip per job
HeyGen added POST /v3/lipsyncs/batches. Sume's talking-still route, VEED Fabric 1.0, has no batch route: you submit one job per clip with idempotency keys.

HeyGen's changelog lists POST /v3/lipsyncs/batches, which takes payloads identical to the single lipsync call, with up to 100 ids readable at once through a bulk status endpoint. Sume's closest route is VEED Fabric 1.0 at POST /v1/veed/fabric-1.0, and it creates one job per call, so a batch is a loop of submits.
What HeyGen lists
From the HeyGen API changelog, read 2026-10-02:
- This is lip-syncing onto existing video input at HeyGen; check its docs for the input fields.
| Item | Stated detail |
|---|---|
| Batch create | POST /v3/lipsyncs/batches, payloads identical to POST /v3/lipsyncs |
| Bulk status | GET /v3/lipsyncs/statuses, up to 100 ids |
| Captions | Always generated; enable_caption is deprecated on lipsync calls |
What Sume's still plus audio route takes
The Models page lists VEED Fabric 1.0 as a talking still plus audio route (veed/fabric-1.0). The body needs audio_url, a measured duration_seconds, and exactly one visual source: image_url or an avatar_handle. A related MiniMax H3 Max lip-sync route takes the same still plus audio body, with audio of 5 to 14.8 seconds.
Note the input differs: Sume's routes animate a still to your audio, not a replacement mouth on an existing video. Sume's models page also says video models do not lip-sync to generated narration laid underneath, which is why talking shots go through this route.
Running 100 clips on Sume
There is no batches path to call. Submit each clip as its own job with a unique Idempotency-Key, then follow Jobs and results. Webhook mode saves you polling 100 jobs.
- Keep a table of idempotency key to job id.
- Retry a failed submit with the same key, never a new one.
- Measure each audio file's duration before you send it; the field is required.
Which to choose
If your source is existing video that needs new lip movement, HeyGen's batch lipsync is the matching feature. If your source is a still and a recording, Sume's Fabric route fits, one job at a time.
Sources
Related posts
More in Developers
- HeyGen Studio video scene voiceover: freeze, loop or fit_to_scene
HeyGen's Studio API lets a video scene carry voiceover with playback freeze, loop or fit_to_scene. Sume uses silence beats and a timeline instead.
- Higgsfield 403 insufficient credits vs Sume 402: handle both
Higgsfield returns 403 when credits run out; Sume returns 402 insufficient_credits. A status-code map for 401, 403, 404, 422 and 402 when porting a client.
- Higgsfield 423 and 503 model errors vs Sume provider capacity
Higgsfield returns 404, 423 or 503 for a model you cannot use now. Sume uses provider_not_configured and provider_capacity_exceeded. What to retry.
- Higgsfield cancel queued request: 202 or 400, and the Sume match
Higgsfield cancels only queued requests (202, else 400). Sume cancels a job before generation starts, or returns 409 job_generation_already_started.
Written by Sume