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、最后二维码和图像基本融为一体,变成了艺术化的二维码


如图:

在这里插入图片描述


这个精美的二维码图片效果,各位可还满意?

好了,我们的第二个图生图的功能案例就到此结束。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

倒计时动效

1. 效果 2. html <div class"count"><span>3</span><span>2</span><span>1</span> </div>3. css body {width: 100vw;height: 100vh;overflow: hidden;display: flex;justify-content: center;align-items: cente…

【Apollo】阿波罗自动驾驶技术:引领汽车行业革新

前言 Apollo (阿波罗)是一个开放的、完整的、安全的平台&#xff0c;将帮助汽车行业及自动驾驶领域的合作伙伴结合车辆和硬件系统&#xff0c;快速搭建一套属于自己的自动驾驶系统。 开放能力、共享资源、加速创新、持续共赢是 Apollo 开放平台的口号。百度把自己所拥有的强大、…

iTOP-RK3568开发板ubuntu环境下安装Eclipse

eclipse 是使用 Java 语言开发的&#xff0c;一个 Java 应用程序&#xff0c;这意味着 eclipse 只能运行在 Java虚拟机上。倘若没有安装 JDK&#xff08;Java Development Kit&#xff09;&#xff0c;即使在 ubuntu 上安装了 eclipse&#xff0c;也不能运行&#xff0c;所以要…

fastgpt构建镜像

1.把client目录复制到服务器 .next和node_modules文件夹不用上传到服务器 在服务器目录运行 docker build -t fastgpt:1.0.3 . 构建服务 再运行 docker ps 就可以看到容器了

easyexcel合并单元格底色

一、效果图 二、导出接口代码 PostMapping("selectAllMagicExport")public void selectAllMagicExport(HttpServletRequest request, HttpServletResponse response) throws IOException {ServiceResult<SearchResult<TestMetLineFe2o3Export>> result …

Java虚拟机(JVM):垃圾收集算法

目录 一、分代收集理论 二、标记-清除算法 三、标记-复制算法 四、标记-整理算法 一、分代收集理论 分代收集理论建立在两个分代假说之上&#xff1a; 1、弱分代假说&#xff1a;绝大多数对象都是朝生夕灭的。 2、强分代假说&#xff1a;熬过越多次垃圾收集过程的对象就…

mysql 、sql server trigger 触发器

sql server mySQL create trigger 触发器名称 { before | after } [ insert | update | delete ] on 表名 for each row 触发器执行的语句块## 表名&#xff1a; 表示触发器监控的对象 ## before | after : 表示触发的时间&#xff0c;before : 表示在事件之前触发&am…

JVM的元空间了解吗?

笔者近期在面试的时候被问到了这个问题&#xff0c;元空间也是Java8当时的一大重大革新&#xff0c;之前暑期实习求职的时候有专门看过&#xff0c;但是近期秋招的时候JVM相关的内容确实有点生疏了&#xff0c;故在此进行回顾。 结构 首先&#xff0c;我们应了解JVM的堆结构&a…

深入理解python虚拟机:程序执行的载体——栈帧

栈帧&#xff08;Stack Frame&#xff09;是 Python 虚拟机中程序执行的载体之一&#xff0c;也是 Python 中的一种执行上下文。每当 Python 执行一个函数或方法时&#xff0c;都会创建一个栈帧来表示当前的函数调用&#xff0c;并将其压入一个称为调用栈&#xff08;Call Stac…

docker学习(十五)docker安装MongoDB

什么是MongoDB? MongoDB 是一个开源的、面向文档的 NoSQL 数据库管理系统&#xff0c;它以高性能、灵活的数据存储方式而闻名。与传统的关系型数据库不同&#xff0c;MongoDB 采用了一种称为 BSON&#xff08;Binary JSON&#xff09;的二进制 JSON 格式来存储数据。它是一种非…

(详解踩坑)GIT版本回滚git stash、git reset、git reset --hard、git revert

目录 背景 一、&#xff08;git log、git reflog&#xff09;查看git提交日志及命令历史 1.1 git log&#xff08;提交日志&#xff09; 1.2 git reflog&#xff08;命令历史&#xff09; 二、git reset&#xff08;回退到指定的版本&#xff0c;并且保留更改&#xff09; …

IDEA启动报错【java.sql.SQLSyntaxErrorException: ORA-00904: “P“.“PRJ_NO“: 标识符无效】

IDEA报错如下&#xff1a; 2023-08-17 11:26:15.535 ERROR [egrant-biz,b48324d82fe23753,b48324d82fe23753,true] 24108 --- [ XNIO-1 task-1] c.i.c.l.c.RestExceptionController : 服务器异常org.springframework.jdbc.BadSqlGrammarException: ### Error queryin…

leetcode 542. 01 Matrix(01矩阵)

矩阵中只有0&#xff0c;1值&#xff0c;返回每个cell到最近的0的距离。 思路&#xff1a; 0元素到它自己的距离是0&#xff0c; 只需考虑1到最近的0是多少距离。 BFS. 先把元素1处的距离更新为无穷大。 0的位置装入queue。 从每个0出发&#xff0c;走上下左右4个方向&…

axios / fetch 实现 stream 流式请求

axios 是一个支持node端和浏览器端的易用、简洁且高效的http库。本文主要介绍 axios 如何实现 stream 流式请求&#xff0c;注意这里需要区分 node 环境和浏览器环境。 一、node端 代码演示&#xff1a; const axios require(axios);axios({method: get,url: http://tiven.c…

【C# 基础精讲】使用async和await进行异步编程

在C#中&#xff0c;使用async和await关键字进行异步编程是一种强大的工具&#xff0c;可以在不阻塞主线程的情况下执行耗时操作&#xff0c;提高程序的并发性和响应性。本文将深入探讨async和await的基本概念、使用场景、编码规范以及一些示例&#xff0c;以帮助您更好地理解如…

RocketMQ双主双从同步集群部署

&#x1f388; 作者&#xff1a;互联网-小啊宇 &#x1f388; 简介&#xff1a; CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作&#xff0c;擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护…

定位服务器CPU爆满的具体原因

1、查询CPU消耗的进程 使用top命令查看系统的CPU和内存使用情况 CPU一列是线程占用百分比 2、具体查看某个占分比大的进程 以为PId:7355为例&#xff0c; 执行top -Hp 7355&#xff0c;线程按照CPU使用率排序。 3、将线程PID转化为16进制 执行printf %x 7391&#xff0c;将…

不含数字的webshell绕过

异或操作原理 1.首先我们得了解一下异或操作的原理 在php中&#xff0c;异或操作是两个二进制数相同时&#xff0c;异或(相同)为0&#xff0c;不同为1 举个例子 A的ASCII值是65&#xff0c;对应的二进制值是0100 0001 的ASCII值是96&#xff0c;对应的二进制值是 0110 000…

pdf格式文件下载不预览,云存储的跨域解决

需求背景 后端接口中返回的是pdf文件路径比如&#xff1a; pdf文件路径 &#xff08;https://wangzhendongsky.oss-cn-beijing.aliyuncs.com/wzd-test.pdf&#xff09; 前端适配是这样的 <ahref"https://wangzhendongsky.oss-cn-beijing.aliyuncs.com/wzd-test.pdf&…

Vscode详细安装教程

Vscode官网下载 官网地址&#xff1a;Download Visual Studio Code - Mac, Linux, Windows 通过链接可以直接跳转到下面的页面当中&#xff0c;支持的版本有Windows、Linux、Mac&#xff0c;可以选择适配自己电脑的版本&#xff0c;一般来说应该是Windows x64的。不要直接点W…