Virtual try-on video API: put a garment on a person
Make a virtual try-on video with the Sume API: call sume-virtual-try-on or sume-virtual-fitting with photos, or make a still and animate it.

To make a virtual try-on video with the Sume API, call one of two catalog Formats, sume-virtual-try-on or sume-virtual-fitting, at POST /v1/formats/sume/{slug}/runs with photos of the person and the garment in attachments. To approve each step yourself, make a try-on still with POST /v1/images and animate it with POST /v1/videos.
Format facts come from the Format catalog, Create a run, and Format API docs pages and each Format's published description; the step-by-step path comes from the Image API and Video generation pages. All were read on 2026-09-27.
Which try-on Format should I call?
GET /v1/formats/sume/{slug} returns either Format's description before you call it. Both descriptions end “Not for: static campaign deliverables”, so both make video. An ad or an outfit switch fits sume-virtual-try-on; a product-page fit preview fits sume-virtual-fitting. “Accurate garment fit” is that Format's stated aim, not a guarantee, so review every video before you publish it.
| Slug | Catalog title | What it makes | Use it for |
|---|---|---|---|
sume-virtual-try-on | Sume Virtual Try On | “shows a person naturally wearing or switching into a supplied fashion item” | “apparel try-on ads, outfit previews, styling transformations, and social commerce fashion videos” |
sume-virtual-fitting | Sume Virtual Fitting | “focused on accurate garment fit, silhouette, and movement on a supplied person” | “ecommerce fitting previews, apparel PDP videos, size-and-shape visualization, and wardrobe social clips” |
How do I send the person and the garment?
Any API key with formats:write, other than a service-account key, can call a catalog Format. The run, its media, and its spend belong to the calling key, and there is nothing to fork or install first. Put the brief in instruction: it accepts 8,000 characters, the run carries the first ~4,000, and it is composed after the Format's recipe, so it wins where the two disagree.
Put each photo in attachments as an input_image with a public HTTPS image_url. filename is the label the agent sees, so use it to say which photo is the person and which is the garment. Use photos of people who have agreed to appear in the video.
curl -sS -X POST "https://api.sume.com/v1/formats/sume/sume-virtual-try-on/runs" \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: look-042-jacket-tryon-v1" \
-d '{
"instruction": "Show the person in person.jpg wearing the jacket in jacket.png.",
"attachments": [
{ "type": "input_image", "image_url": "https://example.com/person.jpg", "filename": "person.jpg" },
{ "type": "input_image", "image_url": "https://example.com/jacket.png", "filename": "jacket.png" }
],
"generation_spend_cap_usd": 20
}'What limits apply to the photos?
Sume fetches and checks every attachment at create time, so a broken or private image fails the create, not the run.
- JPEG, PNG, WebP, GIF, or AVIF;
input_imageis the only attachment type today. - Up to 30 images and 500 MB per run, and 30 MB per image. Over a size cap is
413 attachment_too_large. - An image Sume cannot fetch is
502 attachment_fetch_failed, anddetails.indexnames it. - The same
Idempotency-Keyand body return the original run, with no second charge.
How do I build the try-on myself, one step at a time?
Split the work into two jobs when you want to approve the look before you pay for motion. Frame support per model is in Image-to-video API, and per-model reference limits for the still are in Image generation API with reference images.
- Make the still. Send
POST /v1/imageswith the person and the garment ininput_references, as public HTTPS URLs. A model whoseinput_referencesdescriptor is{"min": 0, "max": 0}is text-to-image only and rejects references; ChatGPT Image 2.5 (openai/gpt-image-2.5) takes up to 16. On image-to-image calls, preferaspect_ratio: "auto"to match the reference. - Host the still you approve at your own public HTTPS URL. The Image API returns
data[].urlas Sume-hosted and signed, and the Video generation docs do not document passing it straight into a video request. - Animate it. Send
POST /v1/videoswith the still as aframe_imagesentry whoseframe_typeisfirst_frame. If the request also carriesinput_references,frame_imagestakes precedence and the request runs as image-to-video; references alone are covered in Reference-to-video API.
What comes back, and what does it cost?
A Format run answers 202 with a receipt, then takes minutes. Poll it, or set communication.webhook_url for one signed format.run.terminal POST. A completed run fills primary_output_url, the one thing to show, and artifacts[]. These media.sume.com URLs do not expire and are public to anyone holding them, so proxy or copy them if each customer needs private access.
Generation in the run is metered at the API pricing rates under generation_spend_cap_usd: up to $500, null runs at $500, and 0 is rejected. The run's cost, the agent's own LLM turn included, is usage.debited_usd_micros. On the step-by-step path, a failed image is not billed, and a video job is reserved at the provider's list price × 1.25, plus a 5.5% agent fee by default.
What does an API run not do?
Three boundaries of the Format path:
- No approval stops. Approvals are treated as granted, and a run that cannot finish comes back
failed, never a half-finishedcompleted. - No model choice. The run's
modelfield picks only the orchestrating LLM; image, video, and audio models are chosen by the Format's tools. - No recipe edits. To change a catalog Format, fork it in the Format library and call your copy at
{your_handle}/{slug}.
Sources
Related posts
More in Use cases
- AI magazine cover generator API: covers with room for type
Generate a magazine-cover-style image with Sume: run the sume-magazine-cover-campaign Format with your photos, then set the masthead yourself.
- AI model holding your product: photos and video via API
Pose an AI model with your product via the Sume API: sume-model-product-portrait for stills, sume-beauty-studio for video, or image edits you control.
- AI product commercial video generator API: Formats or DIY
Make a product commercial with the Sume API: run sume-product-commercial or sume-cinematic-studio-commercial, or generate the clip on /v1/videos.
- AI product demo video generator API: show one real action
Make a product demo video with Sume: run the sume-product-usage-demo Format with a packshot and one action, or animate stills and join on Timeline.
Written by Sume