Blog
Sume blog: agent-native video generation, Avatar 1.0 orchestration, and production APIs for builders and coding agents.

Six stills and a logo clip as references: Wan 3.0, Omni, H3 or Kling?
For a brand-kit video with six stills and one logo clip, Wan 3.0 and MiniMax H3 fit; Omni caps clips at 3 s; Kling 3 takes no references. 8 s prices inside.

Proxy for a Sume video button: forward the click's Idempotency-Key
The docs proxy sample adds crypto.randomUUID() on every forwarded call, so a browser retry makes a second paid job. Take the key from the client for /v1/videos.

Bulk queue key from a payload hash: same body 202, new body 409
Derive a Format bulk queue Idempotency-Key from a sha256 of its body. The same body replays 202 with the old queue; a changed body gives 409.

callback_url or webhook_url? Which Sume route takes which field name
POST /v1/videos takes callback_url; the model endpoints take mode webhook with webhook_url. Both must be public HTTPS and both deliver signed job events.

Celery task for a Sume video: task id as the Idempotency-Key
One Celery task submits POST /v1/videos with its own task id as the Idempotency-Key and re-queues itself every 30 seconds until the job ends. No double bills.

curl -d to Sume /v1/videos gives 415: add the JSON Content-Type
A POST /v1/videos with a body that is not application/json gets 415 unsupported_media_type, with the content type you sent in details. The curl fix.

dry_run or generation_admission_preview first for 12 Sume clips?
Use dry_run on a paid call for its estimate, and generation_admission_preview before a burst of 12 clips to check balance and queue room. Neither submits a job.

Edit a clip, swap a person, or move motion onto photos: 3 Sume models
Omni Flash edits a clip by prompt ($1.25 per 10 s, 720p), H3 Max Recast swaps people ($3.75, 768p), Genjutsu moves motion onto photos ($3.98, 480p).

Gate a Format run on TikTok limits: artifact size, length, pixels
Check a Sume Format run's artifacts[] for size, duration and dimensions against TikTok's non-Spark limits before upload. A Python gate under 30 lines.

After generate_image on sume/auto, why can't the agent name the model?
Sume never discloses which family ran for sume/auto: job.model stays sume/auto and the model list omits it. To name a model, pin an id from image-models_list.

Get a 30-second track from Music 1.0 when there is no duration field
Music 1.0 rejects duration and duration_seconds. Steer length in the prompt, for example 'a 30-second track' with timestamped sections; a generation is $0.125.

Image-to-image in Python: three references on GPT Image 2.5
A 22-line Python script that sends three reference images to POST /v1/images with GPT Image 2.5 and prints the URL and cost. References limits and pitfalls.

Is Hy Image 3.5 Preview on Sume? Check the models list in code
Tencent's Hy Image 3.5 Preview is not in the Sume rows used here. How to confirm against GET /v1/images/models with a 12-line script instead of guessing an id.

GPT Image 2.5 slow? OpenAI says jpeg is faster than png
OpenAI says jpeg is faster than png and complex prompts can take 2 minutes. How to set output_format on Sume and handle the 202 that follows.

Korean captions on a small phone: clip-wipe or black-outline?
Sume lists six Hangul caption styles. The docs call black-outline the safe default and clip-wipe the clearest at small phone sizes. Fonts and the 400 rule.

MAI-Voice-2.1 or Sume TTS for a presenter ad read: 3 prices
For a 700-character ad read, MAI-Voice-2.1 is about 1.5 cents, Flash 1 cent and Sume TTS 4 cents. Fabric needs the audio as a public URL.

mask_url edit on GPT Image 2.5: the mask is a guide, not a hard edge
OpenAI says GPT Image masking is prompt-based and may not follow the mask shape exactly. How that affects mask_url edits on Sume and a cheap way to test it.

Moving off Image 1.0: quality default flips from low to high
Image 1.0 defaults to quality low. On POST /v1/images with gpt-image-2.5 the default is high: 1 cent becomes 7. Field map and the one line to add to keep costs.

Music Router negative_prompt: send an empty string, not a list
Sume Music Router takes negative_prompt only omitted or as an empty string. Put exclusions in the prompt. Duration is refused too. Price stays $0.125.

Narration cost per minute at 900 characters a minute: Flash vs Sume
At an assumed 900 characters per minute, Sume TTS runs about 4.3 cents a narrated minute; MAI-Voice-2.1 lists near 2 cents and Flash near 1.4 cents.

Unattended agent on Sume MCP: API key or OAuth consent?
A cron or CI agent cannot click a consent page. Sume's docs give OAuth to interactive clients and API-key remote MCP to automation, with caps set per call.

PowerShell 7: verify a Sume webhook with HMACSHA256, constant-time
A PowerShell function that refuses an empty secret, checks the 300-second window and accepts any entry in a rotated sume-v1 header. Under 30 lines.

Video call avatar or scripted talking video: which do you need?
A real-time avatar answers people live; a scripted talking video is a file you render and review first. How to choose, and what Sume Avatar 1.0 covers.

Seedance 2.5 costs 1.53x Seedance 2.0 at 720p for 10 seconds
A 10 s 9:16 clip at 720p is $5.78 on Seedance 2.5 and $3.78 on Seedance 2.0 on Sume. What the extra $2.00 buys, and the ratio at 480p and 1080p.

Sent sume/video-1.0, the poll says sume/auto: the alias is rewritten
The model field on a /v1/videos poll echoes sume/auto, not what you sent, for the auto aliases. What that means for logs, price replays and your own checks.

Add a silent beat to an AI avatar video with voice type silence
In Sume multi-scene avatar videos a scene with voice type silence is a pause with no speech. It needs a duration and rejects script text. Rules and example.

sonic-latest or sonic-3-6: which Sume TTS id for repeatable narration
Pin sonic-3.6 when a series must sound the same; sonic-latest is an alias that tracks the current stable Sonic. Avoid sonic-preview with pro voice clones.

Sume Avatar 1.0 ratios vs TikTok ad ratios: three overlap, two do not
Avatar 1.0 makes 1:1, 3:4, 9:16, 4:3 or 16:9 at 720p, 4 to 60 s. TikTok's non-Spark ad page lists 9:16, 16:9 and 1:1, so 3:4 and 4:3 need a crop.

Sume MCP with Write off: what an OAuth agent can still do
With OAuth read-only (mcp:read), an agent on Sume's hosted MCP can still read jobs, assets and the catalog and scrape pages. Writes and paid tools fail.

Sume /content?index=N: default 0, a 302, and a 404 past the last one
What the Sume content route answers for index 0, an index past the last output, a failed job and a running job, plus a Python loop that saves every output.

Can you buy Tavus Griffin-Lite? Presenter video options today
Tavus Griffin-Lite is a research preview for trusted testers, not a product customers can buy. What Sume ships for presenter videos in the meantime.

Self-test a Python Sume verifier: rotation, stale time, empty secret
Six asserts for a stdlib hmac verifier: new and old secret both pass, tampered body fails, 301 seconds old fails, empty secret raises. One file, no framework.

TikTok ad: 500 MB over 10 minutes caps bitrate near 6.7 Mbps
TikTok non-Spark ads allow 10 minutes and 500 MB, with a 516 kbps minimum. Sume Timeline sets no bitrate, so check your exported file against the arithmetic.

Timeline sizes for TikTok's three ad ratios: 540x960, 960x540, 640x640
TikTok's non-Spark minimums are 540x960 (9:16), 960x540 (16:9) and 640x640 (1:1). All three fit Timeline's even 256 to 2160 px output range at $0.10 a minute.

TypeScript union for a Sume /v1/videos poll with an exhaustive switch
Model the five poll statuses as a discriminated union so unsigned_urls only exists on completed and error only on failed. Compiles in strict mode, 30 lines.

A UGC-style AI ad in three scenes: hook, demo, call to action
Build a UGC-style spokesperson ad on Sume Avatar 1.0 with ordered video_inputs: a spoken hook, a silent demo beat and a call to action, all in a 9:16 frame.

Verify a Sume avatar video webhook signature in Python
A Python verifier for Sume job webhooks: HMAC SHA-256 over timestamp.raw_body, sume-v1 entries, a 5-minute window, and a refusal when the secret is empty.

Verify the Sume signature in the HTTP handler, not in the queue worker
A queue delay over 300 seconds makes a valid Sume signature look stale. Verify at receipt, enqueue the verified event, and use redeliver if a late check failed.

Vidu Q4 audio references vs a scripted avatar: which keeps a voice?
Vidu Q4 Preview takes up to 3 audio references; Sume does not list Vidu. How a scripted avatar video keeps a presenter's face and words consistent.

Which Sume Format for a UGC ad? Read io, then call by name
Sume's catalog lists UGC-style Formats such as sume-close-camera-ugc and sume-mobile-app-ugc. Read each Format's io profile, then run it with a spend cap.

Which Sume video models list auto or adaptive aspect for a start image
Seedance 2.x and Wan 3.0 list auto and adaptive aspect; Kling 3 and Omni Flash list fixed ratios only. What to send when your still is not 16:9.

45-minute recording: audio detach fails past 1800 s, what to do
Sume audio detach accepts a source up to 1800 seconds and returns up to 900. A 45-minute video is 2700 s, so trim first. Here is the arithmetic.

A 61-second audio spine reserves 2 timeline minutes, 60 s reserves 1
Timeline 1.0 reserves $0.10 per ceil(audio minute). A 60 second spine reserves $0.10, 61 seconds reserves $0.20, and 1,800 seconds is the $3.00 ceiling.

Sume ignores aspect_ratio when image_size is set: Flux, Seedream
On Sume's custom-pixel image rows, image_size wins and aspect_ratio is ignored. Nano Banana turns WxH into an enum ratio. What each model does with both fields.

Ad audio spec table: YouTube 48 kHz, Meta AAC 128 kbps, LinkedIn AAC
What YouTube, Meta Facebook Feed and LinkedIn say about video ad audio, and the Sume settings that keep, drop or extract it: trim audio, detach, timeline gain.

Read /v1/balance: state, micros and the expiring-soon amount
What GET /v1/balance returns, why an empty state means a 402 is coming, and a Node check that compares available micros to a job's cost before you submit.

Caption files: YouTube UTF-8, LinkedIn text-only SRT, Sume burns in
YouTube takes SRT, SBV and more as UTF-8; LinkedIn wants text-only SRT. Sume burns captions in and exports no SRT, so build the file from segments.

Cheapest AI video API per second: Sume models ranked by price
Cheapest per output second on Sume: Grok Imagine Video 1.5 at $0.0125, Gemini Omni 360p at $0.0375, then Wan 3.0 and MiniMax 480p at $0.0625. Ranked table.