当前位置: 首页 > news >正文

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实用技巧

抠图是图像处理工具的一项必备能力&#xff0c;可以用在重绘、重组、更换背景等场景。最近我一直在探索 Stable Diffusion WebUI 的各项能力&#xff0c;那么 SD WebUI 的抠图能力表现如何呢&#xff1f;这篇文章就给大家分享一下。 安装插件 作为一个生成式AI&#xff0c;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 -----更新升级 然后运行&#xff1a; gitlab-runner register --url https://git…...

【ChatGPT 指令大全】销售怎么借力ChatGPT提高效率

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

计算机网络 网络层 路由 路由信息协议RIP

...

【Spring】-Spring项目的创建

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

SQL | 使用通配符进行过滤

6-使用通配符进行过滤 6.1-LIKE操作符 前面介绍的所有操作符都是通过已知的值进行过滤&#xff0c;或者检查某个范围的值。但是如果我们想要查找产品名字中含有bag的数据&#xff0c;就不能使用前面那种过滤情况。 利用通配符&#xff0c;可以创建比较特定数据的搜索模式。 …...

make: *** [Makefile:719: ext/openssl/openssl.lo] Error 1

在ubuntu系统上编译安装PHP7.4.33时&#xff0c;会报错如下 make: *** [Makefile:719: ext/openssl/openssl.lo] Error 1 原因分析&#xff1a;这个错误提示的意思是PHP配置过程中缺少OpenSSL库文件&#xff0c;因此在编译过程中出现了问题&#xff1b;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…...

【设计模式】模板模式

什么是模板模式&#xff1f; 模板方法模式&#xff08;Template Method Pattern&#xff09;&#xff0c;又叫模板模式(Template Pattern)&#xff0c;在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现&#xff0c;但调用将以抽象类中定义的方式进行…...

配置docker和复现

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

Qt应用开发(基础篇)——工具箱 QToolBox

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

地理测绘基础知识(1) 坐标系经纬度与ECEF直角坐标的基本换算

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

【UE4 RTS】08-Setting up Game Clock

前言 本篇实现的效果是在游戏运行后能够记录当前的游戏时间&#xff08;年月日时分秒&#xff09;&#xff0c;并且可以通过修改变量从而改变游戏时间进行的快慢。 效果 步骤 1. 在Blueprints文件夹中新建如下两个文件夹&#xff0c;分别命名为“GameSettings”、“Player”…...

百度chatgpt内测版

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

[GAN] 使用GAN网络进行图片生成的“调参人”入门指南——生成向日葵图片

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

(十)人工智能应用--深度学习原理与实战--模型的保存与加载使用

目的:将训练好的模型保存为文件,下次使用时直接加载即可,不必重复建模训练。 神经网络模型训练好之后,可以保存为文件以持久存储,这样下次使用时就不重新建模训练,直接加载就可以。TensorfLow提供了灵活的模型保存方案,既可以同时保存网络结构和权重(即保存全模型),也可…...

Java“牵手”1688商品详情页面数据获取方法,1688API实现批量商品数据抓取示例

背景&#xff1a;1688商城是一个网上购物平台&#xff0c;售卖各类商品&#xff0c;包括服装、鞋类、家居用品、美妆产品、电子产品等。要获取1688商品详情数据&#xff0c;您可以通过开放平台的接口或者直接访问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做数据处理和分析过程中&#xff0c;如在开展机器学习的数据预处理、数据格式转换等等&#xff0c;不可避免的会涉及到各种矩阵变换&#xff0c;其中使用最多的就是numpy下的矩阵变换&#xff0c;以下是日常用到的一些矩阵变换总结&#xff0c;主要有矩阵中数据类型的…...

LightningChart JS 2023Crack,CPU高效实时更新

LightningChart JS 2023Crack,CPU高效实时更新 添加了新的极地热图图表类型-添加了新系列类型&#xff0c;允许您在极地坐标系中可视化热图。极地热图的一些关键特征是&#xff1a; 处理多达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元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

怎么让Comfyui导出的图像不包含工作流信息,

为了数据安全&#xff0c;让Comfyui导出的图像不包含工作流信息&#xff0c;导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo&#xff08;推荐&#xff09;​​ 在 save_images 方法中&#xff0c;​​删除或注释掉所有与 metadata …...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式

简介 在我的 QT/C 开发工作中&#xff0c;合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式&#xff1a;工厂方法模式、单例模式和生成器模式。 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)详解《二》

&#x1f9e0; LangChain 中 TextSplitter 的使用详解&#xff1a;从基础到进阶&#xff08;附代码&#xff09; 一、前言 在处理大规模文本数据时&#xff0c;特别是在构建知识库或进行大模型训练与推理时&#xff0c;文本切分&#xff08;Text Splitting&#xff09; 是一个…...

PydanticAI快速入门示例

参考链接&#xff1a;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 树&#xff0c;可用于构建复杂的终端界面&#xff0c;支持响应终端尺寸变化。 namespace ftxui {...// 定义文档 定义布局盒子 Element document vbox({// 设置文本 设置加粗 设置文本颜色text("The window") | bold | color(…...