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. 如何优化目标函…...
Android Wi-Fi 连接失败日志分析
1. Android wifi 关键日志总结 (1) Wi-Fi 断开 (CTRL-EVENT-DISCONNECTED reason3) 日志相关部分: 06-05 10:48:40.987 943 943 I wpa_supplicant: wlan0: CTRL-EVENT-DISCONNECTED bssid44:9b:c1:57:a8:90 reason3 locally_generated1解析: CTR…...
shell脚本--常见案例
1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件: 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...
Swift 协议扩展精进之路:解决 CoreData 托管实体子类的类型不匹配问题(下)
概述 在 Swift 开发语言中,各位秃头小码农们可以充分利用语法本身所带来的便利去劈荆斩棘。我们还可以恣意利用泛型、协议关联类型和协议扩展来进一步简化和优化我们复杂的代码需求。 不过,在涉及到多个子类派生于基类进行多态模拟的场景下,…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...
深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用
文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么?1.1.2 感知机的工作原理 1.2 感知机的简单应用:基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...
【JVM】Java虚拟机(二)——垃圾回收
目录 一、如何判断对象可以回收 (一)引用计数法 (二)可达性分析算法 二、垃圾回收算法 (一)标记清除 (二)标记整理 (三)复制 (四ÿ…...
Linux部署私有文件管理系统MinIO
最近需要用到一个文件管理服务,但是又不想花钱,所以就想着自己搭建一个,刚好我们用的一个开源框架已经集成了MinIO,所以就选了这个 我这边对文件服务性能要求不是太高,单机版就可以 安装非常简单,几个命令就…...
