优化AI生成的QR码

Stable Diffusion2年前 (2023)更新 bleedline
1,454 0 0

上一篇关于我如何学会生成可扫描的二维码的博客文章。在这过程中,我考虑的目标是找到一种尽可能少像二维码的图像,但仍然能被机器识别出来。

我们需要取得平衡,通过调整权重来试错。要找到一个既能代表黑白点,又能保持内容对人类有意义的好构图仍然相当困难。如果你做的太过,二维码将无法扫描,而如果你做的不够,图像就只会像一个普通的二维码。

由于过程中存在相当多的随机性,有时候你会发现一个好的二维码,但却发现它无法被扫描。为了改进这一点,我的工作流程是打开Photoshop,将生成的图像与原始二维码叠加在一起,手动检查差异,使用画笔标记那些区域,并发送给修复工具来绘制这些区域。这在一定程度上起作用,但效率不高,因为你需要来回多次。同时,手动操作也可能不准确,因为扫描算法可能会以不同的方式识别它们。

所以,我需要找到一种自动化的方法,帮助我更轻松地验证和优化生成的二维码。我想到了一个简单的网络工具来实现这个目标。让我向你介绍一下。

Anthony’s QR Code Toolkit

生成基本二维码

我发现一件相当重要的事情是,我们放在ControlNet中的生成的QR码会对图像产生很大的影响。基本的方形QR码会导致更加方形和块状的图像。值得尝试使用点、圆角或其他样式的QR码,看看它们是否能帮助生成更好的图像。

优化AI生成的QR码

上面的图像是使用完全相同的参数和种子生成的,只是二维码的样式稍有不同。您可以看到差异非常明显。

此外,由于QR码的分布直接影响图像的构图,有时我们可能会发现某些模式很难解决。我们需要找到不同版本的QR码,以找到更好地适应我们想要的图像。如果您对QR码足够熟悉,您可能知道QR码生成中有一个称为掩模模式的步骤。总共有8种不同的模式可以应用于QR码,提供相同的内容。可惜的是,大多数生成器不提供更改的功能。好的,我会构建它。

所以特别针对这个需求,我基于QR Code Generator Library构建了一个QR码生成器:

优化AI生成的QR码

它为我提供了完整的生成过程能力。您可以更改纠错级别、掩码模式、QR码版本、旋转以找到黑白点的良好分布。此外,它还允许您更改点的样式,或者在边框上添加一些随机噪声,使生成的图像更加融入。

优化AI生成的QR码

生成图像

现在我们有了QR码,我们可以开始使用稳定扩散和控制网络来生成这些图像。有关详细步骤,请参考我之前的博客文章。

验证和优化二维码

跑了一晚上,现在我已经生成了大约200张图片。假设我发现其中一张很有趣,看到了一些潜力。我会先用手机尝试扫描它。正如之前提到的,每次都可能不那么幸运。不幸的是,这张图片无法被扫描。

一眼看去,我们可以看到这张图片中有相当多类似于二维码的点,这应该使得它能够被扫描器识别。但为什么不能呢?让我们找出原因:

使用工具包的比较选项卡,上传生成的图像和原始二维码,调整网格大小,然后我们可以看到不匹配的点并检查节点。

优化AI生成的QR码

我们可以看到,图像不可扫描,因为我们有相当多的不匹配,即图像的某些部分可能对比度不足。将鼠标悬停在“突出显示不匹配”按钮上,我们可以看到不匹配的区域被突出显示:

优化AI生成的QR码

看起来图片的上半部分有点太暗了,让扫描仪难以辨认。我们还可以尝试增加图像对比度,看看在扫描仪中会呈现出什么样子:

优化AI生成的QR码

现在问题很明确。那么我们该如何解决呢?您可以尝试将鼠标悬停在“预览更正”按钮上,查看需要更改的内容:

优化AI生成的QR码

它将减轻过于暗的区域,并加深过于亮的区域。然后你会立即看到这张图片现在变得更易于扫描了!

这很棒,但绝对不是我们最终得到的结果。我们可以从工具包中下载修正叠加层或遮罩,在Photoshop中用它们进行修复或精细调整。

 最终的

经过几轮修补和调整,放大以提高细节,现在我们得到了最终的图像:

优化AI生成的QR码

把它放回工具包里,我们可以看到不匹配的点现在减少了很多!一些不匹配实际上是故意制造的,因为二维码在一定程度上具有纠错能力。

优化AI生成的QR码

如果你感兴趣的话,你可以看到在原始二维码上叠加后的效果

优化AI生成的QR码

看到二维码在图像的不同部分被扭曲和融合,真是相当有趣。

隐藏标记

目前的结果对我来说已经出乎意料地不错了。唯一可能缺少的是位置标记器的融合效果不太好,但我猜这可能是个限制。当我准备结束一天的工作去睡觉时,想着如何让QR码的位置标记器看起来不那么明显,我在classic.qrbtf.com(由提出AI QR码理念的创作者创建)上看到了一种名为SP-1的样式,它具有“加号形状”的位置标记器样式。它看起来比方形或双圆形的要自然得多。我不知道它是否也适用于扫描器,所以我觉得值得一试。

优化AI生成的QR码

所以我在我的生成器中实现了它,它看起来是这样的:

优化AI生成的QR码

正如你所看到的,这个标记在其他数据点中显得不那么突出(请注意,这也会使代码的可扫描性降低)。或许值得尝试将其作为控制网络输入,看看是否能生成更好的图像。但由于我们已经有了相当不错的一个,让我们使用新的QR码重新绘制标记。

所以,使用新的QR码再次进行修复处理,再进行一些编辑,我们得到了最终的结果:

优化AI生成的QR码

即使我一步一步完成了,看到最终结果是这样的,但仍然让人震惊,而且还能被扫描!🤯

在Civital上检查一下

结论

希望你喜欢这个教程。如果你刚开始使用AI二维码,请试试这个工具,如果有帮助的话,请告诉我。你可以在下面找到应用程序和源代码。

安东尼的QR码工具包

antfu/qrcode-toolkit antfu/qrcode-toolkit

© 版权声明

相关文章