Is there a lipsync-1.0 endpoint on Sume? Old paths 404; use Fabric
Sume's old /v1/lipsync-1.0 paths return 404 and its model ids return model_not_found. Send the same still and audio to veed/fabric-1.0 or H3 Max lip-sync.

No. Sume has no lipsync-1.0 endpoint any more: POST /v1/lipsync-1.0/generate and the model-run paths /v1/models/sume/lipsync-1.0/runs, /v1/models/sume/lipsync/v1/runs and /v1/models/sume/lipsync/v1.0/runs all return 404, and sume/lipsync-1.0, sume/lipsync/v1 and sume/lipsync/v1.0 return model_not_found on the admission preview. A talking clip from a still plus audio is now POST /v1/veed/fabric-1.0, or POST /v1/minimax/h3-max/lip-sync when the audio is 5 to 14.8 seconds.
If you saw lipsync-1 in an old script, a log or a pricing sheet, Sume's tests still use lipsync-1 as the internal model id behind VEED Fabric 1.0, so the public Fabric route is the one to call. Both current routes take a still and an audio URL, but check your old body against the field rules below, since audio_url must be Sume-hosted and duration_seconds is required. Facts here come from the Models overview, the API reference and Sume's API tests, read 2026-10-10.
What 404s and what still works
Sume's tests assert the removed paths directly, so the 404 is deliberate and not an outage. Do not retry it or switch keys; change the route.
Two older Fabric aliases are different: they are deprecated but still accepted with the same body, so a script on those can migrate by changing the URL only.
| Route or id | Result today | Send instead |
|---|---|---|
| POST /v1/lipsync-1.0/generate | 404 | POST /v1/veed/fabric-1.0 |
| POST /v1/models/sume/lipsync-1.0/runs | 404 | POST /v1/models/veed/fabric-1.0/runs |
| POST /v1/models/sume/lipsync/v1/runs and /v1.0/runs | 404 | POST /v1/models/veed/fabric-1.0/runs |
| model sume/lipsync-1.0, sume/lipsync/v1, sume/lipsync/v1.0 (admission preview) | 404 model_not_found | veed/fabric-1.0 |
| POST /v1/avatar-1.0/image-to-video | Works, deprecated alias | POST /v1/veed/fabric-1.0 |
| POST /v1/models/sume/avatar-1.0/image-to-video/runs | Works, deprecated alias | POST /v1/models/veed/fabric-1.0/runs |
The two routes to move to
VEED Fabric 1.0 (veed/fabric-1.0) takes a still image or a ready avatar plus Sume-hosted audio. Send exactly one visual source: image_url, or avatar_id / avatar_handle. audio_url must be on the Sume media host and at most 10 MB, duration_seconds is 1 to 300, and resolution is 480p or 720p (default 720p).
MiniMax H3 Max Lip Sync (minimax/h3-max/lip-sync) takes the same still-plus-audio body. It is the explicit alternative when the audio is 5 to 14.8 seconds, and its list price is multiplied by 1.25. The Models overview states both rules.
- Import any outside audio first so it has a media.sume.com URL; see Media inputs.
- Keep the
Idempotency-Keyheader on every submit; both routes return the usual job envelope. - Poll
status_urlor use a webhook as described in Jobs and results.
What the move costs
Fabric bills the audio length rounded up to whole seconds. A 4.62-second line at 720p reserves 5 seconds at $0.1875 per second, which is $0.9375. At 480p the rate is $0.10 per second: a 30-second line is $3.00.
H3 Max follows the same rounding. In Sume's golden price tests, 14.8 seconds at 1080p bills as 15 seconds for $3.00. Check the live rate in GET /v1/catalog before you budget a batch, because these rates are fixtures of a dated test run.
| Route | Input | Billed seconds | Charge |
|---|---|---|---|
| veed/fabric-1.0 at 720p | 4.62 s audio | 5 | $0.9375 |
| veed/fabric-1.0 at 480p | 30 s audio | 30 | $3.00 |
| minimax/h3-max/lip-sync at 1080p | 14.8 s audio | 15 | $3.00 |
A working replacement call
This Python call sends the same body you used before to the Fabric route. It needs httpx and SUME_API_KEY in the environment, and it prints the job envelope so you can read the job id and result URL.
import asyncio
import os
import httpx
async def main() -> None:
async with httpx.AsyncClient(base_url="https://api.sume.com") as client:
r = await client.post(
"/v1/veed/fabric-1.0",
headers={
"Authorization": f"Bearer {os.environ['SUME_API_KEY']}",
"Idempotency-Key": "lipsync-migrate-001",
},
json={
"image_url": "https://example.com/still.png",
"audio_url": "https://media.sume.com/artifacts/artf_demo/line.wav",
"duration_seconds": 5,
"resolution": "720p",
},
)
print(r.status_code, r.json())
asyncio.run(main())Check before you ship
Search your code and logs for lipsync and for /v1/avatar-1.0/image-to-video. Replace the first with a Fabric or H3 Max route today, and plan to move the second before Sume retires it. If a talking face must also look like a stored avatar, pass avatar_handle instead of image_url, not both.
For a talking face, the Models overview says to use a Fabric clip with an accepted still plus TTS audio, not a video model with narration under it.
Sources
Related posts
More in Developers
- List Sume's music and TTS router engines in Python before deploy
A short Python script reads the music and TTS router model lists so a deploy check can confirm your pinned engine ids and fixed prices still exist.
- Does Sume accept lowercase 4k as a video resolution? Yes
Since fab7d59af, lowercase 4k is an alias on every Sume video row that lists 4K, on both /v1/video-router/generate and /v1/videos.
- Lyria 3.5 is single-turn: what that means for Sume Music retries
Google says Lyria music is single-turn, with no iterative editing and varying results per call. On Sume that means a new take per prompt: no seed, no duration.
- Which language does Lyria 3.5 sing in? Spanish prompt on Sume Music
Google says Lyria generates music in the language of your prompt. On Sume, write the brief in the language you want sung; no language field exists on Music.
Written by Sume