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.

3 min readSume
All posts

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

Sume list price, read 2026-10-08
ItemQtyUnitSubtotal
Wan 3.0 clip, 6 s, 720p5$0.75$3.75
Timeline render, 30 s3$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

All Use cases posts

Written by Sume