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

Vidu Q4 takes 15 reference images; Sume rows cap at 9 or 10
Vidu Q4 accepts 1 to 15 reference images. Sume has no Vidu row: most rows allow 9 images, Wan 3.0 and Omni allow 10. Caps for images, video and audio refs.

Crop a 16:9 master to 1:1 and 4:5: widths 0.5625 and 0.45
A centred 1:1 crop of 16:9 keeps 0.5625 of the width; 4:5 keeps 0.45. LinkedIn lists both ratios. Exact Sume video-filter crop values with rounding notes.

Omni Flash 1.1 reference-image fee: Runway adds 1 credit, Sume none
Runway adds 1 credit per reference image on Gemini Omni Flash 1.1; Sume bills output seconds only. 8-second examples show which is cheaper at each resolution.

Twelve colourways times three takes: n=3 versus 36 calls on Sume
For 12 colourways with 3 takes each, use 12 calls with n=3, not 36 calls with n=1. Same cost, fewer requests. Totals on FLUX.2 Pro and Seedream 4.5 inside.

TikTok ad AI disclosure: the AIGC label or your own caption
TikTok's ad policy accepts the AIGC label or your own clear disclaimer, caption, watermark or sticker. Here is what Sume can burn in and what it cannot.

Aspect ratio auto on Sume: 6 image models list it, 8 edit models don't
Which Sume image models accept aspect_ratio auto when you edit a photo, which edit models reject it with a 400, and how to pick a ratio in code instead.

HeyGen avatar_video.fail has no fields: what Sume sends on failure
HeyGen says to treat avatar_video.fail as a signal and re-read the video. Sume's job.failed carries status ERROR and an error object. Read 2026-10-10.

Tavus callback_url payloads: what to check before you trust one
Tavus's webhooks page lists conversation events but no signature or retry rule. How to treat them, vs Sume's signed events (read 2026-10-10).

Avatar preview final render has no webhook_url: poll the job
The preview generate-video call takes only quality, so it has no webhook_url. Poll the job, or use the direct avatar endpoint for a webhook-driven render.

HeyGen avatar_video.success vs Sume job.completed: fields to keep
HeyGen's success event carries video_id, url and share-page links. Sume's job.completed carries job_id and artifacts. Which fields to keep (read 2026-10-10).

Synthesia-Signature vs Sume's webhook signature: one verifier?
Synthesia signs timestamp.request_body with HMAC-SHA256; Sume signs the same shape. Header names, prefix and tolerance differ. Compare both (read 2026-10-10).

HeyGen webhooks: 10 s ack, 24 h retries vs Sume's 10 attempts
HeyGen retries failed webhooks with exponential backoff for up to 24 hours after a 10 s timeout. Sume retries 10 times, 30 s apart. Read 2026-10-10.

Sume Send test vs Redeliver: which to use for avatar video jobs
Send test posts a dummy webhook.test payload to a URL you type; Redeliver re-sends a real job's terminal event with a fresh signature. When to use each.

HeyGen webhook secret shown once: rotation vs Sume's reveal
HeyGen shows its webhook secret once and drops the old one on rotate. Sume lets you re-read it and signs with both secrets while rotating (read 2026-10-10).

Ruby verifier for Sume avatar job webhooks (HMAC SHA 256)
A Ruby method that verifies Sume's x-sume-webhook-signature: HMAC SHA 256 over timestamp.body, any sume-v1 entry, five-minute window, empty secret refused.

Talking-video API status values: HeyGen, Synthesia, D-ID, Sume mapped
Four avatar-video APIs, four status vocabularies: pending, in_progress, started, queued. Map them to one state machine in your code (read 2026-10-10).

Video-trim says unsupported_media_source: which Sume routes take URLs
Trim, filter and compose need a media.sume.com clip; upscale, STT, RMBG and captions take public HTTPS URLs. Imports take TikTok and Instagram. Read 2026-10-10.

Can video-trim output a 4K frame? Each side is capped at 2160 pixels
Sume video-trim conforms output to 256 to 2160 pixels a side at 24, 25, 30 or 60 fps, exact precision only, so a 3840 pixel side is refused. Read 2026-10-10.

Q4 gift guide video: five picks, five stills, price cues
Build a five-pick holiday gift guide video on Sume: five stills, 400 characters of TTS, a Timeline render and one cue caption job for prices. Read 2026-10-10.

Q4 holiday campaign budget: 34 posts priced from Sume endpoint rates
Price a Q4 holiday campaign on Sume: 28 daily stills with voice, 4 weekly 720p clips and 2 gift guides. Endpoints and totals, read 2026-10-10.

Pick the cheapest Sume image row for a ratio and 3 refs (Python)
A 24-line Python script reads GET /v1/images/models and the endpoints route, filters by aspect ratio and reference count, and sorts by billed price.

Sume image 400 'does not accept aspect_ratio': read supported (Python)
When a Sume image row rejects aspect_ratio with 400 invalid_request, the error carries a supported array. This Python snippet picks the nearest listed ratio.

Sume Format instruction limit: why long briefs belong in input
A Format instruction accepts 8000 characters but only about the first 4000 reach the prompt. Put long briefs in the input field, which is stored whole as data.

ElevenLabs dubbing output: mono v1, stereo v2, and Sume channels
ElevenLabs dubbing v1 returns mono and v2 at most stereo. On Sume, detach keeps source channels or mono, and a concat of mixed layouts fails by design.

A for await loop over Sume job status: one async generator, 3 runtimes
Wrap Sume status polling in an async generator and read it with for await. One fetch-only file ran unchanged on Node, Bun and Deno and honors the poll hint.

Does a 60 fps Timeline render cost more than 24 fps on Sume?
No: Timeline render bills $0.10 per output minute, rounded up, and output.fps only picks 24, 25, 30 or 60. What changes is judder, not price. Read 2026-10-10.

Is there a Sume API test mode? No sandbox key, but two hosts
Sume has no sume_test key. Use the dev host with its own key, cap each run with generation_spend_cap_usd, and mock the rest. What each option costs and covers.

ElevenLabs sound effects: prompt influence, 48 kHz WAV, and Sume
ElevenLabs SFX offers high or low prompt influence and 48 kHz WAV. Sume has no sound-effects route; a Music prompt plus a split makes a sting. What you lose.

Family holiday greeting: a 10-second Omni Flash card with music
Make a 10-second holiday greeting with Gemini Omni Flash 1.1 at 720p, a Lyria 3.5 music bed and a caption cue for the message. Chain and cost, read 2026-10-10.

OpenAI background mode vs Sume Agent Completions: polling
Both let you start a long job and poll for it. OpenAI background mode returns a response id; Sume returns an agrun_ receipt and needs a required spend cap.

openapi-fetch with Sume's OpenAPI JSON: a typed client in 20 lines
Generate types from Sume's reference JSON with openapi-typescript, then call it with openapi-fetch and an x-api-key middleware. A type-checked sample.

Grok Imagine video edit on xAI vs the video_url error on Sume
xAI edits video with grok-imagine-video; Sume accepts video_url only on Gemini Omni Flash 1.1. The exact error, the edit limits and what to send instead.

Scheduled run cost cap: a per-run cap can only lower it
A scheduled Sume run defaults to a $1.00 cap. A per-run cap can only lower the schedule cap, never raise it. Here is how that differs from a direct Format call.

Product video from four reference photos with Omni Flash 1080p
Give Gemini Omni Flash 1.1 up to 10 reference images; a 6-second 1080p product video is $1.125 on Sume. Reference limits and costs, read 2026-10-10.

Shortest clip each Sume video row accepts, from 2 s Wan to 5 s H3
Minimum duration per Sume video row, from 2 seconds on Wan 3.0 to 5 on H3, with the billed price of that shortest clip at the cheapest resolution.

Tailscale Funnel for Sume webhooks: a public HTTPS URL for localhost
Sume webhook URLs must be public HTTPS, so localhost is rejected. Tailscale Funnel gives your dev machine one, plus a receiver that refuses an empty secret.

TikTok Ad Network thumbnail is the first frame: check frame 0
TikTok's Ad Network spec says the first frame is the default thumbnail. Pull frame 0 with Sume video frames, and skip a fade-in so the thumbnail is not black.

Make webhook response module placement and Sume's 10 retries
Make answers 200, 400 or 429 by default, and a mid-scenario response module can hide errors. How that interacts with Sume's ten delivery attempts.

Grok Imagine mid-video frame pin vs Sume's first and last frames
xAI lets Grok Imagine 1.5 pin first, last and mid frames. Sume's Grok row takes one start still; this maps pinning to Sume rows with first and end frames.

Seedream 5.0 Lite edit on Sume: no auto ratio, so set the shape
Of the three Seedream rows on Sume, only Seedream 4.0 lists an auto aspect ratio. For 5.0 Lite and 4.5 edits, pass an explicit ratio that matches your source.

Kling 3 on Sume: a 720p request renders 1080p at the same rate
Sume's Kling Video v3 Pro row has one resolution, 1080p. A 720p request is accepted and still renders 1080p. The rate depends on audio, not pixels.

Test a Sume poll loop with node:test mock.timers, no real sleeping
Use node:test mock.timers to prove your poll loop waits next_poll_after_seconds, falls back to 2 s, and never polls early. A runnable test, no network.

Python 3.14 uuid.uuid7() as a Sume Idempotency-Key: when it is safe
uuid.uuid7() is new in Python 3.14 and makes a tidy Idempotency-Key for Sume submits, if you generate it once per intent and store it. A runnable stdlib sample.

Can I create a Sume schedule over the API? Not today
Sume schedules are created in the dashboard with a cron and timezone or an API-only trigger. The API cannot create or edit them, but it can fire and read runs.

Workflows createBatch: 100 instances, one per Sume job?
Cloudflare Workflows now creates up to 100 instances per call. Why a 100-job Sume wave fits only on Scale, and why to pass your own instance IDs.

Synthesia API rate limits by tier vs Sume's queue and 429s
Synthesia caps writes at 60 to 120 a minute by tier and answers 429. Sume queues accepted jobs and returns queue_full or rate_limited. Read 2026-10-10.

uv run a single-file Python script against the Sume API (PEP 723)
A one-file Sume script with inline PEP 723 dependencies runs with uv run and no virtualenv. Submit, poll next_poll_after_seconds, print the result.

Do reference images raise the price of a Sume image edit?
On most Sume image rows an edit costs the same as a text prompt. On GPT Image 2 each input image adds $0.013, and on GPT Image 2.5 input tokens are metered.