LTX-2.3 extend and retake at $0.10/s: the nearest Sume route

fal sells LTX-2.3 extend-video and retake-video at $0.10 a second. Sume has neither endpoint; Omni's video_url edit mode and Timeline joins come closest.

4 min readSume
All posts

The fal LTX-2.3 page lists separate endpoints for text-to-video, image-to-video, audio-to-video, extend-video and retake-video, and prices audio-to-video, extend and retake at $0.10 per second (read 2026-10-04). Extend continues a clip; retake regenerates part of one.

Sume's Video Router has neither endpoint. Its request body is one POST /v1/videos with a model id, and the video generation docs describe text-to-video, image-to-video and reference inputs, not a continuation call.

Closest substitutes

Each route spends a new generation instead of an extend call, so the cost is per clip generated.

  • Edit an existing clip: the docs mention a video edit mode available through the Video Router video_url field, and gemini-omni-flash-1.1 lists an edit mode with a 3 to 10 second range. That is a rewrite of a clip, not a continuation.
  • Continue a scene: generate the next clip with the last frame of the previous one as first_frame in frame_images, then join the two on a timeline. Continuity depends on the model and is not guaranteed.
  • Join: Timeline 1.0 concatenates up to 200 video slots with optional transitions at $0.10 per output minute.

Extending on a frame

Pull the final frame with an ordinary tool, upload it to media.sume.com, and pass it as the first frame of the next clip. The sketch below only shows the request shape; the image URL is a placeholder you replace with your own import.

import os
import requests

headers = {
    "Authorization": f"Bearer {os.environ['SUME_API_KEY']}",
    "Idempotency-Key": "extend-001",
}
body = {
    "model": "wan-3.0",
    "prompt": "The camera keeps moving forward down the same street",
    "duration": 10,
    "resolution": "720p",
    "aspect_ratio": "9:16",
    "frame_images": [{
        "type": "image_url",
        "image_url": {"url": os.environ["LAST_FRAME_URL"]},
        "frame_type": "first_frame",
    }],
}
r = requests.post("https://api.sume.com/v1/videos", headers=headers, json=body)
print(r.status_code)

Sources

Related posts

More in Models

All Models posts

Written by Sume