Stable Diffusion + Segment Anything试用

news/2024/7/10 18:41:05 标签: stable diffusion, 数据库, 人工智能, 学习, ai绘画

安装

  1. 从continue-revolution/sd-webui-segment-anything安装插件
  2. 分割模型下载后放到这个位置:${sd-webui}/extension/sd-webui-segment-anything/models/sam下,可以下载3个不同大小的模型,从大到小如下:vit_h is 2.56GB, vit_l is 1.25GB, vit_b is 375MB。如果显存不够的话,可以考虑使用小模型。当然效果也可能会有损失。 经过上述步骤后,插件就安装好了。

使用教程

图片分割

安装

  1. 从continue-revolution/sd-webui-segment-anything安装插件
  2. 分割模型下载后放到这个位置:${sd-webui}/extension/sd-webui-segment-anything/models/sam下,可以下载3个不同大小的模型,从大到小如下:vit_h is 2.56GB, vit_l is 1.25GB, vit_b is 375MB。如果显存不够的话,可以考虑使用小模型。当然效果也可能会有损失。 经过上述步骤后,插件就安装好了。

使用教程

图片分割

手动方式

  • 标注图片

左键标记成黑点代表想要的物体,右键标记成红点代表不需要分割的物体

  • 分割结果 使用Preview Segmentation按钮生成分割图

image.png 根据分割的多个结果中选择1个最满意的节点

使用GroundingDINO加提示词自动识别分割物

image.png

勾选Enable GroundingDINO,就会出现下面的GroundingDINO Model (Auto download from huggingface)GroundingDINO Detection Prompt,其中GroundingDINO Detection Prompt填上想要分割的物体,比如"dress" 点击Generate bounding box按钮,就可以看到分割效果,如下所示:

  • 分割结果 使用Preview Segmentation按钮生成分割图,和上面一样。

  • 扩充(可选)

image.png

如果分割图里面会有一些点没有完全覆盖的话,可以考虑扩充mask来使分割结果更好。比如上面手动分割图中裙子会有一些点没有覆盖到,可以考虑扩充像素。

点击Switch to Inpaint Upload,接下来就是使用【局部重绘(上传蒙版)】来做局部重绘了。

局部重绘(上传蒙版)

  • 除了把“重绘区域”修改成“仅蒙版”,这里大部分使用默认的参数。

image.png

  • 选择对应的controlNet,比如上面选择的是第1个分割结果,那就选择ControlNet Unit 1:
  1. 勾选启用、勾选Pixel Perfect,如果显存不够可以勾选低显存优化
  2. 选择预处理:inpait_global_harmonious,模型:control_v11_sd15_inpaint
  3. 其他参数默认

效果

使用X/Y/Z Plot脚本来替换提示词,如下:

red dress, pink dress,white dress,blue dress, frilled dress

效果如下:

image.png

可以看到还是比较完美的做了换装。

总结

本文简单使用了stable diffusion webui的Segment Anything来实验了换装操作,整体效果还是比较好的,当然目前选择的还是比较简单的图片,如果比较复杂的图片,是否还有这么好的效果,还需继续研究和试验。 当然作者认为它主要是为了方便做局部重绘时需要手动标记重绘区域时的不便,有了Segment Anything可以提高标记效率。

附录

遇到的问题

  1. 显存不够
torch.cuda.OutOfMemoryError: CUDA out of memory. ......

查看后台运行程序可能会时长出现上面的问题,这就是显存不够导致的,可以尝试把SAM Model修改成最小的vit_b,让流程跑起来。当然也可能目前该扩展还有一些显存的问题,看Issue上面也有挺多人遇到类似问题。

image.png

  1. 安装的版本不对
The detected CUDA version (12.1) mismatches the version that was used to compile PyTorch (11.7). Please make sure to use the same CUDA versions.

  • 需要保证保证nvcc --version显示的版本和nvidia-smi显示的版本保持一致。如果不一致,可能需要重新编译cuda版本。

写在最后

感兴趣的小伙伴,赠送全套AIGC学习资料,包含AI绘画、AI人工智能等前沿科技教程和软件工具,具体看这里。

AIGC技术的未来发展前景广阔,随着人工智能技术的不断发展,AIGC技术也将不断提高。未来,AIGC技术将在游戏和计算领域得到更广泛的应用,使游戏和计算系统具有更高效、更智能、更灵活的特性。同时,AIGC技术也将与人工智能技术紧密结合,在更多的领域得到广泛应用,对程序员来说影响至关重要。未来,AIGC技术将继续得到提高,同时也将与人工智能技术紧密结合,在更多的领域得到广泛应用。

在这里插入图片描述

一、AIGC所有方向的学习路线

AIGC所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

在这里插入图片描述

在这里插入图片描述

二、AIGC必备工具

工具都帮大家整理好了,安装就可直接上手!
在这里插入图片描述

三、最新AIGC学习笔记

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述
在这里插入图片描述

四、AIGC视频教程合集

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

五、实战案例

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习
在这里插入图片描述


http://www.niftyadmin.cn/n/5438023.html

相关文章

二、实现fastdfs文件上传与延迟删除功能的Spring Boot项目

如何在Spring Boot项目中集成FastDFS实现文件上传功能,并添加支持延迟删除功能的实现。 一、Spring Boot 中集成 fastdfs 使用 1、文件上传功能实现 首先,让我们看一下如何实现文件上传功能的接口方法: RestController public class File…

Zama:链上隐私新标准

1. 引言 揭示 Web3 中全同态加密的潜在用例,并深入研究 Zama 的四种主要开源产品: TFHE-rsConcreteConcrete MLfhEVM 众所周知,在当今时代,数据隐私问题与互联网诞生以来一样普遍。仅 Yahoo!、Equifax 和 Marriott 的数据泄露就…

C++ 接口的实现,及作用通俗理解方式

接口 C中的接口,一般就是指抽象类,是一种用来描述类对外提供的操作、方法或功能的集合——注意,一般只是描述(声明),而不对这些方法或功能进行定义实现,通常在类的继承或多态中作为基类使用&am…

el-date-picker时间禁用问题

// 选择今天以及今天以后的日期 export const disabledDate (time) > {return time.getTime() > Date.now() - 8.64e6; //如果没有后面的-8.64e6就是不可以选择今天的 }设置开始时间小于结束时间(不能等于) export const disabledDate (date) …

【好书推荐2】AI提示工程实战:从零开始利用提示工程学习应用大语言模型

【好书推荐2】AI提示工程实战:从零开始利用提示工程学习应用大语言模型 写在最前面AI辅助研发方向一:AI辅助研发的技术进展方向二:行业应用案例方向三:面临的挑战与机遇方向四:未来趋势预测方向五:与法规的…

P1266 速度限制(最短路 迪杰斯特拉算法)

题目描述 在这个繁忙的社会中,我们往往不再去选择最短的道路,而是选择最快的路线。开车时每条道路的限速成为最关键的问题。不幸的是,有一些限速的标志丢失了,因此你无法得知应该开多快。一种可以辩解的解决方案是,按…

鸿蒙Harmony应用开发—ArkTS声明式开发(基础手势:Toggle)

组件提供勾选框样式、状态按钮样式及开关样式。 说明: 该组件从API Version 8开始支持。后续版本如有新增内容,则采用上角标单独标记该内容的起始版本。 子组件 仅当ToggleType为Button时可包含子组件。 接口 Toggle(options: { type: ToggleType, is…

苍穹外卖-day15:套餐管理

套餐管理 课程内容 套餐分页查询启售停售套餐删除套餐新增套餐 1. 套餐分页查询 1.1 需求分析和接口设计 根据产品原型来了解需求,套餐分页查询的产品原型如下: 业务规则: 根据页码展示套餐信息(套餐名称、套餐图片、套餐分类、价格、售…