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

Draft at Seedance 2 Mini 480p, finish at 2.5: cost per 100 SKUs
A 4 s Seedance 2 Mini 480p 9:16 draft is $0.35154; a 4 s Seedance 2.5 720p final is $2.3112. For 100 SKUs that is $35.15 of drafts and $231.12 of finals.

Sora: 184 days' notice, no replacement. Veo previews: Omni named
OpenAI gave 184 days between its Sora notice and shutdown and named no replacement. Google's Veo 3.1 preview table names gemini-omni-1.1-flash.

Strands Decider 2B scores 167 of 231: not a spend guard
The Strands Decider 2B card reports 167 of 231 correct on JevBench public (72.3%). Fine for routing, not payment control. Why Sume's spend cap decides.

Agent fans out 30 renders on a Pro plan: 24 accepted, 6 queue_full
Pro accepts 24 paid generation jobs at once (4 processing plus 20 queued). The 25th gets 429 queue_full. Retry policy for 402 and 429 in an agent loop.

How many images can I attach to a Sume agent run? 30, up to 500 MB
An Agent Completion takes at most 30 images, each up to 30 MB, 500 MB total. So 30 images of 30 MB cannot all fit; 16 can. Error codes inside.

Sume job 404 for an id you created: check which member's key made it
A 404 on GET /v1/jobs/{id} can mean the job belongs to another member or workspace. A Python helper separates unknown from not visible.

Limit an agent's paid MCP calls with script_run max_paid_calls
script_run runs a short program on the Sume side with max_calls, max_paid_calls and a 5-55 second timeout. What it can bound, and what it does not cap.

Sume run webhook retries: ten attempts span about 3 hours
Ten delivery attempts with 30-second doubling backoff capped at one hour add up to 11,010 seconds before jitter. The timeline, and what to do after exhaustion.

Sume run webhook says OK but output is null: handle degraded
A Sume run can complete, bill you, and still have output null. Branch on outcome, not status, and read artifacts and output_error before you retry.

Schedule fires while the last run is active: skip or reject?
Sume schedule API runs default to on_active_run skip, which returns 200 with a skipped receipt. reject returns 409 action_run_in_progress. When to pick each.

Swap the Sume video model with an env var and a catalog check in Node
Read the model id from VIDEO_MODEL, confirm it appears in GET /v1/videos/models, and fall back to sume/auto when it does not. A Node 20 script of 21 lines.

Talking head video vs conversational avatar: three things you get back
A talking-head video is a file; a conversational avatar is a session. Three differences, with Sume Avatar 1.0 and Tavus Griffin-Lite as examples.

TikTok 500 MB cap and 10 minutes: the bitrate that fits is 6.67 Mbps
TikTok's non-Spark in-feed ad page allows 10 minutes and 500 MB or less. A full 10 minute ad fits only at 6.67 Mbps or below. The arithmetic and a Sume render.

TikTok 516 kbps minimum bitrate: a 30 second ad is at least 1.94 MB
TikTok's non-Spark spec lists bitrate of 516 kbps or more. The smallest file for 15, 30 and 60 seconds is shown with the math, plus how to check a Sume render.

TikTok ad caption rules: no links, @ or hashtags, and a 4-line limit
TikTok's in-feed ad page says captions can't hold links, @ symbols or hashtags, and Spark captions max out at 4 lines. A Python lint to run before you submit.

TikTok safe zone captions: anchor_ratio and safe_width_ratio on Sume
TikTok's ad page says safe zones vary by orientation and caption length and ships reference files. Sume's caption design fields move the line; ranges listed.

TikTok Spark vs non-Spark ad length: no restriction vs 10 minutes
TikTok's spec page lists no duration restriction for Spark Ads and up to 10 minutes for non-Spark. Format, size and caption differences, and Sume output.

Timeline refuses more than 8 chained fades: countdown cut fix
Sume Timeline 1.0 refuses more than 8 adjacent fades with too_many_chained_transitions. Alternate hard cuts and fades in a 12-clip holiday countdown.

Transparent sticker: GPT Image 2.5 background field or Nano Banana 2.1
Only GPT Image 2.5 lists a background field on Sume. Nano Banana 2.1 does not, so a transparent PNG there is $0.10 plus a $0.0225 background-removal step.

Trim a 4-minute video to a 180 s YouTube Short: start 30, duration 180
YouTube's Shorts page allows up to 3 minutes. Sume video trim cuts 180 seconds from a 240 second source for $0.02. The request, the limits and the refusals.

TypeScript exhaustive switch on /v1/videos statuses fails the build
A never-typed default case makes a new video job status a compile error, and a runtime parser rejects strings the types do not know. 26 lines of TypeScript.

US company and open video weights: H3 is out, three others differ
MiniMax H3 weights exclude the US by license. HunyuanVideo, Wan 2.2 and LTX-2.5 read differently. A territory table and a hosted route on Sume.

Verify a Sume agent.run.terminal webhook in Python
Python HMAC-SHA256 check for a Sume run webhook: sume-v1 signature over timestamp.raw_body, a five-minute window, and a verifier that refuses an empty secret.

Wan 2.2 prompt extension: a DashScope key or a local Qwen model
Wan 2.2's README offers prompt extension via Alibaba DashScope (DASH_API_KEY) or a local Qwen model. What each needs, and what Sume's request takes.

A weekly bedtime story: 52 narrations at 5,000 characters
A 5,000-character story each week for a year is 260,000 characters: $5.72 on MAI-Voice-2.1, $3.90 on Flash, $12.48 on Sume as 52 jobs.

Which request_id do you dedupe a Sume run webhook on?
Dedupe on the envelope request_id, which equals run_id and is stable across retries. The nested payload.request_id is a different id. A code check.

Which Sume image model after this week's launches: lookup by need
A lookup table: text drafts, photo edits, label text, 4K, 12+ references. Maps Nano Banana 2.1, Imagen 4, GPT Image 2.5 and Hy Image to what Sume lists.

Who owns an AI video from open weights? Output clauses compared
H3 says you own outputs, Hunyuan, LTX and Wan 2.2 claim no rights in them. What each clause adds or withholds, read from the vendor files.

YouTube rejects MP3 and WAV uploads: make an MP4 on Sume
YouTube's formats page says MP3, WAV and PCM files can't be uploaded. A Sume Timeline render turns audio plus a still into an MP4: $0.30 for 3 minutes.

1080p premium by row: Recast +50%, H3 Max +100%, H3 has no 1080p
Moving up to 1080p adds 50% to H3 Max Recast and 100% to MiniMax H3 Max on Sume, while MiniMax H3 stops at 768p. Per-second and per-10-second figures.

1:1 clip on a 540x960 TikTok canvas: cover, contain or blur
A 1080x1080 clip on a 540x960 Timeline canvas: contain leaves 210 px bars top and bottom, cover cuts 420 px, blur fills the bars. All cost $0.10 a minute.

4:5, 9:16 and 16:9 together: 15 of 19 Sume image models list all three
Which Sume image models list 4:5, 9:16 and 16:9 in one catalog row, which four miss 4:5, and what each costs per image.

Build IMAGE_REF tags in Python for up to 10 Omni references
A Python helper turns a list of up to 10 image URLs into an Omni Flash prompt with matching IMAGE_REF tags, 0-based, in list order. Runs as written.

Crop 1920x1080 to 9:16: video-filter width 0.3164, x 0.3418
To get a 9:16 strip from a 1920x1080 clip, send a Sume video-filter crop with x 0.3418, y 0, width 0.3164, height 1: about 608x1080, above TikTok's 540x960.

Does 9:16 cost less than 16:9 for a 30 s Seedance 2.5 clip?
No: 9:16 and 16:9 cost the same on Seedance 2.5 and Wan 3.0 at every resolution. Only 1:1 at 480p is cheaper, by 36 cents on 30 s.

Edit with input_references: 5 of 19 Sume image models are text-only
Five Sume image models cannot take input_references: Soul, Imagen 4 Fast, Imagen 4 Ultra, Recraft V4 and Qwen Image Max. Here are the 14 that can, with prices.

Format run incomplete_assembly: continue it, do not pay twice
incomplete_assembly means the run hit its time limit with generation jobs unfinished. Read pending_job_count, then continue with previous_run_id.

primary_output_missing: your schema passed but the key is empty
A Format run can satisfy your output_schema and still fail because primary_output_key is empty. Here is how to read it and fill the gap.

Four music variants in parallel: Python asyncio, one key per take
Submit four Music Router jobs at once from Python with one Idempotency-Key each, poll status concurrently, and pay 4 x $0.125 = $0.50. Code that runs.

GET /v1/jobs returns 404 for a job another key created: Sume's rules
A Sume API key reads only jobs its own member created. A reconciler on a different member's key gets 404 not_found for a real job. How to design for it.

Which Sume hosted MCP tools are read-only? 24 the docs label Read
The tools-and-gates page labels 24 hosted MCP tools as Read across five groups, plus meta and account tools. List and verify with tools_list.

One idempotency key per prompt row: re-run a 1,000-clip library safely
Derive the Idempotency-Key from every field you send, so a crashed batch can restart without paying twice and a changed row never collides. Python, 17 lines.

image_url or reference_image_urls: the Omni field for a photo
On Gemini Omni Flash 1.1, one image in image_url is a start frame; one image in reference_image_urls with no frame is reference-to-video. The price is the same.

Is 1080p worth it for 30 s AI shots? 2.46x on Seedance, 2x on Wan
On Sume, 1080p costs 2.46 times 720p for a 30 s Seedance 2.5 clip and exactly 2 times on Wan 3.0. A rule for choosing the resolution.

Is a 4:5 video a YouTube Short? 1080x1350 on Sume Timeline
YouTube's Shorts page names square or vertical videos up to 3 minutes. 4:5 is taller than wide. Sume Timeline renders 1080x1350, so verify it after upload.

Log requested vs stored model ids to find retired ids still in config
Sume runs a retired image id as its successor and stores the successor on the job. Compare the two ids after each submit to find stale config.

Music 1.0 to Music Router: what changes in your integration
Sume is retiring Music 1.0 gradually; every request already resolves through the Music Router. New code should call /v1/music-router/generate. What changes.

Music bed shorter than the voiceover: loop, fade and duck in Timeline
If a Music 1.0 bed ends before your narration, Sume's Timeline soundtrack can loop it, fade out up to 10 seconds and duck 0 to 20 dB under speech. The settings.