深蓝黑背景品牌封面:左侧大标题「能扫的艺术二维码,是怎么画出来的」,副标题「看懂 ControlNet:让 AI 按二维码的结构作画」;右侧原创装饰——一枚圆角二维码图案,三个定位角为同心方块,中间的数据模块由青色与紫色的方块和圆点混合组成,底部一道渐变扫描线;左上标注「AI 工程知识专栏」,右上标注「Day 07 · 09-25」 图 1:本文封面——一枚被艺术化的二维码与底部的扫描线。

刷到过那种看起来像一幅插画、拿手机一扫却能正常跳转的二维码吗?它不是设计师一笔笔画出来的,而是 AI 生成的。这个玩法能成立,靠两块拼图:二维码自身的纠错冗余,和一个叫 ControlNet 的图像控制技术。看懂这两块拼图,你就看懂了整个玩法。

先说结论。

艺术二维码的本质是「结构不动、外观重画」。黑白模块排布在哪里是结构,必须保住;每个位置具体画成什么样是外观,可以尽情发挥。纠错能力决定外观能动多大手术,ControlNet 决定手术过程中结构不跑偏。两件事都成立,「好看又能扫」才成立。

第一块拼图:二维码自带纠错预算。

二维码在设计之初就考虑到了印刷脏污、贴纸遮挡,内置了 Reed-Solomon 纠错码——当年为 CD 光盘发明的字节级纠错技术,对成片损坏的突发错误特别有效。按纠错能力,二维码分 L、M、Q、H 四个等级,分别能恢复约 7%、15%、25%、30% 的受损码字,日常最常用的是 M 级。做艺术二维码一定要选 H 级:将近三成的面积被「画花」,手机依然能解出内容。纠错冗余就是艺术化的预算,H 级给你的预算最宽。

这里有一个此消彼长的关系要知道:同样多的内容,纠错等级越高,需要编码的码字越多,二维码就越密。所以艺术二维码的内容要尽可能短——短链接优先,别把一整段话塞进去。

所以「艺术二维码能扫」不是魔法,是把标准里早就存在的容错额度花掉,换成了美观。

第二块拼图:ControlNet 管住生成过程。

普通文生图模型只看提示词,画面结构由模型自由发挥。直接让它「参考一张二维码作画」,多半会得到一张像二维码的抽象画——好看,但扫不出。ControlNet 是 2023 年公开的一种神经网络结构,做法很直白:把预训练扩散模型的参数锁住,在旁边并联一个可训练的副本,再把控制图(这里是二维码)的特征通过「零卷积」逐层注入生成过程。零卷积的初始权重为零,训练从零起步、平滑生长,不会往原模型里灌噪声,也就不破坏它原有的作画能力。

效果就是分工明确:提示词决定风格——赛博朋克、水彩、剪纸都行;控制图决定明暗骨架。黑模块的位置保持深、白模块的位置保持浅,这个对比关系被全程保住,扫码器读到的还是原来那张二维码。ControlNet 论文里展示的条件控制远不止二维码这一种:边缘线稿、深度图、人体姿态、分割图,都是同一套「给生成过程加空间约束」的思想。

流程图:①生成普通二维码——内容编码后容错级别选 H,允许约三成面积被遮挡仍可解码;②交给 ControlNet——把二维码当作结构骨架,约束生成过程不跑偏;③文生图模型作画——提示词决定风格,黑白模块变成图案纹理但明暗结构保留;④真机扫码验证——扫不出就调低风格强度重新生成,箭头从第四步回到第三步形成迭代闭环。下方面板解释为什么能兼顾:二维码自带容错冗余(H 级约 30% 容错),艺术化只改纹理不改骨架;ControlNet 负责在生成全程保住明暗结构 图 2:艺术二维码的生成与验证闭环,以及「为什么能兼顾」的两个原因。

完整流程只有四步。

第一步,用任意生成工具把链接或文本编码成普通二维码,纠错级别选 H。第二步,把这张二维码作为控制图交给 ControlNet,文生图模型选自己顺手的。第三步,写提示词描述想要的风格,出图。第四步最关键:真机扫码验证。扫不出就调低控制强度或换提示词重新生成,直到「好看」与「能扫」同时满足。这个闭环没验完,作品就不算完成。

常见误区有三个。

一,以为纠错预算无限——H 级也只有约三成额度,风格化过头照样扫不出,艺术化程度永远要和预算对账。二,以为二维码必须黑白方正——扫码器认的是模块之间的明暗对比和三个定位角,颜色、圆角、纹理都可以动,动的是「怎么画」,不是「画在哪」。三,只在电脑屏幕上验证——不同手机、不同扫码 App 的解码能力差异不小,真机、多设备验证是底线。

想上手的话路径很轻:找一个支持 ControlNet 的绘图工具,先拿一个无关紧要的链接练手,把「生成、扫码、调参」的闭环跑通三次,手感就有了。

你第一次看到艺术二维码时,以为它是怎么做出来的?你还见过哪些「把功能性图形藏进艺术作品」的例子?欢迎分享。

参考资料

  • Adding Conditional Control to Text-to-Image Diffusion Models(ControlNet 论文:锁住预训练扩散模型、并联可训练副本,以零初始化的卷积层注入边缘、深度、姿态等空间条件控制) — https://arxiv.org/abs/2302.05543
  • QR Code 的纠错功能(QRCode.com 官方说明:二维码用 Reed-Solomon 码实现纠错,L/M/Q/H 四个等级分别约恢复 7%/15%/25%/30% 的码字,M 级最常用,提升等级会增大数据量) — https://www.qrcode.com/en/about/error_correction.html