训练、微调与数据1826 字

Stable Diffusion模型微调

·全库 310 / 611

《Stable Diffusion模型微调》共 0.2 万字,通篇围绕 LoRA、prompt、推理、微调 展开,归在「训练、微调与数据」这一层。

覆盖LoRAprompt推理微调CUDATransformer

适合要自己训模型、或者判断这一版该不该训的人

目录骨架(4 节)
  1. Diffusers
  2. 合并 adapters
  3. 管理 adapters
  4. 自定义 adapters 强度
目录 · 3 节

示例代码

📎 附件:sd-peft.zip(zip, 3003KB)

原文链接:https://www.yuque.com/attachments/yuque/0/2025/zip/2424104/1746582257328-0ffbcfe9-5d8e-4894-8790-da0e56d985a7.zip

前言

PEFT 的实际优势扩展到了其他 Hugging Face 库,例如 Diffusers 和 Transformers。PEFT 的主要优势之一是,PEFT 方法生成的适配器文件比原始模型小得多,这使得管理和使用多个适配器变得非常容易。您可以使用一个预训练的基础模型来处理多个任务,只需加载为要解决的任务微调的新适配器即可。或者,您可以将多个适配器与文本到图像扩散模型结合使用,以创建新的效果。

本教程将向您展示 PEFT 如何帮助您管理 Diffusers 和 Transformers 中的适配器。

Diffusers

Diffusers 是一个生成式 AI 库,用于使用扩散模型从文本或图像创建图像和视频。LoRA 是一种特别流行的扩散模型训练方法,因为您可以非常快速地训练和共享扩散模型,以生成新风格的图像。为了更轻松地使用和尝试多个 LoRA 模型,Diffusers 使用 PEFT 库来帮助管理用于推理的不同适配器。

例如,加载一个基础模型,然后加载 artificialguybr/3DRedmond-V1 适配器,以便使用 load_lora_weights 方法进行推理。加载方法中的 adapter_name 参数由 PEFT 启用,允许您为适配器设置名称,以便更容易引用它。

import torch
from diffusers import DiffusionPipeline

pipeline = DiffusionPipeline.from_pretrained(
    "stabilityai/stable-diffusion-xl-base-1.0", torch_dtype=torch.float16
).to("cuda")
pipeline.load_lora_weights(
    "peft-internal-testing/artificialguybr__3DRedmond-V1", 
    weight_name="3DRedmond-3DRenderStyle-3DRenderAF.safetensors", 
    adapter_name="3d"
)
image = pipeline("sushi rolls shaped like kawaii cat faces").images[0]
image

f7c7e9ebe0abe3b4807517187dcca473_test-lora-diffusers.png

现在让我们尝试另一个很酷的 LoRA 模型,ostris/super-cereal-sdxl-lora。您只需使用 adapter_name 加载并命名这个新适配器,然后使用 set_adapters 方法将其设置为当前活动的适配器。

pipeline.load_lora_weights(
    "ostris/super-cereal-sdxl-lora", 
    weight_name="cereal_box_sdxl_v1.safetensors", 
    adapter_name="cereal"
)
pipeline.set_adapters("cereal")
image = pipeline("sushi rolls shaped like kawaii cat faces").images[0]
image

840ac01c1b7cea309f0c7b5adbfde740_test-lora-diffusers-2.png

资料里没有你的场景?

把你手上的数据和想解决的那个环节发上来,我们按具体情况回,不复述方法论。

发布需求