基于LoRA进行Stable Diffusion的微调

文章目录

基于LoRA进行Stable Diffusion的微调

数据集

本次微调使用的数据集为: LambdaLabs的Pokemon数据集

使用git clone命令下载数据集

bash 复制代码
git clone https://huggingface.co/datasets/lambdalabs/pokemon-blip-captions

数据集一共883条样本,包含两个部分:image(图)和 text(文),如下图所示。

模型下载

bash 复制代码
git clone https://huggingface.co/runwayml/stable-diffusion-v1-5

环境配置

bash 复制代码
# 创建一个新的conda环境
conda create -n diffusers python==3.10
# 激活conda环境
conda activate diffusers
# 下载模型仓库
git clone https://github.com/huggingface/diffusers
# 进入diffusers目录
cd diffusers
# 进行安装
pip install .
cd examples/text_to_image
# 安装环境所需的包
pip install -r requirements.txt

微调过程

微调时只需要使用以下命令运行 train_text_to_image_lora.py 文件即可。需要根据下载的路径文件地址对相应的参数进行修改,如 MODEL_NAME、DATASET_NAME 等;也可以根据GPU资源调整相应的参数,如 train_batch_size、gradient_accumulation_steps 等。

bash 复制代码
export MODEL_NAME="/data/sim_chatgpt/stable-diffusion-v1-5"
export OUTPUT_DIR="./finetune/lora/pokemon"
export DATASET_NAME="./pokemon-blip-captions"

nohup accelerate launch --mixed_precision="fp16"  train_text_to_image_lora.py \
  --pretrained_model_name_or_path=$MODEL_NAME \
  --dataset_name=$DATASET_NAME \
  --dataloader_num_workers=8 \
  --resolution=512 --center_crop --random_flip \
  --train_batch_size=2 \
  --gradient_accumulation_steps=4 \
  --max_train_steps=7500 \
  --learning_rate=1e-04 \
  --max_grad_norm=1 \
  --lr_scheduler="cosine" --lr_warmup_steps=0 \
  --output_dir=${OUTPUT_DIR} \
  --checkpointing_steps=500 \
  --validation_prompt="Totoro" \
  --seed=1337 \
  >> finetune_log0725.out 2>&1 &

备注 :参数设置参考这里,去掉了

export HUB_MODEL_ID="pokemon-lora"

--push_to_hub

--hub_model_id=${HUB_MODEL_ID}

--report_to=wandb

样本数据量为883,这里设置了train_batch_size为2,max_train_steps为7500,

显存占用约11个G,训练时长约8个小时左右。

显存占用情况如下:

推理

微调完成后,可以使用下面代码进行推理。

python 复制代码
from diffusers import StableDiffusionPipeline
import torch
model_path = "./finetune/lora/pokemon"
pipe = StableDiffusionPipeline.from_pretrained("/data/sim_chatgpt/stable-diffusion-v1-5", torch_dtype=torch.float16)
pipe.unet.load_attn_procs(model_path)
pipe.to("cuda")

prompt = "A pokemon with green eyes and red legs."
image = pipe(prompt, num_inference_steps=30, guidance_scale=7.5).images[0]
image.save("pokemon.png")      

代码运行后,会生成一个 pokemon.png 的图片,如下图所示。

WebUI部署

bash 复制代码
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui

需要将原模型文件以及微调后的lora模型文件放到 ~/stable-diffusion-webui//models/Stable-diffusion 下

bash 复制代码
cp -r /data/sim_chatgpt/stable-diffusion-v1-5/* ~/stable-diffusion-webui//models/Stable-diffusion/
mkdir ~/stable-diffusion-webui//models/Lora
cp -r ~/diffusers/examples/text_to_image/finetune/lora/pokemon/* ~/stable-diffusion-webui//models/Lora/

./webui.sh --no-download-sd-model --xformers --no-gradio-queue

报错:

RuntimeError: Couldn't install gfpgan.

解决办法:

安装
https://github.com/TencentARC/GFPGAN

bash 复制代码
git clone https://github.com/TencentARC/GFPGAN
pip install basicsr -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com

# Install facexlib - https://github.com/xinntao/facexlib
# We use face detection and face restoration helper in the facexlib package
pip install facexlib 

pip install -r requirements.txt
# 报错,无法安装(待解决)
python setup.py develop

# If you want to enhance the background (non-face) regions with Real-ESRGAN,
# you also need to install the realesrgan package
pip install realesrgan

参考:
https://huggingface.co/blog/lora
https://huggingface.co/blog/zh/lora
https://github.com/AUTOMATIC1111/stable-diffusion-webui

相关推荐
localbob5 天前
2025.10.17 更新 AI绘画秋葉aaaki整合包 Stable Diffusion整合包v4.10 +ComfyUI整合包下载地址
ai作画·stable diffusion·comfyui·整合包·秋叶整合包
qsc9012345675 天前
AI绘画新手必看:Stable Diffusion与Midjourney的保姆级入门指南(附免费资源)
stable diffusion·aigc·midjourney·ai绘画
爱绘画的彤姐5 天前
【AI工具大盘点】AI绘画利器:Stable-Diffusion-ComfyUI保姆级教程
人工智能·ai作画·stable diffusion·aigc·comfyui·dall·e 2·ai工具
Keep_Trying_Go6 天前
基于stable diffusion图像生成的小小demo应用(pytorch)
人工智能·stable diffusion
weixin_480641616 天前
一款全能型 AI 设计修图工具实测:椒图 AI,Nano Banana Pro 加持,电商 / 修图 / 设计一站式解决
大数据·图像处理·人工智能·ai作画·stable diffusion·aigc·midjourney
学易25 天前
第二十节.探索新技术:如何自学SD3模型(上)(找官方资料/精读/下载/安装/3款工作流/效果测试)
人工智能·ai作画·stable diffusion·comfyui·工作流·sd3
Bachnroth1 个月前
Stable Diffusion 3.5 FP8镜像负载均衡配置建议
stable diffusion· fp8· 负载均衡
新缸中之脑1 个月前
Stable Diffusion的3个替代方案
人工智能·stable diffusion
2401_828890641 个月前
实现扩散模型 Stable Diffusion - MNIST 数据集
人工智能·python·深度学习·stable diffusion
凯子坚持 c1 个月前
在 openJiuwen 里把在线小工具搬回本地
人工智能·windows·stable diffusion·openteledb·openclaw