Animatic on Wan 3.0: six 5 s shots, approve, redo, upgrade
Six 5-second Wan 3.0 shots at 480p cost $1.875 in total, the same as one 30-second job. Split by shot so each frame can be approved alone.

Six 5-second Wan 3.0 shots at 480p cost $1.875 in total, $0.3125 each, which is exactly the price of one 30-second 480p job. Splitting an animatic by shot costs nothing extra and lets you reject one shot without paying for the other five (read 2026-10-09).
One 30-second job or six shots
An animatic is a moving storyboard, so the shots matter more than the polish. Wan 3.0 is flat per second, so there is no price penalty for splitting and a clear benefit: each shot gets its own prompt and its own first frame from the storyboard panel.
| Resolution | One 5 s shot | Six shots | One 30 s job |
|---|---|---|---|
| 480p | $0.3125 | $1.875 | $1.875 |
| 720p | $0.625 | $3.75 | $3.75 |
| 1080p | $1.25 | $7.50 | $7.50 |
One request per panel
Loop the panels, give each job its own idempotency key built from the shot number, and submit them in parallel; the admission queue holds back what a plan cannot run yet. This builds the body for one panel.
import os, time, requests
API = "https://api.sume.com/v1/videos"
H = {"Authorization": "Bearer " + os.environ["SUME_API_KEY"]}
body = {"model": "wan-3.0", "prompt": "Shot 3: low angle, the hero steps into the doorway, camera tilts up to the skyline", "duration": 5, "resolution": "480p", "aspect_ratio": "16:9", "frame_images": [{"type": "image_url", "image_url": {"url": "https://example.com/panel-03.png"}, "frame_type": "first_frame"}]}
job = requests.post(API, headers={**H, "Idempotency-Key": "animatic-shot-03"}, json=body, timeout=60).json()
deadline = time.time() + 1800
while time.time() < deadline:
time.sleep(30)
job = requests.get(job["polling_url"], headers=H, timeout=60).json()
if job["status"] == "completed":
print(job["unsigned_urls"][0], job["usage"]["cost"])
break
if job["status"] in ("failed", "cancelled"):
print(job["status"], job.get("error"))
breakApprove, redo, then upgrade
A realistic flow: render six shots at 480p ($1.875), redo two of them ($0.625), then upgrade the approved six to 720p ($3.75). The total is $6.25.
Skipping the animatic and rendering six 720p shots directly costs $3.75 with no safety net. If even two shots need a redo at 720p, that adds $1.25.
An animatic exists to catch problems cheaply. The most common are a subject that changes between shots and a camera move that fights the next shot's start frame. Both show up at 480p.
Limits
- Per-shot jobs do not share continuity: character and light can change between shots unless each panel carries the reference.
- Wan 3.0 accepts up to 10 reference images per request, which covers a character sheet plus a location.
- A
queue_fullresponse means wait for a terminal job or cancel one you no longer need, then retry with the same key. - Re-render only the shots the director rejects at 720p; two rejected shots at 720p add $1.25.
Sources
Related posts
More in Use cases
- App demo video through the sume-mobile-app-ugc Format: what to send
Call a catalog Format at the sume handle for an app demo video. Read its io profile first, send screens and copy, cap the spend, and test the receipt.
- App Promo Half-Banner: A Headline Still Over a Screen Recording
Stack a headline image above an app screen recording in one 9:16 shot with timeline compose: layout ratio, overlay mode, output size and a $0.02 price.
- App Store preview poster frame defaults to second 5: check it
Apple says an app preview's default poster frame is at 5 seconds and previews show before screenshots. Pull frames 0 and 5 with Sume video frames before upload.
- Apple Business showcase: 38, 100, 100 characters and a 3-day review
Apple Business showcases cap the heading at 38 characters, body and alt text at 100, and review takes up to three days. Check the copy in Python and count back.
Written by Sume