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.0023 * steps. With 1000 steps, your request will cost $2.30.
Fine-tune your training parameters and start right now.
/ic-lora/a2a)The /ic-lora/a2a endpoint trains an IC-LoRA (In-Context LoRA) for the LTX 2.3 model that performs an audio → audio transformation. An IC-LoRA is a small adapter that does not generate from text alone — instead it conditions on a reference audio clip supplied at inference and learns to produce a corresponding target audio clip. You teach it that mapping by providing pairs of audio — a reference and a target — and the LoRA learns to go from one to the other. This is audio-only: there is no video modality.
Use this endpoint for control-driven audio transformations, for example:
Key features:
audio_duration_seconds.Provide a single .zip archive (linked via training_data_url) of paired audio clips:
<name>_start.<ext> — the reference audio (the input to transform).<name>_end.<ext> — the target audio (the desired output).<name>.txt — optional caption for the pair.Audio formats: .wav, .mp3, .flac, .ogg, .aac, .m4a. Each _end must have a matching _start. File names must be unique across the archive. Aim for at least 10 pairs.
Minimum clip duration (per pair): at least one pair must have both its reference (_start) and target (_end) clip at least audio_duration_seconds long. A pair with either side too short is skipped, and if no pair qualifies the request fails with a 422.
Example layout:
sample01_start.wav sample01_end.wav sample01.txt sample02_start.mp3 sample02_end.wav sample02.txt
At least one pair must fill the audio bucket. A clip shorter than audio_duration_seconds is skipped, and a pair is usable only when both its reference and target are at least audio_duration_seconds long; if no pair qualifies, the request is rejected (HTTP 422). Lower audio_duration_seconds if your clips are short.
training_data_url (required)Type: string
URL to the .zip archive of _start/_end audio pairs.
trigger_phraseType: string
Default: ""
Phrase prepended to captions during training; include it at inference.
rankType: integer (8, 16, 32, 64, 128)
Default: 32
IC-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). Each clip is bucketed independently — clips shorter than this are skipped; longer clips are trimmed — and the reference (_start) and target (_end) are then paired by row, so a pair is usable only when both sides fill the bucket. At least one pair must qualify or the request fails with a 422. Audio-only modes need this because there is no video frame count to derive a length from.
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).
split_input_into_scenesType: boolean
Default: false
Off for this mode: scene splitting would desync the reference/target pair. Provide pre-split clips instead.
split_input_duration_thresholdType: number
Default: 30.0 (range 1.0–60.0)
Duration threshold for scene splitting (only relevant if splitting were enabled).
validationType: array
Default: [] (max 2 entries)
Validation samples, each an object with:
prompt (string) — the text prompt.reference_audio_url (string, required) — the reference audio that conditions the generated audio.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,validation_resolution, etc.), but they have no effect — no video is processed. You can safely leave them at their defaults.
lora_file — the trained IC-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.
_start/_end audio pairs and captions matched, and each clip fit to the audio_duration_seconds bucket.number_of_steps, conditioned on the reference audio, learning to produce the target audio. Validation previews run at intervals..zip is unpacked; macOS metadata and hidden files are ignored.<name>_start is paired with its <name>_end and the optional <name>.txt. A target missing its reference causes a clear error.audio_duration_seconds bucket (clips shorter than the bucket are skipped; longer ones trimmed; normalized and pitch-fit as configured).An IC-LoRA performs an in-context transformation: rather than generating from text alone, it conditions on a reference clip supplied at inference and produces a transformed result. Here the result is audio derived from a reference audio clip. The trained file specializes the base model at your reference→target audio mapping. At inference you supply a reference audio clip plus a prompt, and the LoRA produces the corresponding target audio.
audio_duration_seconds that fits most of your clips so few are skipped.Good caption: tonech4nge a warm vintage-radio version of the voice
Weak caption: voice
At inference, supply a reference audio clip, use the same trigger phrase and caption style, and keep clip lengths in line with audio_duration_seconds.
json{ "training_data_url": "https://example.com/a2a_pairs.zip", "trigger_phrase": "tonech4nge", "rank": 32, "number_of_steps": 2000, "learning_rate": 0.0002, "audio_duration_seconds": 5.0, "validation": [ { "prompt": "tonech4nge", "reference_audio_url": "https://example.com/ref.wav" } ] }
rank, or more consistent pairs.audio_duration_seconds to match your clips.rank, more pairs._start/_end pairs.audio_duration_seconds set so long that most clips are skipped.