使用 Stable Diffusion Controlnet 生成 AI 二维码

AI 生成的二维码是一个新概念,但是我认为它很快就会成为主流。餐厅、咖啡店或零售店为什么要使用无聊的旧二维码呢?他们可以使用引人入胜、品牌鲜明、AI 生成的二维码。在本文中,我们将探讨相关技术,并分享博主本地部署 Stable Diffusion + Controlnet + Gradio 生成 AI 二维码的示例。

AI 二维码起源

这一切始于 2023 年 6 月 5 日星期一,当时一位 Redditor分享了一堆他创建的 AI 生成的二维码图像,引起了社区的关注。reddit 上获得了 7.5K 个赞,这些图片开始在社交媒体上流传。

以下是一些二维码。它们确实有用,可以用手机摄像头扫描。

它们是使用 Stable Diffusion 和 Controlnet 创建的。Stable Diffusion 是流行的开源文本到图像生成器。ControlNet 是一个控制预训练图像扩散模型(例如稳定扩散)的神经网络。其功能是允许输入调节图像,然后可用于操纵图像生成。

基本上,它允许我们使用另一幅图像作为控制来控制输出图像。在这种情况下,我们使用 QR 码作为控制图像,并且文本到图像的生成是围绕我们的控制图像构建的。这允许创建一些非常有创意的 QR 码。

常用的 QR Code Controlnet

1. Controlnet QR Code by DionTimmer

Dion Timmer 在 HuggingFace 上创建了一个模型存储库,允许您创建自己的二维码以及开始与模型交互的源代码。在 Dion Timmer 模型中,您不仅可以使用文本提示,还可以使用另一张图片来帮助指导最终二维码的生成。这样做的好处是,您可能有一个想要合并到二维码图像中的徽标或品牌标志,而通过将二维码与您提供的图像合并,就可以实现这一点。

Dion Timmer 的 controlnet 支持SD v1.5 和 v2.1 版本:

2. ControlNet QR Pattern by Nacholmo

QR Pattern 和 QR Pattern sdxl 是由一名阿根廷大学生 Nacholmo 作为免费社区资源创建的。

3. QRCode Monster by Monster Labs

我还发现了QRCode Monster网站,上面有一些非常出色的二维码图像。他们还在HuggingFace上开源了用于生成这些二维码怪兽的初始模型。您也可以在他们的网站上生成自己的二维码怪兽。

他们在 Twitter 上有一个很棒的帖子,讲述了他们如何受到原始 Reddit 帖子的启发,并开始训练自己的控制网络来生成看起来很怪异的二维码。他们模型的第一个版本的源代码可以在HuggingFace上开源,这意味着你可以开始使用它来生成你自己的怪异二维码。

本地部署 Stable Diffusion + Controlnet + Gradio 生成 AI 二维码

本地部署主要的先决条件是需要有性能合适的独立显卡,否则推理的过程可能会很慢甚至失败。

软件上我主要参考了 Huggingface 上的开源项目 QR-code-AI-art-generator。此项目由 Dion Timmer 创建,实现了 AI QR Code 生成的基本功能,界面效果如下。它的基础模型集成了 stable-diffusion-v1-5,controlnet 则是 Dion Timmer 自己开发的 controlnet_qrcode-control_v1p_sd15。

我则在此项目源代码的基础上增加了如下的功能:

更新后的使用界面如下。

为方面管理和更新,进行了容器化部署。参考 Dockerfile 如下。

FROM ubuntu:22.04

LABEL maintainer="HY's Blog"

# 使用构建参数设置环境变量
ARG http_proxy
ARG https_proxy

# 设置环境变量
ENV http_proxy=$http_proxy
ENV https_proxy=$https_proxy

ENV DEBIAN_FRONTEND=noninteractive

RUN --mount=type=cache,target=/var/cache/apt \
    set -eu \
    && apt update \
    && apt upgrade -y \
    && apt install -y software-properties-common \
    && add-apt-repository ppa:deadsnakes/ppa \
    && apt install -y \
        python3 pip \
    && rm -rf /usr/lib64/python3.11/EXTERNALLY-MANAGED


RUN --mount=type=cache,target=/root/.cache/pip \
    pip install diffusers transformers accelerate torch xformers gradio Pillow qrcode
# Create a low-privilege user
#RUN printf 'CREATE_MAIL_SPOOL=no' >> /etc/default/useradd \
#    && mkdir -p /home/runner/ai_container_query/templates \
#    && groupadd runner \
#    && useradd runner -g runner -d /home/runner


#COPY ./ai_container_query/ai_container_query.py /home/runner/ai_container_query
RUN mkdir -p /home/qr-ai-generator
COPY ./*.py /home/qr-ai-generator
COPY ./entrypoint.sh /home/qr-ai-generator
RUN chmod +x /home/qr-ai-generator/entrypoint.sh
#RUN chown -R runner:runner /home/runner

USER root
WORKDIR /home/qr-ai-generator
EXPOSE 7862
ENV CLI_ARGS=""
CMD ["/home/qr-ai-generator/entrypoint.sh"]

二维码生成实例

以下是博主本地部署的 AI 二维码生成系统生成的二维码实例。感兴趣的同学可以访问 HY’s AI Playground 免费试用并生成自己心仪的 AI 二维码。

 如果您喜欢本文的内容,欢迎扫描下面的二维码访问作者的博客:HY's Blog

  • 9
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
stable diffusion controlnet是一个用于网络技术的源码,它主要用于实现网络中的扩散控制功能。扩散控制是指通过调整网络节点之间的通信速率,以实现网络资源的平衡利用和避免网络拥塞的技术。 源码分析是指对该源码进行深入的研究和解析。 首先,stable diffusion controlnet的源码可以从开源社区或者相关的资源库中获取。我们首先需要对源码进行编译和构建,确保可以成功地在我们的环境中运行。 然后,我们可以对源码的结构进行分析。通常,源码会包含多个文件和目录,其中主要包括各种类、函数和变量的定义和实现。我们需要仔细阅读每个文件和目录的功能和作用,了解它们之间的关联和调用关系。 在阅读源码的过程中,我们可以关注以下几点: 1. 网络扩散控制算法:源码中会实现网络扩散控制的核心算法。我们需要了解算法的原理和实现方式,以及它如何根据网络环境的变化来动态地调整节点之间的通信速率。 2. 数据结构:源码中通常会定义一些数据结构,用于存储和处理网络中的节点信息、拓扑结构和通信状态。我们需要了解这些数据结构的定义和使用方式,以及它们在算法中的作用。 3. 调度和控制逻辑:源码中可能会包含一些调度和控制逻辑,用于管理网络中各个节点的通信行为。我们需要分析这些逻辑的实现方式和策略,了解它们如何协调和控制节点之间的通信行为,以保证网络资源的平衡利用和避免拥塞。 4. 代码的可读性和健壮性:除了功能实现外,源码的可读性和健壮性也是需要关注的。我们可以评估源码的编码规范、注释和错误处理机制等方面,以确保代码的可维护性和稳定性。 总之,通过对stable diffusion controlnet源码的分析,我们可以深入了解网络扩散控制技术的实现方式和原理,为实际应用和二次开发提供参考和指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

hyang1974

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

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

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

打赏作者

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

抵扣说明:

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

余额充值