Stable Diffusion高级教程 - 微调模型

本文详细介绍了StableDiffusion中各种微调模型的发展历程,包括Checkpoint、Embedding、LoRA、Hypernetworks和LyCORIS,探讨了它们的原理、优势和应用场景,以及AestheticGradients的过时。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Stable Diffusion高级教程 - 微调模型

​编辑 dongwm

前言

这节我们专门介绍 Stable Diffusion 里面各个微调模型。

为什么会有这么多类型的模型?

如果你点开 C 站的过滤器,你会发现模型的类型很多:

除了类型为 Checkpoint 的主模型,以外还有非常多的模型,有些你可能听过有些也是第一次看到,当然,未来还会出现更多类型的这种微调模型。根据我的学习,先解释下为什么会有这么多类型的模型。

这么多模型是模型发展历史的产物。在一开始,Stable Diffusion 是从无到有训练大模型,成本很高。因为训练通用大模型非常烧钱,之前我看其他文章,GPT-3 训练一次的成本约为 140 万美元,对于一些更大的 LLM(大型语言模型),训练成本介于 200 万美元至 1200 万美元之间。除了花钱,也非常耗时间,需要一个专门团队维护。

虽然这种基础模型并没不好用,但是他们打下了很好地基础,之后 Stable Diffusion 所有的模型都是在这种模型基础上微调出来的。不过随着 Stable Diffusion 越来越流行,大模型生成的图越来越不满意不同用户的需求,所以就开始诞生各种调整技术的出现。

一开始是对大模型的参数的训练,这就诞生了在 C 站看到的各个 Checkpoint 类型的模型,这种 Checkpoint 主模型需要的 GPU、时间、人员相对于大模型来说已经非常经济了,但是,Checkpoint 只满足一(多)个类用户的需求,但是细分下去还是细节和准确度不够,也不够灵活,势必出现非常垂直的解决方案。

接着出现了 Embedding 模型,由于它只训练负责的文本理解的模块,体积很小,训练也没什么门槛,效果却不错,逐渐被用户接受。然后相继出现了兼顾效果、文件体积、训练时间、训练难度等方面的 Lora、Hypernetwork。就是这样新模型不断涌现,最近几个月最热门的是 Lora,而最近一个月 Lycoris 效果也非常好。

Textual Inversion 之前已经专门写过一篇,而 Controlnet 之后会专门写,所以这篇仅介绍美学梯度、Lora、Hypernetworks、LyCORIS 这几个模型。

美学梯度 (Aesthetic Gradients)

它的思路是在通过一张或者几张参考图生成一个美学模型,最终对提示词进行调整和加权。

原项目是:GitHub - vicgalle/stable-diffusion-aesthetic-gradients: Personalization for Stable Diffusion via Aesthetic Gradients 🎨,其中 aesthetic_embeddings 目录下有一些准备好的 Embedding。

如果你想要使用它,需要使用GitHub - AUTOMATIC1111/stable-diffusion-webui-aesthetic-gradients: Aesthetic gradients extension for web ui这个扩展,这样就可以在「Aesthetic imgs embedding」里面选择对应的 Embedding。

现在它已经是落后的模型方案了,效果相对于其他方案来说比较差,且大模型可能以及集成它的算法,现在已经没什么人用了。

LoRA

LoRA(全称 Low-Rank Adaptation of large language models)直译为大型语言模型的低阶自适应,通过矩阵分解的方式,微调少量参数,并加总在整体参数上,所以它现在主要用来控制很多特定场景的内容生成。

当然我们不需要理解它的算法,你可以简单的认为它是特定概念 (例如画风、动作、特定对象、角色等特征) 图片的训练集即可,他会引导 SD 生成符合训练结果的图片,而不会让 SD 自由发挥。它的模型大小普遍在几十到上百 M,它比较热门的主要原因我觉得是训练难度低且效果非常好。

通过例子看效果,还是用blindbox(大概是盲盒)https://civitai.com/models/25995/blindbox。对比下不用 LoRA 和用 LoRA 的区别:

Hypernetwork

Hypernetwork 是 NovelAI 软件开发员 Kurumuz 在 2021 年创造的一个单独的神经网络模型,它和 LoRA 很类似,它是让梯度作用于模型的扩散 (Diffusion) 过程。扩散过程中的每一步都通过一个额外的小网络来调整去噪过程的结果。这个模型主要用于画风。

通过例子看效果,用InCase stylehttps://civitai.com/models/5124/incase-style-hypernetwork。对于下不用Hypernetwork和用Hypernetwork的区别:

但是和 Textual Inversion 一样,由于其效果和训练难度的原因(需要设置网络结构、训练参数等),目前并没有成为主流选择。

LyCORIS

LyCORIS (Lora beYond Conventional methods) 是最近开始流行的一种新的模型,如其名字是一种超越传统方法的 Lora,但是要比 LoRA 能够微调的层级多,它的前身是 LoCon (LoRA for convolution layer)。

LoCon 和 LoHA (LoRA with Hadamard Product representation) 都是 LyCORIS 的模型算法,如果 C 站模型下载页面如果明确说是 LoCon 那就是 LoHA

现在 stable-diffusion-webui 还没有自带它,所以需要先安装扩展:GitHub - KohakuBlueleaf/a1111-sd-webui-lycoris: An extension for stable-diffusion-webui to load lycoris models.。 首先点「Extensions」,再点「Install from URL」把地址输入后点「Install」等待提示完成。

注意和其他扩展不同,安装不能点击「Apply and restart UI」不能生效,需要重启 webui 进程。

接着我们去站找个模型,就拿「Miniature world style 微缩世界风格」:https://civitai.com/models/28531/miniature-world-style

➜ wget https://civitai.com/api/download/models/34223 -O ~/workspace/stable-diffusion-webui/models/LyCORIS/miniatureV1.1c21.safetensors

注意,LyCORIS 有独立的 Tab,没有和 Lora 混在一起,但它的用法和 LoRA 很像:

对比下用 LyCORIS 的区别:

延伸阅读

  1. 【笔记】Stable Diffusion模型优化入门级介绍 - LoRA vs Dreambooth vs Textural Inversion vs Hypernetworks - 知乎
  2. GitHub - KohakuBlueleaf/LyCORIS: Lora beYond Conventional methods, Other Rank adaptation Implementations for Stable diffusion.
  3. https://arxiv.org/abs/2106.09685
  4. https://arxiv.org/abs/1609.09106
### Stable Diffusion V1.4 模型使用指南 #### 下载 Stable Diffusion V1.4 模型 Stable Diffusion V1.4 是一个早期版本的模型,虽然已被后续版本(如 V1.5 和更高版本)取代,但仍然具有一定的研究和实践价值。要下载该模型,可以使用 `git-lfs` 工具从 Hugging Face 的存储库中获取模型文件。具体命令如下: ```bash git lfs install git clone https://huggingface.co/runwayml/stable-diffusion-v1-4 ``` 这会在本地磁盘上创建一个名为 `stable-diffusion-v1-4` 的文件夹[^1]。 #### 配置环境 在运行 Stable Diffusion V1.4 模型之前,需要确保系统已正确配置相关依赖项。以下是主要步骤: - 安装 Python 3.8 或更高版本。 - 使用 `pip` 安装必要的库,例如 `torch`、`transformers` 和 `diffusers`。 - 如果使用 GPU 加速,需安装与 NVIDIA CUDA 兼容的驱动程序和库。 示例安装命令如下: ```bash pip install torch transformers diffusers ``` #### 运行模型 加载并运行 Stable Diffusion V1.4 模型可以通过以下代码实现: ```python from diffusers import DiffusionPipeline # 加载模型管道 pipeline = DiffusionPipeline.from_pretrained("./stable-diffusion-v1-4") # 设置推理设备(CPU 或 GPU) pipeline.to("cuda") # 如果有 GPU 支持,否则可改为 "cpu" # 运行生成任务 image = pipeline("your prompt here").images[0] image.save("output_image.png") ``` 上述代码片段展示了如何加载本地模型并生成图像[^1]。 #### 调整超参数以优化结果 为了生成更高质量的图像,可能需要调整模型的超参数。例如,学习率、训练轮数和批处理大小等参数可以根据具体需求进行修改。此外,通过微调模型或增加训练数据集,可以进一步提升生成效果[^3]。 #### 技术细节 Stable Diffusion V1.4 基于扩散模型架构,能够通过逐步去噪过程生成高质量图像。其核心思想是通过学习从高斯噪声到目标图像的映射关系,从而实现图像生成任务。V1.4 版本相较于后续版本,可能在某些特定场景下的表现稍逊,但仍适用于基础研究和实验[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

强化学习曾小健

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

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

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

打赏作者

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

抵扣说明:

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

余额充值