AI 绘画 | Stable Diffusion 涂鸦功能与局部重绘
在 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以下,基本和原图没啥差别,达不到我们想要重绘的效果。
相关文章:

AI 绘画 | Stable Diffusion 涂鸦功能与局部重绘
在 StableDiffusion图生图的面板里,除了图生图(img2img)选卡外,还有局部重绘(Inpaint),涂鸦(Sketch),涂鸦重绘(Inpaint Sketch),上传重绘蒙版(Inpaint Uplaod)、批量处理(…...

[LeetCode周赛复盘] 第 371 场周赛20231112
[LeetCode周赛复盘] 第 371 场周赛20231112 一、本周周赛总结100120. 找出强数对的最大异或值 I1. 题目描述2. 思路分析3. 代码实现 100128. 高访问员工1. 题目描述2. 思路分析3. 代码实现 100117. 最大化数组末位元素的最少操作次数1. 题目描述2. 思路分析3. 代码实现 100124…...
Google Guava Cache LoadingCache 基本使用
一. 添加依赖 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>27.1-jre</version> </dependency>二. 创建CacheLoader LoadingCache<Long, String> cache CacheBuilder.newB…...

AWS云服务器EC2实例进行操作系统迁移
AWS云服务器EC2实例进行操作系统迁移 文章目录 AWS云服务器EC2实例进行操作系统迁移1. 亚马逊EC2云服务器简介1.2 亚马逊EC2云务器与弹性云服务器区别 2. 亚马逊EC2云服务器配置流程2.1 亚马逊EC2云服务器实例配置2.1.1 EC2实例购买教程2.1.1 EC2实例初始化配置2.1.2 远程登录E…...

《015.SpringBoot+vue之音乐网》【前后端分离】
《015.SpringBootvue之音乐网》【前后端分离】 项目简介 [1]本系统涉及到的技术主要如下: 推荐环境配置:DEA jdk1.8 Maven MySQL 前后端分离; 后台:SpringBootMybatisMySQL; 前台:Vue3.0 TypeScript Vue-Router Vuex Axios …...
网格算法和穷举法
介绍 网格算法和穷举法都是暴力搜索最优点的算法,在很多竞赛题中有应用,当重点讨论模型本身而轻视算法的时候,可以使用这种暴力方案,最好使用一些高级语言作为编程工具 当需要在多个离散的点(比如网格点)…...

【AI】自回归 (AR) 模型使预测和深度学习变得简单
自回归 (AR) 模型是统计和时间序列模型,用于根据数据点的先前值进行分析和预测。这些模型广泛应用于各个领域,包括经济、金融、信号处理和自然语言处理。 自回归模型假设给定时间变量的值与其过去的值线性相关,这使得它们可用于建模和预测时…...
安卓常见设计模式14------单例模式(Kotlin版)
1. W1 是什么,什么是单例模式? 单例模式属于创建型模式,旨在确保一个类只有一个实例,并提供一个全局访问点来获取该实例。单例模式的核心思想是限制类的实例化,使得系统中只有一个共享的实例。 2. W2 为什么&#…...
卡尔曼家族从零解剖-(06)一维卡尔曼滤波编程实践
讲解关于slam一系列文章汇总链接:史上最全slam从零开始,针对于本栏目讲解的 卡尔曼家族从零解剖 链接 :卡尔曼家族从零解剖-(00)目录最新无死角讲解:https://blog.csdn.net/weixin_43013761/article/details/133846882 文末正下方中心提供了本人 联系…...

macOS使用conda初体会
最近在扫盲测序的一些知识 其中需要安装一些软件进行练习,如质控的fastqc,然后需要用conda来配置环境变量和安装软件。记录一下方便后续查阅学习 1.安装miniconda 由于我的电脑之前已经安装了brew,所以我就直接用brew安装了 brew install …...
GetPrivateProfileSection使用
基本语法 GetPrivateProfileSection 是一个 Windows API 函数,用于检索指定 INI 文件中特定节的所有键值对。它可以读取INI文件中指定节所有的键值对并将结果存储在指定的缓冲区中。 以下是 GetPrivateProfileSection 函数的基本语法: DWORD GetPriva…...
Ubuntu20.04 安装 Matlab R2021a
1. 压缩包分卷解压缩 将下载下来的压缩包分卷解压缩 Ubuntu自带的archive会解压出错,不适用于分卷解压。 需要下载7zip (sudo apt-get install 走起) zip -F xxx.zip --out XXX.zip # xxx为主文件名 # XXX.zip为输出路径,上面的…...
让35岁程序员精力充沛的方法
最近重新阅读了《掌控:开启不疲惫、不焦虑的人生》这本书。这本书曾经对我减重20斤产生了巨大的影响。自然入睡、自然醒来,能够高效地工作和享受生活,这才是我们渴望的掌控感。以下是一些笔记: 少吃比多运动更有效地控制体重 每…...

01:2440----点灯大师
目录 一:点亮一个LED 1:原理图 2:寄存器 3:2440的框架和启动过程 A:框架 B:启动过程 4:代码 5:ARM知识补充 6:c语言和汇编的应用 A:代码 B:分析汇编语言 C:内存空间 7:内部机制 二:点亮2个灯 三:流水灯 四:按键控制LED 1:原理图 2:寄存器配置 3:代码 一:点…...

初步了解 RabbitMQ
目录 编辑一、MQ 概述 1、MQ 的简介 2、MQ 的用途 (1)限流削峰 (2)异步解耦 (3)数据收集 二、RabbitMQ 概述 1、RabbitMQ 简介 2、四大核心概念 3、RabbitMQ 的核心部分 编辑 4、名词解释: 三、Hello …...
Faster-RCNN and Mask-RCNN框架解析
由于本人记忆力实在太差,每次学完一个框架没过多久就会忘,而且码文能力不行,人又懒,所以看到了其他人写的不错的两篇框架解析的博文,先来记录一下,就当是我写的喽 Faster-rcnn详解_faster r-cnn-CSDN博客 M…...

大数据可视化数据大屏可视化模板【可视化项目案例-05】
🎉🎊🎉 你的技术旅程将在这里启航! 🚀🚀 本文选自专栏:可视化技术专栏100例 可视化技术专栏100例,包括但不限于大屏可视化、图表可视化等等。订阅专栏用户在文章底部可下载对应案例源码以供大家深入的学习研究。 🎓 每一个案例都会提供完整代码和详细的讲解,不…...
Vue Router active-class 属性
active-class 是 vue-router 模块的 router-link 组件的属性,当 router-link 标签被点击时将会应用这个样式。 单独在 router-link 标签上使用 active-class 属性 <router-link to"/about" active-class"active">about</router-link…...

Error creating bean with name ‘apiModelSpecificationReader‘ defined in URL
问题: 启动项目的时候,报错了 org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name apiModelSpecificationReader defined in URL [jar:file:/D:/.gradle/caches/modules-2/files-2.1/io.springfox/sp…...

CS224W6.2——深度学习基础
在本文中,我们回顾了深度学习的概念和技术,这些概念和技术对理解图神经网络至关重要。从将机器学习表述为优化问题开始,介绍了目标函数、梯度下降、非线性和反向传播的概念。 文章目录 1. 大纲2. 优化问题2.1 举例损失函数 3. 如何优化目标函…...
Python爬虫实战:研究MechanicalSoup库相关技术
一、MechanicalSoup 库概述 1.1 库简介 MechanicalSoup 是一个 Python 库,专为自动化交互网站而设计。它结合了 requests 的 HTTP 请求能力和 BeautifulSoup 的 HTML 解析能力,提供了直观的 API,让我们可以像人类用户一样浏览网页、填写表单和提交请求。 1.2 主要功能特点…...

【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...

阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...

3.3.1_1 检错编码(奇偶校验码)
从这节课开始,我们会探讨数据链路层的差错控制功能,差错控制功能的主要目标是要发现并且解决一个帧内部的位错误,我们需要使用特殊的编码技术去发现帧内部的位错误,当我们发现位错误之后,通常来说有两种解决方案。第一…...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...

从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...