如何创建 LoRA 并应用到 Stable Diffusion WebUI 里

本着觉知此事要躬行的态度,笔者没有去看任何国内的教程,依靠着纯粹在 Github 上翻阅原版代码仓库,找到了解决方案

准备数据集

LoRA 的特点就是几张图就够,并且不需要复杂的文本注释。

所以,你的数据集,就是一堆散装照片,缩放到正确的尺寸 (512x512 对应 SD1.x, 768x768 对应 SD2.x)

然后准备简单一句话即可,比如

a photo of user yk

下载 diffusers 提供的脚本

安装 diffusers 库和依赖

同时从 Github 上找到脚本,和 requirements.txt 文件

https://github.com/huggingface/diffusers/tree/main/examples/dreambooth

注意从 main 分支切换到你刚才安装的 diffusers 版本标签,不然可能会有问题

下载 train_dreambooth_lora.py 这个脚本,千万不要下载错了

训练

把你的图片放到 src 目录下,然后执行以下脚本

export MODEL_NAME="runwayml/stable-diffusion-v1-5"
export INSTANCE_DIR=src
export OUTPUT_DIR=out
export INSTANCE_PROMPT="a photo of yk"
export VALIDATION_PROMPT="a photo of yk at winter street"

exec accelerate launch \
    train_dreambooth_lora.py \
    --pretrained_model_name_or_path=$MODEL_NAME  \
    --instance_data_dir=$INSTANCE_DIR \
    --output_dir=$OUTPUT_DIR \
    --instance_prompt="${INSTANCE_PROMPT}" \
    --resolution=512 \
    --train_batch_size=1 \
    --gradient_accumulation_steps=1 \
    --checkpointing_steps=100 \
    --learning_rate=1e-4 \
    --lr_scheduler="constant" \
    --lr_warmup_steps=0 \
    --max_train_steps=500 \
    --validation_prompt="${VALIDATION_PROMPT}" \
    --validation_epochs=50 \
    --seed="0"

很快啊,你就能在 out 目录下拿到 pytorch_lora_weights.bin 文件了

转换成 safetensors 文件

我从 Github 上淘到了一个脚本,可以把 .bin 文件转换为 .safetensors 文件

https://github.com/guoyk93/sd-scripts/blob/main/lora/diffusers-lora-to-safetensors.py

python diffusers-lora-to-safetensors.py --file out/pytorch_lora_weights.bin

这样就拿到了 safetensors 文件,重命名后,塞到 SD WebUImodels/LoRA 子目录下,就可以在 txt2imgimg2imgPrompt 中引用了

笔者已经成功做出来自己脸部的 LoRA

后记

简简单单两个步骤就能搞定的事情,笔者愣是在 Github 上苦苦寻找了两天

笔者首先去找了 LoRA 原作者的 lora_pti 命令,发现生成的 safetensors 文件并不能直接用在 SD WebUI 里面

看了报错信息,发现 key 值完全对不上

笔者然后去找了 diffusers 官方的脚本,结果错误地使用了 train_text_to_image_lora.pytrain_dreambooth.py 依旧没有收获

最后正确地使用了 train_dreambooth_lora.py 脚本,结果发下生成出来的 .bin 文件 SD WebUI 依然不能识别

最后在 Github Issue 里面才找到别人的转换脚本

Stable Diffusion 的生态环境还需要时间成熟啊

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码农炎可

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值