Automated PR - 2026-01-05
This commit is contained in:
Executable
+64
@@ -0,0 +1,64 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
"""
|
||||
Train LTXV models using configuration from YAML files.
|
||||
This script provides a command-line interface for training LTXV models using
|
||||
either LoRA fine-tuning or full model fine-tuning. It loads configuration from
|
||||
a YAML file and passes it to the trainer.
|
||||
Basic usage:
|
||||
python scripts/train.py CONFIG_PATH [--disable-progress-bars]
|
||||
For multi-GPU/FSDP training, configure and launch via Accelerate:
|
||||
accelerate config
|
||||
accelerate launch scripts/train.py CONFIG_PATH
|
||||
"""
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
import typer
|
||||
import yaml
|
||||
from rich.console import Console
|
||||
|
||||
from ltx_trainer.config import LtxTrainerConfig
|
||||
from ltx_trainer.trainer import LtxvTrainer
|
||||
|
||||
console = Console()
|
||||
app = typer.Typer(
|
||||
pretty_exceptions_enable=False,
|
||||
no_args_is_help=True,
|
||||
help="Train LTXV models using configuration from YAML files.",
|
||||
)
|
||||
|
||||
|
||||
@app.command()
|
||||
def main(
|
||||
config_path: str = typer.Argument(..., help="Path to YAML configuration file"),
|
||||
disable_progress_bars: bool = typer.Option(
|
||||
False,
|
||||
"--disable-progress-bars",
|
||||
help="Disable progress bars (useful for multi-process runs)",
|
||||
),
|
||||
) -> None:
|
||||
"""Train the model using the provided configuration file."""
|
||||
# Load the configuration from the YAML file
|
||||
config_path = Path(config_path)
|
||||
if not config_path.exists():
|
||||
typer.echo(f"Error: Configuration file {config_path} does not exist.")
|
||||
raise typer.Exit(code=1)
|
||||
|
||||
with open(config_path, "r") as file:
|
||||
config_data = yaml.safe_load(file)
|
||||
|
||||
# Convert the loaded data to the LtxTrainerConfig object
|
||||
try:
|
||||
trainer_config = LtxTrainerConfig(**config_data)
|
||||
except Exception as e:
|
||||
typer.echo(f"Error: Invalid configuration data: {e}")
|
||||
raise typer.Exit(code=1) from e
|
||||
|
||||
# Initialize the training process
|
||||
trainer = LtxvTrainer(trainer_config)
|
||||
trainer.train(disable_progress_bars=disable_progress_bars)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
app()
|
||||
Reference in New Issue
Block a user