Automated PR - 2026-06-17
This commit is contained in:
@@ -0,0 +1,342 @@
|
||||
# =============================================================================
|
||||
# LTX-2 AV2AV IC-LoRA Training Configuration
|
||||
# =============================================================================
|
||||
#
|
||||
# This configuration is for training In-Context LoRA (IC-LoRA) adapters that
|
||||
# enable joint audio-video-to-audio-video transformations. IC-LoRA learns to
|
||||
# apply transformations to both the video and audio modalities simultaneously
|
||||
# by conditioning on paired reference video and audio.
|
||||
#
|
||||
# Both modalities use reference conditioning: pre-encoded reference latents
|
||||
# are concatenated to each modality's target sequence. Reference tokens
|
||||
# participate in bidirectional self-attention but receive no noise and are
|
||||
# excluded from the loss.
|
||||
#
|
||||
# Key differences from video-only IC-LoRA (v2v_ic_lora.yaml):
|
||||
# - Both video AND audio have reference conditions
|
||||
# - Requires preprocessed reference latents for BOTH modalities
|
||||
# - LoRA targets all modules (video, audio, and cross-modal attention)
|
||||
# - Validation uses both video and audio reference conditions
|
||||
#
|
||||
# Dataset structure:
|
||||
# preprocessed_data_root/
|
||||
# ├── latents/ # Target video latents
|
||||
# ├── audio_latents/ # Target audio latents
|
||||
# ├── conditions/ # Text embeddings
|
||||
# ├── reference_latents/ # Reference video latents (conditioning input)
|
||||
# └── reference_audio_latents/ # Reference audio latents (conditioning input)
|
||||
#
|
||||
# Dataset metadata columns: video, audio, reference_video, reference_audio, 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
|
||||
# IC-LoRA reference conditioning is intended for LoRA adapter training.
|
||||
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 16-32 for IC-LoRA.
|
||||
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 AV2AV IC-LoRA, we target ALL modules — video, audio, and cross-modal attention.
|
||||
# Using short patterns matches all branches simultaneously.
|
||||
target_modules:
|
||||
# Attention layers (matches video, audio, and cross-modal branches)
|
||||
- "to_k"
|
||||
- "to_q"
|
||||
- "to_v"
|
||||
- "to_out.0"
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# Training Strategy Configuration
|
||||
# -----------------------------------------------------------------------------
|
||||
# Defines the AV2AV IC-LoRA training approach using the unified flexible
|
||||
# strategy. Both video and audio modalities have reference conditioning,
|
||||
# enabling joint audiovisual transformations.
|
||||
training_strategy:
|
||||
name: "flexible"
|
||||
|
||||
# Video modality configuration
|
||||
video:
|
||||
# Whether the model generates video (true) or uses it as frozen conditioning (false)
|
||||
is_generated: true
|
||||
# Directory name (within preprocessed_data_root) containing target video latents
|
||||
latents_dir: "latents"
|
||||
|
||||
# Conditions applied to the video modality during training
|
||||
conditions:
|
||||
# Reference conditioning (IC-LoRA): concatenates pre-encoded reference video
|
||||
# latents to the target sequence
|
||||
- type: reference
|
||||
latents_dir: "reference_latents"
|
||||
probability: 1.0
|
||||
|
||||
# Audio modality configuration
|
||||
audio:
|
||||
# Whether the model generates audio (true) or uses it as frozen conditioning (false)
|
||||
is_generated: true
|
||||
# Directory name (within preprocessed_data_root) containing target audio latents
|
||||
latents_dir: "audio_latents"
|
||||
|
||||
# Conditions applied to the audio modality during training
|
||||
conditions:
|
||||
# Reference conditioning (IC-LoRA): concatenates pre-encoded reference audio
|
||||
# latents to the target sequence
|
||||
- type: reference
|
||||
latents_dir: "reference_audio_latents"
|
||||
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: latents/, audio_latents/, conditions/, reference_latents/, and reference_audio_latents/
|
||||
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 AV2AV IC-LoRA, each sample includes reference video and reference audio conditions.
|
||||
samples:
|
||||
- prompt: >-
|
||||
A man in a casual blue jacket walks along a winding path through a lush green park on a
|
||||
bright sunny afternoon. Tall oak trees line the pathway, their leaves rustling gently in
|
||||
the breeze. Dappled sunlight creates shifting patterns on the ground as he strolls at a
|
||||
relaxed pace, occasionally looking up at the scenery around him. The audio captures
|
||||
footsteps on gravel, birds singing in the trees, distant children playing, and the soft
|
||||
whisper of wind through the foliage.
|
||||
conditions:
|
||||
- type: reference
|
||||
video: "/path/to/reference_video_1.mp4"
|
||||
downscale_factor: 1
|
||||
temporal_scale_factor: 1
|
||||
include_in_output: true
|
||||
- type: reference
|
||||
audio: "/path/to/reference_audio_1.wav"
|
||||
- prompt: >-
|
||||
A fluffy orange tabby cat sits perfectly still on a wooden windowsill, its green eyes
|
||||
intently tracking small birds hopping on a branch just outside the glass. The cat's ears
|
||||
twitch and rotate, following every movement. Warm afternoon light illuminates its fur,
|
||||
creating a soft golden glow. Behind the cat, a cozy living room with a bookshelf and
|
||||
houseplants is visible. The audio features gentle purring, occasional soft meows, muffled
|
||||
bird chirps through the window, and quiet ambient room sounds.
|
||||
conditions:
|
||||
- type: reference
|
||||
video: "/path/to/reference_video_2.mp4"
|
||||
downscale_factor: 1
|
||||
temporal_scale_factor: 1
|
||||
include_in_output: true
|
||||
- type: reference
|
||||
audio: "/path/to/reference_audio_2.wav"
|
||||
|
||||
# Negative prompt to avoid unwanted artifacts
|
||||
negative_prompt: "worst quality, inconsistent motion, blurry, jittery, distorted"
|
||||
|
||||
# Output video dimensions [width, height, frames]
|
||||
# Width and height must be divisible by 32
|
||||
# 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" # Both video and audio modalities are trained
|
||||
|
||||
# Whether to generate audio in validation samples
|
||||
# Can be enabled even when not training the audio branch
|
||||
generate_audio: true
|
||||
|
||||
# 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", "ic-lora", "av2av" ]
|
||||
|
||||
# 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/av2av_ic_lora"
|
||||
Reference in New Issue
Block a user