基于LoRA进行Stable Diffusion的微调

这篇具有很好参考价值的文章主要介绍了基于LoRA进行Stable Diffusion的微调。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

基于LoRA进行Stable Diffusion的微调

数据集

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

使用git clone命令下载数据集

git clone https://huggingface.co/datasets/lambdalabs/pokemon-blip-captions

数据集一共883条样本,包含两个部分:image(图)和 text(文),如下图所示。
基于LoRA进行Stable Diffusion的微调,stable diffusion

模型下载

git clone https://huggingface.co/runwayml/stable-diffusion-v1-5

环境配置

# 创建一个新的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 等。

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个小时左右。
基于LoRA进行Stable Diffusion的微调,stable diffusion
显存占用情况如下:
基于LoRA进行Stable Diffusion的微调,stable diffusion

推理

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

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 的图片,如下图所示。
基于LoRA进行Stable Diffusion的微调,stable diffusion

WebUI部署

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui

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

cp -r /data/sim_chatgpt/stable-diffusion-v1-5/v1-5-pruned.safetensors ~/stable-diffusion-webui/models/Stable-diffusion/v1-5-pruned.safetensors
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.

解决办法:

python -m pip install https://github.com/TencentARC/GFPGAN/archive/8d2447a2d918f8eba5a4a01463fd48e45126a379.zip --prefer-binary --user

报错:

ERROR: No matching distribution found for tb-nightly

解决:阿里源没有tb-nightly这个包,更换成阿里源即可。

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple

基于LoRA进行Stable Diffusion的微调,stable diffusion

参考:
https://huggingface.co/blog/lora
https://huggingface.co/blog/zh/lora
https://github.com/AUTOMATIC1111/stable-diffusion-webui文章来源地址https://www.toymoban.com/news/detail-605699.html

到了这里,关于基于LoRA进行Stable Diffusion的微调的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【stable-diffusion】4090显卡下dreambooth、lora、sd模型微调的GUI环境安装(cuda驱动、pytorch、xformer)

    相关博文 stable-diffusion-webui的基础功能手动安装,了解代码结构、依赖、模型出处 cuda11.7下载-https://developer.nvidia.com/cuda-toolkit-archive cudnn8.6 for 11.x : https://developer.nvidia.com/rdp/cudnn-archive dreamboothlora 训练环境: 最原始的命令端 https://github.com/kohya-ss/sd-scripts GUI端口 https://github.co

    2024年02月06日
    浏览(77)
  • 视频生成: 基于Stable Diffusion的微调方法

        chatGPT带来了几个月的AIGC热度,文本图像生成模型大行其道,但AI在视频生成任务上尚没有较好的开源仓库,并受限于“缺那么几百块A100\\\"的资源问题,大多数人无法展开视频生成的研究。好在目前有不少针对视频生成的相关paper,也有不少开源实现,事实上缺的是一个完

    2024年02月10日
    浏览(31)
  • 使用 InstructPix2Pix 对 Stable Diffusion 进行指令微调

    本文主要探讨如何使用指令微调的方法教会 Stable Diffusion 按照指令 PS 图像。这样,我们 Stable Diffusion 就能听得懂人话,并根据要求对输入图像进行相应操作,如: 将输入的自然图像卡通化 。 图 1 :我们探索了 Stable Diffusion 的指令微调能力。这里,我们使用不同的图像和提示

    2024年02月10日
    浏览(76)
  • Stable Diffusion stable-diffusion-webui ControlNet Lora

    Stable Diffusion用来文字生成图片,ControlNet就是用来控制构图的,LoRA就是用来控制风格的 。 国内加速官网: mirrors / AUTOMATIC1111 / stable-diffusion-webui · GitCode 安装参考: Stable Diffusion安装与常见错误(+Lora使用)2023年最新安装教程_cycyc123的博客-CSDN博客 保姆级教程:从0到1搭建St

    2024年02月09日
    浏览(36)
  • stable diffusion(Lora的训练)

    以坤坤为例,上网随便找了几个坤坤的人脸图像,作为训练的数据集  建议看一遍教程,虽然这个up主好像不是很专业的样子,不过流程差不多是这样的,重点关注一下虚拟环境搭建完之后,在终端选择配置的操作,就是一堆yes no,的选项,跟着视频来就行了。 本地找个训练

    2023年04月12日
    浏览(86)
  • Stable diffusion LoRA 训练过程

    1、使用diffusers-0.14.0, stabel-diffusion 模型 v-1.5版本 下载diffusers-0.14.0 并解压,新建文件test.py, 写入以下: import torch from diffusers import StableDiffusionPipeline pipe = StableDiffusionPipeline.from_pretrained(\\\"./stable-diffusion-v1-5\\\") pipe = pipe.to(\\\"cuda\\\") prompt = \\\"a photo of an astronaut riding a horse on mars\\\" image = pi

    2024年02月16日
    浏览(37)
  • Stable Diffusion训练Lora模型

    以下内容参考:https://www.bilibili.com/video/BV1Qk4y1E7nv/?spm_id_from=333.337.search-card.all.clickvd_source=3969f30b089463e19db0cc5e8fe4583a 第一步,准备训练要使用的图片,即优质的图片 第二部,为这些图片打标,即精准的tag 数量建议20-50张,最多100张图片 不好的图片:模糊的,动作扭曲的,脸部被

    2024年02月12日
    浏览(45)
  • Stable Diffusion XL训练LoRA

    主要包括SDXL模型结构,从0到1训练SDXL以及LoRA教程,从0到1搭建SDXL推理流程。  【一】SDXL训练初识 Stable Diffusion系列模型的训练主要分成一下几个步骤,Stable Diffusion XL也不例外: 训练集制作:数据质量评估,标签梳理,数据清洗,数据标注,标签清洗,数据增强等。 训练文

    2024年02月07日
    浏览(24)
  • Stable Diffusion(SD) Lora模型

    还有一个重要的点,就是你想固化的特征不要去打tag,打的tag不是单纯的对图片进行描述,还要考虑到是否是变量, tag尽量都是变量,也就是说是你期望模型生成的时候可以根据你的文字改变的。举个例子,一个红头发女孩,如果tag里面有red hair,AI会认为这个是可变量,后

    2024年02月02日
    浏览(39)
  • 【Stable Diffusion】基本概念之lora

    1.基本概念 Lora,英文全称“Low-Rank Adaptation of Large Langurage Models”,直译为大语言模型的低阶适应,这是微软的研究人员为了解决大语言模型微调而开发的一项技术 2.作用 只要是图片上的特征都可以提取并训练 (1)对人物/物品的脸部特征进行复刻 (2)生成某一特定风格的图

    2024年02月08日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包