# ============================================================================= # LTX-2 Audio Inpainting LoRA Training Configuration # ============================================================================= # # This configuration is for training LoRA adapters on the LTX-2 model for # audio inpainting. The model learns to fill in masked regions of audio # using per-sample binary masks that define which regions are conditioning # (provided clean) and which regions the model must generate. # # Mask conditioning works by loading per-sample binary masks from disk. # Masked regions receive clean latents (no noise, timestep=0) and are excluded # from the loss. Unmasked regions are noised and trained normally. # # This is an audio-only training mode — no video modality is configured. # # Use this configuration when you want to: # - Train the model to fill in or replace regions of existing audio # - Fine-tune audio inpainting capabilities on custom datasets # - Create audio restoration or editing models # # Dataset structure: # preprocessed_data_root/ # ├── conditions/ # Text embeddings for each sample # ├── audio_latents/ # Audio latents (VAE-encoded audio) # └── audio_masks/ # Per-sample binary masks defining conditioning regions # # Dataset metadata columns: audio, audio_mask, caption # # ============================================================================= # ----------------------------------------------------------------------------- # Model Configuration # ----------------------------------------------------------------------------- # Specifies the base model to fine-tune and the training mode. model: # Path to the LTX-2 model checkpoint (.safetensors file) # This should be a local path to your downloaded model model_path: "path/to/ltx-2-model.safetensors" # Path to the text encoder model directory # For LTX-2, this is typically the Gemma-based text encoder text_encoder_path: "path/to/gemma-text-encoder" # Training mode: "lora" for efficient adapter training, "full" for full fine-tuning # LoRA is recommended for most use cases (faster, less memory, prevents overfitting) training_mode: "lora" # Optional: Path to resume training from a checkpoint # Can be a checkpoint file (.safetensors) or directory (uses latest checkpoint) load_checkpoint: null # ----------------------------------------------------------------------------- # LoRA Configuration # ----------------------------------------------------------------------------- # Controls the Low-Rank Adaptation parameters for efficient fine-tuning. lora: # Rank of the LoRA matrices (higher = more capacity but more parameters) # Typical values: 8, 16, 32, 64. Start with 32 for audio inpainting LoRA training. rank: 32 # Alpha scaling factor (usually set equal to rank) # The effective scaling is alpha/rank, so alpha=rank means scaling of 1.0 alpha: 32 # Dropout probability for LoRA layers (0.0 = no dropout) # Can help with regularization if overfitting occurs dropout: 0.0 # For audio-only inpainting, we explicitly target audio modules. # Including audio FFN layers can increase the LoRA's capacity. target_modules: # Audio self-attention - "audio_attn1.to_k" - "audio_attn1.to_q" - "audio_attn1.to_v" - "audio_attn1.to_out.0" # Audio cross-attention to text - "audio_attn2.to_k" - "audio_attn2.to_q" - "audio_attn2.to_v" - "audio_attn2.to_out.0" # Audio feed-forward (often improves transformation quality) - "audio_ff.net.0.proj" - "audio_ff.net.2" # ----------------------------------------------------------------------------- # Training Strategy Configuration # ----------------------------------------------------------------------------- # Defines the audio inpainting training approach using the unified flexible # strategy. Per-sample binary masks define which audio regions are provided # as clean conditioning and which regions the model must learn to generate. training_strategy: name: "flexible" # Audio modality configuration (audio-only, no video) audio: # Whether the model generates audio (true) or uses it as frozen conditioning (false) is_generated: true # Directory name (within preprocessed_data_root) containing audio latents latents_dir: "audio_latents" # Conditions applied to the audio modality during training conditions: - type: mask # Directory name (within preprocessed_data_root) containing binary masks # Each mask file corresponds to a training sample and defines the # conditioning region (mask=1 means conditioning, mask=0 means generate) mask_dir: "audio_masks" # Probability of applying mask conditioning per training sample # At 1.0, all training samples use inpainting mode probability: 1.0 # ----------------------------------------------------------------------------- # Optimization Configuration # ----------------------------------------------------------------------------- # Controls the training optimization parameters. optimization: # Learning rate for the optimizer # Typical range for LoRA: 1e-5 to 1e-4 learning_rate: 2e-4 # Total number of training steps steps: 3000 # Batch size per GPU # Reduce if running out of memory batch_size: 1 # Number of gradient accumulation steps # Effective batch size = batch_size * gradient_accumulation_steps * num_gpus gradient_accumulation_steps: 1 # Maximum gradient norm for clipping (helps training stability) max_grad_norm: 1.0 # Optimizer type: "adamw" (standard) or "adamw8bit" (memory-efficient) optimizer_type: "adamw" # Learning rate scheduler type # Options: "constant", "linear", "cosine", "cosine_with_restarts", "polynomial" scheduler_type: "linear" # Additional scheduler parameters (depends on scheduler_type) scheduler_params: { } # Enable gradient checkpointing to reduce memory usage # Recommended for training with limited GPU memory enable_gradient_checkpointing: true # ----------------------------------------------------------------------------- # Acceleration Configuration # ----------------------------------------------------------------------------- # Hardware acceleration and memory optimization settings. acceleration: # Mixed precision training mode # Options: "no" (fp32), "fp16" (half precision), "bf16" (bfloat16, recommended) mixed_precision_mode: "bf16" # Model quantization for reduced memory usage # Options: null (none), "int8-quanto", "int4-quanto", "int2-quanto", "fp8-quanto", "fp8uz-quanto" quantization: null # Load text encoder in 8-bit precision to save memory # Useful when GPU memory is limited load_text_encoder_in_8bit: false # Offload optimizer state to CPU during validation video sampling and restore it after. # Frees VRAM for the VAE decoder when optimizer state is large (full fine-tune, high-rank # LoRA). No effect under FSDP (sharded state). offload_optimizer_during_validation: false # ----------------------------------------------------------------------------- # Data Configuration # ----------------------------------------------------------------------------- # Specifies the training data location and loading parameters. data: # Root directory containing preprocessed training data # Should contain: conditions/, audio_latents/, and audio_masks/ subdirectories preprocessed_data_root: "/path/to/preprocessed/data" # Number of worker processes for data loading # Used for parallel data loading to speed up data loading num_dataloader_workers: 2 # ----------------------------------------------------------------------------- # Validation Configuration # ----------------------------------------------------------------------------- # Controls validation sampling during training. # NOTE: Validation sampling use simplified inference pipelines and prioritizes speed over # maximum quality. For production-quality inference, use `packages/ltx-pipelines`. validation: # Validation samples — each sample describes a self-contained generation request. # For audio inpainting, each sample includes mask conditioning (audio + mask paths). samples: - prompt: >- A warm and soothing piano melody with soft ambient textures, reminiscent of a quiet evening by the fireplace. Gentle reverb creates a sense of intimate space. conditions: - type: mask audio: "/path/to/inpainting_audio_1.wav" mask: "/path/to/inpainting_mask_1.pt" - prompt: >- Energetic electronic beats with pulsing synthesizer leads and crisp hi-hat patterns. Deep bass tones provide a driving rhythm underneath bright melodic arpeggios. conditions: - type: mask audio: "/path/to/inpainting_audio_2.wav" mask: "/path/to/inpainting_mask_2.pt" # Negative prompt to avoid unwanted artifacts negative_prompt: "worst quality, inconsistent motion, blurry, jittery, distorted" # Generation length control [width, height, frames] # With generate_video=false, width/height are unused; frames and frame_rate set audio duration. # Frames must satisfy: frames % 8 == 1 (e.g., 1, 9, 17, 25, 33, 41, 49, 57, 65, 73, 81, 89, ...) video_dims: [ 512, 512, 81 ] # Frame rate for generated videos frame_rate: 25.0 # Random seed for reproducible validation outputs seed: 42 # Number of denoising steps for validation inference # Higher values = better quality but slower generation inference_steps: 30 # Generate validation videos every N training steps # Set to null to disable validation during training interval: 100 # Classifier-free guidance scale # Higher values = stronger adherence to prompt but may introduce artifacts guidance_scale: 4.0 # STG (Spatio-Temporal Guidance) parameters for improved video quality # STG is combined with CFG for better temporal coherence stg_scale: 1.0 # Recommended: 1.0 (0.0 disables STG) stg_blocks: [29] # Recommended: single block 29 stg_mode: "stg_av" # "stg_av" skips both audio and video self-attention (suited to audio validation) # Whether to generate audio in validation samples # Enabled because this audio-only config generates audio generate_audio: true # Whether to generate video in validation samples # Disabled because no video modality is configured generate_video: false # Skip validation at the beginning of training (step 0) skip_initial_validation: false # ----------------------------------------------------------------------------- # Checkpoint Configuration # ----------------------------------------------------------------------------- # Controls model checkpoint saving during training. checkpoints: # Save a checkpoint every N steps # Set to null to disable intermediate checkpoints interval: 250 # Number of most recent checkpoints to keep # Set to -1 to keep all checkpoints keep_last_n: 3 # Precision to use when saving checkpoint weights # Options: "bfloat16" (default, smaller files) or "float32" (full precision) precision: "bfloat16" # ----------------------------------------------------------------------------- # Flow Matching Configuration # ----------------------------------------------------------------------------- # Parameters for the flow matching training objective. flow_matching: # Timestep sampling mode # "shifted_logit_normal" is recommended for LTX-2 models timestep_sampling_mode: "shifted_logit_normal" # Additional parameters for timestep sampling timestep_sampling_params: { } # ----------------------------------------------------------------------------- # Hugging Face Hub Configuration # ----------------------------------------------------------------------------- # Settings for uploading trained models to the Hugging Face Hub. hub: # Whether to push the trained model to the Hub push_to_hub: false # Repository ID on Hugging Face Hub (e.g., "username/my-ic-lora-model") # Required if push_to_hub is true hub_model_id: null # ----------------------------------------------------------------------------- # Weights & Biases Configuration # ----------------------------------------------------------------------------- # Settings for experiment tracking with W&B. wandb: # Enable W&B logging enabled: false # W&B project name project: "ltx-2-trainer" # W&B username or team (null uses default account) entity: null # Tags to help organize runs tags: [ "ltx2", "lora", "audio-inpainting", "audio-only" ] # Log validation media (video/audio) to W&B log_validation_videos: true # ----------------------------------------------------------------------------- # General Configuration # ----------------------------------------------------------------------------- # Global settings for the training run. # Random seed for reproducibility seed: 42 # Directory to save outputs (checkpoints, validation videos, logs) output_dir: "outputs/audio_inpainting_lora"