欢迎关注微信大众号:FSA全栈行动
系列文章:
- 《AI – stable-diffusion(AI 绘画)的搭建与运用》
- 《AI – AI 绘画的精准控图(ControlNet)》
一、介绍
近日,AI 绘画(stable-diffusion)用来艺术化二维码算是比较炽热的事了,这个 idea 是由国人用 Checkpoint + LoRA + QR Code ControlNet 组合完成出来的,下面是几张图片事例:
这是原作者的文章:《AI 生成可扫码图画 — 新 ControlNet 模型展示》
不过,文章内并没有讲述艺术化二维码的具体进程,也没有现成的 QR Code ControlNet 可供运用(或许出于某些原因没有公布吧,瞎猜的~),从网上收集了一些资料,运用现有的 ControlNet 模型也能够完成同样的作用,下面来看看具体完成进程。
二、实战
需求先下载 2 个 ControlNet 模型:
- SD15_brightness:huggingface.co/ioclab/ioc-…
- SD15_tile:huggingface.co/lllyasviel/…
下载后存放到 stable-diffusion-webui\extensions\sd-webui-controlnet\models 目录下。
注:主张将 ControlNet 插件升级到最新版别,支撑更多预处理器,还有更便利好用的 UI。
1、生成二维码
咱们先准备一张二维码图片,能够通过以下恣意一个网址生成:
- 草料二维码:cli.im/
-
QR.io:qr.io/
2、灰度处理
- 上传二维码
- ControlNet Unit 0:打钩启用(Enable)
- 预处理器(Preprocessor):
inpaint_global_harmonious - 模型(Model):
control_v1p_sd15_brightness - 权重(Control Weight):
0.4 - 开始与停止进程(Starting Control Step、Ending Control Step):
0和1
注:假如你找不到
inpaint_global_harmonious预处理器,把 ControlNet 插件升级到最新就有了。
3、细节处理
- 上传二维码
- ControlNet Unit 1:打钩启用(Enable)
- 预处理器(Preprocessor):
inpaint_global_harmonious - 模型(Model):
control_v11f1e_sd15_tile - 权重(Control Weight):
0.6 - 开始与停止进程(Starting Control Step、Ending Control Step):
0.35和0.75
注:假如你页面上没有多个 ControlNet 单元,能够到 Settings 中,找到 Multiple ControlNets 进行设置,详见:《AI – AI 绘画的精准控图(ControlNet)》
4、装备描述
依据你期望在二维码画面中呈现的东西进行装备,比如我期望在画面中呈现一个战火中的高达,我的参数装备如下:
- 正向提示词(Prompt):
masterpiece, best quality, mecha, no humans, black armor, blue eyes, science fiction, fire, laser canon beam, war, conflict, destroyed city background - 反向提示词(Negative prompt):
UnrealisticDream, FastNegativeEmbedding - 采样方法(Sampling method):
Euler a - 采样步数(Sampling steps):
26 - CFG 比例(CFG Scale):
6.5 - 随机种子(Seed):
1234843297
注:假如你不知道这些装备含义是什么,能够查阅这篇文章:《AI – stable-diffusion(AI 绘画)的搭建与运用》
装备完描述后,点击 Generate 按钮,等待图片生成即可:
至此,艺术化后的二维码就生成好了,而且是能够被正常扫码辨认出来的哦~
三、资料
在上述实战中,呈现了 1 个新的 ControlNet 预处理器和 2 个新的 ControlNet 模型,它们的作用别离是什么呢?
1、预处理器 inpaint_global_harmonious
inpaint_global_harmonious 首要用于部分(遮罩部分)重绘,在原生根据图生图的重绘形式上加入了 ControlNet 的操控,然后让 inpaint 能够愈加准确的预测重绘细节。可是注意,和普通部分重绘不同,ControlNet 的 inpaint 模型除了重绘遮罩部分外,遮罩以外的当地也会产生微小变化(重绘),这样做带来的优点是它能够更好地将重绘区域与全体画面交融,让全体出图愈加调和一致。当然你也能将 ControlNet 引导权重调理到最大,此时 ControlNet-inpaint 模型将尽或许得保持遮罩区域以外的画面不产生变化。
上图是传统图生图的部分重绘,原图蒙版重绘部分往往会呈现与周围环境不相容的独立景物,无法一致全体布局。
能够看到,对比传统图生图的部分重绘,ControlNet 的 inpaint 模型能在一致全体作用的前提下,补全蒙版部分的内容,一起遮罩外部分的概括和细节也得到了较好的保留。
上述介绍源自:www.jianshu.com/p/2e433f71f…
2、模型 control_v1p_sd15_brightness
该模型为稳定扩散带来亮度操控,答应用户对灰度图画上色或对生成的图画从头上色。
上述介绍源自: aigc.ioclab.com/sd-showcase…
huggingface.co/ioclab/cont…
3、模型 control_v11f1e_sd15_tile
tile 模型本来是为了扩大图片而规划的,具体来讲需求先将原图分割为一块一块的小区域(叫做 Tile 或瓦块),然后别离对每个瓦块进行图生图扩大,最终集合一切扩大后的瓦块,拼成完整的大图。之所以采用部分扩大后拼接的形式是为了削减显存占用。可是这样扩大图片也有坏处,那就是有必要要求每个小图在图生图时重绘起伏不能太大,由于本质上每个小图运用的也是全图提示词,当重回起伏过高时,老版别 tile 模型很或许会在每个小图里生满足图提示词所描绘的全部内容。
ControlNet1.1 版别后的 Tile 模型愈加强壮,它具有两种特性:
- 疏忽图画中的细节并生成新的细节。
- 假如部分瓦片语义和提示不匹配,则疏忽全局提示,并依据部分上下文引导扩散。
由于该模型能够生成新的细节并疏忽现有的图画细节,所以咱们能够运用该模型去除不良细节并增加细化的细节。例如,消除由图画大小调整引起的含糊。
上述介绍源自: www.jianshu.com/p/2e433f71f…
github.com/lllyasviel/…
四、剖析
我将实战中两个 ControlNet 单元依次生成的图片拆开,得到如下进程图:
结合上述资料中对两个 ControlNet 模型的介绍,能够大致理解为 control_v1p_sd15_brightness 在二维码图片的基础上进行从头上色,但会丢失二维码信息,control_v11f1e_sd15_tile 则在此基础上,对二维码信息细节进行补充。至于预处理器 inpaint_global_harmonious,由于此场景下二维码并不需求进行 inpaint 处理,所以把预处理器设为 none 也是能够的,对成果并不影响。
假如文章对您有所协助, 请不惜点击关注一下我的微信大众号:FSA全栈行动, 这将是对我最大的鼓励. 大众号不只有Android技术, 还有iOS, Python等文章, 或许有你想要了解的技术知识点哦~







