手把手教你使用stable diffusion生成自己的艺术二维码

艺术二维码制作指南

  • 导读
    • midjourney
    • stable diffusion
  • 环境准备安装
    • stable diffusion webui
    • sd-webui-qrcode-toolkit
      • 安装
    • 草料二维码
    • 模型准备
      • QR Pattern
      • QR Code Monster
      • IoC Lab Control Net
  • 艺术二维码制作
    • 1. 二维码信息提取
    • 2. 使用`QR Tookit`生成二维码
    • 3. 下载二维码图片
    • 4. prompt设置
    • 5.Controlnet参数设置
    • 6. 调节参数,生成艺术二维码图片
    • 7. 最终出图
  • 总结
    • 1. 关于扫码
    • 2. 关于调参

导读

随着AIGC的发展,CV领域也涌出了一大批优秀的工具,如md(midjourney)和sd(stable diffusion)

midjourney

  • 上手简单(只需要学一些prompt的写法和命令的使用)
  • 需要一个discord账号
  • 效果稳定比较容易出图
  • 可定制性差

stable diffusion

  • 成本高,需要显卡(可以是云服务器)
  • 上手难度大,需要自己配置环境,熟悉各种参数的设置
  • 可玩性强,社区(C站)提供了大量的base model和lora模型等
  • 可定制,可以自己用某个领域(模特、场景、产品)的数据训练checkpoint、lora、dreambooth等模型

上面列举了一些mdsd的一些优缺点,今天我们的主角就是stalbe diffusion,下面我就来介绍一下如何使用sd来生成自己的艺术二维码

环境准备安装

stable diffusion webui

stable diffusion webui基于web的一个工具,用来进行AI生图,你可以去安装一些大神开源的安装包

  • 下载地址:https://github.com/AUTOMATIC1111/stable-diffusion-webui

sd-webui-qrcode-toolkit

用来生成出能够用于AI生成艺术二维码的二维码,正是因为它的出现才让我们能够基于sd来生成艺术二维码,sd-webui-qrcode-toolkitsd-webui的一款插件
在这里插入图片描述

  • 下载地址:https://github.com/antfu/sd-webui-qrcode-toolkit

安装

  1. 进入到stable-diffusion-webui/extensions目录下
  2. git clone sd-webui-qrcode-toolkit到extensions中,如果网络不行可以直接下载再解压
  3. 重启sd-webui即可
  4. 安装成功打开sd-webui会出现QR ToolKit选项
    在这里插入图片描述

草料二维码

用来解析二维码的内容,然后我们再利用sd-webui-qrcode-toolkit来生成二维码

  • 网址:https://cli.im/deqr

模型准备

需要提前下载好以下几个模型,我们需要利用这三个模型结合Controllnet来控制生成艺术二维码

  • QR Pattern
  • QR Code Monster
  • IoC Lab Control Net

QR Pattern

下载好controlnetQRPatternQR_v2Sd15.safetensors模型,将其放入到stable-diffusion-webui/extensions/sd-webui-controlnet/models目录下

从这两天生成的艺术二维码来看,QR Pattern V2QR Code Monster的效果要好很多,无论是从出图率还是从生成图片的可观赏性来说,毕竟V2版是最近几天才更新的版本
在这里插入图片描述

QR Code Monster

下载好control_v1p_sd15_qrcode_monster.safetensorscontrol_v1p_sd15_qrcode_monster.yaml两个文件,将其放入到stable-diffusion-webui/extensions/sd-webui-controlnet/models目录下
在这里插入图片描述

IoC Lab Control Net

下载control_v1p_sd15_brightness.safetensors放到stable-diffusion-webui/extensions/sd-webui-controlnet/models目录下即可,这个主要是用来调节二维码检测点的亮度配合二维码的controllnet来提高二维码扫码的成功率

艺术二维码制作

1. 二维码信息提取

如果是想要制作个人二维码收款码等,就需要先保存二维码,然后通过草料二维码进行解析,最后复制解析的内容,粘贴到QR Toolkit中

2. 使用QR Tookit生成二维码

大家可以根据提供的参数来设置自己用于生成艺术二维码的二维码,这些参数主要用于调整二维码中像素点的变化以及margin和生成二维码的宽高等,这些调整对于最终生成的艺术二维码都会有一定的影响,并不会影响二维码的生成。
QT Toolkit相关参数解释

  • Error Correction:二维码错误的容忍程度,由低到高
  • Mask Pattern:二维码的模式,按照不同模式来生成二维码
  • Rotate:二维码选择的角度
  • Pixel Style:二维码像素点的风格
  • Marker:一共有三个,用来设置二维码三个角像素的风格
  • Margin:用来调节二维码距离上下边缘的距离
  • Margin Noise:给二维码上下边缘填充噪点
    在这里插入图片描述

3. 下载二维码图片

4. prompt设置

  • 底模:大家可以根据自己的喜好选择你想要生成艺术二维码的风格(风景、漫画等)来决定选择的底模
  • 其它参数设置:这个大家可以去C站去找自己喜欢的图片,然后copy参数到sd-webui中,然后点击右边的向左下角的箭头,就会自动填充参数
    在这里插入图片描述

5.Controlnet参数设置

  • QR Pattern参数设置
    上传二维码图片,模型选择QR Pattern_v2,Control Weight、Starting Control step已经Ending Control Step可以先保持默认,记得一定要选中Enable否则设置没有生效
    在这里插入图片描述

6. 调节参数,生成艺术二维码图片

这一步最关键也最难,我们需要根据最终生成的图片效果来调节参数,我们需要在生成二维码的效果和扫码通过率之间做权衡,通过调节一些参数来选择最终我们喜欢的艺术二维码,不同的二维码和prompt设置的参数不同,这里简单的教大家如何调节参数帮助快速出图

  • 如果生成出来的图片,无法扫码识别,可以尝试调节以下参数
    增大QR Pattern的权重
    增加brightness控制器
    在这里插入图片描述

  • 如果图片中二维码的像素点痕迹太严重了
    就调小QR Pattern的权重和brightness控制器的权重

  • 调参
    调参其实就是在图片效果扫码率之间做权衡

7. 最终出图

在这里插入图片描述

总结

1. 关于扫码

我们这个生成的二维码主要是针对微信扫码,所以微信能扫出来的其他软件不一定能,所以这也给我们提供了一个艺术二维码的使用方向。很多平台都会禁止在文章中使用二维码,如果用这种方式做出来的二维码就能完美避免这种问题。

扫码和长按识别二维码,通常来说长按识别二维码对于二维码的要求更高,也就是能扫码出来的不一定能够长按识别。android能够识别的二维码,IOS一定可以。

2. 关于调参

这篇文章,我只介绍了调节两个控制器的参数来出码,除此之外我们还能够通过调节很多其他的参数,例如:迭代步数、上采样、分辨率等。下一篇文章将会详细向大家介绍,如何通过调节这些参数来生成更漂亮的二维码
在这里插入图片描述

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

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

相关文章

Modbus tcp转ETHERCAT网关modbus tcp/ip协议

捷米JM-ECT-TCP网关能够连接到Modbus tcp总线和ETHERCAT总线中,实现两种不同协议设备之间的通讯。这个网关能够大大提高工业生产的效率和生产效益,让生产变得更加智能化。捷米JM-ECT-TCP 是自主研发的一款 ETHERCAT 从站功能的通讯网关。该产品主要功能是…

一个监控系统的典型架构

监控系统的典型架构图,从左往右看,采集器是负责采集监控数据的,采集到数据之后传输给服务端,通常是直接写入时序库。然后就是对时序库的数据进行分析和可视化,分析部分最典型的就是告警规则判断,即图上的告…

【mysql学习篇】Order by与Group by优化以及排序算法详解

一、Order by与Group by优化 Case1: 分析: 利用最左前缀法则:中间字段不能断,因此查询用到了name索引,从key_len74也能看出,age索引列用在排序过程中,因为Extra字段里没有using filesort 注意…

擎创技术流 | 深入浅出运维可观测工具(二):eBPF应用中常见问题

上期跟大家聊了下eBPF的发展历史还有特性,点击这里↓↓↓擎创技术流 | 深入浅出运维可观测工具(一):聊聊eBPF的前世今生,一键回看上期精彩内容。 这期主要跟大家分享下eBPF在应用过程中可能出现的问题,希望…

本地仓库推送至远程仓库

1. 本地生成ssh密钥对 ssh-keygen -t rsa -C 邮箱2. 添加公钥到gitlab/github/gitee上 打开C:\Users\用户名\.ssh目录下生成的密钥文件id_rsa.pub,把内容复制到如下文本框中 删除Expiration date显示的日期,公钥有效期变成永久,之后点Add K…

vmware中windows操作系统虚拟机安装

1.win10中安装 1.1 虚拟机向导 文件-新建虚拟机 典型-下一步 稍后安装操作系统-下一步 window10 64x -下一步 修改虚拟机名称及位置-下一步 默认60g,至少大于40g-将虚拟磁盘拆分成多个文件夹-下一步 点击完成 1.2 编辑虚拟机设置 移除打印机 设置虚拟机,加入iso映…

联想北京公司研发管理部高级经理周燕龙受邀为第十二届中国PMO大会演讲嘉宾

联想(北京)有限公司研发管理部高级经理周燕龙先生受邀为由PMO评论主办的2023第十二届中国PMO大会演讲嘉宾,演讲议题:PMO如何助力研发。大会将于8月12-13日在北京举办,敬请关注! 议题简要: PMO在…

js中的遍历方法比较:map、for...in、for...of、reduce和forEach的特点与适用场景

😊博主:小猫娃来啦 😊文章核心:JavaScript中的遍历方法比较:map、for…in、for…of和forEach的特点与适用场景 文章目录 map 方法概述用法返回值特点 for...in 循环概述用法注意事项 for...of 循环概述用法可迭代对象…

用LangChain开源框架实现知识机器人

前言 Large Language Models (LLMs)在2020年OpenAI 的 GPT-3 的发布而进入世界舞台 。从那时起,他们稳步增长进入公众视野。 众所周知 OpenAI 的 API 无法联网,所以大家如果想通过它的API实现联网搜索并给出回答、总结 PDF 文档、基于某个 Youtube 视频…

[nlp] TF-IDF算法介绍

(1)TF是词频(Term Frequency) 词频是文档中词出现的概率。 (2) IDF是逆向文件频率(Inverse Document Frequency) 词条出现率越低,IDF越大。

Dooring-Saas低代码技术详解

hello, 大家好, 我是徐小夕, 今天和大家分享一下基于 H5-Dooring零代码 开发的全新零代码搭建平台 Dooring-Saas 的技术架构和设计实现思路. 背景介绍 3年前我上线了第一版自研零代码引擎 H5-Dooring, 至今已迭代了 300 多个版本, 主要目的是快速且批量化的生产业务/营销过程中…

红黑树解密:为什么根节点必须是黑色,两个红色节点不能挨着?

红黑树解密:为什么根节点必须是黑色,两个红色节点不能挨着? 博主简介一、引言1.1、红黑树是什么及其特点1.2、根节点为黑色和红色节点不连续的性质介绍 二、为何根节点必须是黑色?三、为何两个红色节点不能挨着?总结 博…

RNN架构解析——LSTM模型

目录 LSTMLSTM内部结构图 Bi-LSTM实现 优点和缺点 LSTM LSTM内部结构图 Bi-LSTM 实现 优点和缺点

Windows系统如何修改文件日期属性

winr键,输入powershell,在弹出的命令窗口输入命令,案例如下: file_address E:\_OrderingProject\\PIC1101\ldv1s_0830_ec_result.tiftime_change "07/12/2022 20:42:23" 修改文件创建时间:creationtime $(Get-Item fi…

STL 关于vector的细节,vector模拟实现【C++】

文章目录 vector成员变量默认成员函数构造函数拷贝构造赋值运算符重载函数析构函数 迭代器beginend size和capacityresizereserve[ ]push_backpop_backinserteraseswap vector成员变量 _start指向容器的头,_finish指向容器当中有效数据的下一个位置,_end…

Python零基础入门(九)——函数,类和对象

系列文章目录 个人简介:机电专业在读研究生,CSDN内容合伙人,博主个人首页 Python入门专栏:《Python入门》欢迎阅读,一起进步!🌟🌟🌟 码字不易,如果觉得文章不…

❤️创意网页:萌翻少女心的果冻泡泡 - 创造生动有趣的视觉效果

✨博主:命运之光 🌸专栏:Python星辰秘典 🐳专栏:web开发(简单好用又好看) ❤️专栏:Java经典程序设计 ☀️博主的其他文章:点击进入博主的主页 前言:欢迎踏入…

【UE4】局域网多人联机 Demo

效果 亲测可以打包后在两个电脑上联机运行(前提是在同一个局域网内,互相能ping通) 步骤 1. 首先新建一个第三人称角色模板工程 2. 在多玩家选项中,设置玩家数量为2 选择在新建编辑器窗口中运行 3. 新建一个父类为Character的蓝…

【1.1】Java微服务:初识微服务

✅作者简介:大家好,我是 Meteors., 向往着更加简洁高效的代码写法与编程方式,持续分享Java技术内容。 🍎个人主页:Meteors.的博客 💞当前专栏: 微服务 ✨特色专栏: 知识分享 &#x…

大数据Flink(五十三):Flink流处理特性、发展历史以及Flink的优势

文章目录 Flink流处理特性、发展历史以及Flink的优势 一、Flink流处理特性 二、发展历史