首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【重绘一切】stable diffusion webui之Inpaint Anything

【重绘一切】stable diffusion webui之Inpaint Anything

原创
作者头像
buzzfrog
发布2023-09-11 23:56:31
发布2023-09-11 23:56:31
10.4K1
举报
文章被收录于专栏:云上修行云上修行

背景

最近几个月以来,Meta发布了一款名为SAM(Segment Anything Model)的图像分割基础模型,其强大的能力和简便的操作方式引起了广泛关注。SAM模型通过简单的点击选择物体,即可实时准确地将其分割出来,其在GitHub上的受欢迎程度也可见一斑,截至4月15日,其仓库的Star数已高达26k。

然而,如何将这一强大的“分割一切”模型应用到更实际的需求场景中,并进行进一步的拓展,成为了一个关键问题。有研究团队给出了一个令人惊艳的答案。他们基于SAM模型,提出了一款名为“修补一切”(Inpaint Anything,简称IA)的模型。与传统的图像修补模型不同,IA模型无需复杂的掩码操作,只需一键点击标记选定对象,即可实现移除任何物体、填补任何内容、替换任何场景等多种典型图像修补应用场景。这一创新引发了人们的极大兴趣。

在过去的几个月中,研究者们通过不断优化和改进IA模型,取得了显著的进展。他们首次尝试了无需掩码的图像修复,并构建了一种名为“点击再填充”(Clicking and Filling)的全新图像修补范式,即修补一切(IA)。IA的核心思想是结合不同模型的优势,建立一个功能强大且用户友好的图像修复系统。

IA模型具有三个主要功能:移除一切Remove Anything、填补一切Fill Anything和替换一切Replace Anything。用户只需点击一下想要移除的物体,IA就能无痕地移除该物体,实现高效的“魔法消除”。同时,用户还可以通过文本提示告诉IA想要在物体内填充什么,IA会通过驱动已嵌入的AIGC模型生成相应的内容填充物体,实现随心的“内容创作”。此外,用户还可以通过点击选择需要保留的物体对象,并用文本提示告诉IA想要将物体的背景替换成什么,即可将物体背景替换为指定内容,实现生动的“环境转换”。

本文主要讲述了stable diffusion webui中的扩展Inpaint Anything(https://github.com/Uminosachi/sd-webui-inpaint-anything)。它就是基于以上SAM模型以及“可组合人工智能”(Composable AI)方式解决重绘一切的问题。

Inpaint Anything扩展
Inpaint Anything扩展

安装

安装界面
安装界面

进入sd-webui的扩展页签,选择可用页签,点击【加载至:】,在加载的列表中,选择【Inpaint Anything】,然后点击该行右侧【安装】。然后重启sd-webui。

从网址安装界面
从网址安装界面

也可以选择此页签的【从网址安装】。在【扩展的 git 仓库网址】中输入: https://github.com/Uminosachi/sd-webui-inpaint-anything.git ,点击【安装】按钮。然后重启sd-webui。

即可见到第一张图片的【Inpaint Anything】页签。这个页签中分为四大区域,分割一切区Run Segment Anything,遮罩创建区Create Mask,遮罩修改区(扩展遮罩区域Expand mask region,根据绘制裁剪遮罩区域Trim mask by sketch,根据绘制添加遮罩区域Add mask by sketch),重绘一切区Run Inpainting。这里四个区需要顺时针区看,我在图中已经标注了1234。

Inpaint Anything分区图
Inpaint Anything分区图

SAM模型下载

在分割一起区中,选择不同的【Segment Anything Model ID】,然后点击【Download model】,就可以完成该模型的下载,一般情况下,建议sam_vit_l_0b3195.pth。下载时间不短,请耐心等待。

在Input Image中,上传希望分割的图像,点击【Run Segment Anything】,即可在右侧遮罩创建区看到对应的分割图像。

mask遮罩生成及修改

通过鼠标控制笔触,选择希望遮罩的部分(图中豹子身上的黑线),然后点击【Create Mask】,就可以在下方的遮罩修改区看到被遮罩的部分。如果希望反选,选中【Invert mask】。

上图中之所以边缘会多一些,是我用鼠标笔触多绘制了一圈后,点击了【Add mask by sketch】。也可以点击【Expand mask region】自动扩展区域(限制比较大,你试试就知道)。我们也可以用鼠标笔触多绘制一圈后,点击【Trim mask by sketch】,让蒙版区变小。

Inpainting重绘

这里我希望图像中的豹子消失掉,因此Inpainting Prompt写grasslands草原,Negative Prompt写panther, leopard, animals, sheep, horse, bird各种动物。Inpainting Model ID中选择【stabilityai/stable-diffusion-2-inpainting】模型,点击【Run Inpainting】。获得没有豹子的图片。

需要说明的是,这里效果其实并不是特别好,我试了很多次才有一张这种去掉豹子的图像。大多数是有各种动物出来。因此,我才在Negative Prompt中写panther, leopard, animals, sheep, horse, bird各种动物。如果有什么特别有效的方式,请评论区或私信告诉我。

Cleaner清理器

如果希望去掉豹子,我们也可以选择Cleaner页签,Cleaner Model ID选择lama,然后点击【Run Cleaner】。效果如下:

比我想象中要差,像很多隐身电影中的一个隐身的生物。我之所以给豹子扩展遮罩,就是希望能解决这个问题,但lama这个Cleaner Model ID,效果是不太好的。

Mask only只生成遮罩

选择Mask only页签,点击【Get mask】就可以获得遮罩图了,如果希望只获得豹子,则可以点击【Get mask as alpha image】。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 安装
  • SAM模型下载
  • mask遮罩生成及修改
  • Inpainting重绘
  • Cleaner清理器
  • Mask only只生成遮罩
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档