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

Search what was said across clips: SQLite FTS5 from STT segments
Request sentence segmentation on Sume STT, load each segment into a SQLite FTS5 table, and find the clip and second where a phrase was spoken.

stt_create dry_run and max_spend_usd: cap an MCP transcription run
On Sume's hosted MCP, dry_run previews admission and cost without submitting, and max_spend_usd caps a paid stt_create. Add an idempotency_key to every write.

Sume STT mode sync: transcribe a short clip in one request
Send mode sync with wait_timeout_seconds up to 30. A short clip answers 200 with the finished job. A longer one answers 2xx with the queued job to poll.

Transcribe 10,000 short clips: queue capacity and wave size by plan
10,000 five-second clips cost $8.33 on Sume STT. How fast they finish depends on plan concurrency and queue capacity: 6, 24, 48 or 120 accepted jobs.

Transcribe 100,000 two-second voice command recordings: the bill
A two-second clip costs about $0.000333 on Sume STT, so 100,000 cost $33.33. Without duration_seconds each job in flight holds a full $0.01 instead.

Unit test a transcription retry loop with a fake 429 in Python
Test your Sume STT retry code without calling the API: inject the POST and sleep, return a 429 with retry-after, and assert the same key is sent twice.

Word timestamps to video frame numbers at 29.97 fps in Python
Sume STT words[] carry start and end in seconds. Convert them to frame indexes with exact 30000/1001 math so cuts do not drift on long timelines.

Timeline transition_not_frame_aligned: why a 0.01 s fade fails
A Timeline fade under half a frame rounds to zero frames and is refused with transition_not_frame_aligned. How many frames a fade is at 24, 25, 30 and 60 fps.

transition_snapped_to_frame: a 0.3 s fade at 25 fps is 8 frames
Timeline rounds a fade to whole frames and reports transition_snapped_to_frame as a warning, not a failure. What 0.3 s becomes at 24, 25, 30 and 60 fps.

Titan Image Generator alternative: product photo edits on Sume
Replacing Titan Image Generator v2 for product photos? What its features map to on Sume's /v1/images, and what you lose: fine-tuning, palettes, masks.

assets_download_url MCP tool: a short-lived link for an uploaded asset
The hosted MCP tool assets_download_url returns a short-lived signed URL for a first-party asset. Use it only when asked, and never echo the URL in a report.

Bedrock background removal (Nova, Titan) vs Sume transparent output
Nova Canvas and Titan v2 remove backgrounds into transparent PNGs. On Sume, background transparent is a GPT Image 2.5 option. Compare what each returns.

Braze retries a 500: keep the Sume job submit idempotent
Braze sends 500 and 502 responses to retry logic, and a :retry option exists. Give every Sume submit a stable Idempotency-Key so a retry is not a second bill.

Cheapest vs priciest AI video on Sume: a per-second spread of 114x
Sume's video rates run from $0.0125 per second (Grok Imagine Video 1.5) to $1.42155 (Seedance 2.5 at 1080p): the ratios, and what each size buys.

Clamp video duration when swapping Sora for a Sume video model
Each Sume video id has its own seconds range, so old Sora code can ask for a length a model rejects. Clamp per id before you submit; Python table of limits.

compose_video_has_no_audio: a silent clip under a still on Sume
Timeline compose warns compose_video_has_no_audio and still completes. The output is silent. How to add a voice-over afterward with a Timeline render.

Criteo Retail Media onsite video: 720p, 15 s, a Sume avatar clip
Criteo onsite video asks for MP4 at 720p, 15 s recommended and 30 s max, in 16:9, 1:1 or 9:16. Sume avatar output is 720p, so script to 15 seconds.

Narration budget for a daily short-video channel: 30 videos a month
Thirty 750-character narrations a month cost $1.20 on Sume TTS with per-job rounding. The same characters are about $0.50 on MAI-Voice-2.1 and $0.34 on Flash.

Does my Short have audio? Check probe.has_audio before captions
Transcribing a silent clip returns inspect_source_has_no_audio. Probe has_audio first with a frames:false video inspect, then caption only clips with a voice.

Fall back to a second image model after three 502s: a Python breaker
Sume returns 502 when an image job fails inside the wait budget. Count them, switch to a second model id after three, and use a new idempotency key per model.

gpt-image-2 or gpt-image-2.5 to replace gpt-image-1 on Sume?
OpenAI names gpt-image-2.5 as the gpt-image-1 replacement. On Sume, gpt-image-2 and 2.5 differ on references, mask_url, background and quality tiers.

How Sume TTS splits a script into sentence ids (. ! ? only)
Sume's script source cuts sentences at periods, exclamation and question marks only, keeps every character, and numbers them sent_000000. Examples and traps.

Ideogram 4.5 blended cost per image: a 70/20/10 quality mix on Sume
A 70/20/10 low, medium, high mix of Ideogram 4.5 averages $0.0688 an image on Sume, $0.0725 with the fee. Three mixes and a 1,000-image bill.

Ideogram 4.5 is 0.8c to 22c per image: which tiers does Sume sell?
Ideogram lists four quality modes from 0.8 cents to 22 cents at native 2K. Sume's Image API sells low, medium and high at $0.0375, $0.075 and $0.275 an image.

Intercom outbound message with a Sume avatar clip: email or in-app
Intercom's create-message API sends in_app, email or whatsapp with an HTML or plain body. It documents no video field, so link a Sume clip. How to set it up.

Ktor webhook route for an AI video job: receiveText and HMAC SHA-256
A Ktor route reads the raw body with call.receiveText(), checks Sume's sume-v1 HMAC over timestamp.body in Kotlin and returns 401 when the secret is empty.

Log Sume ratelimit-remaining on every Python urllib response
A urllib handler that logs ratelimit-remaining and ratelimit-reset on each Sume response, warning under 10 percent. It also sees 429 replies.

MATLAB webwrite and weboptions: generate an AI video and save the MP4
A MATLAB script posts a Wan 3.0 job to Sume with webwrite, polls the job status with webread and saves the finished clip with websave.

NestJS raw body controller to verify an AI video webhook signature
Enable rawBody in NestFactory, read req.rawBody in a controller and check Sume's sume-v1 HMAC before you act on a job.completed video event.

Nova Canvas 4,194,304 pixel cap and 16 px rule vs Sume image_size
Nova Canvas output sides must divide by 16 and total under 4,194,304 pixels. GPT Image 2.5 on Sume has its own custom-size rules. A side-by-side check.

Nova Canvas IMAGE_VARIATION similarityStrength vs Sume n and reference
Nova Canvas IMAGE_VARIATION takes 1 to 5 images and a similarityStrength of 0.2 to 1.0. Sume has no strength field; here is how to get variations.

Nova Canvas maskPrompt: edit by naming the region, and the Sume way
Nova Canvas accepts a maskPrompt in place of a maskImage. Sume edits work from the prompt alone on most models. How to word the region and test the result.

Nova Canvas outpainting DEFAULT vs PRECISE, and a Sume ratio edit
Nova Canvas outPaintingMode DEFAULT can leave a halo; PRECISE follows the mask. Here is how to extend a photo on Sume, and how to test the seam.

Nova Canvas virtual try-on mergeStyle: BALANCED, SEAMLESS, DETAILED
Nova Canvas try-on has three mergeStyle values with different trade-offs. What each protects, and the closest Sume route with a pixel diff to check it.

One Sume API key per service: what it isolates and what it does not
Sume request budgets are per key and reads and writes are already separate. A key per service isolates revocation and scope, not generation capacity.

Output schema 400 missing_items: an array node needs items
A Format output_schema with an array and no items fails with 400 and rule missing_items before anything runs. The bad schema, the fix, the violation.

Output schema max_enum_values: 1,000 values per enum, then what
Sume refuses an enum of more than 1,000 values with rule max_enum_values. Use a string with a pattern or format, or split the list into two enums.

Output schema max_string_length: descriptions use a 120,000 budget
A big Format output_schema can fail with max_string_length although no field is long. The 120,000-character budget covers every key, name and string in it.

Output schema required_completeness: list every property in required
Sume's strict output_schema wants every declared property in required, and no required entry without a property. Make a field optional with a null union.

Pin the image model id on the queue row so a swap can't break old jobs
Store the Sume model id on each queued render row at enqueue time, then re-point only rows still carrying a retired id. Python sqlite3 sample for gpt-image-1.

Postgres SKIP LOCKED poll table for AI video jobs with next_poll_at
Track Sume video jobs in one Postgres table with next_poll_at, claim due rows with FOR UPDATE SKIP LOCKED and reschedule from next_poll_after_seconds.

Python pre-flight for a Short: catch Timeline schema errors offline
A Python check for a Sume Timeline body: even width and height, allowed fps, 1 to 1800 seconds, fade limits and start order. Run it before the plan call.

Q4 AI asset budget: an October ramp, November peak and December tail
A three-month plan with a November peak: images, voiceovers and 5-second clips cost about $49.79 for the quarter on Sume. The month-by-month table.

Real-estate agent, 25 listings a month: staged photos and voiceover
25 listings with six AI-edited photos, a voiceover and a music bed cost about $14.60 a month on Sume. Unit prices and the sum.

Redis sorted set scheduler for AI video job polling in Python
Keep video job ids in a Redis ZSET scored by next-poll time, claim due ids with ZREM so no two workers poll one job, reschedule by next_poll_after_seconds.

SaaS launch week asset budget: images, voiceovers and clips on Sume
A launch week of 12 Ideogram images, six 450-character voiceovers, six 5-second Grok clips and one music track costs about $1.61 on Sume. The per-line bill.

Scheduled run 400 because the instructions are empty: where to fix it
A Sume schedule with empty instructions can not run. The API run request returns 400 invalid_request, and the text can only be edited in the dashboard.

seedream-v4 or bytedance-seed/seedream-4: which Sume id to store
Sume accepts legacy bare ids like seedream-v4 and seedream-4-5-edit, but the catalog lists org/slug ids. Store the canonical id; Python normalizer inside.