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

news2024/9/23 11:21:59

艺术二维码制作指南

  • 导读
    • 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. 关于调参

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电脑维护指南:让你的战友始终高效稳定

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

管理类联考——写作——论说文——实战篇——立意篇——真题审题立意汇总分类

难度:*号越多越难,越需要看。 角度3——4种材料类型、4个立意对象、5种写作态度 寓言类材料**** 2022年 鸟类会飞是因为它们在进化中不断优化了其身体结构。飞行是一项较为特殊的运动,鸟类的躯干进化出了适合飞行的流线型。飞行也是一项需…

【数理知识】刚体基本运动

文章目录 1 刚体定义2 自由刚体3 两种基本运动1 平动2 转动 4 举例 11 计算质心位置,求差得到平移向量2 计算协方差矩阵3 奇异值分解4 计算旋转矩阵 Ref 1 刚体定义 刚体就是质点间距离保持不变的质点系。 刚体的空间位置由任意与刚体固连的不共线三点决定。 2 自…

HDMI协议实现彩条静态显示方块移动

文章目录 前言一、硬件原理1、硬件设计原理图2、引脚图 二、系统设计1、系统模块框图2、RTL视图3、RGB2DVI 模块框图4、ALTDDIO_OUT IP 核的信号框图 三、HDMI的行&场时序1、时序图2、常见显示器时序参数 四、源码1、video_driver(显示驱动模块)2、serializer_10_to_1(并转…

微信公众号接入AI ChatGPT机器人bot的详细教程

微信公众号可以与客服系统进行对接,实现智能自动回复或者人工回复的公众号客服系统实现对接的前提是需要公众号为认证的服务号,实现的功能概况:公众号客服接口对接,公众号模板消息提醒,网页授权获取到微信的昵称头像&a…

Python实现GA遗传算法优化支持向量机回归模型(SVR算法)项目实战

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 遗传算法(Genetic Algorithm,GA)最早是由美国的 John holland于20世…

tinkerCAD案例:24. Ruler - Measuring Lengths 标尺 -量勺

tinkerCAD案例:24. Ruler - Measuring Lengths 标尺 - 测量长度 Project Overview: 项目概况: A machine shop, where any idea can become a reality, can cost millions and million of dollars. Still, the most important tool in the shop is the…

基于Open3D的点云处理12-体素化

体素化Voxelization 体素(voxel)是像素(pixel)、体积(volume)和元素(element)的组合词,相当于3D空间中的像素; 体素化是通过用空间均匀大小的体素网格(voxel grid)来模…

openpnp - ReferenceStripFeeder 改版零件

文章目录 openpnp - ReferenceStripFeeder 改版零件概述笔记整体效果散料飞达主体磁铁仓盖板飞达编带中间压条飞达编带两边压条装配体用的8mm编带模型END openpnp - ReferenceStripFeeder 改版零件 概述 官方推荐了ReferenceStripFeeder的模型smd_strip_feeders_mod_tray.zip…

【C++学习】STL容器——vector

目录 一、vector的介绍及使用 1.1 vector的介绍 1.2 vector的使用 1.2.1 vector的定义 1.2.2 vector iterator 的使用 1.2.3 vector 空间增长问题 1.2.4 vector 增删查改 1.2.5 vector 迭代器失效问题(重点) 二、vector深度剖析及模拟实现 ​编辑…

【JavaSE】数组的定义与使用

【本节目标】 1. 理解数组基本概念 2. 掌握数组的基本用法 3. 数组与方法互操作 4. 熟练掌握数组相关的常见问题和代码 目录 1. 数组的基本概念 1.1什么是数组 1.2 数组的创建及初始化 1.3 数组的使用 2. 数组是引用类型 2.1基本类型变量与引用类型变量的区别 2.2再谈引用…

慎思笃行,兴业致远:金融行业的数据之道

《中庸》中说,“博学之,审问之,慎思之,明辨之,笃行之”。这段话穿越千年,指引着中国千行百业的发展。对于金融行业来说,庞大的数据量可以说是“博学”的来源。但庞大的数据体量,既是…

网络通讯(服务端搭建)

一.本篇概况 本篇文章主要以C语言为主,通过C语言中所设定的函数以及环境来将网络通讯的服务端进行搭建。注:本篇并未涉及服务端与客户端之间的收发数据。 二.代码实现 1.初始化套接字库: if(WSAStartup(MAKEWORD(2, 2), &wsaData) ! 0…

你真的了解Java中的数组吗?

你真的了解Java中的数组吗? 数组是基本上所有语言都会有的一种数据类型,它表示一组相同类型的数据的集合,具有固定的长度,并且在内存中占据连续的空间。在C,C等语言中,数组的定义简洁清晰,而在J…

PDF.js实现搜索关键词高亮显示效果

在static\PDF\web\viewer.js找到定义setInitialView方法 大约是在1202行,不同的pdf.js版本不同 在方法体最后面添加如下代码: // 高亮显示关键词---------------------------------------- var keyword new URL(decodeURIComponent(location)).searchP…

【C语言进阶篇】看完这篇结构体文章,我向数据结构又进了一大步!(结构体进阶详解)

🎬 鸽芷咕:个人主页 🔥 个人专栏:《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活! 文章目录 📋 前言1 结构体的声明1.1 结构的基础知识1.2 结构的声明1.2.1 . 匿名结构体类型声明1.2.2 匿名结构…

【深度学习实践】垃圾检测

简介 本项目使用深度学习目标检测开源框架PaddleDetection中的yolox算法实现了垃圾检测,本文包含了从头训练yolox模型和直接使用训练好的模型进行推理的代码及相关权重。 一、数据集准备 本次训练的数据集为coco格式,共包含150张垃圾的照片&#xff0…

每日一题——丢失的数字

丢失的数字 题目链接 注:这一题的解法建立在位运算——异或^的基础之上,如果位运算和异或操作符不太了解,建议先看看: 位运算详解 只出现一次的数字 思路 同样,这题要求时间复杂度为O(n),空间复杂度为O…

二叉树中的深搜

一)计算布尔二叉树的值 2331. 计算布尔二叉树的值 - 力扣(LeetCode) 1)计算布尔二叉树需要从叶子节点向上进行计算,从下向上进行计算 2)完整二叉树是同时拥有左孩子和右孩子,或者是完全没有右孩子 3)当我只是盯着根节点来看的时候…

JSON Web 令牌 (JWT)攻击

一、什么是JSON Web 令牌 (JWT) JSON Web令牌(JWT)是一种开放标准(RFC 7519),用于在网络应用间传递声明信息。它是一种轻量级、自包含的安全性传输格式,通常用于在身份验证和授权过程…