二维码原理
二维码共有40种Version(1~40),其实就是尺寸、可容纳的数据不同。如Version 1:21×21,Version 2:25×25。
- Finder pattern(Position Detection Patterns):位于每一个二维码的左下、左上、右上,用来定位。其内、中、外宽度分别为3、5、7
- Separators:在 Finder pattern 和实际编码区之间,留一段空白
- Timing Patterns:在第六行和第六列的Position Detection Patterns之间,可以用来确定Version和校准
- Alignment Patterns:Version 2及以上存在 Alignment Patterns
- Format Information:在左下和右上有两个重复的Format Information。
- Version Infomation:Version 7及以上存在 Version Infomation
数据和纠错码会从右下角开始,绕开以上固有内容,按顺序进行填充
Version 3
Mask Patterns
为避免出现不利于识别的图案,需要对二维码进行Mask处理。
Mask有0~7,共8种。通常会根据一定规则计算最合适的Mask类型。
Format Information
- 纠错等级 Error Correction Level共有四级,分别对应容错率。L:7%,M:15%,Q:25%,H:30%
sd-webui-qrcode-toolkit
通过 Extensions 安装,本质是一个 iframe,也可以直接访问其源页面。
- Generator:用于生成二维码供SD作为原始文件,其中纠错等级尽量高一些
- Compare:用于比对SD生成的结果和原始二维码的差异,并自动修复。
参考资料:Antfu: Refining AI Generated QR Code
使用 Stable Diffusion controlnet 实现二维码转图片
通常来说原始内容越短的二维码,生成后越容易被识别
以下方式均使用 rev Animated 模型:
- Prompts:a cubism painting of a town with a lot of houses in the snow with a sky background, Andreas Rocha, matte painting concept art, a detailed matte painting
- Negative Prompts:easynegative,ugly, disfigured, low quality, blurry, nsfw
方法1:qrcode monster
- 下载 brightness 模型、qrcodemonster 模型和配置文件
并放到stable-diffusion-webui\extensions\sd-webui-controlnet\models
- 配置参数
- text2img
Step 30步以上
分辨率 768以上,并保持和二维码一致
模型建议使用动画类模型,如 anything 或 revAnimated - 第一个 controlnet:图像上传二维码
enable,pixel perfect,preprocessor:none,model:qrcode_monster
weight:1~1.5(越大越接近二维码,容易识别但不好看)
starting step:0,ending step:0.85(留一些空间给ai创作) - 第二个 controlnet:图像上传二维码
enable,pixel perfect,preprocessor:none,model:brightness
weight:0.2~0.5
starting step:0.65,ending step:0.85(留一些空间给ai创作)
- text2img
方法2:QR pattern(效果不如方法1)
- 下载QR pattern 模型和配置文件
- 配置参数见其主页说明
其他用法
qrcode monster
模型制作其他内容效果也很不错
网友评论