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.0022 * steps. With 1000 steps, your request will cost $2.20.
Fine-tune your training parameters and start right now.
/t2a)The /t2a endpoint trains a LoRA for the LTX 2.3 model that generates audio from a text prompt — the audio counterpart of text-to-video. There is no conditioning asset; the model learns to produce a sound or style from your training clips and recreate it from text. Use it to teach a particular instrument, sound effect family, ambience, or audio style.
Key features:
audio_duration_seconds.Provide a single .zip archive (linked via training_data_url) of plain audio clips:
.wav, .mp3, .flac, .ogg, .aac, .m4a.txt with the same base name as each audio clip (optional but recommended).File names must be unique across the archive. Aim for at least 10 clips.
Example layout:
clip01.wav clip01.txt clip02.mp3 clip02.txt
At least one clip must fill the audio bucket. A clip shorter than audio_duration_seconds is skipped; if every clip is shorter, the request is rejected up front (HTTP 422). Lower audio_duration_seconds if your clips are short.
training_data_url (required)Type: string
URL to the .zip archive of audio clips.
trigger_phraseType: string
Default: ""
Phrase prepended to captions during training; include it at inference to activate the learned sound.
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.
audio_duration_secondsType: number
Default: 5.0 (range 0.5–60.0)
Target audio clip length in seconds (the audio duration bucket). Clips shorter than this are skipped; longer clips are trimmed.
audio_normalizeType: boolean
Default: true
Peak-normalize audio for consistent loudness across the dataset.
audio_preserve_pitchType: boolean
Default: true
Preserve pitch when fitting audio to the target duration (instead of trimming/padding).
validationType: array
Default: [] (max 2 entries)
Validation samples, each an object with:
prompt (string) — the text prompt to generate audio from.validation_negative_promptType: string
Default: a built-in quality negative prompt.
validation_frame_rateType: integer
Default: 24 (range 8–60)
Used together with the audio bucket to size the preview audio length.
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.
Note: this audio-only mode also accepts the shared video/validation-video fields (
number_of_frames,resolution, etc.), but they have no effect — no video is processed. You can safely leave them at their defaults.
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.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.
audio_duration_seconds bucket.number_of_steps, learning to generate audio from text. Validation previews run at intervals..zip is unpacked; macOS metadata and hidden files are ignored..txt of the same base name.audio_duration_seconds bucket (clips shorter than the bucket are skipped; longer ones trimmed; normalized and pitch-fit as configured).A LoRA is a compact set of adapter weights trained on top of the frozen base model. Here it specializes the model at producing your sound or audio style from a text prompt. At inference you load the LoRA and prompt it as you captioned your data.
audio_duration_seconds that fits most clips so few are skipped.Good caption: f0leyvox a soft rain shower on a tin roof
Weak caption: rain
Prompt the LoRA the way you captioned it, including the trigger phrase, and keep expected durations in line with audio_duration_seconds.
json{ "training_data_url": "https://example.com/audio_clips.zip", "trigger_phrase": "f0leyvox", "rank": 32, "number_of_steps": 2000, "learning_rate": 0.0002, "audio_duration_seconds": 5.0, "validation": [ { "prompt": "f0leyvox soft rain on a roof" } ] }
audio_duration_seconds to match your clips.rank, more clips.audio_duration_seconds set so long that most clips are skipped.