Approve the first frame before paying for motion: a $0.0094 draft gate
Review three $0.0094 draft stills, approve one, then pay $0.0835 for the final and $1.89 for the clip: $2.00 a SKU, against $5.75 for three blind clips.

The cheapest approval step in an AI product-video pipeline sits before any video is made. Generate three low-quality draft stills of a SKU at $0.0094 each on Sume, let a person pick one, render the pick at high quality for $0.0835, and only then pay $1.89 for the 5-second 720p Seedance 2 clip. That is $2.0017 per SKU, against $5.7535 if you generate three clips blind and pick the best (prices read 2026-10-05). The saving across 100 SKUs is $375.18.
Why the first frame is the gate
In image-to-video, the first frame fixes the product, the background and the framing; the model animates what it is given. A wrong still means a wrong clip, so reject at the cheapest point. The Sume videos docs describe passing the still as first_frame in frame_images, and the image docs list the quality choices for gpt-image-2.5.
This is a workflow pattern you run in your own tooling. Sume does not pause a generation for human approval, so the gate is your code: generate drafts, show them, wait for a pick, then call the video endpoint.
| Step | Gate first | Three blind clips |
|---|---|---|
| Three low-quality edits | $0.0282 | none |
| One high-quality edit | $0.0835 | $0.0835 |
| Seedance 2 720p 5 s clips | 1 x $1.89 | 3 x $1.89 |
| Total | $2.0017 | $5.7535 |
The arithmetic as code
The function below prices a SKU with optional rejects at each stage, so you can see how a rejected still costs cents and a rejected clip costs dollars.
LOW, HIGH, CLIP = 0.0094, 0.0835, 1.89 # Sume billable USD (read 2026-10-05)
def cost_per_sku(drafts, stills_rejected, clips_rejected):
"""Drafts are low-quality edits; one high-quality still follows approval."""
still = drafts * LOW + (1 + stills_rejected) * HIGH
return round(still + (1 + clips_rejected) * CLIP, 4)
gate_first = cost_per_sku(drafts=3, stills_rejected=0, clips_rejected=0)
clip_first = round(3 * CLIP + HIGH, 4) # three clips, pick one
print("approve the still first:", gate_first)
print("generate three clips: ", clip_first)
print("100 SKUs saved:", round((clip_first - gate_first) * 100, 2))
Where the gate does not help
A good still can still animate badly: a hand bends, a label shimmers. The gate removes the failures that were visible before motion; it cannot remove the ones that appear only in the clip. Keep a reject allowance for the clip stage, as in the reject-rate budget.
- Draft at low quality, finish at high, and use the same prompt and reference so the pick carries over.
- Approve on a phone-sized view; the ad will be watched there.
- Log which draft was picked per SKU so reviewers see what they are approving.
For a proof-then-final loop that works at the clip level, see the agency approval loop at 480p; for dividing image spend by what you keep, see cost per approved ad image.
Sources
Related posts
More in Use cases
- ArtStation 25 MB free vs 250 MB premium clips: bitrate budget
A 60-second ArtStation clip on a free account must average about 3.3 Mbps to fit in 25 MB. Premium's 250 MB allows about 33 Mbps. Table and a Python check.
- ArtStation free 2K video cap: conform an AI clip with trim output
ArtStation caps free video clips at 2K and shows premium 4K in full resolution. Sume trim output takes width and height from 256 to 2160, so you can conform.
- ArtStation video clips are 1 minute: trim an AI turntable to fit
ArtStation video clips run up to 1 minute as MP4 and autoplay in a loop. Trim an AI-generated turntable to 60 seconds or less with Sume, then probe size.
- Astro Image with a Sume URL: allow the domain, set width and height
Astro only optimizes remote images from authorized sources and requires width and height on them. Add the host to image.domains, or save the Sume PNG under src.
Written by Sume