AI 绘画Stable Diffusion 研究(十)sd图生图功能详解-精美二维码的制作
免责声明:
本案例所用安装包免费提供,无任何盈利目的。
大家好,我是风雨无阻。
为了让大家更直观的了解图生图功能,明白图生图功能到底是干嘛的,能做什么事情?今天我们继续介绍图生图的实用案例-精美二维码的制作。
对于新朋友,想详细了解Stable Diffusion 的话,请查看往期文章:
AI 绘画Stable Diffusion 研究(一)sd整合包v4.2 版本安装说明
AI 绘画Stable Diffusion 研究(二)sd模型ControlNet1.1 介绍与安装
AI 绘画Stable Diffusion 研究(三)sd模型种类介绍及安装使用详解
AI 绘画Stable Diffusion 研究(四)sd文生图功能详解(上)
AI 绘画Stable Diffusion 研究(五)sd文生图功能详解(下)
AI 绘画Stable Diffusion 研究(六)sd提示词插件
AI 绘画Stable Diffusion 研究(七) 一文读懂 Stable Diffusion 工作原理
AI 绘画Stable Diffusion 研究(八)sd采样方法详解
AI 绘画Stable Diffusion 研究(九)sd图生图功能详解-老照片高清修复放大
老规矩,这里还是以案例穿插知识点说明的方式进行讲解。
各位朋友,可以根据我的步骤一边进行实操,一边进行理论知识的学习,这样能提高学习效率。
精美二维码制作案例
最近发现有很多朋友把二维码艺术化变成一张非常好看的图片,看着效果不错,毕竟现在二维码的的应用太广了,而现在大多数二维码,都一堆的小黑点,毫无美感可言。
那么,这些二维码怎么制作呢?
那就是利用Stable Diffusion 图生图功能,配合ControlNet的Brightness模型,生成融合图片效果。
Brightness这个模型比较特殊,它不是官方的ControlNet的模型。
下面是详细的制作步骤。
如果你还没安装过ControlNet的Brightness模型,请前往下载安装,已安装过的朋友请忽略。
1、Brightness模型下载安装
(1)、Brightness模型下载
https://huggingface.co/ioclab/control_v1p_sd15_brightness/tree/main
如下图:
打开下载地址,点击下载 diffusion_pytorch_model.safetensors 文件即可。
如果上面的网站下载比较慢,也可以在这里免费下载control_v1p_sd15_brightness。
(2)、将下载后的模型文件重新命名为:control_v1p_sd15_brightness.safetensors
放到models\ControlNet目录下
\sd-webui-aki-v4.2\models\ControlNet\control_v1p_sd15_brightness.safetensors
如图:
2、准备好你的二维码
二维码要求中间最好没有图标,需要是一张纯二维码,否则会影响后面生成图像的质量。
如果没法获得纯二维码,那可以用 联图网、 草料二维码或者其他二维码之类的工具,生成纯二维码。
3、设置支持最少2个以上contrlnet窗口
在设置 -> controlnet中,设置不少于2个的contrlnet模型数量。
比如4个, 设置完成后,需要点击顶部“保存设置”按钮,然后再点击“重载前端”按钮,重新加载界面。
4、图生图参数设置
(1)、导入图片
(2)、反推提示词
图生图反推提示词功能介绍:
反推提示词是Stable diffusion图生图中的功能,图生图的基础逻辑是通过上传的图片,可使用反推提示词或自主输入提示词,基于选择的Stable diffusion模型进行生成相似风格的图片。
- CLIP 反推
CLIP反推提示词,是根据在图生图中上传的图片,使用自然语言描述展示。clip反推速度,相对较慢。
- DeepBooru反推
DeepBooru反推提示词,是根据在图生图中上传的图片,使用关键词的形式展示。DeepBooru反推速度更快,更专业。
因此,这里我们选择使用DeepBooru反推提示词。
然后再填写上固定反向提示词:
NSFW, (worst quality:2), (low quality:2), (normal quality:2), lowres, normal quality,(monochrome)), ((grayscale)), skin spots, acnes, skin blemishes, age spot, (ugly:1.331),duplicate:1.331), (morbid:1.21), (mutilated:1.21), (tranny:l.331), mutated hands, (poorly drawnands:1.5), blurry, (bad anatomy:1.21), (bad proportions:1.331), extra limbs, (disfigured:1.331),missing arms:1.331), (extra legs:1.331), (fused fingers:1.61051), (too many fingers:1.61051),unclear eyes:1.331), lowers, bad hands, missing fingers, extra digit,bad hands, missing fingers.((extra arms and legs)))
(3)、设置参数
-
设置缩放模式:仅调整大小
-
设置迭代步数:28
-
选择采样方法:dpm++ sde karras
-
勾选面部修复
-
设置重绘制尺寸:点击下三角,自动获取原图尺寸
-
重回幅度、提示词默认
如图:
5、ControlNet 插件设置
(1)、将准备好的二维码,导入到 ControlNet 图片区域
(2)、勾选启用 ,控制类型选择默认
(3)、设置第一个 ControlNet
- 预处理选择:inpaint_global_harmonious
- 模型选择:control_v1p_sd15_brightness
- 控制权重设置:0.3,其他保持默认
(4)、设置第二个controlnet
-
预处理选择:inpaint_global_harmonious
-
模型选择:control_v11file_sd15_title
-
控制权重设置:0.5,开始step设置0.35,end step设置0.75
ControlNet设置好之后,会发现后面显示2unit,并且下面两个ControlNet窗口都变成绿色,说明这两个ControlNet都启用了。
6、生成并调试参数
点击生成按钮查看效果。
当发现二维码的痕迹比较深,而图像的痕迹比较浅,则适度调低第一个controlnet的权重weight
建议调试范围在0.2-0.4之间(调试间隔为0.05)
当发现二维码和图像融合较好,但是扫描不出来二维码的信息时,可以适度调高第二个contrlnet的参数
建议调试范围在0.5以上(调试间隔为0.05)
7、最后二维码和图像基本融为一体,变成了艺术化的二维码
如图:
这个精美的二维码图片效果,各位可还满意?
好了,我们的第二个图生图的功能案例就到此结束。
相关文章:

AI 绘画Stable Diffusion 研究(十)sd图生图功能详解-精美二维码的制作
免责声明: 本案例所用安装包免费提供,无任何盈利目的。 大家好,我是风雨无阻。 为了让大家更直观的了解图生图功能,明白图生图功能到底是干嘛的,能做什么事情?今天我们继续介绍图生图的实用案例-精美二维码的制作。 对…...
C# File.ReadAllLines()报错
项目中需要读取一个文本文件的内容,调用C#的File.ReadAllLines(path)方法,但是报错,就提示unknown exception,也没其他提示了。 文件是在的,并且,如果把文件拷贝到另外一个路径,再次读取是正常…...

LeetCode 1162. As Far from Land as Possible【多源BFS】中等
本文属于「征服LeetCode」系列文章之一,这一系列正式开始于2021/08/12。由于LeetCode上部分题目有锁,本系列将至少持续到刷完所有无锁题之日为止;由于LeetCode还在不断地创建新题,本系列的终止日期可能是永远。在这一系列刷题文章…...

【算法】二分查找(整数二分和浮点数二分)
二分查找也称折半查找(Binary Search),是一种效率较高的查找方法,时间复杂度为O(logN)。 二分查找采用了“分治”策略。使用二分查找时,数组中的元素之间得有单调性(升序或者降序)。 二分的模…...
git压缩/合并多次commit提交为1次commit提交
git压缩/合并N次commit提交为1次commit提交 假设有最近3次提交: commit_id1 commit_id2 commit_id3目标是把以上3次commit合并成1个commit,注意,最新的commit提交在最上面。 在git bash里面的操作步骤: (1࿰…...

【3519DV500】AI算法承载硬件平台_2.5T算力+AI ISP图像处理_超感光视频硬件方案开发
Hi3519DV500 内置双核 A55 ,提供高效、丰富和灵活的CPU 资源,以满足客户计算和控制需求。 Hi3519DV500集成了高效的神经网络推理引擎,最高2.5Tops NN算力,支持业界主流的神经 网络框架。神经网络支持完整的 API 和工具链…...

Linux系统基础服务启动的方法
服务,其实就是运行在操作系统后台的一个或者多个应用程序,为计算机系统或用户提供某项特定的服务。Linux系统运行的绝大多数服务都是需要安装才有的,例如FTP服务、httpd服务、MySQL、redis、Zookeeper、rabbitmq、vsftpd等等,那么…...

STM32 FLASH 读写数据
1. 《STM32 中文参考手册》,需要查看芯片数据手册,代码起始地址一般都是0x8000 0000,这是存放整个项目代码的起始地址 2. 编译信息查看代码大小,修改代码后第一次编译后会有这个提示信息 2.1 修改代码后编译,会有提示…...
excel功能区(ribbonx)编程笔记--1 初识功能区
再office2003版本以前,excel是具有菜单栏和工具栏的,再office2007及以后的版本中,界面中没有菜单栏和工具栏,使用功能区替换了菜单和工具栏。 您可能意识到自定义用户界面也变得更加困难,其实设置功能区并不会像您想像的那样困难,因为Microsoft也意识到必须有一种方式供开…...

电脑远程接入软件可以进行文件传输吗?快解析内网穿透
电脑远程接入软件的出现,让我们可以在两台电脑之间进行交互和操作。但是,很多人对于这些软件能否进行文件传输还存在一些疑问。下面的文章将解答这个问题。 1.电脑远程接入软件可以进行文件传输。传统上,我们可能会通过传输线或者移动存储设…...

react-native-webview使用postMessage后H5不能监听问题(iOS和安卓的兼容问题)
/* 监听rn消息 */ const eventListener nativeEvent > {//解析数据actionType、extraconst {actionType, extra} nativeEvent.data && JSON.parse(nativeEvent.data) || {} } //安卓用document,ios用window window.addEventListener(message, eventLis…...

通过LD_PRELOAD绕过disable_functions
LD_PRELOAD LD_PRELOAD是Linux/Unix系统的一个环境变量,它可以影响程序的运行时的链接,它允许在程序运行前定义优先加载的动态链接库。通过这个环境变量,可以在主程序和其动态链接库的中间加载别的动态链接库,甚至覆盖系统的函数…...

Python批量爬虫下载文件——把Excel中的超链接快速变成网址
本文的背景是:大学关系很好的老师问我能不能把Excel中1000个超链接网址对应的pdf文档下载下来。虽然可以手动一个一个点击下载,但是这样太费人力和时间了。我想起了之前的爬虫经验,给老师分析了一下可行性,就动手实践了。 没…...

Crimson:高性能,高扩展的新一代 Ceph OSD
背景 随着物理硬件的不断发展,存储软件所使用的硬件的情况也一直在不断变化。 一方面,内存和 IO 技术一直在快速发展,硬件的性能在极速增加。在最初设计 Ceph 的时候,通常情况下,Ceph 都是被部署到机械硬盘上&#x…...
【websocket】websocket-client 与 websockets
websocket-client websocket-client 是 websocket 客户端,提供了对ws低级API的访问。通过导入 websocket 库使用,websocket 库是基于事件驱动的设计模式,通过定义回调函数来处理接收到的消息、错误和连接关闭等事件。 优势: 兼容…...

Qt快速学习(一)--对象,信号和槽
目录 1.Qt概述 1.1 什么是Qt 2.2 手动创建 2.3 pro文件 2.4 一个最简单的Qt应用程序 3 第一个Qt小程序 3.1 按钮的创建 3.2 对象模型(对象树) 3.3 Qt窗口坐标体系 4 信号和槽机制 4.1 系统自带的信号和槽 4.2 自定义信号和槽 4.3信号槽的拓展 4…...

Qt6之如何为QDialog添加最大化和最小化按钮
在QDialog构造函数中添加以下几行代码: // 设置窗体最大化和最小化Qt::WindowFlags windowFlag Qt::Dialog;windowFlag | Qt::WindowMinimizeButtonHint;windowFlag | Qt::WindowMaximizeButtonHint;windowFlag …...

攻防世界-warmup
原题解题思路 只有一张图片,就查看源代码,有一个source.php。 查看source.php,白名单中还有一个hint.php。 hint.php告诉我们flag的位置ffffllllaaaagggg 但是直接跳转是没用的,构造payload。 http://61.147.171.105:55725/sourc…...

02__models
LangChain提供两种封装的模型接口 1.大规模语言模型(LLM):输入文本字符串,返回文本字符串 2.聊天模型:基于一个语言模型,输入聊天消息列表,返回聊天消息 Langchain的支持OpenAI、ChatGLM、Hu…...

MyBatis入门配置及CURD实现
目录 一、MyBatis简介 1. 什么是 MyBatis ? 2. MyBatis的特性 3. 什么是持久层框架? 二、MyBatis环境配置 2.1 创建maven工程 2.2 导入相关pom依赖 2.3 导入jdbc配置文件 2.4 Mybatis相关插件安装 3.5 Mybatis-cfg.xml 核心配置 2.6 引入Log4j2日志文件…...
在rocky linux 9.5上在线安装 docker
前面是指南,后面是日志 sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo sudo dnf install docker-ce docker-ce-cli containerd.io -y docker version sudo systemctl start docker sudo systemctl status docker …...

CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...

Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
C# SqlSugar:依赖注入与仓储模式实践
C# SqlSugar:依赖注入与仓储模式实践 在 C# 的应用开发中,数据库操作是必不可少的环节。为了让数据访问层更加简洁、高效且易于维护,许多开发者会选择成熟的 ORM(对象关系映射)框架,SqlSugar 就是其中备受…...
爬虫基础学习day2
# 爬虫设计领域 工商:企查查、天眼查短视频:抖音、快手、西瓜 ---> 飞瓜电商:京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空:抓取所有航空公司价格 ---> 去哪儿自媒体:采集自媒体数据进…...

C/C++ 中附加包含目录、附加库目录与附加依赖项详解
在 C/C 编程的编译和链接过程中,附加包含目录、附加库目录和附加依赖项是三个至关重要的设置,它们相互配合,确保程序能够正确引用外部资源并顺利构建。虽然在学习过程中,这些概念容易让人混淆,但深入理解它们的作用和联…...

vulnyx Blogger writeup
信息收集 arp-scan nmap 获取userFlag 上web看看 一个默认的页面,gobuster扫一下目录 可以看到扫出的目录中得到了一个有价值的目录/wordpress,说明目标所使用的cms是wordpress,访问http://192.168.43.213/wordpress/然后查看源码能看到 这…...
vue3 daterange正则踩坑
<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章
用 Rust 重写 Linux 内核模块实战:迈向安全内核的新篇章 摘要: 操作系统内核的安全性、稳定性至关重要。传统 Linux 内核模块开发长期依赖于 C 语言,受限于 C 语言本身的内存安全和并发安全问题,开发复杂模块极易引入难以…...