H3 Max Recast and the 15-second shot rule: split a long take first
Recast accepts 5 to 30 seconds of source, but no single shot longer than 15 seconds. Cut a longer take with Sume's Video Trim, then recast each part.

h3-max-recast on Sume accepts a source of 5 to 30 seconds, with no single shot longer than 15 seconds. If your take is a 22-second continuous shot, cut it into pieces under 15 seconds with POST /v1/video-trim, recast each piece, then join the results.
The cut is not free of seams. A person swapped in two separate jobs can look slightly different in each, so cut at a natural pause where a seam hides.
What Recast needs
Recast takes a video_url plus 1 to 4 reference_image_urls, one photo for each new person. The prompt is optional and limited to 2000 characters. The output keeps the source motion, camera, cuts and sound. There is no text-only mode, and no aspect_ratio. Duration is the length of the source, rounded up.
Output is 768p by default or 1080p. Provider list is $0.30 a second at 768p and $0.45 at 1080p. On Sume, with the 1.25 multiple, that is $0.375 and $0.5625.
| Source length | 768p ($0.375/s) | 1080p ($0.5625/s) |
|---|---|---|
| 10 s | $3.75 | $5.625, rounded up to $5.63 |
| 15 s | $5.625, rounded up to $5.63 | $8.4375, rounded up to $8.44 |
| 30 s (two 15 s parts) | $11.25 | $16.875, rounded up to $16.88 |
Split with Video Trim
Video Trim takes a workspace clip on media.sume.com, a start, and exactly one of end or duration, and costs $0.02 a job. Use precision: exact so the cut lands where you set it. For a 22-second take, cut 0 to 11 and 11 to 22, which gives two 11-second parts, each over the 5-second minimum and under 15 seconds.
Do the cuts at a pause in the action. If your reference photos are the same for both parts, the same person should appear in both.
curl -X POST https://api.sume.com/v1/video-trim \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: split-part-1" \
-d '{"video_url":"https://media.sume.com/artifacts/artf_demo/long-take.mp4","start":0,"end":11,"precision":"exact"}'Then recast each part
Send each trimmed result's video_url to Recast with the same reference photos in the same order. Keep the two jobs' prompts identical so the style matches. When both are done, put the two MP4 files in a timeline with no transition so the join is a hard cut.
Pitfalls
A queued Recast job can be canceled only until the generation starts, after which a cancel returns 409. If you queue several parts and then change your mind, cancel early. The post on canceling a queued Recast job covers it.
- A part under 5 seconds is below the minimum.
- A part over 15 seconds of one shot is refused by the rule.
- Two jobs mean two charges, so plan the total, not each part.
- Burn captions after the join, not before. See captions after a Recast.
Related posts
More in Developers
- Missed Sume video webhook? Poll first, redeliver second
A missed callback does not mean a lost job. A Python sweeper polls open ids, then calls POST /v1/jobs/{id}/webhook/redeliver for the terminal ones.
- Recraft erase, outpaint and inpaint calls vs one edit route on Sume
Recraft has separate inpaint, outpaint and erase calls. Sume has one /v1/images route with references and mask_url (ChatGPT Image 2.5 only), plus RMBG.
- Redelivered job.completed must not start the trim twice
Redeliver re-sends the same job's terminal event with a fresh signature. Dedupe on job_id and derive the next step's Idempotency-Key from it.
- reference_ingest OCR: needs_verification crops under 0.85 confidence
reference_ingest never corrects OCR text. Lines under 0.85 confidence come back as needs_verification with a native-resolution crop to check.
Written by Sume