AI抠图使用指南:Stable Diffusion WebUI Rembg实用技巧
抠图是图像处理工具的一项必备能力,可以用在重绘、重组、更换背景等场景。最近我一直在探索 Stable Diffusion WebUI 的各项能力,那么 SD WebUI 的抠图能力表现如何呢?这篇文章就给大家分享一下。
安装插件
作为一个生成式AI,SD本身并没有精细的抠图控制能力,它需要借助插件来实现。
这里我们使用 stable-diffusion-webui-rembg 这个插件,插件安装成功后,会出现在“高清化”这个页面的底部。
安装方法一
适合网络访问各种资源比较畅通的同学。
插件地址:GitHub - AUTOMATIC1111/stable-diffusion-webui-rembg: Removes backgrounds from pictures. Extension for webui.
直接在 Stable Diffusion WebUI 中通过网址安装,操作步骤如下图所示:
第5点指示插件已经安装成功,只需要在“已安装”页面中重启SD WebUI就可以了。
实际抠图时,插件还会根据选择的抠图算法自动下载相关的模型,第一次使用某个算法抠图时等待的时间会长一点。
安装方法二
适合访问外网不怎么方便的同学。
先通过别的工具,比如迅雷下载到本地,然后再部署到相应的目录。
插件地址:GitHub - AUTOMATIC1111/stable-diffusion-webui-rembg: Removes backgrounds from pictures. Extension for webui.
算法模型地址:GitHub - danielgatis/rembg: Rembg is a tool to remove images background
或者下载我已经打包好的文件,关注公众号:萤火遛AI,发消息:抠图,即可获取相关文件。
stable-diffusion-webui-rembg.zip 是插件程序,解压后放到 stable-diffusion-webui/extensions 目录。
u2net.zip 是算法模型文件,解压后放到当前用户的临时目录:
- Windows是:C:\Users\{你登录的Windows用户名}\.u2net
- Linux是:/root/.u2net/
如果部署在云服务器,需要先上传zip压缩文件,再解压到指定的目录。参考解压指令:
unzip -o /root/autodl-tmp/stable-diffusion-webui-rembg.zip -d /root/stable-diffusion-webui/extensions/stable-diffusion-webui-rembg/
unzip -o /root/autodl-tmp/u2net.zip -d /root/.u2net/
安装完毕之后,记得重启SD。
使用rembg
基本使用
点击“高清化”页签,上传要抠图的照片,“Remove background”这里选择抠图算法,最后点击“生成”。
看看默认的抠图效果:头发这里还有些底色没去掉,这部分和背景有些交错,算法不能很好的识别。
注意人像周围黑色的部分实际上都是透明的,我们把这张图片放到白色的背景中人像周围就是白色了。
我们把这个“Alpha matting”勾上,然后会出来几个选项,把“Erode size”的值改为“15”,它可以优化前景图边缘的分割。
重新生成,看看这次的结果,头发这块基本上看不出来之前的底色了,但是衣领这里有些模糊了。我尝试了不同的参数,也没能达到完美。或许把图片放到PS中再处理下是个正确的方法,以结果为导向,不能死抱着AI不放,有兴趣的可以试试。
参数介绍
上面做了一个基本的演示,但是这些参数我们如何配置才能发挥最好的效果呢?这一小节就来看看这些参数的定义。
先看看这几个算法模型:
- u2net:通用的的预训练模型,通常用这个就行。
- u2netp:u2net的轻量级版本。
- u2net_human_seg:专门针对人像分割的预训练模型,只是分割人像时建议使用。
- u2net_cloth_seg:专门从人像上抠衣服的预训练模型,它会把衣服分成三部分:上半身、下半身和全身。
- silueta:和u2net相同,但是大小减少到43Mb,方便在小内存机器上使用。
- isnet-general-use :一个新的通用的预训练模型。
- isnet-anime:专门针对动画人物的高精度分割。
再看看它的两个选项:
- Alpha matting:Alpha遮罩,这是一个比较专业的图像处理术语。在图像处理中,有一个东西用来表示图像中每个像素点的透明度,这个东西称为Alpha通道;然后Alpha遮罩利用Alpha通道来控制图像的透明度,从而达到隐藏或显示某些部分的目的;在抠图这里就是努力让前景部分都显示出来,让背景部分都变透明。这个选项有三个参数,用来控制抠图的效果,我们看下:
-
- Erode size:Alpha抠图腐蚀尺寸,通过在图像中构建一个长宽为这个值的矩形进行腐蚀。太小了前景和背景分离不彻底,边缘有交叉;太大了前景和背景会腐蚀的太多,边缘缺损明显。
- Foreground threshold:前景图像的阈值,值过小背景可能被识别为前景,值过大前景可能被识别为背景。
- Background threshold:背景图像的阈值,值小了前景可能被识别为背景,值大了背景可能识别为前景。
使用Alpha遮罩时可以初始用这几个经验值:(15, 220, 100),具体参数值再根据实际情况进行调整。
- Return mask:返回抠图的蒙版图,下面马上就会介绍它的用法和用途。
使用蒙版
这一小节以更换图片背景为例,演示蒙版的用法。具体想法是生成一张马斯克登陆火星遭遇外星人的照片。
生成蒙版
只要在生成时勾选上“Return mask”,最终输出图片就会变成蒙版图。
如下图所示,可以看到人物变成了白色的蒙版,我们把这个蒙版图片先保存到本机,后面马上要用。
更换背景
在“图生图”中打开“局部绘制(上传蒙版)”。这里需要上传两张照片,一张原图,一张人物的蒙版图。
图生图的具体参数如下:
提示词:(the desert), ((night)), dim sun, (stargate), a man in a suit and white shirt smiling for a picture, a alien standing in the distance, digital painting, stargatejackal,surrealistic, hdri, smooth, sharp focus, illustration, fantasy, intricate, elegant, highly detailed, 8k <lora:sgasgard_v1:1>
反向提示词:EasyNegative, moon
缩放模式:填充,因为我想调整下图片的宽高比到 16:9,原图没这么宽,所以需要填充新扩展的空间。
蒙版模式:绘制非蒙版内容,在“局部绘制(上传蒙版)”中白色的区域是蒙版,因为我们要重绘背景,所以这里选择的是“绘制非蒙版内容”。
采样器:DPM++ 2M SDE Karras,这是最近新加的一个采样器,建议体验下。当然也可以用别的采样器。
采样步数:配合采样器设置。
宽度、高度:根据 16:9的比例设置。
看看出图的效果:
以上就是本文的主要内容了,感兴趣的同学赶紧去试试吧。
如果你刚开始学习AI绘画,建议先看这两篇 Stable Diffusion WebUI 安装指南:
手把手教你在本机安装Stable Diffusion秋叶整合包
手把手教你在云环境炼丹(部署Stable Diffusion WebUI)
相关文章:

AI抠图使用指南:Stable Diffusion WebUI Rembg实用技巧
抠图是图像处理工具的一项必备能力,可以用在重绘、重组、更换背景等场景。最近我一直在探索 Stable Diffusion WebUI 的各项能力,那么 SD WebUI 的抠图能力表现如何呢?这篇文章就给大家分享一下。 安装插件 作为一个生成式AI,SD…...

gitlab-Runner搭建
root wget https://packages.gitlab.com/runner/gitlab-runner/packages/fedora/29/gitlab-runner-12.6.0-1.x86_64.rpm/download.rpm rpm -ivh download.rpm ---- 安装 rpm -Uvh download.rpm -----更新升级 然后运行: gitlab-runner register --url https://git…...

【ChatGPT 指令大全】销售怎么借力ChatGPT提高效率
目录 销售演说 电话销售 产出潜在客户清单 销售领域计划 销售培训计划 总结 随着人工智能技术的不断进步,我们现在有机会利用ChatGPT这样的智能助手来改进我们的销售工作。在接下来的时间里,我将为大家介绍如何运用ChatGPT提高销售效率并取得更好的…...

【Spring】-Spring项目的创建
作者:学Java的冬瓜 博客主页:☀冬瓜的主页🌙 专栏:【Framework】 主要内容:创建spring项目的步骤:先创建一个maven项目,再在pom.xml中添加spring框架支持,最后写一个启动类。 文章目…...

SQL | 使用通配符进行过滤
6-使用通配符进行过滤 6.1-LIKE操作符 前面介绍的所有操作符都是通过已知的值进行过滤,或者检查某个范围的值。但是如果我们想要查找产品名字中含有bag的数据,就不能使用前面那种过滤情况。 利用通配符,可以创建比较特定数据的搜索模式。 …...
make: *** [Makefile:719: ext/openssl/openssl.lo] Error 1
在ubuntu系统上编译安装PHP7.4.33时,会报错如下 make: *** [Makefile:719: ext/openssl/openssl.lo] Error 1 原因分析:这个错误提示的意思是PHP配置过程中缺少OpenSSL库文件,因此在编译过程中出现了问题;Ubuntu 22.04 中openss…...

Android Studio实现简单ListView
效果图 MainActivity package com.example.listviewtest;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle; import android.widget.ListView;import com.example.listviewtest.adapter.PartAdapter; import com.example.listviewtest.bean.PartB…...

【设计模式】模板模式
什么是模板模式? 模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行…...

配置docker和复现
1.Nginx环境搭建 选择centos7来进行安装 1.1 创建Nginx的目录并进入 mkdir /soft && mkdir /soft/nginx/ cd /soft/nginx/ 1.2 下载Nginx的安装包,可以通过FTP工具上传离线环境包,或者通过wget命令在线获取安装包 wget https://nginx.org/down…...

Qt应用开发(基础篇)——工具箱 QToolBox
一、前言 QToolBox类继承于QFrame,QFrame继承于QWidget,是Qt常用的基础工具部件。 框架类QFrame介绍 QToolBox工具箱类提供了一列选项卡窗口,当前项显示在当前选项卡下面,适用于分类浏览、内容展示、操作指引这一类的使用场景。 二…...

地理测绘基础知识(1) 坐标系经纬度与ECEF直角坐标的基本换算
经纬度与ECEF直角坐标的基本换算 我们目前最常用的全球坐标系是WGS-84坐标系,各种手机、地图基本用经纬度来标记位置。然而,经纬度对于空间的计算是很复杂的,需要很多三角函数操作。平面直角坐标系利用向量的运算,可以非常方便的…...

【UE4 RTS】08-Setting up Game Clock
前言 本篇实现的效果是在游戏运行后能够记录当前的游戏时间(年月日时分秒),并且可以通过修改变量从而改变游戏时间进行的快慢。 效果 步骤 1. 在Blueprints文件夹中新建如下两个文件夹,分别命名为“GameSettings”、“Player”…...

百度chatgpt内测版
搜索AI伙伴 申请到了百度的chatgpt: 完整的窗口布局: 三个哲学问题: 灵感中心: 请做一副画,一个渔夫,冬天,下着大雪,在船上为了一家的生计在钓鱼,远处的山上也都是白雪&a…...

[GAN] 使用GAN网络进行图片生成的“调参人”入门指南——生成向日葵图片
[GAN] 使用GAN网络进行图片生成的“炼丹人”日志——生成向日葵图片 文章目录 [GAN] 使用GAN网络进行图片生成的“炼丹人”日志——生成向日葵图片1. 写在前面:1.1 应用场景:1.2 数据集情况:1.3 实验原理讲解和分析(简化版&#x…...

(十)人工智能应用--深度学习原理与实战--模型的保存与加载使用
目的:将训练好的模型保存为文件,下次使用时直接加载即可,不必重复建模训练。 神经网络模型训练好之后,可以保存为文件以持久存储,这样下次使用时就不重新建模训练,直接加载就可以。TensorfLow提供了灵活的模型保存方案,既可以同时保存网络结构和权重(即保存全模型),也可…...
Java“牵手”1688商品详情页面数据获取方法,1688API实现批量商品数据抓取示例
背景:1688商城是一个网上购物平台,售卖各类商品,包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取1688商品详情数据,您可以通过开放平台的接口或者直接访问1688商城的网页来获取商品详情信息。以下是两种常用方法的介绍&a…...
Docker_docker runContainerd
docker run-Containerd docker run -it 运行容器交互式方式启动守护进程方式启动其他命令 docker部署nginx服务k8s废弃docker原因安装和配置containerdcontainerd常用命令 docker run -it 运行容器 交互式方式启动 # 以交互式方式启动并进入容器 docker run --namehello -it …...
python中常见的矩阵变换总结
利用python做数据处理和分析过程中,如在开展机器学习的数据预处理、数据格式转换等等,不可避免的会涉及到各种矩阵变换,其中使用最多的就是numpy下的矩阵变换,以下是日常用到的一些矩阵变换总结,主要有矩阵中数据类型的…...

LightningChart JS 2023Crack,CPU高效实时更新
LightningChart JS 2023Crack,CPU高效实时更新 添加了新的极地热图图表类型-添加了新系列类型,允许您在极地坐标系中可视化热图。极地热图的一些关键特征是: 处理多达400万个数据点。 快速加载速度和CPU高效实时更新。 100ms以完全显示由所有数据填充的热…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
【HTML-16】深入理解HTML中的块元素与行内元素
HTML元素根据其显示特性可以分为两大类:块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...

Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...
Modbus RTU与Modbus TCP详解指南
目录 1. Modbus协议基础 1.1 什么是Modbus? 1.2 Modbus协议历史 1.3 Modbus协议族 1.4 Modbus通信模型 🎭 主从架构 🔄 请求响应模式 2. Modbus RTU详解 2.1 RTU是什么? 2.2 RTU物理层 🔌 连接方式 ⚡ 通信参数 2.3 RTU数据帧格式 📦 帧结构详解 🔍…...
LangChain 中的文档加载器(Loader)与文本切分器(Splitter)详解《二》
🧠 LangChain 中 TextSplitter 的使用详解:从基础到进阶(附代码) 一、前言 在处理大规模文本数据时,特别是在构建知识库或进行大模型训练与推理时,文本切分(Text Splitting) 是一个…...

PydanticAI快速入门示例
参考链接:https://ai.pydantic.dev/#why-use-pydanticai 示例代码 from pydantic_ai import Agent from pydantic_ai.models.openai import OpenAIModel from pydantic_ai.providers.openai import OpenAIProvider# 配置使用阿里云通义千问模型 model OpenAIMode…...
FTXUI::Dom 模块
DOM 模块定义了分层的 FTXUI::Element 树,可用于构建复杂的终端界面,支持响应终端尺寸变化。 namespace ftxui {...// 定义文档 定义布局盒子 Element document vbox({// 设置文本 设置加粗 设置文本颜色text("The window") | bold | color(…...