Skip to content

Ltx 2.3 Quality · Extend Video

Integrate

Model id ltx-2.3-quality/extend-video
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/ltx-2.3-quality/extend-video?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Files like the example: $0.27 270 API credits your files are measured before the run Run it on this page

Get API key
Lightricks · Video

Your first result goes here

Build a request below and run it with your API key. Outputs are copied to our storage, kept forever or 7 days for free.

Build a request

Controls are generated from the model schema. The code and the price update as you change them.

•required

Prompt specifying the desired continuation of the video.

•required video_url
Drop a file, or

URL pointing to the video that will be extended.

resolution default auto

Generated video dimensions, aligned to 32px increments—for example, 1920x1080 becomes 1888x1056—with the source resized to these dimensions for the stitched output. Stable extensions can be longer at lower resolutions and shorter at higher ones. Choosing 'auto' retains the source dimensions and aspect ratio as far as LTX limits permit.

default 121

Extension frame count, subject to a stable-generation budget on resolution multiplied by frames: at 24 fps, roughly 20 seconds for 480p-class, 11 seconds for 720p-class, or 5 seconds for 1080p-class. Requests exceeding the budget return 422; reduce `num_frames` or choose a smaller resolution. The count includes `num_context_frames` overlapping the source, so the added duration is approximately (`num_frames` - `num_context_frames`) / `frames_per_second` seconds.

Advanced negative_prompt · end_image · extend_direction · video_quality · video_write_mode · num_context_frames · end_image_strength · frames_per_second · video_strength · num_inference_steps · guidance_scale · seed · match_input_fps · enable_prompt_expansion · enable_safety_checker
default color distortion, ove...

Negative prompt specifying what generation should avoid.

end_image_url
Drop a file, or

Optional keyframe image that sets the extension's new first frame when extending backward or its last frame when extending forward.

extend_direction default forward

Video extension mode: 'backward' creates a new beginning, whereas 'forward' continues the video beyond its end.

video_quality default high

Quality preset applied to the output video.

video_write_mode default balanced

Write mode for the resulting video.

default 25

Source-frame count requested for extension context/overlap, limited by how many frames the source contains. The count is rounded down to fit the LTX grid of 8k+1.

default 1

Optional end-keyframe conditioning strength: reducing it allows the model more freedom, whereas 1.0 enforces an exact match.

default 24

Output video frame rate, measured in frames per second.

default 1

Source-context conditioning strength: reducing it permits more model freedom. At 1.0, the overlapping frames remain locked to the source, making the transition seamless.

default 15

Set how many inference steps to run, up to 30; leaving this unchanged uses 15.

default 1

Adjust classifier-free guidance using this scale; its default tuning targets both high quality and fast generation.

Seed that makes generation reproducible. Setting it to None selects a seed randomly.

POST /run/ltx-2.3-quality/extend-video?wait=20 quote → $0.27
# Run the model; wait up to 20 s for the finished result in the same call
curl -X POST "https://api.doitong.com/v1/run/ltx-2.3-quality/extend-video?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "video": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
  }'

# Still "queued" or "running"? Poll with the id from the response:
curl "https://api.doitong.com/v1/requests/REQUEST_ID?wait=20" \
  -H "Authorization: Bearer $DOITONG_API_KEY"

Run this request

Your key stays in this browser: it is sent only to the Doitong API and saved (localStorage) only if you tick Remember. Get an API key

About Ltx 2.3 Quality · Extend Video

Extends an existing clip by generating new footage guided by a required `prompt`. `extend_direction` is `forward` to continue from the end or `backward` to create a new beginning. `num_context_frames` (9 to 121) sets how much of the source overlaps, and `num_frames` (9 to 481) sets the segment length. An optional `end_image_url` fixes the final keyframe, and `match_input_fps` keeps the source frame rate.

Parameters

Send either the canonical name or the native name, not both. Canonical names

NameType DefaultAllowed Description
promptrequired
Typestring
Prompt specifying the desired continuation of the video.
video_urlrequired video
Typeurl · video
URL pointing to the video that will be extended.
extend_directionoptional
Typeenum
Defaultforward
forwardbackward
Video extension mode: 'backward' creates a new beginning, whereas 'forward' continues the video beyond its end.
num_framesoptional
Typeinteger
Default121
9 – 481
Extension frame count, subject to a stable-generation budget on resolution multiplied by frames: at 24 fps, roughly 20 seconds for 480p-class, 11 seconds for 720p-class, or 5 seconds for 1080p-class. Requests exceeding the budget return 422; reduce `num_frames` or choose a smaller resolution. The count includes `num_context_frames` overlapping the source, so the added duration is approximately (`num_frames` - `num_context_frames`) / `frames_per_second` seconds.
num_context_framesoptional
Typeinteger
Default25
9 – 121
Source-frame count requested for extension context/overlap, limited by how many frames the source contains. The count is rounded down to fit the LTX grid of 8k+1.
end_image_urloptional end_image
Typeurl · image
Optional keyframe image that sets the extension's new first frame when extending backward or its last frame when extending forward.
end_image_strengthoptional
Typenumber
Default1
0 – 1
Optional end-keyframe conditioning strength: reducing it allows the model more freedom, whereas 1.0 enforces an exact match.
resolutionoptional
Typeobject
Defaultauto
autosquare_hdsquareportrait_4_3portrait_16_9landscape_4_3landscape_16_9
Generated video dimensions, aligned to 32px increments—for example, 1920x1080 becomes 1888x1056—with the source resized to these dimensions for the stitched output. Stable extensions can be longer at lower resolutions and shorter at higher ones. Choosing 'auto' retains the source dimensions and aspect ratio as far as LTX limits permit.
match_input_fpsoptional
Typeboolean
Defaulttrue
Output frame-rate matching to the source when enabled, overriding `frames_per_second`. The source FPS is rounded to an integer and restricted to the supported range.
frames_per_secondoptional
Typenumber
Default24
1 – 60
Output video frame rate, measured in frames per second.
video_strengthoptional
Typenumber
Default1
0 – 1
Source-context conditioning strength: reducing it permits more model freedom. At 1.0, the overlapping frames remain locked to the source, making the transition seamless.
num_inference_stepsoptional
Typeinteger
Default15
8 – 30
Set how many inference steps to run, up to 30; leaving this unchanged uses 15.
guidance_scaleoptional
Typenumber
Default1
1 – 20
Adjust classifier-free guidance using this scale; its default tuning targets both high quality and fast generation.
generate_audiooptional
Typeboolean
Defaulttrue
Extension-audio toggle: off leaves the added segment silent while retaining the source video's audio track. On generates audio for the extension and crossfades it with the source at the join.
negative_promptoptional
Typestring
Defaultcolor distortion, overexposure, static, blurry details, subtitles, style, artwork, painting, frame, still, dim overall tone, worst quality, low quality, JPEG compression artifacts, ugly, mutilated, extra fingers, poorly drawn hands, poorly drawn face, deformed, disfigured, malformed limbs, fused fingers, motionless frame, cluttered background, three legs, crowded background, walking backwards
Negative prompt specifying what generation should avoid.
seedoptional
Typeinteger | null
Seed that makes generation reproducible. Setting it to None selects a seed randomly.
enable_prompt_expansionoptional
Typeboolean
Defaulttrue
Controls whether prompt expansion is enabled.
enable_safety_checkeroptional
Typeboolean
Defaulttrue
Controls whether safety checking is enabled.
video_qualityoptional
Typeenum
Defaulthigh
lowmediumhighmaximum
Quality preset applied to the output video.
video_write_modeoptional
Typeenum
Defaultbalanced
fastbalancedsmall
Write mode for the resulting video.
required Canonical name, also accepted

File parameters take a public https:// URL, a data: URI up to 10 MB, or the file_url of an upload. Files

Output

GET /requests/req_8k2m4q7x1z9c3v5b6n0p2r4t
{
  "id": "req_8k2m4q7x1z9c3v5b6n0p2r4t",
  "object": "request",
  "model": "ltx-2.3-quality/extend-video",
  "status": "succeeded",
  "created_at": "2026-10-20T12:00:00Z",
  "started_at": "2026-10-20T12:00:02Z",
  "completed_at": "2026-10-20T12:00:09Z",
  "queue_position": null,
  "cost": {
    "credits": 270,
    "usd": "0.27",
    "charged": 270,
    "refunded": 0
  },
  "input": {
    "prompt": "A red fox trots through fresh snow at sunrise, soft golden light, shallow depth of field",
    "video_url": "https://content.doitong.com/video/showcase/v3/gen_fox_cartoon.mp4"
  },
  "output": {
    "video": {
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_name": "0-output.mp4",
      "file_size": 1843200
    },
    "seed": 42,
    "prompt": "string"
  },
  "outputs": [
    {
      "type": "video",
      "url": "https://content.doitong.com/dev-api/2026/10/20/req_8k2m4q7x1z9c3v5b6n0p2r4t/0-output.mp4",
      "content_type": "video/mp4",
      "file_size": 1843200,
      "width": 1280,
      "height": 720,
      "duration": 5,
      "stored": true
    }
  ],
  "error": null,
  "metrics": {
    "inference_seconds": 6.8
  },
  "urls": {
    "self": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t",
    "cancel": "https://api.doitong.com/v1/requests/req_8k2m4q7x1z9c3v5b6n0p2r4t/cancel"
  }
}
Your files, your choiceEvery outputs[].url is a copy on our storage: kept forever (paid per GB-month) or 7 days for free, by your account setting or ?storage=.
Same shape on every modeltype, url, content_type, width, height and duration, for images, video and audio alike. output is the model’s own result object.
Fields of output
video
object {url, content_type, file_name, file_size}Video produced by the model.
seed
integerActual seed applied during generation.
prompt
stringGeneration prompt, including any expansion applied before use.

More models: Video to Video

For AI agents: this page as Markdown is at https://doitong.com/developers/models/ltx-2.3-quality/extend-video.md. All models and guides: https://doitong.com/developers/llms.txt