LUMINA2.zh
Lumina2 快速入门¶
在本示例中,我们将训练一个 Lumina2 LoRA 或进行全模型微调。
硬件要求¶
Lumina2 是一个 2B 参数模型,比 Flux 或 SD3 等大型模型更易用。模型体积较小意味着:
当训练 rank-16 LoRA 时: - LoRA 训练约需 12-14GB VRAM - 全模型微调约需 16-20GB VRAM - 启动时约需 20-30GB 系统内存
你需要: - 最低:单张 RTX 3060 12GB 或 RTX 4060 Ti 16GB - 推荐:RTX 3090、RTX 4090 或 A100 以更快训练 - 系统内存:建议至少 32GB
前提条件¶
确保已安装 Python;SimpleTuner 在 3.10 到 3.12 版本上运行良好。
您可以运行以下命令检查:
如果您的 Ubuntu 系统未安装 Python 3.12,可以尝试以下命令:
容器镜像依赖¶
对于 Vast、RunPod 和 TensorDock(以及其他平台),在 CUDA 12.2-12.8 镜像上可以使用以下命令:
安装¶
通过 pip 安装 SimpleTuner:
pip install 'simpletuner[cuda]'
# CUDA 13 / Blackwell users (NVIDIA B-series GPUs)
pip install 'simpletuner[cuda13]' --extra-index-url https://download.pytorch.org/whl/cu130
如需手动安装或开发环境设置,请参阅安装文档。
设置环境¶
要运行 SimpleTuner,您需要设置配置文件、数据集和模型目录,以及数据加载器配置文件。
配置文件¶
将 config/config.json.example 复制为 config/config.json:
您需要修改以下变量:
model_type- LoRA 训练设为lora,全参微调设为full。model_family- 设为lumina2。output_dir- 设为存储检查点与验证图像的目录,建议使用完整路径。train_batch_size- 取 1-4,取决于显存与数据集大小。validation_resolution- Lumina2 支持多分辨率,常用值:1024x1024、512x512、768x768。validation_guidance- Lumina2 使用 CFG,引导值 3.5-7.0 效果较好。validation_num_inference_steps- 20-30 步适合 Lumina2。gradient_accumulation_steps- 用于模拟更大 batch,推荐 2-4。optimizer- 推荐adamw_bf16,lion和optimi-stableadamw也可。mixed_precision- 建议保持bf16。gradient_checkpointing- 设为true以节省 VRAM。learning_rate- LoRA:1e-4到5e-5;全参微调:1e-5到1e-6。
Lumina2 示例配置¶
放入 config.json:
查看示例配置
{
"base_model_precision": "int8-torchao",
"checkpoint_step_interval": 50,
"data_backend_config": "config/lumina2/multidatabackend.json",
"disable_bucket_pruning": true,
"eval_steps_interval": 50,
"evaluation_type": "clip",
"flow_schedule_auto_shift": true,
"gradient_checkpointing": true,
"hub_model_id": "lumina2-lora",
"learning_rate": 1e-4,
"lora_alpha": 16,
"lora_rank": 16,
"lora_type": "standard",
"lr_scheduler": "constant",
"max_train_steps": 400000,
"model_family": "lumina2",
"model_type": "lora",
"num_train_epochs": 0,
"optimizer": "adamw_bf16",
"output_dir": "output/lumina2",
"push_checkpoints_to_hub": true,
"push_to_hub": true,
"quantize_via": "cpu",
"report_to": "wandb",
"seed": 42,
"tracker_project_name": "lumina2-training",
"tracker_run_name": "lumina2-lora",
"train_batch_size": 4,
"use_ema": true,
"vae_batch_size": 1,
"validation_disable_unconditional": true,
"validation_guidance": 4.0,
"validation_guidance_rescale": 0.0,
"validation_negative_prompt": "ugly, cropped, blurry, low-quality, mediocre average",
"validation_num_inference_steps": 40,
"validation_prompt": "A photo-realistic image of a cat",
"validation_prompt_library": false,
"validation_resolution": "1024x1024",
"validation_seed": 42,
"validation_step_interval": 50
}
若使用 Lycoris 训练,将 lora_type 改为 lycoris。
高级实验功能¶
显示高级实验详情
SimpleTuner 包含可显著提高训练稳定性和性能的实验功能。 * **[计划采样(Rollout)](../experimental/SCHEDULED_SAMPLING.md):**通过让模型在训练期间生成自己的输入来减少曝光偏差并提高输出质量。 > ⚠️ 这些功能会增加训练的计算开销。 #### 验证提示词 `config/config.json` 中包含“主验证提示词”。此外,创建一个提示词库文件:{
"portrait": "a high-quality portrait photograph with natural lighting",
"landscape": "a breathtaking landscape photograph with dramatic lighting",
"artistic": "an artistic rendering with vibrant colors and creative composition",
"detailed": "a highly detailed image with sharp focus and rich textures",
"stylized": "a stylized illustration with unique artistic flair"
}
[
{
"id": "lumina2-training",
"type": "local",
"crop": true,
"crop_aspect": "square",
"crop_style": "center",
"resolution": 1024,
"minimum_image_size": 512,
"maximum_image_size": 2048,
"target_downsample_size": 1024,
"resolution_type": "pixel_area",
"cache_dir_vae": "cache/vae/lumina2/training",
"instance_data_dir": "/datasets/training",
"caption_strategy": "textfile",
"metadata_backend": "discovery"
},
{
"id": "text-embeds",
"type": "local",
"dataset_type": "text_embeds",
"default": true,
"cache_dir": "cache/text/lumina2",
"disabled": false,
"write_batch_size": 128
}
]