Developers
Building on the Sume API: keys and hosts, jobs and runs, polling, webhooks, idempotency, errors and rate limits, the SDK, the CLI, and MCP auth.

mode webhook returns 400 without a webhook_url: what Sume checks
Submit with mode webhook and no URL and Sume returns 400 invalid_request. Omit mode and send a URL and Sume picks webhook for you. Both rules explained.

Check a long avatar video for face drift: 24 inspect stills
After joining avatar jobs, sample the face across the whole video. Sume Video inspect returns up to 24 stills at times you pick, and the probe is unbilled.

Check a TTS take with an STT round trip: flag skipped words in Python
Transcribe your own voiceover with Sume STT and diff it against the script to catch skipped or changed words before you ship. Python sketch included.

Check avatar lip sync: transcript word times, then stills
Transcribe an avatar video with Sume Video inspect, take word timestamps from words[], and pull stills at those instants with video_frames to inspect the mouth.

Check caption reading speed from STT segments and flag dense sentences
Request sentence segments from Sume STT, compute characters per second for each, and flag the ones too dense to read on screen. Python and caption fixes.

Check a generated ad image against your brand hex color in Python
The Image API takes a prompt, not a color parameter. Measure each result against your brand hex with Pillow and flag drift before the image goes in an ad.

Build a contact sheet from one image call with n variants in Python
Ask the Image API for several variants with n, then tile them into one sheet with Pillow so a reviewer can pick in one glance. Handles 200 versus 202.

Cut AI clips to the beat: BPM to Timeline start times in Python
Ask Lyria for a tempo, turn it into cut times, and render the clips on the beat with Sume Timeline. Python sketch, cost, and how to check the tempo.

Draft at 1K, finish at 2K: read the image resolution descriptor
Sume's resolution tiers run 512 to 4K, but each model lists its own. A script that reads the descriptor, then a draft-then-final pattern for ad images.

Dry run a 30-second AI video before paying: Sume MCP generate_video
Preview a 30-second clip's cost with dry_run and max_spend_usd on Sume's hosted MCP before you submit. Which models reach 30 s and what the gates do.

ElevenLabs Music v2.5 became the default: which model made a track?
ElevenLabs made Music v2.5 the default on 2026-09-11. When a default changes, old and new tracks differ. How to record the engine per track, on Sume too.

elevenlabs say CLI: text to speech from a terminal, and Sume's route
ElevenLabs' CLI got a say command (Eleven v3 default) on 2026-09-07. Sume's CLI has no audio generation commands yet; the TTS job is a plain HTTP call.

ElevenLabs v4 10,000-character limit vs Sume TTS 20,000 transcript
Higgsfield's changelog lists 10,000 characters per ElevenLabs v4 generation; Sume TTS 1.0 takes 20,000. How to split a long script.

Export video model prices weekly: a catalog-to-CSV script
Prices and limits for AI video models change. A short script reads Sume's video catalog into a CSV so you can date each row and track changes.

Fan out 40 image variants without hitting queue_full
Sume accepts jobs as queued up to your plan's capacity, then returns 429 queue_full. Here are the plan numbers and a wave loop that reads generation_limits.

Find near-duplicate generated ad images with an average hash in Python
Four images from one prompt can be almost the same picture. A 64-bit average hash in Pillow flags the near-duplicates so you review each look once.

Fit narration to a 30-second slot: tune TTS speed from measured length
Measure a TTS take with timestamps.words, compute the speed that hits 30 seconds, and know when to cut words instead. Python, within Sume's 0.6 to 1.5 range.

Frame counts for 5 minutes at 25, 30, 48, 60 and 120 fps
How many frames is a 5-minute clip at each Runway Enhance Frame Rate target? The math, plus why Sume's video_frames cap of 24 stills makes it a sampling tool.

Aspect ratios the Sume Images API names, and which one 4:5 is
Sume's Images API names 17 normalized aspect ratios plus auto. Here is the list, what 4:5 means, and why you read the model's own list before pinning one.

Image job statuses for a progress UI: queued is not failed
Five Sume job statuses, two terminal flags, and a mapping to user-facing labels. Plus why a queued image should read as waiting, not as an error.

Keep a text-to-speech pipeline portable: job ids, webhooks, files
How to build a TTS and music pipeline so a model or vendor change touches one function: idempotency keys, signed webhooks, polling, stored files, metadata.

Kling 4.0 launch-day checklist for an API integration
Kling 4.0 is due in October. A short checklist and a Python script that flags the day a new Kling id appears in the Sume video catalog.

Log these six fields for every Sume image call
Job id, request id, idempotency key, model, quality, and metadata. A short logging helper that lets you recover, dedupe, and report an image failure later.

Make an AI voice sound the same across videos: read the job record
A completed Sume TTS job records the engine, voice, language, output format and settings it used. Reuse them so the next line matches. Why it matters after v4.

Check a Meta ad batch for duplicates before upload with Python
A short Python check that flags ads in a batch sharing the same hook and visual before you upload. Useful now that Meta rates creative diversity.

Music prompt rejected? Revise the flagged part, keep the brief
When a Sume music request is rejected on policy, rewrite only the flagged content, keep the tempo, key and instruments, and retry inside your spend cap.

A new AI video model launched: check Sume's catalog in one call
Before planning around Seedance, Wan, HappyHorse or Ray, list Sume's video models and read each one's resolutions, durations and inputs with one GET.

PNG, JPEG or WebP for ad stills: measure file size with Pillow
Sume's Image API has no output_compression field. Request png, jpeg or webp, then re-encode locally and compare sizes before you upload.

A policy snapshot file and a Python check before each AI ad batch
Keep platform AI rules in a JSON file with source and read date, and run a short Python check that flags rules older than 30 days before you queue a batch.

Probe a 30-second AI clip before joining it: video inspect, no stills
Run video inspect with frames false to read a generated clip's probe facts, free, before it goes into a Timeline join. Python script and what the docs promise.

Rerun an image script without paying twice: prompt-hash keys
Derive the Idempotency-Key from the request body so a crashed script that reruns cannot create a second paid image job. Includes the 409 case when you edit.

Recover an image job from the terminal: sume jobs download
The Sume CLI has no image subcommand, but sume jobs status, events, and download work on image jobs made through the API. The commands, in order.

Reference image rejected? A public HTTPS URL checklist
Sume rejects localhost, private-network, non-HTTPS, and signed or private URLs for reference images. Six checks, and what image_not_fetchable means.

Retake one sentence of a voiceover and splice it in with concat parts
Re-record one sentence, not the whole TTS take: use wav sentence segments and one timeline audio concat job with source_in. Python for the parts list.

Same prompt on Seedance 2.5, Wan 3.0 and MiniMax H3: compare via API
Submit one 480p prompt to seedance-2.5, wan-3.0 and minimax-h3 with distinct idempotency keys and metadata, then poll all three. A short Python script.

Seedance 2.5 clip finished but no webhook: 10 attempts, then redeliver
A seedance-2.5 job can complete while its callback fails. Sume retries 10 times, 30 s apart, 10 s timeout each; then you poll or call redeliver.

Seedance 2.5 on Sume's Free plan: 1 running, 5 queued, 6 accepted
On the Free plan one Seedance 2.5 job runs at a time and five more can wait. The seventh submit gets 429 queue_full. How to size a batch.

Verify a Seedance 2.5 job webhook signature in Python
Check the x-sume-webhook-signature on a seedance-2.5 job.completed callback with HMAC SHA-256 over timestamp.body, in 20 lines of standard-library Python.

Number every Shorts series episode on screen with caption cues
YouTube added Shorts series with seasons and episodes in September 2026, per air.io. Burn Episode N onto each clip with Sume caption cues, in Python.

Should you wait for Veo 4? Build on a swappable model id instead
No Veo 4 date, id or price page has been reported. How to ship video work now with the model id in config, and what a swap needs.

Six scene clips in one agent turn: script_run with a paid-call cap
Fan out six scene generations in one script_run on Sume's MCP, cap them with max_paid_calls, then wait on the child jobs. Sketch, limits and failure behavior.

Sora shutdown lesson: run a one-hour video vendor exit drill
OpenAI discontinued the Sora API on 2026-09-24. Rehearse losing a video vendor: swap the model id, rerun five prompts, and record what broke.

TTS take starts late: trim the lead-in with words[0].start
Find where speech really begins with timestamps.words and cut the silent lead-in with one timeline audio split job. Python for the range, $0.01 per job.

Video over 30 minutes: Sume inspect caps at 1800 s
Sume video inspect and video trim reject sources over 1800 seconds. For a longer recording, split it before import, or use audio detach and STT.

Long video understanding: read the transcript, then pull frames
Google's changelog says Gemini fetches transcripts, frames or audio on demand, with 88% fewer tokens. A transcript-first, frames-second flow on Sume inspect.

Reduce video vendor lock-in: swap the model field, keep the pipeline
Keep the video model id in config, read each model's limits from the catalog, and your pipeline survives a vendor change. A script that lists limits.

Review voice agent call recordings: STT word timings on Sume
After you ship a Gemini Live or other voice agent, transcribe the recordings with Sume STT: word timings, sentence segments, a 10-minute cap per request.

How many Wan 3.0 clips run at once on Sume: 1, 4, 8 or 20
Wan 3.0 jobs run under plan-only concurrency: Free 1, Pro 4, Startup 8, Scale 20. Extra jobs queue. What that means for a 30-second render batch.