前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >AI绘画专栏之 SDXL 插件之segment-anything(40)

AI绘画专栏之 SDXL 插件之segment-anything(40)

原创
作者头像
疯狂的KK
发布2023-11-20 14:14:26
1.3K0
发布2023-11-20 14:14:26
举报
文章被收录于专栏:Java项目实战Java项目实战

1.是什么

https://segment-anything.com/

分割任何物体模型,还记得语义分割和镜头风格词库,这个原理就是根据语义分割做的词库

2.在哪下

https://gitcode.net/ranting8323/sd-webui-segment-anything.git

3.怎么玩

1.准备opencv环境

代码语言:javascript
复制
pip install opencv-python pycocotools matplotlib onnxruntime onnx

2.模型下载

我们支持多种细分模型:

  1. 来自 Meta AI 的 SAM
    1. 2.56GB sam_vit_h
    2. 1.25GB sam_vit_l
    3. 375MB sam_vit_b
  2. 我自己在 NVIDIA 3090 Ti 上测试了vit_h,这很好。如果遇到VRAM问题,则应切换到较小的型号。
  3. 来自 SysCV 的 SAM-HQ
    1. 2.57GB sam_hq_vit_h
    2. 1.25GB sam_hq_vit_l
    3. 379MB sam_hq_vit_b
  4. 来自庆熙大学的MobileSAM
    1. 39MB mobile_sam

我们计划在对代码库进行重大重构后(尚不支持)支持一些其他的分割模型变体:

  1. Matting-Anything 来自 SHI-Labs。这是 SAM 的任何变体的后处理模型。将模型放在${sd-webui-segment-anything}/models/sam
    1. 我有 11MB
  2. 来自 CASIA-IVA-Lab 的 FastSAM。这是 SAM 的 YOLO 变体。
    1. 145MB 快速SAM-x

GroundingDINO 软件包、GroundingDINO 型号和 ControlNet 注释器型号将在您首次使用时自动安装

3.存放位置

Put the model under ${sd-webui-segment-anything}/models/sam

4.支持单个和批量处理

单张图片

  1. 上传您的图片
  2. (可选)在图像上添加点提示。左键点击正点提示(黑点),右键点击负点提示(红点),再次左键点击任意点取消提示。如果您不想使用 GroundingDINO,则必须添加点提示。
  3. (可选)选中,选择您想要的 GroundingDINO 模型,编写文本提示(用 ) 分隔不同的类别并选择一个框阈值(我强烈推荐默认设置。高阈值可能导致没有边界框)。如果您不希望使用点提示,则必须编写文本提示。Enable GroundingDINO.
  4. (可选)启用预览 GroundingDINO 边界框,然后单击 。您必须编写文本提示来预览边界框。看到左上角标有数字的框后,取消选中所有不需要的框。如果取消选中所有框,则必须添加点提示以生成蒙版。Generate bounding box
  5. 单击按钮。由于SAM的限制,如果存在多个边界框,则在生成掩码时,您的点提示将不会生效。Preview Segmentation
  6. 选择您喜欢的细分。
  7. (可选)选中并指定金额,然后单击 。Expand MaskUpdate Mask
  8. [非常重要]更新您的 ControlNet 并选中 (MUST) 您的 ControlNet 设置。Allow other script to control this extension
txt2img
  1. 您只能将图像和蒙版复制到 ControlNet 修复中。
  2. (可选)选中以反转蒙版颜色并在蒙版外部绘制区域。ControlNet inpaint not masked
  3. 如果要使用 Multi-ControlNet,请选择使用修复的正确 ControlNet 索引。
  4. 配置 ControlNet 面板。单击 ,预处理器选择,模型选择。无需将图像上传到 ControlNet 修复面板。Enableinpaint_global_harmoniouscontrol_v11p_sd15_inpaint [ebff9138]
  5. 编写提示,配置 A1111 面板,然后单击 。Generate
img2img
  1. 检查。无需选择 ControlNet 索引。Copy to Inpaint Upload & ControlNet Inpainting
  2. 配置 ControlNet 面板。单击 ,预处理器选择,模型选择。无需将图像上传到 ControlNet 修复面板。Enableinpaint_global_harmoniouscontrol_v11p_sd15_inpaint [ebff9138]
  3. 单击按钮。无需上传其他图像或蒙版,只需将它们留空即可。编写提示,配置 A1111 面板,然后单击 。Switch to Inpaint UploadGenerate

批处理

  1. 选择您的 SAM 型号、GroundingDINO 型号、文本提示、框阈值和掩模扩展量。输入映像的源目录和目标目录。
  2. 选择配置每个边界框的掩码数。我强烈推荐 3,因为有些面具可能很奇怪。Output per image
  3. 单击/取消单击多个复选框以配置要保存的图像。请参阅演示,了解这些复选框所代表的图像类型。
  4. 单击并等待。如果您在此按钮下方看到“完成”,则表示您已全部设置。Start batch process

自动SAM

  1. 使用前安装并更新 Mikubill ControlNet Extension
  2. 根据此处的说明配置 AutoSAM 可调参数。如果您无法理解,请使用默认值。
控制网
  1. 选择预处理器。
    • seg_ufade20k,并且来自 ControlNet 注释器。我强烈推荐其中之一,因为它们的性能远远优于 。它们都与 兼容。(可选)启用像素完美以自动选择最佳预处理器分辨率。如果您希望启用像素完美,请在预览前在 txt2img/img2img 默认面板上配置您的目标宽度和高度。否则,您需要手动设置预处理器分辨率。seg_ofade20kseg_ofcocoseg_ofade20kseg_ofcocoseg_ufade20kcontrol_v11p_sd15_seg
    • random用于 EditAnything。无需为随机预处理器设置预处理器分辨率,因为它不包含语义分割,但您需要从 AutoSeg 输出库中选取一个图像以复制到 ControlNet。1 表示为将来的 ControlNet 保留的不同蒙版区域的随机着色,2 表示固定着色,可以是 EditAnything ControlNet 控制图像。
  2. 单击预览分割图像。对于语义转换,您将看到 4 个图像,其中左侧 2 个没有 SAM,右侧 2 个有 SAM。对于随机预处理器,您将看到 3 个图像,其中左上角是混合图像,右上角是随机彩色蒙版,左下角是 EditAnything ControlNet。
  3. 如果要使用 Multi-ControlNet,请检查并选择使用 ControlNet 分段模型的正确 ControlNet 索引。Copy to ControlNet Segmentation
  4. 配置 ControlNet 面板。单击 ,预处理器选择,模型选择。无需将图像上传到 ControlNet 分割面板。Enablenonecontrol_v11p_sd15_seg [e1f51eb9]
  5. 编写提示,配置 A1111 面板,然后单击 。Generate
  6. 如果要使用 EditAnything,则需要修改上面的一些步骤:
    • 在步骤1中:您需要选择预处理器。random
    • 在第 3 步和第 4 步之间:下载
      • SD 1.5 权重为 或 , 配置为${a1111-webui}/models/ControlNet${sd-webui-controlnet}/models${sd-webui-controlnet}/models
      • SD 2.1 权重为 或 , 配置为${a1111-webui}/models/ControlNet${sd-webui-controlnet}/models${sd-webui-controlnet}/models
    • 在步骤4中:型号选择control_v11p_sd15_seg [e1f51eb9]
图像布局
  1. 对于单张图片,只需上传图片,输入输出路径,点击生成即可。您将在输出目录中看到很多图像。
  2. 对于批处理,只需输入源目录和目标目录,然后单击生成。您将在目录中看到很多图像。${destination}/{image_filename}
按类别划分的掩码
  1. 选择类似于 ControlNet 步骤 1 的预处理器。这是纯粹的语义分割,因此没有随机预处理器。
  2. 输入以 分隔的类别 ID。访问 此处 获取 ade20k,访问 此处 获取 coco 获取类别 >id 地图。请注意,coco 会跳转一些数字,因此实际 ID 为 line_number - 21。例如,如果您想要床+人,则 ade20k 的输入应为 7+12,coco 的输入应为 59+0。+
  3. 对于单张图片,上传图片,点击预览并配置复制,类似于 txt2img 的 hereimg2img 的 here
  4. 对于批处理,它类似于批处理步骤 2-4。

4.报错怎么办提FAQ

我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1.是什么
  • 分割任何物体模型,还记得语义分割和镜头风格词库,这个原理就是根据语义分割做的词库
  • 2.在哪下
  • https://gitcode.net/ranting8323/sd-webui-segment-anything.git
  • 3.怎么玩
    • 1.准备opencv环境
      • 2.模型下载
        • 3.存放位置
          • 4.支持单个和批量处理
            • 单张图片
            • 批处理
            • 自动SAM
        • 4.报错怎么办提FAQ
        相关产品与服务
        大模型图像创作引擎
        大模型图像创作引擎是一款提供 AI 图像生成与处理能力的 API 技术服务,可以结合输入的文本或图片智能创作出与输入相关的图像内容,具有更强大的中文理解能力、更多样化的风格选择,更好支持中文场景下的建筑风景生成、古诗词理解、水墨剪纸等中国元素风格生成,以及各种动漫、游戏风格的高精度图像生成和风格转换,为高质量的内容创作、内容运营提供技术支持。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档