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

导读

随着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生图,你可以去安装一些大神开源的安装包

sd-webui-qrcode-toolkit

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

安装

  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来生成二维码

模型准备

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

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

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

### 使用 Stable Diffusion 创建艺术二维码 #### 准备工作 为了创建艺术二维码,需准备如下工具和环境设置[^2]。确保安装并配置好 Python 环境以及 GPU 支持(如果可用),因为这能显著加速图像生成过程。 #### 安装依赖库 首先,需要安装 `diffusers` 和其他必要的 Python 库来支持 Stable Diffusion 的运行。可以通过 pip 来完成这些包的安装: ```bash pip install diffusers transformers accelerate safetensors torch torchvision torchaudio gradio ``` #### 获取预训练模型 接着下载或克隆一个适合用于控制网络 (ControlNet) 插件工作的预训练模型版本。通常可以从 Hugging Face Model Hub 找到合适的模型权重文件[^4]。 #### 构建基础 QRCode 图像 使用标准库如 qrcode 或 myqr 生成普通的黑白二维码作为输入模板。此步骤对于后续的艺术化处理至关重要,因为它提供了结构上的指导信息给神经网络理解哪些部分应该保持不变以便扫描设备读取成功[^3]。 ```python import qrcode def create_basic_qr(data="https://example.com", filename='basic_qr.png'): qr = qrcode.QRCode( version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=10, border=4, ) qr.add_data(data) qr.make(fit=True) img = qr.make_image(fill_color="black", back_color="white") img.save(filename) ``` #### 调整 ControlNet 参数 加载选定的 ControlNet 模型,并调整其超参数以适应具体的创意需求。比如调节 guidance scale 可影响最终输出风格的程度;而 conditioning image 则决定了原始图案如何被转换成新的视觉形式[^1]。 #### 运行生成流程 最后一步就是调用 API 接口执行实际创作任务了。这里给出一段简化版代码片段示意整个操作逻辑: ```python from diffusers import StableDiffusionControlnetPipeline, ControlNetModel import torch controlnet = ControlNetModel.from_pretrained("lllyasviel/sd-controlnet-qrcode") pipe = StableDiffusionControlnetPipeline.from_pretrained("runwayml/stable-diffusion-v1-5", controlnet=controlnet).to("cuda") prompt = "a beautiful painting style" image = pipe(prompt=prompt, image="./basic_qr.png").images[0] image.save('artistic_qr_output.png') ``` 上述脚本展示了怎样结合文字提示与初始二维码图形共同作用于生成管道内,从而得到既美观又不失功能性的艺术二维码成果物。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

修炼之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值