Guides
Sume guides: the API, Formats, agents, models, media tools and pricing, each answer dated and sourced.

Omni references on Sume: billed per output second; Google adds input
Google lists $1.50 per 1M input and $17.50 per 1M output tokens for Omni. Sume bills the provider list x 1.25 per output second. Reference limits compared.

On-hold phone messages: 12 prompts of 300 characters, cost
Twelve on-hold prompts of 300 characters are 3,600 characters: $0.079 on MAI-Voice-2.1, $0.054 on Flash, and $0.24 on Sume as 12 jobs.

One Sume webhook endpoint for job and run events: route on event
Job and run webhooks share one HMAC scheme but not one payload. A 27-line TypeScript handler verifies once, routes on event, and answers 204 to the rest.

Output tokens in a 3 to 10 second Omni clip: 17,376 to 57,920
Gemini Omni Flash bills 5,792 output tokens per 720p second. A 3 s clip is 17,376 tokens and a 10 s clip 57,920. Dollars at Google and on Sume, per length.

500-image job on a preview model: Hy Image 3.5 availability, plan B
OpenRouter shows 83.39% availability over 3 days for Hy Image 3.5 Preview, one provider. At 500 images that is about 83 failures to retry. Plan B on Sume.

Stdlib Python Sume webhook receiver: http.server, 204 for webhook.test
A 29-line http.server receiver that refuses an empty secret, checks sume-v1 in a 300-second window, takes the two-signature header, and 204s webhook.test.

A Python Sume webhook verifier for the two-signature rotation header
In a 24-hour secret rotation Sume sends two sume-v1 signatures. This 25-line Python verifier accepts either, refuses an empty secret, and prints its own test.

Can an API caller raise a Sume schedule's spend cap? No
A run request can lower generation_spend_cap_usd below the schedule cap but never above it. The six cases, including null and 0, in one table.

Ratio check before a batch: 4:5, 9:16 and 8:1 on three Sume rows
Imagen 4 lists 5 ratios, GPT Image 2.5 lists 9 and Nano Banana 2.1 lists 15. Which of 4:5, 9:16 and 8:1 each Sume row accepts, and the fallback.

Refresh 1,200 SKU video ads before Black Friday: waves by plan
On an empty workspace, 1,200 jobs take 300 submission waves on Free, 67 on Pro and 14 on Scale, using Sume's wave_size_hint of 75% of accepted capacity.

Re-queue only failed items of a Sume Format bulk queue
A completed bulk queue is not all succeeded. Read counts.failed, pick the failed indexes, and resend them under a new Idempotency-Key. Python, offline.

SaaS release note avatar video: 24 seconds, 3 scenes, cost on Sume
A 24 second release-note video with an AI presenter: hook, demo beat, call to action. Script length, scene plan and cost at standard, plus and max.

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.

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.

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.

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.

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.

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.