Replacer
Replacer 是 AUTOMATIC1111/stable-diffusion-webui 的一个扩展。这个扩展的目标是在一个易用的标签页中自动化对象遮罩检测提示,使用 sd-webui-segment-anything,以及 img2img 修复。它对批量修复和使用 AnimateDiff 进行视频修复也很有用。
你也可以绘制自己的遮罩来替代或补充检测,并利用便捷的 HiresFix 选项,以及在保持原始图像分辨率和宽高比的同时使用 ControlNet 进行修复。
如果你觉得这个项目有用,请在 GitHub 上给它加星!
安装
- 安装 sd-webui-segment-anything 扩展。如果它打扰到你,你可以在 Replacer 的设置中隐藏它。转到"扩展"标签 -> "可用" -> 点击"加载自"并搜索 "sd-webui-segment-anything"
- 下载模型 sam_hq_vit_l.pth,或下面列表中的其他模型,并将其放入
extensions/sd-webui-segment-anything/models/sam
- 为了更快的高分辨率修复,下载 lcm-lora-sdv1-5,将其重命名为
lcm-lora-sdv1-5.safetensors
,放入models/Lora
。或者如果你已经有了 lcm lora,那么在扩展选项中更改高分辨率后缀 - 安装此扩展。转到"扩展"标签 -> "可用" -> 点击"加载自"并搜索 "Replacer"。确保你的 sd-webui 版本 >= 1.5.0。对于 AMD 和 Intel GPU,以及可能的其他情况,你需要在 Replacer 的设置中启用 CPU 进行检测。转到"设置" -> "Replacer" 并启用它
- 重新加载 UI
如果你不想使用视频功能,那么这就是你需要做的全部。以下步骤是针对视频的:
- 安装 sd-webui-animatediff 和 sd-webui-controlnet 扩展。你也应该使用"扩展" -> "可用"标签并在那里找到它们
- 下载 mm_sd15_v3.safetensors animatediff 的运动模型,并将其放入
extensions/sd-webui-animatediff/model
目录 - 下载 control_v11p_sd15_inpaint_fp16.safetensors controlnet 的模型并将其放入
models/ControlNet
目录 - 我强烈建议你下载 mm_sd15_v3_sparsectrl_rgb.safetensors 和 mm_sd15_v3_sparsectrl_scribble.safetensors controlnet 的模型。也将它们放入
models/ControlNet
目录。然后你可以在 ControlNet 扩展中选择 SparseCtrl 模块。rgb 模型需要"none"预处理器
SAM 模型列表:
对我来说 SAM-HQ 是最好的。根据你的显存选择。将此模型大小与 dino 模型大小(694MB-938MB)相加
目前不支持_FastSAM_和_Matting-Anything_。
工作原理
首先,grounding dino模型检测您在检测提示中提供的对象。然后segment anything模型生成它们的轮廓。之后,扩展随机选择3个生成的遮罩中的1个,并使用a1111 webui中的常规修复方法进行修复。
当您按下"应用高分辨率修复"按钮时,扩展会使用完全相同的设置重新生成图像,但不包括img2img的升频器。然后,它应用"原始"遮罩内容模式的修复,降低去噪但提高分辨率。
支持的扩展:
-
ar-plusplus(可能与"宽高比和分辨率按钮"分支兼容)
-
其他没有控制参数的扩展脚本,例如元数据中的硬件信息、NudeNet NSFW审查、内置的Hypertile
文档:
- 替换器使用方法
- 视频:AnimateDiff和逐帧处理
- 替换器选项
- 替换器API信息
- 实用技巧:如何更改默认值、滑块的最大值,以及如何获取修复模型
待办事项:
- ☑️ 缓存遮罩
- ☑️ 批量处理
- ☑️ "应用高分辨率修复"按钮
- ☑️ 附加选项
- ☑️ 进度条 + 中断
- ☑️ 自动传递到高分辨率修复的选项
- ☑️ ControlNet
- ☑️ 将前一帧传递到ControlNet用于视频
- 平铺VAE
- ☑️ "隐藏segment anything扩展"选项
- ☑️ txt2img脚本
- 更多视频和遮罩输入类型
- RIFE帧插值
- 允许多个实例(预设)
小待办事项:
- 将高分辨率修复参数添加到元数据中
- FreeInit支持