Inpaint Anything官网,Stable Diffusion插件,一键实现物体移除,内容填补,场景替换
Inpaint Anything简介
Inpaint Anything是一个结合了SAMQ、图像修补模型(例如 LaMa)和 AIGC 模型(例如 Stable Diffusion)等视觉基础模型的AI图像替换,修补系统。基于此系统,用户可以方便的使用IA进行图像替换,处理具有任意长宽比和2K高清分辨率的图像,且不受图像原始内容限制,并且使用方便。
Inpaint Anything官网: https://github.com/Uminosachi/sd-webui-inpaint-anything
Inpaint Anything核心思想
Inpaint Anything背后的核心思想是结合不同模型的优势,以建立一个功能强大且用户友好的 图像修复Q 系统。
一、Inpaint Anything:一键实现物体移除、内容填补、场景替换
IMCL实验室基于Meta发布的图像分割基础模型SAM (Segment Anything Model),提出了修补一切模型(Inpaint Anything,简称IA) ,
具有功能:
1.移除一切(Remove Anything):点击一下想要移除的物体,IA 将无痕地移除该物体;
2.填补一切(Fill Anything) :可以进一步通过文本提示告诉IA想要在物体内填充什么, IA随即通过驱动已嵌入的stable diffusion模型生成相应的内容填充物体,实现随心「内容创作」;
3替换一切(Replace Anything) :可以通过点击选择需要保留的物体对象,并用文本提示告诉IA想要把物体的背景替换成什么,即可将物体背景替换为指定内容,实现生动「环境转换」。
整体框架:
Inpaint Anything主要功能
Inpaint Anything拥有三个主要功能
1、移除一切(Remove Anything) :用户只需点击一下想要移除的物体,IA 将无痕地移除该物体,实现高效「魔法消除」;
2、填补一切(Fill Anything) :同时,用户还可以进一步通过文本提示(Text Prompt)告诉 IA 想要在物体内填充什么, IA 随即通过驱动 已嵌入的 AIGC (Al-Generated Content)模型(如 Stable Diffusion)生成相应的内容填充物体,实现随心「内容创作」;
3、替换一切(Replace Anything) :用户也可以通过点击选择需要保留的物体对象,并用文本提示告诉IA想要把物体的背景替换成什么,即可将物体背景替换为指定内容,实现生动「环境转换」。
4、移除3D材质物品(Remove Anything 3D)
修复任何内容以实现稳定的扩散 Web UI
Inpaint Anything 扩展使用从Segment Anything的输出中选择的任何蒙版在浏览器 UI 上执行稳定的扩散修复。
使用 Segment Anything,用户可以通过简单地指向所需区域来指定蒙版,而不是手动填充它们。这可以提高蒙版创建过程的效率和准确性,从而可能获得更高质量的修复结果,同时节省时间和精力。
Inpaint Anything工作原理
Inpaint Anything结合了 SAM、图像修补模型(例如 LaMa)和 AIGC 模型(例如 Stable Diffusion)等视觉基础模型。
- SAM(Segment Anything Model)可以通过点或框等输入提示生成高质量的对象分割区域,实现指定目标的分割。更多相关的介绍可以参考一键分割图像。
- 图像修补模型LaMa,则能够在高分辨率图像的情况下,随意删除图像中的各种元素。模型的主要架构如下图所示。包含一个mask的黑白图,一张原始图像。将掩码图覆盖图像后输入Inpainting网络中,先是降采样到低分辨率,再经过几个快速傅里叶卷积FFC残差块,最后输出上采样,生成了一张高分辨的修复图像。
- AIGC模型Stable Diffusion,则只要简单的输入一段文本,Stable Diffusion 就可以迅速将其转换为图像。更多相关的介绍可以参考AI作画。
将三个模型结合到一起,我们可以做出很多的功能。本文就实现了在图片/视频中移除一切物体、在图片中填充一切物体和在图片中替换一切背景这三种功能,其具体实现步骤如下:
单机版
安装
要安装该软件,请按照下列步骤操作:
- 打开
Extensions
AUTOMATIC1111 的稳定扩散 Web UI上的选项卡。 - 选择该
Install from URL
选项。 https://github.com/Uminosachi/sd-webui-inpaint-anything.git
在字段中输入URL for extension's git repository
。- 单击按钮
Install
。 - 安装完成后,重新启动 Web UI。
- 注意:此扩展支持 AUTOMATIC1111 的稳定扩散 Web UI v1.3.0 或更高版本。
运行应用程序
- 如果您打算使用内存高效的 xformers,请将参数附加
--xformers
到您的启动命令中。例如,运行./webui.sh --xformers
或webui.bat --xformers
- 注意:如果您在网络浏览器中启用了隐私保护扩展程序(例如 DuckDuckGo),您可能无法从草图中检索蒙版。
- 注意:在 Gradio 版本 3.23.0 或更早版本中,分割图像在 Web UI 上可能会显得很小。
下载模型
- 导航到
Inpaint Anything
Web UI 中的选项卡。 - 单击“Segment Anything Model ID”
Download model
旁边的按钮。这包括Segment Anything in High Quality Model ID、Fast Segment Anything和Faster Segment Anything (MobileSAM)。- 请注意,SAM 提供三种尺寸:基本型、大型型和巨型型。请记住,较大的尺寸会消耗更多的 VRAM。
- 等待下载完成。
- 下载的模型文件将存储在
models
该应用程序存储库的目录中。
用法
- 将图像拖放到输入图像区域。
- 可以通过
Padding options
配置比例和平衡,然后单击Run Padding
按钮来实现绘制。 - 该
Anime Style
复选框增强了分割蒙版检测,特别是在动漫风格的图像中,但代价是蒙版质量略有下降。
- 可以通过
- 单击按钮
Run Segment Anything
。 - 使用草图来指出要修复的区域。您可以撤消和调整笔大小。
- 将鼠标悬停在 SAM 图像或遮罩图像上,然后按
S
全屏模式键或R
重置缩放键。
- 将鼠标悬停在 SAM 图像或遮罩图像上,然后按
- 单击按钮
Create mask
。蒙版将出现在选定的蒙版图像区域中。
面罩调整
Expand mask region
按钮:使用此按钮可以稍微扩大遮罩的区域以获得更广泛的覆盖范围。Trim mask by sketch
按钮:单击此按钮将从蒙版中排除草绘区域。Add mask by sketch
按钮:单击此按钮会将草绘区域添加到蒙版中。
修复选项卡
- 输入所需的提示和否定提示,然后选择修复模型 ID。
- 单击按钮
Run Inpainting
(请注意,第一次下载模型可能需要一些时间)。- 在“高级”选项中,您可以调整采样器、采样步骤、指导比例和种子。
- 如果启用该
Mask area Only
选项,修改将仅限于指定的遮罩区域。
- 调整迭代滑块以使用不同的种子多次执行修复。
- 修复过程由扩散器提供动力。
尖端
- 您可以直接将修复后的图像拖放到 Web UI 上的输入图像字段中。(适用于 Chrome 和 Edge 浏览器)
- 要加载保存在 PNG 文件中的提示,请按照下列步骤操作:
- 将图像拖放到 Web UI 上的“PNG 信息”选项卡中,然后单击
Send to txt2img (or img2img)
。 - 导航至“修复任何内容”选项卡中的“修复”部分,然后单击 按钮
Get prompt from: txt2img (or img2img)
。
- 将图像拖放到 Web UI 上的“PNG 信息”选项卡中,然后单击
模型缓存
- 修复模型保存在 HuggingFace 的缓存中,并
inpaint
在其 repo_id 中包含(不区分大小写),也将添加到修复模型 ID 下拉列表中。- 如果您想使用特定模型,可以使用以下 Python 命令(对于 Linux 和 MacOS 为 venv/bin/python)提前缓存它:
venv\Scripts\python.exe
from diffusers import StableDiffusionInpaintPipeline
pipe = StableDiffusionInpaintPipeline.from_pretrained("Uminosachi/dreamshaper_5-inpainting")
exit()
- 下载的扩散器模型通常存储在您的主目录中。
/home/username/.cache/huggingface/hub
对于 Linux 和 MacOS 用户,您可以在以下位置找到它;C:\Users\username\.cache\huggingface\hub
对于 Windows 用户,您可以在以下位置找到它。
清洁标签
- 选择清洁器型号 ID。
- 单击按钮
Run Cleaner
(请注意,第一次下载模型可能需要一些时间)。 - 使用Lama Cleaner执行清洁过程。
修复 webui 选项卡
- 当您有修复模型时,可以访问此选项卡。
- 所需的模型应
inpaint
在其文件名中包含(不区分大小写),并且必须位于该stable-diffusion-webui/models
目录中。 - 一旦模型被识别,就可以从修复模型 ID 下拉列表中进行选择。
- 当稳定扩散检查点(位于 Web UI 的左上角)与所选的修复模型 ID 匹配时,该过程可以快速执行,无需加载模型。
ControlNet 修复选项卡
- 要执行修复,请使用位于 Web UI 左上角的稳定扩散检查点,并将其与 ControlNet 修复模型配对。
- 输入您想要的提示和否定提示。
- 单击
Run ControlNet Inpaint
按钮开始该过程。- 在“高级”选项中,您可以调整采样器、采样步骤、指导比例、去噪强度和种子。
- 控制重量和控制模式可以在 ControlNet 选项中修改。
- 如果多 ControlNet 设置配置为 2 或更高,则可以使用仅参考控制。
- 如果目录中存在IP 适配器型号
extensions/sd-webui-controlnet/models
,并且 ControlNet 版本已更新,则可以使用 IP 适配器。
- 确保安装支持
inpaint_only
预处理器和 ControlNet 修复模型的 ControlNet 扩展。 - 需要:目录中的sd-webui-controlnet扩展和ControlNet-v1-1修复模型
extensions/sd-webui-controlnet/models
。
仅掩模选项卡
- 能够仅保存蒙版而不进行任何其他处理,因此可以将 img2img 中的蒙版
Inpaint upload
与 AUTOMATIC1111 中已有的任何模型/扩展/工具一起使用。 Get mask as alpha of image
按钮:将蒙版保存为 RGBA 图像,并将蒙版放入输入图像的 Alpha 通道中。Get mask
按钮:将蒙版保存为 RGB 图像。- 按下按钮后,
Get mask
您可以使用Send to img2img inpaint
遮罩图像下方的按钮将输入图像和遮罩发送到 img2img 选项卡。
自动保存图像
- 修复后的图像将自动保存在
outputs/inpaint-anything
目录中与当前日期匹配的文件夹中。 outputs/img2img-images
您可以通过Web UI 选项卡Inpaint Anything
中的部分切换到目录。Settings
发展
借助Inpaint Anything 库,您可以使用其他扩展中的草图执行分割并创建蒙版。
执照
源代码根据Apache 2.0 许可证获得许可。
数据评估
本站ai导航提供的Inpaint Anything都来源于网络,不保证外部链接的准确性和完整性,同时,对于该外部链接的指向,不由ai导航实际控制,在2023年9月13日 下午4:53收录时,该网页上的内容,都属于合规合法,后期网页的内容如出现违规,可以直接联系网站管理员进行删除,ai导航不承担任何责任。