写在前面

从小就非常喜欢小樱!从小樱的动画到动漫书我都看了个遍,包括C妈几年前更新了(哇这么久了都)Clear Card
直到最近C妈终于更新完了 Clear Card 的漫画,听说好像新的视频在筹备了,我好期待!!!

微调完的LoRA生成的效果如下,其中几张

StableDiffusion-03 (准备篇)15分钟 部署服务并进行LoRA微调全过程详细记录 不到20张百变小樱Sakura微调 3090(24GB) 学不会你打我!_stable diffusion

StableDiffusion-03 (准备篇)15分钟 部署服务并进行LoRA微调全过程详细记录 不到20张百变小樱Sakura微调 3090(24GB) 学不会你打我!_Image_02


StableDiffusion-03 (准备篇)15分钟 部署服务并进行LoRA微调全过程详细记录 不到20张百变小樱Sakura微调 3090(24GB) 学不会你打我!_Image_03

机器环境

页面提供

StableDiffusion-03 (准备篇)15分钟 部署服务并进行LoRA微调全过程详细记录 不到20张百变小樱Sakura微调 3090(24GB) 学不会你打我!_python_04

  • PyTorch 2.0
  • Python 3.8
  • Ubuntu 20
  • CUDA 11.8
  • CPU
  • 内存 80GB
  • 磁盘 100GB
  • 显卡 3090 24GB * 1

实际环境

实际系统中的环境,有略微的不一样,但是不影响。
同时,项目中有一些指定的 CUDA 版本等问题:比如我是 CUDA12.0,但是项目要求 CUDA18.1。这些问题也需要自己思考处理一下,毕竟更换CUDA版本是一件比较麻烦的事情。

实际环境:

  • CUDA 12.0
  • 其他的 大差不差 比如Python版本,这里是3.10,通过 Pyenv 管理多版本。

克隆项目

这里我们使用 kohya_ss来进行微调,它帮我们封装好了。

git clone https://github.com/bmaltais/kohya_ss.git

配置环境

这里使用 pyenv 对项目进行管理,对于 pyenv 的使用和安装,可以看我的其他文章。

cd kohya_ss
pyenv local 3.10
python -m venv env
source env/bin/activate

此时通过 ls 可以查看目录,大致如下:

StableDiffusion-03 (准备篇)15分钟 部署服务并进行LoRA微调全过程详细记录 不到20张百变小樱Sakura微调 3090(24GB) 学不会你打我!_CUDA_05

安装依赖

./setup.sh

StableDiffusion-03 (准备篇)15分钟 部署服务并进行LoRA微调全过程详细记录 不到20张百变小樱Sakura微调 3090(24GB) 学不会你打我!_CUDA_06


此时我们遇到问题,提示缺少 python3-tk

sudo apt update -y && sudo apt install -y python3-tk

StableDiffusion-03 (准备篇)15分钟 部署服务并进行LoRA微调全过程详细记录 不到20张百变小樱Sakura微调 3090(24GB) 学不会你打我!_Image_07


安装成功后,我们重新执行 ./setup.sh 可以看到正在安装:cu118,我的CUDA版本不太对的上

  • 如果你安装不正常:那你可以看看我的思路(见 问题章节:CUDA安装异常)
  • 如果你安装正常:请忽略

此时我们会看到:

StableDiffusion-03 (准备篇)15分钟 部署服务并进行LoRA微调全过程详细记录 不到20张百变小樱Sakura微调 3090(24GB) 学不会你打我!_Image_08

启动项目

恭喜你顺利配置了环境,我们继续!
使用 gui.sh 启动项目

./gui.sh --listen 0.0.0.0 --server_port 6006 --share

StableDiffusion-03 (准备篇)15分钟 部署服务并进行LoRA微调全过程详细记录 不到20张百变小樱Sakura微调 3090(24GB) 学不会你打我!_python_09

访问项目

# 或者是你的 IP 地址
http://localhost:6006

我们可以看到项目的大致页面为:

StableDiffusion-03 (准备篇)15分钟 部署服务并进行LoRA微调全过程详细记录 不到20张百变小樱Sakura微调 3090(24GB) 学不会你打我!_stable diffusion_10

准备素材

下载素材

我去网络上截图了不到20张小樱,按理来说,图片越多,风格样式不一样,可以帮助模型更好的学习到特征。

统一裁切

这里为了保证模型更好的学习,建议裁切到统一大小,同时把20张都手动过一遍。(不裁切的话,工具可以自行进行识别和裁切,裁切模型认为好的那部分)

一键裁切为标准的尺寸,我这里选择了 512x512 免费的裁切网站(感谢无私奉献):birme统一裁切

StableDiffusion-03 (准备篇)15分钟 部署服务并进行LoRA微调全过程详细记录 不到20张百变小樱Sakura微调 3090(24GB) 学不会你打我!_CUDA_11

上传素材

用你习惯的方式,将图片上传到某个目录。(记住这个目录,后边要用到) 目录名要求:数字_项目名,我这里是:30_sakura,动漫风格10-50(可以搜索你要训练的风格配置为多少)

因为是学习,大家不用研究那么多,直接按30来就行,先抄着参数跑通再说。

这里大致样子是(忘记截图了,用了别的项目的图):

StableDiffusion-03 (准备篇)15分钟 部署服务并进行LoRA微调全过程详细记录 不到20张百变小樱Sakura微调 3090(24GB) 学不会你打我!_stable diffusion_12

生成标签

打开项目地址(刚才的6006)标签页,并填写如下参数:

● Image foloder to caption 你上传图片的目录

● Prefix to add to BLIP caption 图片添加的前置词

StableDiffusion-03 (准备篇)15分钟 部署服务并进行LoRA微调全过程详细记录 不到20张百变小樱Sakura微调 3090(24GB) 学不会你打我!_Image_13


我这里对应的两个参数地址是:

# 图片目录 Image foloder to caption
/root/autodl-tmp/kohya_ss/wzk_test/image/30_sakura
# 添加的前置词(类似于触发词,以后通过该词触发)Prefix to add to BLIP caption
w_sakura

开始训练

点击Caption Images 开始训练,此时如果你是第一次运行,将会有一些额外的模型需要下载。

StableDiffusion-03 (准备篇)15分钟 部署服务并进行LoRA微调全过程详细记录 不到20张百变小樱Sakura微调 3090(24GB) 学不会你打我!_python_14

如果一切顺利的话,你将会看到模型给我们的图片打上了标签。

StableDiffusion-03 (准备篇)15分钟 部署服务并进行LoRA微调全过程详细记录 不到20张百变小樱Sakura微调 3090(24GB) 学不会你打我!_python_15


文件内变成了:图片+txt标签内容 此时我们可以针对每个txt的内容,调整提示词,但是作为学习,暂时不考虑,我们优先

StableDiffusion-03 (准备篇)15分钟 部署服务并进行LoRA微调全过程详细记录 不到20张百变小樱Sakura微调 3090(24GB) 学不会你打我!_python_16

查看标签

# 000.txt
w_sakura, a girl with a ponytail and a sailor outfit
# 001.txt
w_sakura, a girl with green eyes and a ponytail
# 002.txt
w_sakura, a girl with a bag of bread and a sandwich