One set of clips for Reels and TikTok: three hook orders, one script
Generate five clips once, then render three opening orders with Timeline 1.0 to test which hook holds. A Python slot generator and the cost of each variant.

Generate the shots once and let Timeline 1.0 do the reordering: each extra hook variant is one more render at $0.10, not another generation. Five 6-second Wan 3.0 clips at 720p cost $3.75; three differently ordered 30-second cuts add $0.30, so the whole test is $4.05.
The idea
Short-form tests are usually about the first second. Instead of regenerating, promote a different shot to slot one. The audio spine stays the same, so the variants differ only in picture order.
Generating the variant bodies
This script rotates the clip list so each variant opens on a different shot, recomputes starts, and prints three Timeline documents. Swap in your own artifact URLs.
import json
clips = [f"https://media.sume.com/artifacts/artf_demo/c{i}.mp4" for i in range(1, 6)]
SEG = 6
def body(order):
video = []
for i, url in enumerate(order):
slot = {"source_url": url, "start": i * SEG, "duration": SEG}
if i:
slot["transition"] = {"type": "fade", "duration": 0.25}
video.append(slot)
return {"audio": {"url": "https://media.sume.com/artifacts/artf_demo/vo.wav",
"duration_seconds": SEG * len(order)}, "video": video}
for n in range(3):
order = clips[n:] + clips[:n]
print(json.dumps(body(order))[:80], "...")Cost of the test
| Item | Qty | Unit | Subtotal |
|---|---|---|---|
| Wan 3.0 clip, 6 s, 720p | 5 | $0.75 | $3.75 |
| Timeline render, 30 s | 3 | $0.10 | $0.30 |
| Total | $4.05 |
Do not reuse a spine that was cut for one order
If the voice refers to what is on screen, the reordered cut will mismatch it. Write the narration so it works for every opening, or build a separate spine per variant with audio.parts[] slices.
Each platform has its own upload requirements, which you should read on its own page; the Timeline output frame size and fps are the fields you adjust for them.
Reading the result
Give each variant an identifiable idempotency key, such as hook-a, hook-b and hook-c, so a retried request returns the same job instead of billing a second render. Post them on the same day and compare the first-three-seconds retention that each platform's own analytics reports; do not decide from view counts alone, because distribution varies by the hour. Once a winner is clear, keep its slot order as the template for the next batch and generate new shots into the same five positions.
Check each variant before paying
POST /v1/timeline-1.0/plan is unbilled and runs the schema and Sume-host checks on a Timeline body, so you can submit all three variant bodies to it first and only render the ones that pass. Slots must start at 0 and increase, which the generator above guarantees by recomputing start from the slot index.
Related posts
More in Use cases
- Restaurant weekly special: one 10-second Omni clip, 52 weeks priced
A weekly 10-second video for a restaurant special on Gemini Omni Flash 1.1, with native audio, priced at 360p, 720p and 1080p for 52 weeks on Sume.
- Retake cost: a flawed 30 s clip is $17.34, a flawed 10 s shot $5.78
If the end of a 720p Seedance 2.5 clip fails, you pay $17.34 to redo 30 s or $5.78 to redo a 10 s shot. Planning shots to cap retake cost.
- SaaS release note avatar video: 24 seconds, 3 scenes, cost on Sume
A 24 second release-note video with an AI presenter: hook, demo beat, call to action. Script length, scene plan and cost at standard, plus and max.
- Sale banner with exact price digits: low drafts, one high, 11 cents
Test a sale banner's price digits with four low-quality GPT Image 2.5 drafts (4 cents), then render the winner once at high (7 cents). Total 11 cents on Sume.
Written by Sume