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

news2025/3/20 7:03:34

目录

  • 1 引言
  • 2 项目简介
  • 3 快速上手
    • 3.1 下载代码
    • 3.2 环境配置
    • 3.3 项目结构
    • 3.4 下载模型与数据集
    • 3.5 运行指令
    • 3.6 核心参数说明
      • 3.6.1 通用参数
      • 3.6.2 优化器/学习率
      • 3.6.3 数据相关
  • 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

capybara

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 下载代码

git clone https://github.com/Donvink/dive-into-stable-diffusion-v3-5.git

3.2 环境配置

首先安装所需的依赖项:

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 下载所需的模型:

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

下载数据集:

datas
|-- dogs
`-- pokemon

3.5 运行指令

  • SDv3.5 全量微调
bash scripts/train_full_finetuning_sd3.sh
  • LoRA 微调 SDv3.5
bash scripts/train_text_to_image_lora_sd3.sh
  • DreamBooth + LoRA 微调 SDv3.5
bash scripts/train_dreambooth_lora_sd3.sh
  • DDPO + 美学评分器 RLHF 微调
bash scripts/train_aesthetic_ddpo_sd3.sh
  • GRPO + 美学评分器 RLHF 微调
# 注意:这部分代码可能存在问题,还需要完善。
bash scripts/train_aesthetic_rlhf_grpo_lora_sd3.sh
  • DPO 微调 SDv1.5
bash scripts/train_dpo_sd_v1_5.sh
  • ReFL + 图文匹配评分器的 RLHF 微调
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 输入分辨率(非 SDXL 默认 512,SDXL 默认 1024)
  • --random_crop--no_hflip 数据增强设置
  • --dataloader_num_workers 数据加载器工作线程数

4 结语

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2318217.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《Waf 火绒终端防护绕过实战:系统程序副本+Certutil木马下载技术详解》

目录 绕过火绒终端安全软件的详细方法 方法一:利用系统程序副本绕过命令监控 方法二:结合certutil.exe副本下载并执行上线木马 注意事项 总结 实际案例解决方案 前提条件 详细操作步骤 1. 攻击主机(VPS)上的准备工作 2.…

上海高考解析几何

解析几何的核心思想。 1. 核心分析方法: 自由度引入 方程组中, n n n 个未知数需要 n n n 个等式来解出具体的值。 自由度 性质 一个未知数带来一个自由度,一个等式条件减少一个自由度(减少自由度的方式为消元)。…

【AVRCP】服务发现互操作性:CT 与 TG 的 SDP 协议契约解析

目录 一、服务发现的核心目标:能力画像对齐 二、控制器(CT)服务记录:控制能力的声明 2.1 必选字段:角色与协议的刚性契约 2.1.1 服务类标识(Service Class ID List) 2.1.2 协议描述列表&am…

MySQL:数据库基础

数据库基础 1.什么是数据库?2.为什么要学习数据库?3.主流的数据库(了解)4.服务器,数据库,表之间的关系5.数据的逻辑存储6.MYSQL架构7.存储引擎 1.什么是数据库? 数据库(Database,简称DB)&#x…

深入 Linux 声卡驱动开发:核心问题与实战解析

1. 字符设备驱动如何为声卡提供操作接口? 问题背景 在 Linux 系统中,声卡被抽象为字符设备。如何通过代码让应用程序能够访问声卡的录音和播放功能? 核心答案 1.1 字符设备驱动的核心结构 Linux 字符设备驱动通过 file_operations 结构体定…

OpenNJet动态API设置accessLog开关,颠覆传统运维工作模式

OpenNJet OpenNJet 应用引擎是高性能、轻量级的WEB应用与代理软件。作为云原生服务网格的数据平面,NJet具备动态配置加载、主动式健康检测、集群高可用、声明式API等多种强大功能。通过CoPliot副驾驶服务框架,在隔离控制面和数据面的情况下实现了高可扩…

案例5_4: 6位数码管轮播0-9【静态显示】

文章目录 文章介绍效果图提示代码&#xff08;不完整&#xff09; 文章介绍 5.1.2 数码管静态显示应用举例 要求&#xff1a; 1、仿真图同案例5_3 2、代码参考案例5_3和案例5_2 效果图 提示代码&#xff08;不完整&#xff09; #include<reg52.h> // 头文件#define uch…

navicat忘记已经连接过的数据库密码的操作步骤

第一步&#xff1a; 点击文件-》导出连接 第二步&#xff1a;选中具体的数据库&#xff0c;且勾选左下角的记住密码 第三步&#xff1a;打开刚刚导出的文件&#xff0c;找到对应加密后的密码 第四步&#xff1a;复制密码到工具点击查看密码 注&#xff1a;参考文章链接附…

Qt窗口坐标体系

坐标系&#xff1a;以左上角为原点&#xff08;0&#xff0c;0&#xff09;&#xff0c;X向右增加&#xff0c;Y向下增加 对于嵌套窗口&#xff0c;其坐标是相对于父窗口来说的 例如&#xff1a; 通过move方法实现

DeepSeek写打台球手机小游戏

DeepSeek写打台球手机小游戏 提问 根据提的要求&#xff0c;让DeepSeek整理的需求&#xff0c;进行提问&#xff0c;内容如下&#xff1a; 请生成一个包含以下功能的可运行移动端打台球小游戏H5文件&#xff1a; 要求 可以重新开始游戏 可以暂停游戏 有白球和其他颜色的球&am…

VR大空间多人互动方案,VR大空间融合AI行为预测的动捕技术

在数字科技迅猛发展的今天&#xff0c;VR大空间技术正逐步成为各行业探索沉浸式体验的重要方向。从企业培训、线上展览到社交元宇宙&#xff0c;VR大空间的应用范围不断拓展。而在这个过程中&#xff0c;多人实时交互成为核心需求&#xff0c;它不仅关乎沉浸感的提升&#xff0…

十四、OSG学习笔记-事件响应

上一章节 十三、OSG学习笔记-osgDB文件读写-CSDN博客https://blog.csdn.net/weixin_36323170/article/details/146165712 本章节代码&#xff1a; OsgStudy/EventHandle CuiQingCheng/OsgStudy - 码云 - 开源中国https://gitee.com/cuiqingcheng/osg-study/tree/master/Osg…

JS逆向_腾讯点选_VMP补环境

1.接口分析 1.cap_union_prehandle 说明:图片、jsvmp GET QueryString:{aid: xxxxxx //网站在腾讯登记的idprotocol: httpsaccver: 1showtype: popupua: //ua atob后的结果noheader: 1fb: 1aged: 0enableAged: 0enableDarkMode: 0grayscale: 1clientype: 2cap_cd: uid: lang:…

【MySQL数据库】多表查询(笛卡尔积现象,联合查询、内连接、左外连接、右外连接、子查询)-通过练习快速掌握法

在DQL的基础查询中&#xff0c;我们已经学过了多表查询的一种&#xff1a;联合查询&#xff08;union&#xff09;。本文我们将系统的讲解多表查询。 笛卡尔积现象 首先&#xff0c;我们想要查询emp表和stu表两个表&#xff0c;按照我们之前的知识栈&#xff0c;我们直接使用…

DAPO-Decoupled Clip and Dynamic sAmpling Policy Optimization

论文地址&#xff1a;https://dapo-sia.github.io/static/pdf/dapo_paper.pdf 代码地址&#xff1a;https://github.com/volcengine/verl/tree/gm-tyx/puffin/main/recipe/dapo 数据&#xff1a;https://huggingface.co/datasets/BytedTsinghua-SIA/DAPO-Math-17k 1. 背景与动机…

数组模拟邻接表 #图论

文章目录 为什么要用数组来模拟邻接表存储思路遍历思路 树是特殊的图&#xff0c;因此邻接表可以存储图和树两种数据结构。 为什么要用数组来模拟邻接表 在算法设计当中&#xff0c;利用数组来代替结构体模拟各种数据结构会更加简单。 存储思路 给定如下数据,我们可以构造如…

VBA常见的知识都有哪些,让AI编写的VBA经常 报错,所以VBA的基础还是要学习的

掌握这些能够大大的提高VBA的编写效率&#xff0c;欢迎来到涛涛聊AI。 1. 异常处理 Cleanup:是VBScript的错误处理标签&#xff0c;用于标记程序执行失败或退出时需要执行的清理操作&#xff08;如关闭文件、释放对象&#xff09;。这段代码会在遇到错误或用户取消操作时跳转…

DeepSeek(8):结合Kimi-PPT助手一键生成演示报告

1 生成内容 在Deepseek中生成内容&#xff1a; 帮我创建年度计划&#xff0c;描述《智能枕头》产品的如何在全国销售&#xff0c;计划切分到每个月。从而让我们的老板和团队对报告充满信息。输出的内容我需要放到ppt中进行展示。 使用Deepseek R1模型&#xff0c;如下&#x…

【MySQL】MySQL如何存储元数据?

目录 1.数据字典的作用 2. MySQL 8.0 之前的数据字典 3. MySQL 8.0 及之后的数据字典 4.MySQL 8 中的事务数据字典的特征 5.数据字典的序列化 6. .sdi文件的作用&#xff1a; 7..sdi的存储方式 在 MySQL 中&#xff0c;元数据&#xff08;Metadata&#xff09; 是描述数…

用ASCII字符转化图片

代码 from PIL import Image# 定义 ASCII 字符集&#xff0c;从最暗到最亮 ASCII_CHARS "%#*-:. "def resize_image(image, new_width100):width, height image.sizeratio height / widthnew_height int(new_width * ratio)resized_image image.resize((new_wi…