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

Fix lens distortion in video by API with lenscorrection
Sume's video filter allowlists ffmpeg's lenscorrection, so barrel distortion from a wide action-cam clip can be corrected by coefficients you choose and test.

FLUX.2 flex steps and guidance: BFL has them, Sume does not
BFL lists adjustable steps and guidance only for FLUX.2 flex ($0.06/MP). Sume lists flux.2-flex but rejects unlisted parameters with 400.

FLUX.2 JSON prompt: on Sume it is text in the prompt field
BFL says FLUX.2 accepts JSON-structured prompts. On Sume, prompt is a plain string, so JSON goes in as text; other fields are typed.

FLUX.2 LoRA API: finetune_id on BFL, not on Sume
BFL serves klein LoRAs through -finetuned endpoints with finetune_id. Sume rejects provider-specific parameters, so use reference images instead.

FLUX.2 max grounding search: what it is, what Sume lists
Only FLUX.2 [max] does web-grounded generation at BFL. Sume lists flux.2-pro and flux.2-flex, so grounding is not available there.

FLUX Request Moderated vs Content Moderated, and Sume's reason
BFL separates input moderation from output moderation and adds a Moderation Reasons array. Sume groups refusals under content_policy_rejected.

FLUX safety_tolerance 0 to 5, and what Sume does instead
BFL's safety_tolerance runs 0 (strictest) to 5 on FLUX.2, default 2. Sume has no such dial: it returns 400 unsupported_parameter.

FLUX Virtual Try-On v2: 4 MP inputs and a Sume reference edit
BFL's vto-v2 keeps inputs up to 4 MP as-is. Sume has no try-on endpoint in these docs; a garment swap is a reference edit with public HTTPS images.

Upload 30 reference images to a Sume Format run (images only)
A Format run takes up to 30 images in attachments[], type input_image, by public HTTPS URL or asset_id. Video and audio attachments are not supported today.

Gemini 2.5 not available in a new project: what to do
Google's September 18 changelog limits Gemini 2.5 models to users who already used them. New projects are pointed to 3.5 Flash-Lite or 3.8 Flash.

gemini-3.1-flash-tts-preview replacement: 3.8 Flash-Lite TTS
Google names gemini-3.8-flash-lite-tts as the replacement for the 3.1 preview TTS model. What that changes for you, and what stays fixed on Sume TTS.

Gemini TTS API polling: the Sume audio job pattern
Gemini 3.8 Flash TTS went GA on Sep 22. On Sume, speech is a job: submit async, store the job id, poll the status URL, and never resubmit while it runs.

Gemini 3.8 TTS returns WAV by default; Sume TTS returns MP3
Gemini 3.8 TTS unary requests return WAV with a RIFF header. Sume TTS 1.0 defaults to mp3 at 44100 Hz, so ask for wav when your pipeline needs it.

Gemini TTS reads stage directions aloud: Sume emotion field
Gemini 3.8 TTS speaks its text field verbatim, so style goes in speech_metadata. On Sume, keep the transcript clean and put delivery in generation_config.

Gemini API file size limit: 2GB per file, 20GB storage
Gemini's rate-limits page lists a 2GB input file limit and 20GB file storage under Batch API limits. Sume takes public HTTPS URLs instead of uploaded files.

Gemini Batch API rate limits vs Sume's 100-run bulk queue
Gemini Batch API allows 100 concurrent batch requests and a 2GB input file. Sume bulk runs queue up to 100 Format runs with concurrency 1 to 16.

Gemini image_size 1k rejected: use 1K, and Sume resolution tiers
Gemini rejects a lowercase image_size such as 1k; use an uppercase K. Sume's images API takes a resolution tier, and only values the model lists.

Omni 1.1 Flash start and end frame API on Sume
Omni 1.1 Flash can render between two keyframes, including looping clips. On Sume, Omni takes image_url plus end_image_url; frame_images covers other models.

Gemini Omni previous_interaction_id vs a Sume job per request
Google chains Omni 1.1 Flash extensions with previous_interaction_id. Sume has no such field: each request is its own job, and an edit takes a video_url.

Seamless looping food video with AI: same first and last frame
To loop a food clip, send one image as image_url and end_image_url to Gemini Omni Flash 1.1, which Google says suits seamless loops. Clips run 3 to 10 seconds.

Text to speech mulaw 8000 Hz: Gemini 3.8 and Sume TTS
Sume TTS can return pcm_mulaw or pcm_alaw at 8000 Hz in wav or raw containers. Gemini 3.8 TTS does it with audio/mulaw and audio/alaw mime types.

Gemini TTS two-speaker limit: three-voice dialogue with Sume concat
Gemini TTS configures two speakers per request. For three voices on Sume, make one TTS job per voice and join up to 20 parts with Timeline audio concat.

Gemini TTS voice design voice_ id vs Sume voice ids
Gemini voice design returns a persistent voice_ id from a text prompt. Sume TTS accepts only a voice UUID or voi_ library id, and rejects other shapes with 400.

gpt-image-2.5 batch pricing: $4 image input, $15 output per 1M
OpenAI's batch rate for gpt-image-2.5 is $4.00 image input and $15.00 output per 1M tokens. Sume's docs describe a per-image reserve, not a batch tier.

Change a garment's colour in a photo with a mask_url edit
Recolour clothing with a mask: send the photo as an input reference, a public HTTPS mask_url, and a colour prompt to ChatGPT Image 2.5 on POST /v1/images.

GPT Image aspect ratios for a Pinterest pin (2:3) and Instagram (4:5)
Sume lists 17 aspect ratios, including 2:3 for a Pinterest pin and 4:5 for an Instagram portrait. A model only accepts the ratios its catalog row lists.

GPT Image 2 input_fidelity: omit it; Sume returns 400
OpenAI says to omit input_fidelity for gpt-image-2 because inputs run at high fidelity. Sume lists no such field and rejects unlisted parameters with 400.

GPT Image moderation_blocked vs Sume content_policy_rejected
OpenAI returns moderation_blocked with moderation_details. On Sume, policy refusals are grouped under content_policy_rejected. What to read and when to retry.

GPT Image revised_prompt: what a Sume images response returns
OpenAI returns revised_prompt on the image generation call. A Sume POST /v1/images response has data[].url and usage, with no revised prompt field.

GPT Image user error: don't retry unchanged; Sume failures unbilled
OpenAI says not to auto-retry image_generation_user_error without changing the prompt or inputs. On Sume, retry 429 with backoff; failed images are not billed.

gpt-realtime-translate pricing: $0.034 per minute, and STT plus TTS
OpenAI lists gpt-realtime-translate at $0.034 per minute. Sume has no live translate line; STT 1.0 and TTS 1.0 are separate rates you add up yourself.

gpt-transcribe expected languages vs Sume STT language_code
OpenAI's gpt-transcribe accepts multiple expected input languages. Sume STT takes one optional language_code hint or auto-detect. What to send for mixed audio.

Grok Imagine base64 response_format vs a Sume hosted URL
xAI lets you request base64 instead of a temporary URL. Sume returns Sume-hosted, signed URLs in data[].url, not inline base64, for x-ai/grok-image.

HappyHorse 1.0 API: what Runway lists and how to check Sume's models
Runway lists HappyHorse 1.0 at 3-15 seconds, 720p and 1080p. Sume's video docs name no such id, so read /v1/videos/models before you plan around it.

HeyGen 429 Retry-After vs Sume rate_limited and queue_full
HeyGen sends 429 with a Retry-After header in seconds. Sume sends 429 rate_limited with retry-after when present, and a separate 429 queue_full.

HeyGen asset upload max size: 32 MB, and what Sume does instead
HeyGen's POST /v3/assets caps files at 32 MB, URLs included. Sume has no asset step: requests take public HTTPS URLs, and oversized bodies return 413.

HeyGen audio file size limit (MP3/WAV 32 MB) vs Sume 10 MB
HeyGen audio_asset_id takes MP3 or WAV up to 32 MB. Sume's Fabric audio_url must be on the Sume media host and at most 10 MB. What each rule means.

HeyGen audio to video max length: 10 or 30 min vs Sume 300 s
HeyGen's pages say 30 minutes per audio-to-video request and 10 minutes for avatar audio input. Sume's Fabric route caps duration_seconds at 300.

HeyGen avatar script limit: 5,000 characters vs Sume's 4-60 s
HeyGen caps avatar script text at 5,000 characters. Sume has no character cap in its docs: it accepts scripts estimated at 4-60 seconds inclusive.

HeyGen cinematic avatar API: 3 looks per shot vs Sume's one
HeyGen cinematic_avatar takes a prompt and 1-3 avatar looks with no script. Sume Avatar Video resolves one avatar per final video from a script.

HeyGen download_failed error: URL rules vs Sume's media errors
HeyGen download_failed means a media URL was not public, mismatched or corrupt. Sume returns image_not_fetchable or input_media_unreachable for similar cases.

HeyGen image to video from a photo API vs Sume image_url
HeyGen type image animates a PNG or JPEG with a script and voice_id, no avatar setup. Sume does it with image_url plus audio on the Fabric route.

HeyGen insufficient_credit vs Sume insufficient_credits (402)
HeyGen returns code insufficient_credit with HTTP 402. Sume returns insufficient_credits, plural, also 402. Match on the exact string and the status.

HeyGen create avatar from a text prompt API vs Sume
HeyGen POST /v3/avatars type prompt takes up to 1000 characters and an aspect_ratio. Sume creates a text-only avatar with a Prompt input on avatar-1.0/generate.

HeyGen avatar new outfit with reference images vs Sume
HeyGen prompt avatars take avatar_id plus up to three reference_images for a new outfit. Sume's photo input takes one image_url per avatar.

HeyGen Stripe Projects API key vs how you get a Sume key
HeyGen lets an agent provision a key with stripe projects add heygen/api. Sume keys are created in the dashboard, workspace-scoped and shown once.

HeyGen studio video scene limit: 50 scenes, and Sume's 4-60 s plan
HeyGen studio videos allow 50 scenes and 30 minutes per scene. Sume multi-scene video_inputs share one 4-60 second window and one resolved avatar.

Add a hook title to the first seconds of a video with one cue
Send one authored cue with start 0 and end 3 to POST /v1/video-captions and Sume burns that hook text into the clip, with no speech-to-text step.