#!/bin/bash set -e echo "Installing system dependencies..." apt-get update apt-get install -y git echo "Starting SimpleTuner environment setup..." git clone https://github.com/bghira/SimpleTuner.git /workspace/SimpleTuner cd /workspace/SimpleTuner pip install uv echo "Setting up Python 3.12 environment..." uv python install 3.12 uv venv --python 3.12 /workspace/venv source /workspace/venv/bin/activate echo "Installing dependencies..." uv pip install -e . uv pip install peft bitsandbytes wandb huggingface_hub echo "Migrating configurations..." cp /data/config.env /workspace/SimpleTuner/config.env cp /data/dataset.json /workspace/SimpleTuner/dataset.json source config.env echo "Authenticating Hugging Face natively..." mkdir -p /root/.cache/huggingface echo -n "$HF_TOKEN" > /root/.cache/huggingface/token echo "Launching accelerate pipeline..." accelerate launch \ --num_processes=1 \ --mixed_precision=$MIXED_PRECISION \ train.py \ --model_type="lora" \ --model_family="flux" \ --pretrained_model_name_or_path="$MODEL_NAME" \ --data_backend_config="dataset.json" \ --output_dir="$OUTPUT_DIR" \ --train_batch_size=$TRAIN_BATCH_SIZE \ --gradient_accumulation_steps=$GRADIENT_ACCUMULATION_STEPS \ --learning_rate=$LEARNING_RATE \ --lr_scheduler="$LR_SCHEDULER" \ --lr_warmup_steps=$LR_WARMUP_STEPS \ --max_train_steps=$MAX_TRAIN_STEPS \ --checkpointing_steps=$CHECKPOINTING_STEPS \ --mixed_precision="$MIXED_PRECISION" \ --optimizer="$OPTIMIZER" \ --gradient_checkpointing=true \ --lora_rank=$LORA_RANK \ --lora_alpha=$LORA_ALPHA \ --validation_prompt="$VALIDATION_PROMPT" \ --validation_steps=$VALIDATION_STEPS \ --validation_resolution=$RESOLUTION \ --push_to_hub \ --hub_model_id="ctan-dev/flux-klein-output"