【Dive Into Stable Diffusion v3.5】1:开源项目正式发布——深入探索SDv3.5模型全参/LoRA/RLHF训练

目录

  • [1 引言](#1 引言)
  • [2 项目简介](#2 项目简介)
  • [3 快速上手](#3 快速上手)
    • [3.1 下载代码](#3.1 下载代码)
    • [3.2 环境配置](#3.2 环境配置)
    • [3.3 项目结构](#3.3 项目结构)
    • [3.4 下载模型与数据集](#3.4 下载模型与数据集)
    • [3.5 运行指令](#3.5 运行指令)
    • [3.6 核心参数说明](#3.6 核心参数说明)
      • [3.6.1 通用参数](#3.6.1 通用参数)
      • [3.6.2 优化器/学习率](#3.6.2 优化器/学习率)
      • [3.6.3 数据相关](#3.6.3 数据相关)
  • [4 结语](#4 结语)

1 引言

在人工智能和机器学习领域,生成模型的应用越来越广泛。Stable Diffusion 作为其中的佼佼者,因其强大的图像生成能力而备受关注。今天,我的开源项目 Dive Into Stable Diffusion v3.5 已经正式发布!这个项目旨在总结我在开发过程中所学到和用到的知识和工具,同时帮助其他开发者更好地理解和应用 Stable Diffusion v3.5 模型。目前,项目提供了多种微调和优化的方法,包括全量参数微调、LoRA、DreamBooth、RLHF和DPO训练等。

项目地址:https://github.com/Donvink/dive-into-stable-diffusion-v3-5

2 项目简介

Dive Into Stable Diffusion v3.5 是一个用于微调 Stable Diffusion v3.5 的训练代码库,基于Hugging Face 的 diffusers 库进行适配开发。

以下是项目的主要功能模块:

  • SDv3.5 模型的全量微调
  • 使用 LoRA 微调 SDv3.5 模型
  • 结合 DreamBooth 与 LoRA 微调 SDv3.5 模型
  • 基于 DDPO 和美学评分器的 RLHF(人类反馈强化学习)微调 SDv3.5 模型
  • 基于 GRPO 和美学评分器的 RLHF 微调 SDv3.5 模型
  • 基于 DPO 微调 SDv1.5 模型
  • 基于 ReFL 和图文匹配评分器的 RLHF 微调 SDv1.5 模型

让我们一起 Dive Into Stable Diffusion v3.5 吧!

3 快速上手

3.1 下载代码

bash 复制代码
git clone https://github.com/Donvink/dive-into-stable-diffusion-v3-5.git

3.2 环境配置

首先安装所需的依赖项:

bash 复制代码
pip install -r requirements.txt

3.3 项目结构

项目的目录结构如下:

  • datas/ 数据集目录(从 HuggingFace Hub 下载),存放训练用的图片或提示文本
  • models/ 预训练模型目录(从 huggingface.co/models 下载)
  • outputs/ 输出目录,用于保存模型预测结果和训练检查点
  • scripts/ SDv3.5 训练主脚本目录
  • src/ 核心训练流程和训练器代码
  • demo.py / demo.sh SDv3.5 推理示例
  • requirements.txt / setup.py 基础依赖配置
  • train*.py 核心训练脚本

3.4 下载模型与数据集

从 HuggingFace 或 GitHub 下载所需的模型:

bash 复制代码
models
|-- aesthetics-predictor-v1-vit-large-patch14
|-- clip-vit-large-patch14
|-- improved-aesthetic-predictor
`-- stable-diffusion-3.5-medium

从以下地址下载 improved-aesthetic-predictor:
improved-aesthetic-predictor

下载数据集:

bash 复制代码
datas
|-- dogs
`-- pokemon

3.5 运行指令

  • SDv3.5 全量微调
bash 复制代码
bash scripts/train_full_finetuning_sd3.sh
  • LoRA 微调 SDv3.5
bash 复制代码
bash scripts/train_text_to_image_lora_sd3.sh
  • DreamBooth + LoRA 微调 SDv3.5
bash 复制代码
bash scripts/train_dreambooth_lora_sd3.sh
  • DDPO + 美学评分器 RLHF 微调
bash 复制代码
bash scripts/train_aesthetic_ddpo_sd3.sh
  • GRPO + 美学评分器 RLHF 微调
bash 复制代码
# 注意:这部分代码可能存在问题,还需要完善。
bash scripts/train_aesthetic_rlhf_grpo_lora_sd3.sh
  • DPO 微调 SDv1.5
bash 复制代码
bash scripts/train_dpo_sd_v1_5.sh
  • ReFL + 图文匹配评分器的 RLHF 微调
bash 复制代码
bash scripts/train_refl_v1_5.sh

3.6 核心参数说明

3.6.1 通用参数

  • --pretrained_model_name_or_path 预训练模型路径
  • --output_dir 模型输出和日志目录
  • --seed 训练随机种子(默认不设置)

3.6.2 优化器/学习率

  • --max_train_steps 总训练步数
  • --gradient_accumulation_steps 梯度累积步数
  • --train_batch_size 实际批大小(具体参考脚本说明)
  • --checkpointing_steps 模型保存间隔步数
  • --gradient_checkpointing 自动为 SDXL 启用梯度检查点
  • --learning_rate 基础学习率
  • --scale_lr 学习率缩放(推荐启用但非默认)
  • --lr_scheduler 学习率调度器类型(默认线性预热)
  • --lr_warmup_steps 学习率预热步数

3.6.3 数据相关

  • --dataset_name 数据集名称(来自 HuggingFace Hub)
  • --cache_dir 本地数据集缓存路径(需根据文件系统调整)
  • --resolution 输入分辨率(默认 1024)
  • --random_crop--no_hflip 数据增强设置
  • --dataloader_num_workers 数据加载器工作线程数

4 结语

我们希望 Dive Into Stable Diffusion v3.5 能够成为你在探索生成模型道路上的得力助手。无论你是经验丰富的开发者还是初学者,我们都欢迎你参与到这个项目中来,共同推动技术的进步。如果你有任何问题或建议,请随时通过 GitHub 提交 Issue 或 Pull Request。

让我们一起开启这段精彩的旅程吧!

如果觉得有用,别忘了点亮 ⭐️ 支持开源!

相关推荐
武子康3 分钟前
调查研究-198 Agent 到底该记住什么?读懂《What Must Generalist Agents Remember?》
人工智能·openai·agent
aqi0037 分钟前
15天学会AI应用开发(九)利用Chroma持久化向量数据
人工智能·python·大模型·ai编程·ai应用
武子康2 小时前
调查研究-197 FAISS vs Elasticsearch 全面对比:从向量检索、全文搜索到 RAG 选型指南
人工智能·elasticsearch·agent
leeyi2 小时前
Checkpoint 机制:Agent 怎么在断电后接着跑
redis·aigc·agent
青禾网络2 小时前
Web 前端如何接入 AI 音效生成:从零到可用的完整方案
人工智能·设计模式
用户252736278142 小时前
【技术实战】用 Spring Boot + Vue3 + LM Studio 在本地跑通 RAG 知识库
人工智能
用户5191495848452 小时前
VBScript随机数生成器内部机制:从时间种子到密码令牌破解
人工智能·aigc
米小虾3 小时前
Context Engineering —— 知识与记忆的窗口
人工智能·agent
IT_陈寒3 小时前
Python里这个赋值坑,连老司机都能翻车
前端·人工智能·后端