当前位置: 首页 > news >正文

基于Stable Diffusion XL模型进行文本生成图像的训练

基于Stable Diffusion XL模型进行文本生成图像的训练

flyfish

环境变量部分

export MODEL_NAME="stabilityai/stable-diffusion-xl-base-1.0"
export VAE_NAME="madebyollin/sdxl-vae-fp16-fix"
export DATASET_NAME="lambdalabs/naruto-blip-captions"
  • MODEL_NAME:指定预训练模型的名称或路径。这里使用的是 stabilityai/stable-diffusion-xl-base-1.0,也就是Stable Diffusion XL的基础版本1.0。
  • VAE_NAME:指定变分自编码器(VAE)的名称或路径。madebyollin/sdxl-vae-fp16-fix 是针对Stable Diffusion XL的一个经过修复的VAE模型,适用于半精度(FP16)计算。
  • DATASET_NAME:指定训练所使用的数据集名称或路径。这里使用的是 lambdalabs/naruto-blip-captions,是一个包含火影忍者相关图像及其描述的数据集。

accelerate launch 命令参数部分

accelerate launch train_text_to_image_sdxl.py \

这行代码使用 accelerate 工具来启动 train_text_to_image_sdxl.py 脚本,accelerate 可以帮助我们在多GPU、TPU等环境下进行分布式训练。

脚本参数部分

  • --pretrained_model_name_or_path=$MODEL_NAME:指定预训练模型的名称或路径,这里使用前面定义的 MODEL_NAME 环境变量。
  • --pretrained_vae_model_name_or_path=$VAE_NAME:指定预训练VAE模型的名称或路径,使用前面定义的 VAE_NAME 环境变量。
  • --dataset_name=$DATASET_NAME:指定训练数据集的名称或路径,使用前面定义的 DATASET_NAME 环境变量。
  • --enable_xformers_memory_efficient_attention:启用 xformers 库的内存高效注意力机制,能减少训练过程中的内存占用。
  • --resolution=512 --center_crop --random_flip
    • --resolution=512:将输入图像的分辨率统一调整为512x512像素。
    • --center_crop:对图像进行中心裁剪,使其达到指定的分辨率。
    • --random_flip:在训练过程中随机对图像进行水平翻转,以增加数据的多样性。
  • --proportion_empty_prompts=0.2:设置空提示(没有文本描述)的样本在训练数据中的比例为20%。
  • --train_batch_size=1:每个训练批次包含的样本数量为1。
  • --gradient_accumulation_steps=4 --gradient_checkpointing
    • --gradient_accumulation_steps=4:梯度累积步数为4,即每4个批次的梯度进行一次更新,这样可以在有限的内存下模拟更大的批次大小。
    • --gradient_checkpointing:启用梯度检查点机制,通过减少内存使用来支持更大的模型和批次大小。
  • --max_train_steps=10000:最大训练步数为10000步。
  • --use_8bit_adam:使用8位Adam优化器,能减少内存占用。
  • --learning_rate=1e-06 --lr_scheduler="constant" --lr_warmup_steps=0
    • --learning_rate=1e-06:学习率设置为1e-6。
    • --lr_scheduler="constant":学习率调度器设置为常数,即训练过程中学习率保持不变。
    • --lr_warmup_steps=0:学习率预热步数为0,即不进行学习率预热。
  • --mixed_precision="fp16":使用半精度(FP16)混合精度训练,能减少内存使用并加快训练速度。
  • --report_to="wandb":将训练过程中的指标报告到Weights & Biases(WandB)平台,方便进行可视化和监控。
  • --validation_prompt="a cute Sundar Pichai creature" --validation_epochs 5
    • --validation_prompt="a cute Sundar Pichai creature":指定验证时使用的文本提示,这里是“一个可爱的桑达尔·皮查伊形象”。
    • --validation_epochs 5:每5个训练轮次进行一次验证。
  • --checkpointing_steps=5000:每5000步保存一次模型的检查点。
  • --output_dir="sdxl-naruto-model":指定训练好的模型的输出目录为 sdxl-naruto-model
  • --push_to_hub:将训练好的模型推送到Hugging Face模型库。

离线环境运行

# 假设已经把模型、VAE和数据集下载到本地了
# 这里假设模型在当前目录下的 sdxl-base-1.0 文件夹
# VAE 在 sdxl-vae-fp16-fix 文件夹
# 数据集在 naruto-blip-captions 文件夹# 定义本地路径
MODEL_NAME="./sdxl-base-1.0"
VAE_NAME="./sdxl-vae-fp16-fix"
DATASET_NAME="./naruto-blip-captions"# 移除需要外网连接的参数
accelerate launch train_text_to_image_sdxl.py \--pretrained_model_name_or_path=$MODEL_NAME \--pretrained_vae_model_name_or_path=$VAE_NAME \--dataset_name=$DATASET_NAME \--enable_xformers_memory_efficient_attention \--resolution=512 --center_crop --random_flip \--proportion_empty_prompts=0.2 \--train_batch_size=1 \--gradient_accumulation_steps=4 --gradient_checkpointing \--max_train_steps=10000 \--use_8bit_adam \--learning_rate=1e-06 --lr_scheduler="constant" --lr_warmup_steps=0 \--mixed_precision="fp16" \--validation_prompt="a cute Sundar Pichai creature" --validation_epochs 5 \--checkpointing_steps=5000 \--output_dir="sdxl-naruto-model"

移除需要外网连接的参数:去掉 --report_to="wandb"--push_to_hub 参数,因为 wandb 需要外网连接来上传训练指标,--push_to_hub 则需要外网连接把模型推送到Hugging Face模型库。

相关文章:

  • 旧版 Flutter 写的项目, 想要在新的环境上运行?
  • ARM 芯片上移植 Ubuntu 操作系统详细步骤
  • 【HarmonyOS 5】鸿蒙中进度条的使用详解
  • HarmonyOS-hdc远程网络方式连接设备
  • 奥威BI:AI+BI深度融合,重塑智能AI数据分析新标杆
  • SpringBoot使用定时线程池ScheduledThreadPoolExecutor
  • Android MVC架构的现代化改造:构建清晰单向数据流
  • Rspack:字节跳动自研 Web 构建工具-基于 Rust打造高性能前端工具链
  • python编译exe执行时报错:OSError:[WinError6]句柄无效
  • 代理协议解析:如何根据需求选择HTTP、HTTPS或SOCKS5?
  • HTTP学习
  • CSS: 选择器与三大特性
  • Abaqus学习笔记
  • 【纯干货~~】Vue 组件封装通用方法论
  • 2025年3月,​韩先超对国网宁夏进行Python线下培训
  • Android Firebase登录和存储用户数据方案
  • 熔断机制的实战:高并发下怎么优雅“断电”保命?
  • 杭州抖音代播公司推荐——品融电商:助力品牌抢占直播电商新风口
  • Go使用Gin写一个对MySQL的增删改查服务
  • SEMI E40-0200 STANDARD FOR PROCESSING MANAGEMENT(加工管理标准)-(二)
  • 硅料巨亏后弘元绿能割肉求生:逾12亿元内蒙古公司股权转让协鑫
  • A股低开高走全线上涨:军工股再度领涨,两市成交12934亿元
  • 司法部:持续规范行政执法行为,加快制定行政执法监督条例
  • 中国德国商会报告:76%在华德企受美国关税影响,但对华投资战略依然稳固
  • 售卖自制外挂交易额超百万元,一男子因提供入侵计算机系统程序被抓
  • 丁薛祥在学习《习近平经济文选》第一卷专题研讨班上强调,深入学习贯彻习近平经济思想,加强党中央对经济工作的集中统一领导