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

Instagram 4:5 portrait image API: 14 Sume models list 4:5
Fourteen of the 18 Sume image rows list 4:5, from Qwen Image at 3 cents to GPT Image 2 at 27 cents. The table, plus what the 1080x1350 post-step means.

Is MAI-Voice-2.1 on Sume? What the TTS Router lists instead
No. Sume's TTS Router lists five Sonic ids, each up to 20,000 characters at the same price. MAI-Voice-2.1 and Flash are not in the catalog.

Waiting 10 minutes for a Sume render over MCP: 11 jobs_wait calls
A remote MCP jobs_wait holds at most 55 seconds, so a 10-minute render takes up to 11 calls at the cap, 12 at the default 50. Re-issue the wait; never resubmit.

Log the Sume request_id in Python JSON logs, no keys or URLs
A small logging helper for failed /v1/videos calls: keep error.code, request_id and job id, and leave out the API key and signed media URLs.

4,750-character newsletter read aloud: MAI-Voice-2.1 vs Sume TTS cost
A 4,750-character newsletter costs 23 cents on Sume TTS in one job, against about 10.5 cents at the MAI-Voice-2.1 per-character rate listed by a tracker.

Make an AI avatar from a selfie: the photo URL rules on Sume
Sume builds an avatar from a prompt, a profile or a photo. The photo must be a public HTTPS image URL; localhost, private and non-image URLs are rejected.

Can an MCP OAuth token double as a Sume API key? No
Sume says hosted MCP takes an OAuth token or an API key, never one for the other. Do not paste a token into x-api-key or mint a key as a workaround.

Music 1.0 or Music Router: which route for new Sume code?
Use POST /v1/music-router/generate for new code. Music 1.0 still works but resolves through the router; every router model bills the same fixed $0.125.

No progress percent on the Sume video poll: status plus elapsed time
The poll has status, not a percentage. How to build an honest progress label from pending, in_progress and elapsed seconds, with a 30-second interval.

One Sume MCP URL in Claude Code, Cursor and VS Code: keys compared
One https://mcp.sume.com/mcp URL, three shapes: claude mcp add --transport http, Cursor's mcpServers url, and VS Code's servers with type http.

PowerShell 7: submit, poll and save a Sume video, no SDK
A Windows-friendly script for POST /v1/videos: Idempotency-Key, a 30-second poll on polling_url, and a download from unsigned_urls[0]. Fits in 14 lines.

Preview an AI avatar video before paying for the full render
Sume avatar video previews make first-frame stills only. Approve them, then call generate-video; you can change the final quality tier without a new preview.

Pro key: 300 writes and 12,000 reads a minute for an agent on Sume MCP
On Sume Pro, each key gets 300 writes and 12,000 reads per minute. An agent polling 20 jobs every 5 s uses 240 reads, 2 percent of the read budget.

Brand-color captions: punch and tiktok-green skip design
Sume's docs say punch and tiktok-green read none of the design tokens. To change a caption color per request, use slam or a Hangul style. Token groups.

Python match on a Sume /v1/videos poll: five statuses, one handler
Python 3.10 structural matching on the poll dict: wait on pending and in_progress, return on completed, raise on failed or cancelled. Runs under asyncio.run.

Read back a Sume TTS job to keep the next line in the same voice
A completed Sume text_to_speech job records model_id, voice, language, output_format, generation_config and speed. Reuse them so line two matches line one.

Recorded voice to talking face: Fabric or H3 Max lip sync on Sume?
Sume has two still-plus-audio routes: veed/fabric-1.0 for 1-300 s and MiniMax H3 Max Lip Sync for audio of 5-14.8 s. Choose by audio length and what you have.

Grep for nano-banana-2 in your code: those calls bill as 2.1
Retired Nano Banana 2 ids still run on Sume, as 2.1 at 10 cents at 1K. A grep-and-replace plan so logs, tests and cost sheets name the model that ran.

Retry an avatar video submit without paying twice on Sume
Use one Idempotency-Key per paid avatar video submit and poll the job instead of resubmitting after a timeout. A Python example and the rules from Sume docs.

Reuse one AI spokesperson across videos with an avatar handle
A Sume avatar_handle is a stable name for a ready avatar. Sume strips a leading @, so you create once and call the handle in every talking-video request.

Seedance 2 Mini at 1080p costs less than Seedance 2.5 at 720p: 10 s
A 10-second 9:16 clip: Seedance 2 Mini at 1080p is $4.26 on Sume, below Seedance 2.5 at 720p ($5.78). Full ladder for 2.5, 2.0, Fast and Mini inside.

sume/auto or a pinned image model: what the response shows
With sume/auto, job.model stays sume/auto, the model list omits it and the family is never named. A pinned id echoes back as requested.

A Sume image job at 50 seconds: slow, queued, or stuck?
Sume's docs say an image still running after a 50 s jobs_wait is usually stuck, not slow. Check queued vs processing and events first; never submit twice.

STT language: Sume language_code hint vs the 60 languages MAI lists
Sume STT takes an optional language_code and auto-detects when omitted. A tracker lists MAI-Transcribe-2-Streaming at 60 languages; Sume's docs state no count.

Does a rejected Sume video request cost anything? Free 400 probes
A malformed POST /v1/videos is checked before any estimate or reservation, so a 400 or 404 bills nothing. Three probes to test size, seed and model ids.

Talking presenter: Fabric still plus voice, or video model plus voice?
Sume docs: video models do not lip-sync to TTS, so use a still plus audio on Fabric ($0.1875/s at 720p listed). Wan 3.0 is cheaper but will not match the voice.

The 202 from POST /v1/videos has four fields: where the rest arrives
The Sume submit response returns only id, polling_url, status and model. Usage, unsigned_urls and error come on the poll. A parser that expects no more.

Timeline audio concat or audio.parts: which join for narration takes?
Use audio.parts when the narration only feeds one render; use Timeline audio concat when you need a reusable file. Concat is $0.01 per job, up to 1,800 s.

Timeline output fps: omit it to follow your clips, or get a warning
Leave output.fps out and Timeline 1.0 follows your longest video sources. Force 30 on 24 fps clips and the job warns output_fps_resamples_sources.

Transcribe a 90-second clip with video inspect: cost and reservation
Video inspect with transcribe true adds Sume STT at $0.01 per audio minute; send duration_seconds 90 so the hold fits, or it reserves one minute.

Sume video poll usage.cost: reserved while running, captured at end
The usage.cost number is the Sume billable amount: the reservation while a job runs and the captured amount once it settles. wan-3.0 at 720p, 10 s, as math.

Video frames caps at 24 stills: a 15 s hook needs fps 1.6, not 2
Video frames returns at most 24 stills and fps up to 2. At 2 fps only 12 s are covered, so a 15 s hook needs fps 1.6; the Python below checks any length.

Old prompt says video-router_create? Sume now takes generate_video
Sume retired the hosted MCP tool name video-router_create for generate_video and maps dots to underscores. Update the prompt, then check tools_list.

Vidu Q4 takes 15 image refs: what Sume's reference limits are
Vidu Q4 Preview lists up to 15 image and 3 audio references. Sume does not list Vidu; Gemini Omni Flash 1.1 takes 10 images and 3 clips of 3 s, none audio.

VS Code mcp.json: put the Sume API key in a password input
In VS Code, declare a promptString input with password true and reference it as ${input:id} in the x-api-key header, so the Sume key never lands in mcp.json.

VS Code mcp.json for Sume: set type http, not sse
VS Code accepts type http or sse for a remote MCP server. Sume documents a streamable HTTP endpoint at https://mcp.sume.com/mcp, so use type http and a url.

Wait for an avatar video in one request? Sume sync stops at 30 s
Sume sync and subscribe modes are the same bounded wait of at most 30 seconds. For avatar videos use async with polling or a webhook, not a long HTTP hold.

Sume /v1/videos has id and generation_id: which one do you store?
Both fields hold the same job id on Sume, so store id. Why generation_id exists and where that id also works: /v1/jobs status and result, webhooks, redeliver.

A 1.5-second clip allows a 0.75-second fade: Timeline limits
Timeline 1.0 caps a transition at 1 second and 50% of the shorter neighbor clip. Table of the maximum fade for 0.5 to 4 second clips, plus the refusal codes.

A/B test two video models: pin the ids, sume/auto hides the family
sume/auto always reports model sume/auto and never discloses the family that ran, so it cannot A/B two models. Pin both ids; a 5 s 480p pair costs $0.76.

AI avatar video length limit: Sume accepts 4 to 60 seconds
Sume Avatar 1.0 accepts scripts that it estimates at 4-60 seconds. What happens outside that window, and how to split a longer script into jobs.

Edit returns a square? A 1-cent test for aspect_ratio auto vs none
Omitting aspect_ratio on a Sume edit is not the same as auto. A 1-cent low-quality regression test that catches the dropped field before it ships.

AI presenter for YouTube Shorts: format limits and Sume output
Shorts can be square or vertical and run up to three minutes. Sume avatar videos are 9:16 or 1:1 at up to 60 seconds per job, so one job fits a Short.

AI spokesperson video for TikTok ads: a spec check against Sume
TikTok recommends 9:16 with at least 540x960 for non-Spark ads. Sume avatar videos default to 9:16 at 720p. What to verify before you upload.

API Gateway to Lambda: verify a Sume video webhook on the raw bytes
A Sume callback_url can point at a Lambda behind an HTTP API. Decode the body to bytes first, then verify sume-v1 with the SDK. Handler code is under 30 lines.

Avatar face swap beta limits: 4 to 15 seconds, quality required
Sume Avatar Face Swap is Beta: a public HTTPS source video of about 4-15 seconds with audio, a required quality tier, and no prompt or aspect options.

Avatar video with a product image: the per-second price gap
On Sume Avatar 1.0 a product_image adds $0.010 to $0.030 per second by tier. For a 30-second spokesperson clip that is $0.30 to $0.90. Arithmetic inside.

Avatar video succeeded but captions failed: what to do on Sume
On Sume a caption-stage failure is soft: the avatar job can still succeed with a clean video_url and captions.status=failed. How to check it and add captions.