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

Stitch four voice takes into one 3-minute Short with audio.parts
Timeline audio.parts joins up to 20 gapless narration slices inside one render, no re-synthesis. Build a 180-second Short from four takes, with the math.

Sume SDK idempotencyKey: null sends no key, so POST retries stop
subscribeFormatRun mints a UUID Idempotency-Key by default. Pass null and the create call carries no key, so the SDK will not retry it on a 429 or 5xx.

Preview Sume TTS sentence ids, lengths and job cost before you submit
A short Python script that splits a script like Sume's source API, groups sentences under 20,000 characters and prices each job at $0.0475 per 1,000 characters.

Sume webhook fails the 300-second window: find the clock drift
A valid Sume signature still fails if your server clock is more than five minutes off. Tell drift from a bad secret with a small Python check.

SvelteKit +server.ts endpoint for an AI video webhook: request.text()
A SvelteKit POST handler reads request.text(), verifies Sume's HMAC over timestamp.body with node:crypto and returns 401 for bad or missing signatures.

Narrate 10 slides: one Sume TTS job or ten, and what rounding costs
Ten 80-character slide lines cost 10 cents as ten Sume jobs and 4 cents as one 800-character job. When splitting is worth the extra cents, and when it is not.

Cost per minute of AI narration: MAI-Voice vs Sume at 900 characters
A minute of narration is about 900 characters. That is $0.0198 on MAI-Voice-2.1, $0.0135 on Flash and $0.0428 on Sume TTS, before the 5.5% fee. Worked table.

Timeline 400 on codec, crf or ffmpeg_args: what a Reel spec can send
Sume Timeline refuses codec, crf, preset, filter_complex and ffmpeg_args with a 400. Which output fields it does accept for a 9:16 Reel or Short and why.

Timeline warning transition_downgraded_to_cut: why a fade became a cut
Sume Timeline turns a fade, wipe or slide into a hard cut when the transition does not fit the clip. Why it happens in short vertical edits and how to avoid it.

Titan color-guided generation: 1 to 10 hex codes vs a Sume prompt
Titan Image Generator v2 takes 1 to 10 hex colours with a prompt. Sume has no palette field, so colour goes in the prompt. Write it and check it in Python.

Titan vs Nova Canvas image masks: which colour is edited
Titan says mask value 0 (black) is regenerated and bans alpha. Nova Canvas inpainting edits black too. Build one mask check and test any mask on Sume.

tts_source_integrity_mismatch 422: job differs from accepted script
verify-spine returns 422 tts_source_integrity_mismatch when a finished TTS job's text no longer matches the accepted script. What it checks and how to recover.

tts_source_revision_mismatch 409: stale expected_script_revision_id
Sume returns 409 tts_source_revision_mismatch when the accepted script changed under you or a run is frozen. How to re-read the revision and retry.

tts_text_source_conflict 400: transcript or transcript_source
Sume TTS wants exactly one of transcript and transcript_source. Sending both, neither or a malformed source returns 400. Which code, and how to fix.

Unreal Speech TTS plans in dollars per million characters vs Sume
Unreal Speech's plans work out from $16.33 to $8.00 per million characters. Sume lists $47.50 with no plan. Break-even by monthly volume.

Verify a Sume TTS transcript_receipt SHA-256 yourself in Python
Recompute submitted_transcript_sha256 from your script with NFC and LF canonicalization and compare it to the transcript_receipt on a finished Sume TTS job.

Viber bot video message: 26 MB, 180 s, .mp4 URL, a Sume clip
Viber's bot API wants an MP4 URL ending in .mp4, 26 MB max, 180 s max, and a JPEG thumbnail. A 60 second Sume avatar clip fits. The checks to run first.

What one Ideogram 4.5 image costs in voice minutes and video seconds
One medium Ideogram 4.5 image costs as much as 1.75 minutes of Sume speech or 7.5 transcript minutes. An exchange-rate table from images to audio and video.

Amazon Nova Canvas alternative: edit and generate images on Sume
Looking for a Nova Canvas alternative? Map its task types to Sume's /v1/images: what carries over, what does not, and what an edit costs per model.

Bedrock image features Sume does not have: an honest gap list
Moving off Bedrock image models? These Nova Canvas and Titan features have no Sume equivalent: maskPrompt, mergeStyle, similarityStrength, fine-tuning.

Braze Connected Content has 2 seconds: pre-render the Sume clip
Braze drops Connected Content that answers in over 2 s. A Sume avatar job takes longer, so render first, store the URL, and let the campaign read a fast lookup.

Braze 404 renders empty: a fallback while the Sume clip renders
Braze turns a 404 into an empty string. Sume returns 409 job_not_completed until a result exists. Map one to a fallback URL so no message goes out blank.

Envoy's 15 s route timeout vs a 30 s Sume sync call
Envoy's RouteAction timeout defaults to 15s. Sume sync mode can wait 30 s. Behind Envoy or Istio, use async, or raise the route timeout above the sync wait.

Heroku H12 at 30 seconds: call Sume async, not sync
Heroku's router ends a request at 30 s (H12). Sume sync mode waits up to 30 s too. Submit async, return 202 to the browser, then poll or take a webhook.

Music-only Short: Timeline silence mode with a soundtrack bed
Build a Short with no voice: audio mode silence plus a soundtrack. The bed plays alone at the default -16 dB with no amix loss. Fields, limits, tail rule.

Fade out the end of a Short: Timeline fade_out_seconds limits
Sume Timeline fades video and audio at the ends with output.fade_in_seconds and fade_out_seconds, 0 to 5 each, summing to at most the length. Setup for Shorts.

Rails Active Job that polls an AI video API: retry_job and wait
An Active Job on Solid Queue reads Sume's job status once and calls retry_job with wait from next_poll_after_seconds until the video job is terminal.

Render a Short over MCP: timeline_create, jobs_wait, timeline_get
Three hosted MCP tool calls turn a Timeline document into a vertical Short: create with an idempotency_key, wait on the job, then fetch the result.

Timeline mode sync for a 30-second Short: handle both 200 and 202
Sume Timeline mode sync waits up to 30 seconds and returns 200 if the render finished, else 202. Why a Short client must handle both, with a Python poll loop.

SDK waitForJob after a 202 from createImage: TypeScript sample
When createImage returns 202 on a slow gpt-image-2.5 render, pass the job id to waitForJob from @sume-com/sdk and read the terminal job instead of hand-polling.

Sume TypeScript SDK createImage: a retired model id fails tsc
Sume's @sume-com/sdk lists accepted image model ids as a string union, so gpt-image-1 fails to compile. Use tsc as the migration checklist.

Rotate the Sume webhook secret twice in 24 hours: the oldest one dies
One rotation keeps the old secret valid for 24 hours. A second rotation inside that window retires the secret from two rotations ago. Verifier in Python.

Sume webhook rotation: upgrade the verifier before you click Rotate
During a rotation window Sume sends two signatures in one header. A receiver that compares the whole header for equality fails every delivery. Fix it first.

30-second explainer video: a bill of materials from stills to render
Six Ideogram stills, a 450-character voiceover, a music track, captions and a render for a 30-second explainer cost about $0.69 on Sume, line by line.

AI asset unit-cost sheet for client quotes: image, voice, video
A ten-row cost sheet from the Sume catalog: image, voice, transcript, cutout, music, render and video-second prices, all-in with the 5.5% fee.

arq worker that polls an AI video job with defer_by in Python
An arq task reads Sume's job status once and enqueues itself again with _defer_by from next_poll_after_seconds, giving asyncio polling without a sleep loop.

asyncio Semaphore size for Sume image batches: accepted capacity
Size the semaphore to what Sume accepts, concurrency plus queue: Free 6, Pro 24, Startup 48, Scale 120. A fake-submit test proves the peak never exceeds it.

BullMQ delayed job that polls an AI video job and reschedules itself
A BullMQ worker reads Sume's job status once, then adds the next poll with a delay from next_poll_after_seconds, so no worker slot is held while a clip renders.

Can a YouTube Short be square? Rendering 1080x1080 in Sume Timeline
YouTube says Shorts can be square or vertical. How to export 1080x1080 from Sume Timeline, what fit does to a 9:16 source, and the 3-minute ceiling.

CI smoke test for Ideogram 4.5 on Sume: one low-quality image
A bash and jq check that submits one 1K low-quality Ideogram 4.5 image, passes on 200 or 202, and explains 401, 402 and 429. List price is $0.03.

Cost of one finished minute of AI video by model, with 1, 2 or 3 takes
What 60 seconds of finished AI video costs on Sume at 720p or 768p across Seedance 2.5, Wan 3.0, Omni Flash and MiniMax H3, when you keep every take or 1 in 3.

Does a crossfade shorten a Short? Timeline start times explained
In Sume Timeline the declared start of each slot is authoritative, so a crossfade does not eat into the total length. How to keep a Short under its limit.

Excel VBA: submit an AI video job and poll it with Application.OnTime
An Excel macro posts a Wan 3.0 job to Sume with ServerXMLHTTP, saves the job id in a cell and re-checks status with Application.OnTime without blocking Excel.

GitHub Actions repository variable for the image model id: no commit
Keep the Sume image model id in a GitHub Actions repository variable, so a gpt-image-1 replacement is a settings change or one gh command, not a pull request.

gpt-image-1-mini replacement on Sume: what each image id costs
gpt-image-1-mini shuts down December 1, 2026. Compare billed Sume prices per image for budget ids and see why mini token rates don't map one to one.

Huey task that polls an AI video job with schedule(delay=...)
A Huey task reads Sume's job status once and reschedules itself with task.schedule(delay=...) from next_poll_after_seconds, so no worker thread sleeps.

Ideogram 4.5: low drafts then one high final, or high only? Break-even
At $0.0396 a low draft and $0.2901 a high final all-in, six drafts plus one final cost $0.53, 1.8 high renders. When drafting pays, with the math.

Ideogram 4.5 low to high on one order: new Idempotency-Key or a 409
A reused Idempotency-Key with a different payload returns 409 idempotency_conflict. Key on order id plus a payload hash so a quality change is a new job.