Loading playground
Input
Additional Settings
Customize your input with more control.
Result
Idle
Customize your input with more control.
Customize your input with more control.
Hint: Upload a prepared .zip archive or provide a URL. See the field description for the required file layout.
Customize your input with more control.
The cost of training depends on the number of steps. The formula is: 0.0049 * steps. With 1000 steps, your request will cost $4.90.
Fine-tune your training parameters and start right now.
/v2a)The /v2a endpoint trains a LoRA for the LTX 2.3 model that generates audio for a silent video (foley / sound design). The video is frozen as conditioning and the model learns to produce a matching soundtrack — footsteps, ambient sound, sound effects, or speech-like audio that fits the on-screen action.
Key features:
Provide a single .zip archive (linked via training_data_url) of plain videos that contain audio:
.mp4, .mov, .avi, .mkv — every clip must carry an audio track (the model learns to recreate it)..txt file with the same base name as each video (optional but recommended).Image datasets are rejected (foley requires motion over time). Every video must have audio — clips without a track are rejected with a clear error. Aim for at least 10 clips. File names must be unique across the archive.
Minimum clip length: with auto_scale_input off (the default), each video must already have at least number_of_frames frames (default 89, ≈ 3.7 s at 24 fps). Shorter clips are silently skipped, and if every clip is too short the request fails (422, "All training videos are too short to be trainable"). Turn on auto_scale_input to resample shorter clips to the target frame count instead.
Audio is required on every clip. Video-to-audio training learns to generate the soundtrack for each clip, so every training video must contain an audio track; any silent clip causes the request to be rejected (HTTP 422).
training_data_url (required)Type: string
URL to the .zip archive of videos with audio.
trigger_phraseType: string
Default: ""
Phrase prepended to captions during training; include it at inference.
rankType: integer (8, 16, 32, 64, 128)
Default: 32
LoRA capacity.
number_of_stepsType: integer
Default: 2000 (range 100–20000)
Number of optimization steps.
learning_rateType: number
Default: 0.0002
Optimization step size.
number_of_framesType: integer
Default: 89 (range 9–121)
Frames per training clip. Must satisfy frames % 8 == 1; other values are snapped down to the nearest valid count. This also sets how long a window of conditioning video is used.
frame_rateType: integer
Default: 24 (range 8–60)
Target frames per second.
resolutionType: string (low, medium, high)
Default: medium
| Resolution | 16:9 | 1:1 | 9:16 |
|---|---|---|---|
| low | 512×288 | 512×512 | 288×512 |
| medium | 768×448 | 768×768 | 448×768 |
| high | 960×544 | 960×960 | 544×960 |
aspect_ratioType: string (16:9, 1:1, 9:16)
Default: 1:1
auto_scale_inputType: boolean
Default: false
Fit videos to the target frame count and frame rate.
split_input_into_scenesType: boolean
Default: false
Off by default for this mode: every clip must keep an audio track, and scene splitting can produce silent trailing segments that would fail the per-clip audio check. Provide pre-split clips instead.
split_input_duration_thresholdType: number
Default: 30.0 (range 1.0–60.0)
Duration above which a clip is eligible for scene splitting (only relevant if you enable splitting).
validationType: array
Default: [] (max 2 entries)
Validation samples, each an object with:
prompt (string) — the text prompt.video_url (string, required) — a silent video the model should generate audio for.validation_negative_promptType: string
Default: a built-in quality negative prompt.
validation_number_of_framesType: integer
Default: 89 (range 9–121)
validation_frame_rateType: integer
Default: 24 (range 8–60)
validation_resolutionType: string
Default: high
validation_aspect_ratioType: string
Default: 1:1
stg_scaleType: number
Default: 1.0 (range 0.0–3.0)
debug_datasetType: boolean
Default: false
Return an archive of the preprocessed data for inspection.
lora_file — the trained LoRA weights (.safetensors).config_file — JSON describing the trigger phrase and training type.audio — a combined preview of the generated validation audio (this mode's preview is audio, not video).debug_dataset — preprocessed-data archive, only when debug_dataset is enabled.A successful run is billed max(100, number_of_steps) billable units. Requests that fail before training completes (input-validation errors / HTTP 422, or dataset-download failures) are billed 0 units.
number_of_steps with the video frozen as conditioning and the audio as the generation target. Validation previews run at intervals..zip is unpacked; macOS __MACOSX metadata folders are ignored.The video frames are held fixed during training and the model only generates audio, learning the relationship between what is on screen and how it should sound. At inference you supply a silent video and a prompt, and the LoRA produces a soundtrack for it.
Good caption: footsteps on gravel as a person walks toward camera
Weak caption: walking
At inference, supply a silent video and use the same caption style and trigger phrase you trained with.
json{ "training_data_url": "https://example.com/foley_clips.zip", "trigger_phrase": "", "rank": 32, "number_of_steps": 2000, "learning_rate": 0.0002, "number_of_frames": 89, "frame_rate": 24, "resolution": "medium", "aspect_ratio": "1:1", "validation": [ { "prompt": "footsteps on gravel", "video_url": "https://example.com/silent_walk.mp4" } ] }
rank, more clips.