AI 绘画 | Stable Diffusion 涂鸦功能与局部重绘

news2024/11/26 5:27:04

在 StableDiffusion图生图的面板里,除了图生图(img2img)选卡外,还有局部重绘(Inpaint),涂鸦(Sketch),涂鸦重绘(Inpaint Sketch),上传重绘蒙版(Inpaint Uplaod)、批量处理(Batch)等功能。下面我就讲解一下这些功能的作用和使用。
在这里插入图片描述

涂鸦

Sketch 中文意思为素描,速写,草图;(任何作品的)粗样,初稿。这个功能可以让我们在原图上进行简单的创作后,再生成图片。以一张美女图片为例,我们想要在美女脸上固定位置上加一个美人痣,如果使用图生图的画,每次的美人痣位置都是随机的,难以控制。类似于这样需要固定位置或者形状的情况就适合用涂鸦功能了。

首先我们在图生图面板上传一张美女图片,然后点开涂鸦选卡,然后点击画笔调整好粗细,在选择颜色管理器里的颜色,这里我们选着黑色。在美女的眼睛下方点一颗美人痣。接着提示词里输入“mole(痣)”,提示词点击生成。
在这里插入图片描述
其中,画笔的颜色对生成涂鸦区域的颜色影响特别大,即使加了别的颜色的提示词,这涂鸦颜色生成的内容也很难有所改变。
效果图
在这里插入图片描述
以下是生成图片的一些参数

mole,
Steps: 20, Sampler: DPM++ 2M Karras, CFG scale: 3, Seed: 2395846175, Size: 768x1152, Model hash: 7c819b6d13, Model: majicMIX realistic 麦橘写实_v7, Denoising strength: 0.45, Version: v1.6.0

需要注意的是提示词相关系数设置太大,出现的美人痣就越多,重绘幅度越大和原图的差距就越大。

局部重绘

Inpaint 中文意思为 修复(图像):在数字图像处理中,通过填充丢失或损坏的区域,恢复图像的原始外观。 即当我们想对图片的局部地区进行修复或者重绘,就可是使用这个功能。比如我们之前用图生图生成了一张美女的图片,我们对这个图片的整体是非常满意的,但是我们希望这个美女能戴上太阳镜变得时尚起来。这时候,用图生图加入太的提示词,不管是锁定随机种子,还是调低重绘幅度,照片整体都会发生变化。
在这里插入图片描述
效果图
在这里插入图片描述

这时候,就要局部重绘的功能上传了,首先我们先切换到局部重绘的面板,上传我们这个原图。然后点击画笔设置画笔的粗细,然后涂抹眼部,最后提示词矿内输入sunglasses,点击生成。(有时候自己涂抹的区域有点小,生成眼镜不完全,可以扩大涂抹区域后重新生成)
在这里插入图片描述

  • 上面三个按钮分别是撤销上一次操作,橡皮差和删除图片。

效果图
在这里插入图片描述

参数设置与图生图不同的是多了蒙版边缘模糊度、蒙版模式、蒙版区域内容处理、重绘区域、仅蒙版区域下边缘预留像素 五个参数设置,下图是生成上图的这个参数的设置。
在这里插入图片描述

蒙版边缘模糊度

蒙版边缘模糊度是指在进行图像处理时,对蒙版(mask)边缘进行模糊处理的一种程度。这种模糊处理可以使得蒙版的边缘更加平滑,减少突兀感,使图像看起来更加自然。

在具体操作中,可以通过调整蒙版边缘模糊度的数值来控制模糊效果的大小。数值越大,模糊效果越明显,反之数值越小则模糊效果越不明显。通常情况下,这个数值的范围在0-64之间。

此外,蒙版模糊度也可以用于保护一些敏感信息,例如人脸、车牌等,通过模糊处理后可以有效地防止这些信息被识别和提取。

  • 以眼睛为例,蒙版边缘模糊度越小,生成的眼镜越清晰,否者,生成的眼镜越模糊

蒙版模式

蒙版模式分为重绘蒙版内容和非蒙版内容。

  • 重绘蒙版内容,就是只重绘我们涂鸦区域的图像(一般都选这个)。
  • 重绘非蒙版内容,就是只重绘我们涂鸦区域以外的图像。

蒙版区域内容处理

蒙版区域内容处理分为四种方式,分别为填充、原版、潜空间噪声、空白潜空间。

  • 填充 以眼镜为例,生成的眼睛,会按照,你涂抹的区域进行填充。除非你画的模板和眼睛的轮廓一摸一样否则不建议选这个
  • 原版 即原图不发生变化,生成的眼镜在适配原图美女的样貌改变。
  • 潜空间噪声 (涉及到一些原理的概念)Stable Diffusion模型是一种潜在扩散模型,它通过在潜在空间中应用扩散过程来生成图像。这个潜在空间是比像素空间更低维度的空间,可以减少内存和计算成本。在潜在空间中,噪声被添加到潜在表示中,然后通过解码器生成图像。通过调整潜在噪声的大小和分布,可以控制生成图像的质量和多样性。
  • 空白浅空间 和潜空间噪声类似,只不过没有噪声。同样可以减少内存和计算成本。但是生成效果不好

重绘区域

在Stable Diffusion的局部重绘中,重绘区域的选择有两种:整张图和仅蒙版区域

  • 如果选择整张图,那么将会重新绘制整张图片,包括蒙版区域和非蒙版区域。这样做的好处是,可以很好地保持图片的全局逻辑性,同时能够将蒙版的内容再拼合回去。但如果只想改变图片的一部分,以达到精细控制效果,那么这种选择可能不是最佳的。

  • 如果选择仅蒙版区域,那么只会对蒙版内容进行重新绘制,不会影响蒙版外的区域。这种选择更加灵活,可以只改变图片的特定部分,比如只改变眼睛的颜色等。局部重绘模式下,只需输入重绘部分提示词即可。

仅蒙版区域下边缘预留像素

在Stable Diffusion的局部重绘中,仅蒙版区域下边缘预留像素的作用主要是为了更好地融合重绘区域与原始图像的边缘。

在局部重绘中,如果只对蒙版区域进行重绘,那么重绘区域与原始图像之间的边缘可能会显得比较突兀,不够自然。为了解决这个问题,可以预留一些像素,使得重绘区域在边缘处与原始图像有更好的过渡和融合,让整个图像看起来更加自然。

具体来说,这些预留像素可以视为一种“缓冲带”,它们将重绘区域与原始图像隔开,但又不影响它们之间的视觉效果。通过调整这些预留像素的大小和分布,可以控制重绘区域与原始图像之间的过渡效果,以达到更加自然和流畅的视觉效果。

总之,Stable Diffusion局部重绘中仅蒙版区域下边缘预留像素的作用是为了让重绘区域与原始图像之间的边缘更加自然和流畅。如果你的蒙版区域,要重绘的东西对整体没有影响,可以设置为0。

涂鸦重绘

涂鸦重绘这个功能其实就是涂鸦功能和局部重绘功能的结合。下面做一个简单示例。首先我们在图生图面板上传一张美女图片,然后点开涂鸦重绘选卡,然后点击画笔调整好粗细,在选择颜色管理器里的颜色,这里我们选着红色,给美女涂鸦一个口罩,然后在正向提示词输入框内输入mouth mask(口罩),点击生成图片即可。
在这里插入图片描述
效果图
在这里插入图片描述
生成图片参数

mouth mask,
Steps: 30, Sampler: DPM++ 2M Karras, CFG scale: 3, Seed: 2395846175, Size: 768x1152, Model hash: 7c819b6d13, Model: majicMIX realistic 麦橘写实_v7, Denoising strength: 0.8, Mask blur: 0, Version: v1.6.0

值得注意的是,局部重绘和涂鸦重绘的重绘幅度可以设置很大0.8左右,因为都只是对涂鸦区域生效。重绘幅度越大,口罩的细节就越多。针对局部重绘和涂鸦重绘的 重绘幅度如果0.5以下,基本和原图没啥差别,达不到我们想要重绘的效果。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1182823.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

图像标注工具lableImg安装出错怎么办?

我们要训练自己的图像识别模型,首先要进行图像的标注。labelimg就是一款可视化的图像标注工具。它是用Python编写的,通过Qt实现其图形界面,尽管它只支持矩形框标注,但因跨平台,支持Linux、Mac OS、Windows,…

部分iOS机型 new Date() 时间 NAN

部分 iOS 机型 new Date() 时间 NAN 解决代码 是因为部分 iOS 机型 new Date(2023-01-01 00:00:00) 时, 获取时间戳的时间年月日用 - 分隔,将 - 分隔改为 / 分隔即可 new Date(2023/01/01 00:00:00)

【java】实现自定义注解校验——方法二

自定义注解校验的实现步骤: 1.创建注解类,编写校验注解,即类似NotEmpty注解 2.编写自定义校验的逻辑实体类,编写具体的校验逻辑。(这个类可以实现ConstraintValidator这个接口,让注解用来校验) 3.开启使用自定义注解进…

独立开发者学习的技术栈

# 前端 语言 - HTML - CSS/Sass/PostCSS - JavaScript/TypeScriptJS框架 - Vue - NuxtJS - React - NextJS - RemixJS CSS框架 - Tailwindcss - Bulma# 设计语言 - Ant Design - Material Design#后端 语言 - JavaScript/TypeScript - Python - Java - PHP 框架 - NestJS - Exp…

github 上传代码报错 fatal: Authentication failed for ‘xxxxxx‘

问题 今天一时兴起创建了个 github 新仓库,首次上传本地代码时,遇到了一个报错。本来以为是账号密码的问题,搞了好几次,发现都没错的情况下还是上传不上去。目测判断是认证相关问题,具体报错信息如下: rem…

JavaScript基础入门03

目录 1.条件语句 1.1if 语句 1.1.1基本语法格式 1.1.2练习案例 1.2三元表达式 1.3switch 2.循环语句 2.1while 循环 2.2continue 2.3break 2.4for 循环 3.数组 3.1创建数组 3.2获取数组元素 3.3新增数组元素 3.3.1. 通过修改 length 新增 3.3.2. 通过下标新增 …

OpenShift - 利用容器的特权配置实现对OpenShift攻击,以及如何使用 PSA 和 RHACS 防范风险

《OpenShift / RHEL / DevSecOps 汇总目录》 说明:本文已经在 OpenShift 4.14 的环境中验证 本文是《容器安全 - 利用容器的特权配置实现对Kubernetes攻击》的后续篇,来介绍 在 OpenShift 环境中的容器特权配置和攻击过程和 Kubernetes 环境的差异&…

【Spring】Spring IOCDI(万字详解)

文章目录 1. Spring是什么?2. 认识IOC2.1 传统程序开发1. Main.java2. Car.java3. Framework.java4. Bottom.java5. Tire.java 2.2 分析传统开发2.3 IOC程序开发1. Main.java2. Car.java3. Framework.java4. Bottom.java5. Tire.java 2.4 分析IOC开发2.5 IOC容器优点…

零代码编程:用ChatGPT批量将Mp4视频转为Mp3音频

文件夹中有很多mp4视频文件,如何利用ChatGPT来全部转换为mp3音频呢? 在ChatGPT中输入提示词: 你是一个Python编程专家,要完成一个批量将Mp4视频转为Mp3音频的任务,具体步骤如下: 打开文件夹:…

解决Java中https请求接口报错问题

1. 解决SSLException: Certificate for <域名> doesn‘t match any of the subject alternative报错问题 1.1 问题描述 最近在做一个智能问答客服项目,对接的是云问接口,然后云问接口对接使用的是https方式,之前一直…

MySQL | MySQL不区分大小写配置

MySQL不区分大小写配置 1.表内数据条件查询不区分大小写2. 表名字段名不区分大小写 1.表内数据条件查询不区分大小写 MySQL 表内数据条件查询不区分大小写是因为排序规则的问题. 在MySQL中,InnoDB存储引擎默认的字符集是utf8,utf8mb4等,这些字符集再存储数据时没有…

Flink -- 事件时间 Watermark

1、事件时间: 指的是数据产生的时间或是说是数据发生的时间。 在Flink中有三种时间分别是: Event Time:事件时间,数据产生的时间,可以反应数据真实发生的时间 Infestion Time:事件接收时间 Processing Tim…

【机器学习2】模型评估

模型评估主要分为离线评估和在线评估两个阶段。 针对分类、 排序、 回归、序列预测等不同类型的机器学习问题, 评估指标的选择也有所不同。 1 评估指标 1.1准确率 准确率是指分类正确的样本占总样本个数的比例 但是准确率存在明显的问题,比如当负样本…

互联网Java工程师面试题·Spring篇·第六弹

目录 ​编辑 21.什么是 Spring beans? 22、一个 Spring Bean 定义 包含什么? 23、如何给 Spring 容器提供配置元数据? 24、你怎样定义类的作用域? 25、解释 Spring 支持的几种 bean 的作用域。 26、Spring 框架中的单例 bean 是线程安全的吗? 27、解释 …

C/C++(a/b)*c的值 2021年6月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C(a/b)*c的值 一、题目要求 1、编程实现 2、输入输出 二、算法分析 三、程序编写 四、程序说明 五、运行结果 六、考点分析 C/C(a/b)*c的值 2021年6月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 给定整数a、b、c,计算(a / b)*c的值&…

专业128分总分390+上岸中山大学884信号与系统电通院考研经验分享

专业课884 信号系统 过年期间开始收集报考信息,找到了好几个上岸学姐和学长,都非常热情,把考研的准备,复习过程中得与失,都一一和我分享,非常感谢。得知这两年专业课难度提高很多,果断参加了学长…

智能网联汽车基础软件信息安全需求分析

目录 1.安全启动 2.安全升级 3.安全存储 4.安全通信 5.安全调试 6.安全诊断 7.小结 1.安全启动 对于MCU,安全启动主要是以安全岛BootROM为信任根,在MCU启动后,用户程序运行前,硬件加密模块采用逐级校验、并行校验或者混合校…

【电子通识】USB Logo的标识含义

USB 图标的设计灵感是来自罗马神话中的海神尼普顿(Neptune)(也是海王星的名字)的武器「三叉戟」,一支强有力的三齿鱼叉。不过,为了避免鱼叉形状的设计暗示人们拿着自己的USB 存储设备到处乱插(叉)。设计师对…

Failed to load module script 解决方案

Failed to load module script: Expected a JavaScript module script but the server responded with a MIME type of “text/html”. Strict MIME type checking is enforced for module scripts per HTML spec. 使用vite build 打包后部署到生产后报这个错误 原因: 资源路…

淘宝API技术文档解析,从入门到实战

探索淘宝数据的奥秘,淘宝是目前国内最大的B2C电商平台之一,每天都会产生海量的数据。借助淘宝API技术文档,我们可以轻松地获取到这些数据,从而为电商运营和数据分析提供有力支持。 1.什么是淘宝API? 淘宝API&#xf…