怎样把一个普通的模型转换为重绘模型

  How to turn any model into an inpainting model

你一共需要 ABC 三个模型

A是 Stable Diffusion 1.5 inpainting 模型 https://huggingface.co/runwayml/stable-diffusion-inpainting/tree/main

B是你需要进行转化的模型,比如NovelAI, Anything

C是 Stable Diffusion 1.5 的普通模型 https://huggingface.co/runwayml/stable-diffusion-v1-5/tree/main

进入WebUI的Checkpoint Merger界面,把ABC分别填进去

下面的Custome Name,给模型起个名字,你自己能找到就好

Multiplier系数,拉到最右边,1。

Interpolation Method选择第三个 Add difference。

格式选safetensors就行,如果你想顺便把vae烤进去,就在bake in vae中选B模型用的vae。

其他的不用动,点Merge就行了。

这样融合过的模型,在进行局部重绘时,融入原画面的能力会大大增强。

原图
AnythingV3
AnythingV3 融合后
原理:Add difference 的公式是 A + (B – C) * M。

当M=1时,相当于 A – C + B。

A – C 就是重绘模型和普通模型的差,也就是重绘模型独特的部分。把它加给B,你自己的模型也就有了重绘能力。

作者:吸管伯爵


我们已经有了非常擅长修复的 sd-1.5-inpainting 模型。

但是,如果我想使用其他模型进行修复,例如 Anything3 或 DreamLike,该怎么办?任何其他模型都不能像 sd-1.5-inpainting 模型那样处理修复,尤其是当您对“蒙版内容”使用“潜在噪点”选项时。

如果只是将 1.5 与另一个模型结合使用,您也不会得到好的结果,您的主模型将失去一半的知识,并且修复是 sd-1.5-inpainting 模型的两倍。所以我尝试了另一种方法。

我决定尝试使用“添加差异”选项,并将 1.5 修复模型和 1.5 修剪模型之间的差异添加到我想教授修复的模型中。而且效果很好!您可以在屏幕截图中看到修复的结果和参数。

如何制作自己的修复模型:

1 转到 webui 中的 Checkpoint Merger AUTOMATIC1111

2 将模型 A 设置为“sd-1.5-inpainting”模型 ( https://huggingface.co/runwayml/stable-diffusion-inpainting )

3 将模型 B 设置为您想要的任何模型

4 将模型 C 设置为“v1.5-pruned”模型(https://huggingface.co/runwayml/stable-diffusion-v1-5 )

5 将乘数设置为 1

6 选择“加差”插值方式

7 确保您的模型在其名称末尾有“-inpainting”部分(Anything3-inpainting、DreamLike-inpainting 等)

8 单击“运行按钮”并等待

9 玩得开心!

我没有检查过,但也许可以在 SDv2.0 中做类似的事情,它也有一个修复模型

如果您不想自己创建 Anything-v3-inpainting 模型,也可以尝试它: https://civitai.com/models/3128/anything-v3-inpainting

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注