Reuse one Sume avatar across a series: preview once, set quality later
A series needs the same face every week. Create the avatar once, reuse the avatar_handle, and approve first frames with a preview before the full render.
Create the avatar once with POST /v1/avatar-1.0/generate, then pass the same avatar_handle to every episode. For each one, make a preview first, approve the first-frame stills, and call generate-video on the preview id. The render quality can differ from episode to episode without a new preview.
Create the host once
Avatar creation takes a top-level avatar_handle and an input union with three forms: a prompt, a profile (type: props with traits such as ethnicity, sex and age), or an image (type: photo with a public HTTPS image_url). The handle may start with @; Sume strips it before storing.
Each request creates a job. Poll GET /v1/jobs/:id/status until it completes, then use the returned handle or resource id. GET /v1/avatar-1.0/avatars lists your avatars.
curl -X POST https://api.sume.com/v1/avatar-1.0/generate \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: avatar-product-host-001" \
-d '{
"avatar_handle": "product_host",
"input": { "type": "props", "ethnicity": "Asian", "sex": "female", "age": 28 }
}'Preview each episode
POST /v1/avatar-video-previews takes the same fields as the talking-video call: one of script or video_inputs, plus optional product_image, scene, quality, aspect_ratio, title and captions. It generates first-frame stills only and does not start the full render. The default quality is plus.
When the preview is ready, read preview_image_url and scene_previews[]. Prefer resource_status and job_status to the legacy status field.
Which edits need a new preview
Preview stills are tier-independent, and Sume reuses them. So you can approve a look, then run a cheaper tier for a draft and max for the final.
| Change | What to do |
|---|---|
| Not happy with the stills | POST /v1/avatar-video-previews/:id/regenerate |
Different quality for the final render | Pass quality to generate-video; keep the preview |
Different script or video_inputs | New preview |
Different avatar_handle, scene or aspect_ratio | New preview |
Captions travel with the preview
Caption intent stored at preview create is applied at generate-video time. Sume never burns captions into preview stills. Inline captions do not create a separate billed caption job, and a failure in the caption stage is a soft failure: the avatar job can still finish with a clean video_url and captions.status=failed.
The series loop
Keep one record per episode: the preview id, the idempotency key and the avatar video id. Keep the script under the planned 4 to 60 second window, because Sume rejects an estimate outside it. For a longer episode, split it into jobs and join them on a timeline.
Related posts
More in Sume Avatar 1.0
- Pick a stock avatar by avoid_for and brand_safety_notes, not looks
Sume's avatar catalog returns profile metadata with best_for, avoid_for, brand_safety_notes and casting_notes. Read them before you cast a presenter for a clip.
- Square TikTok ad from an avatar video: 1:1 at 720p vs 640 px minimum
TikTok lists 640 by 640 as the minimum for square non-Spark video. Sume avatar video supports 1:1 at 720p, which is above that floor.
- Griffin-Lite 26 of 54 Turing result: what the sample size says
Tavus reports 26 of 54 callers fooled by Griffin-Lite after a one-minute call. A 95% interval is about 35% to 61%. Python computes it, and says what to claim.
- Tavus Video to Face replica vs a Sume avatar from a photo or prompt
Tavus builds a replica from video or a photo; Sume builds an avatar from a prompt, props or a public photo URL. What each input gives you, and what it costs.
Written by Sume