夏五郎收藏了文章: SD二维码美化终极教程

爆肝2周终于搞定了SD二维码美化~ 此处应该有掌声~
折腾了本地部署,autoDL, 揽睿星舟,参数各种调试,模型各种换,二维码各种调,终于满足我的目标:比较大概率产出可扫描的图片并且艺术化之后看着好看
以下是产出。


参考帖子

  1. AI绘画新赛道,一张美化二维码竟开出了2000一张的天价,看了这篇文章,你也可以实现,我将毫无保留分享群友!
  2. articles.zsxq.com/id_fq
  3. Stable Diffusion 咒语60个唯美场景,与AI小姐姐相伴一生(1-30)
  4. 《ControlNet终极攻略》
  5. AI美化二维码从0到1变现分享
  6. 两种提高美化二维码识别率的方法,另记本人第一次实现二维码美化详细过程
  7. 加急分享美化二维码教程:通宵换来的二维码风口

提高二维码识别率


提高识别率的方法就是参考两种提高美化二维码识别率的方法,另记本人第一次实现二维码美化详细过程

  1. 重绘

重绘能保持绘图的显示效果,不影响到比较重要的脸部/手部等。但是需要经过反复的tookit compare --> 下载码点 -->重绘蒙版, 虽然我最后已经把码点失败率降低到26,依然不能扫出二维码,所以作者 @徐烜寰 也说了会失败。另外即使错误率不一定很低,比如一个图的错误率为86,但是依然能够扫出。



  1. PS

ps还是能够保证成功的,但是会影响到成图的效果,特别的脸部/手部等。我是把最上层的透明度设置为30%,就可以扫出来了。可以看到美女嘴巴上有个黑影. 所以这里有一个小技巧:二维码尺寸小一点,比如 512*512; 出图大一点比如 864*1152; 这样在PS时,二维码不会盖住脸部。


效果图
先上二维码qrcode-tookit设置参数


图1:brightness+qrcode-monster
实践经验:

  1. 着重注意以下参数,进行微调
    1. qrcode-monster权重1.35-1.45之间;starting/ending: (0, [0.85-1])
    2. 效果不好的话,再加brightness 权重0.15-0.45之间,starting/ending: (0, [0.4-0.5])
    3. 步数50以上
    4. 使用qrcode-toolkit对二维码做一下处理
    5. 提示词设置背景和构图简单一点,比较容易出效果


  1. 出图跟抽卡一样。遇到好看的图,但是扫不出来时,需要使用两种提高美化二维码识别率的方法,另记本人第一次实现二维码美化详细过程 提到的办法,进行修复
  2. 需要使用qrcode-toolkit对二维码进行模糊/液化等处理,方便SD 进行创作

生成路径:抽卡
以下的图完全是一直靠着SD出图进行手机扫描验证得到。基本上抽取很困难。主要是因为参数设置的有点问题:权重和引导起止。





1 girl, serene expression, mesmerizing eyes, short hair, flowing dess, poised posture, porcelain skin, subtle blush, crystal pendant BREAKolden hour, (rim lighting):1.2, warm tones, sun flare, soft shadows, vibrantcolors, painterly effect, dreamy atmosphere BREAK scenic lake, distant rountains, willow tree, calm water, reflection, sunlit clouds, peaceful ambance, idyllic sunset, ultra detailed, official art, unity 8k wallpaper ,zentangle, mandala, RTX, raytracing Negative prompt: NSFW,nude,bad-hands-5,bad-picture-chill-75v,badhandv4,easynegativeng_deepnegative v1 75t , verybadimagenegative _v1.3bhands-neg,waternark,character watermark,photo datewatermark,Datewatermarking,sketch, duplicate, ugly, huge eyes, text, logo, monochrome, worst face, (bad and mutated hands:1.3), (worst quality2.0), (low quality:2.0), (blurry:2.0), horror, geometry, bad_prompt, (badhands), (missing fingers), multiple limbs, bad anatomy, (interlocked fingers:1.2), Ugly Fingers, (extra digit and hands and fingers and legs and arms:1.4), ((2girl)), (deformed fingers:1.2), (long fingers:1.2),(bad-artist-anime)bad-artist, bad hand, extra legs, nipples,nsfw,gun, disfigured, poorly drawn face, deformed, extra limb, poorly drawn hands Steps: 40, Sampler: DPM++ 2M Karras, CFG scale: 8, Seed: 3236353438, Size: 800x800, Model hash: 4199bcdd14, Model: revAnimated_v122, ADetailer model: mediapipe_face_full, ADetailer confidence: 0.3, ADetailer dilate/erode: 4, ADetailer mask blur: 4, ADetailer denoising strength: 0.4, ADetailer inpaint only masked: True, ADetailer inpaint padding: 32, ADetailer version: 23.7.5, ControlNet 0: "preprocessor: none, model: control_v1p_sd15_qrcode_monster [a6e58995], weight: 1.2, starting/ending: (0, 1), resize mode: Crop and Resize, pixel perfect: False, control mode: Balanced, preprocessor params: (512, 64, 64)", ControlNet 1: "preprocessor: inpaint_global_harmonious, model: control_v1p_sd15_brightness [5f6aa6ed], weight: 0.25, starting/ending: (0.2, 0.8), resize mode: Crop and Resize, pixel perfect: False, control mode: Balanced, preprocessor params: (512, 64, 64)"
生成路径:SD+PS
SD出的一些图看着可以,错码率也不高(<100),就是扫不出来.这个时候加上PS就很完美


best quality,masterpiece,cinematic light,4k,dslr,uhd,highres,award winning,intricate detailed,perspective,depth of field,(1girl:1.3), wedding dress, solo,full body, from side, (white ribbon:1.3), (dark background:1.3),4k Negative prompt: NSFW,nude,bad-hands-5,bad-picture-chill-75v,badhandv4,easynegative,ng_deepnegative_v1_75t,verybadimagenegative_v1.3,bhands-neg,watermark,character watermark,photo date watermark,Date watermarking, Steps: 50, Sampler: DPM++ SDE Karras, CFG scale: 8, Seed: 1643843184, Size: 864x1152, Model hash: 4199bcdd14, Model: revAnimated_v122, ADetailer model: face_yolov8n.pt, ADetailer confidence: 0.3, ADetailer dilate/erode: 4, ADetailer mask blur: 4, ADetailer denoising strength: 0.4, ADetailer inpaint only masked: True, ADetailer inpaint padding: 32, ADetailer version: 23.7.5, ControlNet 0: "preprocessor: none, model: control_v1p_sd15_qrcode_monster [a6e58995], weight: 1.35, starting/ending: (0, 0.85), resize mode: Resize and Fill, pixel perfect: True, control mode: Balanced, preprocessor params: (512, 64, 64)", ControlNet 1: "preprocessor: none, model: control_v1p_sd15_brightness [5f6aa6ed], weight: 0.15, starting/ending: (0.16, 0.4), resize mode: Resize and Fill, pixel perfect: True, control mode: Balanced, preprocessor params: (512, 64, 64)"
图2:brightless
实践:只用明暗度对比,所以需要考虑到二维码本身的色彩问题。这里可以使用草料二维码直接带颜色出图。主要参看知识星球的球友 articles.zsxq.com/id_fq文章
特别注意:二维码本身的颜色与提示词的匹配性。比如你出一个偏绿色的二维码,那么提示词就要靠点绿色,比如森林(forest);黄色的二维码,可以带有沙漠(desert)
此处可以使用草料二维码的美化方法进行液化等处理
图3:qrcode-monster
实践:

  1. qrcode-monster比较简单了,但是出图也是有点抽卡。只需要控制controlnet权重调整,多出一些图,调出好看的也能扫描的。
  2. 需要使用qrcode-toolkit对二维码进行模糊/液化等处理,方便SD 进行创作

SD实践
环境搭建

  1. autoDL
  • 优点
    • 部署简单
    • 可以使用网盘,比如阿里云盘
    • 便宜,最便宜的1.18/小时




  • 缺点
    • SD镜像不足够的“懒”,没有丰富的模型和LoRA等SD模型数据、
    • 不稳定。跑图跑着跑着SD UI页面就卡死了,看监控数据内存/GPU/CPU都没有跑满,怀疑是不是k8s启动太多实例,导致物理资源超配了。
    • 虚拟机每次开机系统盘还原,保存的一些系统盘数据会丢失
    • 整点扣费
    • SD的一些代码运行可能出错,官方没有及时更新维护。需要自己解决,但是下次开机,修改的如果是sd的代码,那么修改就丢失了。


  1. 揽睿星舟
  • 优点
    • 部署简单:有应用和工作空间2中方式。应用即一键启动;工作空间需要自己选择镜像和数据集创建
    • 数据集提前给用户准备好了大模型和LoRA/controlNet等数据
    • 稳定
    • 按照实际使用时长扣费


    • 缺点
      • 没有阿里云这样的云盘支持
      • 虚拟机每次开机系统盘还原,保存的一些系统盘数据会丢失
      • SD的一些代码运行可能出错,官方没有及时更新维护。需要自己解决,但是下次开机,修改的如果是sd的代码,那么修改就丢失了。



  1. 本地部署
    使用 秋葉 安装包合集是最快的了。其他方案自行搜索了,需要一点编程知识。
  2. Midjourney
    参考 加急分享美化二维码教程:通宵换来的二维码风口

其他套壳的应用此处就不介绍了
SD经验之谈

  1. 不能完全直接抄写别人的png info,到stable diffusion导入,因为很可能你的sd版本/controllNet版本是不一样的,会导致部分参数因为识别问题,而让sd崩溃
  2. controlNet如果没有显示多个单元的话,就需要去设置页面,controlNet设置项,默认可能是1,可以改成2或者更大,就可以看到多个单元


  1. 黑暗主题颜色设置需要在启动脚本上增加参数 --theme dark



报错解决

  1. ImportError: cannot import name 'Undefined' from 'pydantic.fields'

这是fastapi和pydantic版本的问题,可以降一下版本:
source /app/stable-diffusion-webui/venv/bin/activate # 激活Python环境 pip install fastapi==0.90.1 # 安装低版本
插件推荐

  1. 生成的图片浏览 https://gitcode.net/ranting8323/sd-webui-infinite-image-browsing
  2. civitai 模型/LoRA 缩略图自动下载(需要魔法) github.com/butaixianran
  3. qrcode-toolkit 二维码调整 github.com/antfu/sd-web
  4. ADetailer 脸部/手部修复 github.com/Bing-su/adet

SD脚本启动脚本修改
git config --global --add safe.directory '*' pip config set global.index-url pypi.tuna.tsinghua.edu.cn cd /app/stable-diffusion-webui/ sed -i -e 's/fastapi~=0.94.1/fastapi==0.90.1/g' requirements_versions.txt bash webui.sh --theme dark --port 27777 --listen --xformers --enable-insecure-extension-access --ui-config-file /ark-contexts/data/sd/ui-config.json --ui-settings-file /ark-contexts/data/sd/config.json --styles-file /ark-contexts/data/sd/styles.csv $@

  1. 增加设置fastapi==0.90.1
  2. 设置主题为黑色--theme dark

放置在 /home/user/data 目录,防止重新开机丢失SD二维码心酸历程

爆肝2周终于搞定了SD二维码美化~ 此处应该有掌声~

折腾了本地部署,autoDL, 揽睿星舟,参数各种调试,模型各种换,二维码各种调,终于满足我的目标:比较大概率产出可扫描的图片并且艺术化之后看着好看

以下是产出。

一、参考帖子

  1. AI绘画新赛道,一张美化二维码竟开出了2000一张的天价,看了这篇文章,你也可以实现,我将毫无保留分享群友!
  2. articles.zsxq.com/id_fq
  3. Stable Diffusion 咒语60个唯美场景,与AI小姐姐相伴一生(1-30)
  4. 《ControlNet终极攻略》
  5. AI美化二维码从0到1变现分享
  6. 两种提高美化二维码识别率的方法,另记本人第一次实现二维码美化详细过程
  7. 加急分享美化二维码教程:通宵换来的二维码风口

二、提高二维码识别率

提高识别率的方法就是参考两种提高美化二维码识别率的方法,另记本人第一次实现二维码美化详细过程

  1. 重绘
    重绘能保持绘图的显示效果,不影响到比较重要的脸部/手部等。但是需要经过反复的tookit compare --> 下载码点 -->重绘蒙版, 虽然我最后已经把码点失败率降低到26,依然不能扫出二维码,所以作者 @徐烜寰 也说了会失败。另外即使错误率不一定很低,比如一个图的错误率为86,但是依然能够扫出。


  1. PS

ps还是能够保证成功的,但是会影响到成图的效果,特别的脸部/手部等。我是把最上层的透明度设置为30%,就可以扫出来了。可以看到美女嘴巴上有个黑影. 所以这里有一个小技巧:二维码尺寸小一点,比如 512*512; 出图大一点比如 864*1152; 这样在PS时,二维码不会盖住脸部。

三、效果图

先上二维码qrcode-tookit设置参数

图1:brightness+qrcode-monster

实践经验:

  1. 着重注意以下参数,进行微调
  2. qrcode-monster权重1.35-1.45之间;starting/ending: (0, [0.85-1])
  3. 效果不好的话,再加brightness 权重0.15-0.45之间,starting/ending: (0, [0.4-0.5])
  4. 步数50以上
  5. 使用qrcode-toolkit对二维码做一下处理
  6. 提示词设置背景和构图简单一点,比较容易出效果
  7. 出图跟抽卡一样。遇到好看的图,但是扫不出来时,需要使用两种提高美化二维码识别率的方法,另记本人第一次实现二维码美化详细过程 提到的办法,进行修复
  8. 需要使用qrcode-toolkit对二维码进行模糊/液化等处理,方便SD 进行创作

生成路径:抽卡

以下的图完全是一直靠着SD出图进行手机扫描验证得到。基本上抽取很困难。主要是因为参数设置的有点问题:权重和引导起止。

SQL1 girl, serene expression, mesmerizing eyes, short hair, flowing dess, poised posture, porcelain skin, subtle blush, crystal pendant BREAKolden hour, (rim lighting):1.2, warm tones, sun flare, soft shadows, vibrantcolors, painterly effect, dreamy atmosphere BREAK scenic lake, distant rountains, willow tree, calm water, reflection, sunlit clouds, peaceful ambance, idyllic sunset, ultra detailed, official art, unity 8k wallpaper ,zentangle, mandala, RTX, raytracingNegative prompt: NSFW,nude,bad-hands-5,bad-picture-chill-75v,badhandv4,easynegativeng_deepnegative v1 75t , verybadimagenegative _v1.3bhands-neg,waternark,character watermark,photo datewatermark,Datewatermarking,sketch, duplicate, ugly, huge eyes, text, logo, monochrome, worst face, (bad and mutated hands:1.3), (worst quality2.0), (low quality:2.0), (blurry:2.0), horror, geometry, bad_prompt, (badhands), (missing fingers), multiple limbs, bad anatomy, (interlocked fingers:1.2), Ugly Fingers, (extra digit and hands and fingers and legs and arms:1.4), ((2girl)), (deformed fingers:1.2), (long fingers:1.2),(bad-artist-anime)bad-artist, bad hand, extra legs, nipples,nsfw,gun, disfigured, poorly drawn face, deformed, extra limb, poorly drawn handsSteps: 40, Sampler: DPM++ 2M Karras, CFG scale: 8, Seed: 3236353438, Size: 800x800, Model hash: 4199bcdd14, Model: revAnimated_v122, ADetailer model: mediapipe_face_full, ADetailer confidence: 0.3, ADetailer dilate/erode: 4, ADetailer mask blur: 4, ADetailer denoising strength: 0.4, ADetailer inpaint only masked: True, ADetailer inpaint padding: 32, ADetailer version: 23.7.5, ControlNet 0: "preprocessor: none, model: control_v1p_sd15_qrcode_monster [a6e58995], weight: 1.2, starting/ending: (0, 1), resize mode: Crop and Resize, pixel perfect: False, control mode: Balanced, preprocessor params: (512, 64, 64)", ControlNet 1: "preprocessor: inpaint_global_harmonious, model: control_v1p_sd15_brightness [5f6aa6ed], weight: 0.25, starting/ending: (0.2, 0.8), resize mode: Crop and Resize, pixel perfect: False, control mode: Balanced, preprocessor params: (512, 64, 64)"

生成路径:SD+PS

SD出的一些图看着可以,错码率也不高(<100),就是扫不出来.这个时候加上PS就很完美

SQLbest quality,masterpiece,cinematic light,4k,dslr,uhd,highres,award winning,intricate detailed,perspective,depth of field,(1girl:1.3), wedding dress, solo,full body, from side, (white ribbon:1.3), (dark background:1.3),4kNegative prompt: NSFW,nude,bad-hands-5,bad-picture-chill-75v,badhandv4,easynegative,ng_deepnegative_v1_75t,verybadimagenegative_v1.3,bhands-neg,watermark,character watermark,photo date watermark,Date watermarking,Steps: 50, Sampler: DPM++ SDE Karras, CFG scale: 8, Seed: 1643843184, Size: 864x1152, Model hash: 4199bcdd14, Model: revAnimated_v122, ADetailer model: face_yolov8n.pt, ADetailer confidence: 0.3, ADetailer dilate/erode: 4, ADetailer mask blur: 4, ADetailer denoising strength: 0.4, ADetailer inpaint only masked: True, ADetailer inpaint padding: 32, ADetailer version: 23.7.5, ControlNet 0: "preprocessor: none, model: control_v1p_sd15_qrcode_monster [a6e58995], weight: 1.35, starting/ending: (0, 0.85), resize mode: Resize and Fill, pixel perfect: True, control mode: Balanced, preprocessor params: (512, 64, 64)", ControlNet 1: "preprocessor: none, model: control_v1p_sd15_brightness [5f6aa6ed], weight: 0.15, starting/ending: (0.16, 0.4), resize mode: Resize and Fill, pixel perfect: True, control mode: Balanced, preprocessor params: (512, 64, 64)"

图2:brightless

实践:只用明暗度对比,所以需要考虑到二维码本身的色彩问题。这里可以使用草料二维码直接带颜色出图。主要参看知识星球的球友 articles.zsxq.com/id_fq文章

特别注意:二维码本身的颜色与提示词的匹配性。比如你出一个偏绿色的二维码,那么提示词就要靠点绿色,比如森林(forest);黄色的二维码,可以带有沙漠(desert)

此处可以使用草料二维码的美化方法进行液化等处理

图3:qrcode-monster

实践:

  1. qrcode-monster比较简单了,但是出图也是有点抽卡。只需要控制controlnet权重调整,多出一些图,调出好看的也能扫描的。
  2. 需要使用qrcode-toolkit对二维码进行模糊/液化等处理,方便SD 进行创作

四、SD实践

环境搭建

  1. autoDL
  • 优点
  • 部署简单
  • 可以使用网盘,比如阿里云盘
  • 便宜,最便宜的1.18/小时
  • 缺点
  • SD镜像不足够的“懒”,没有丰富的模型和LoRA等SD模型数据、
  • 不稳定。跑图跑着跑着SD UI页面就卡死了,看监控数据内存/GPU/CPU都没有跑满,怀疑是不是k8s启动太多实例,导致物理资源超配了。
  • 虚拟机每次开机系统盘还原,保存的一些系统盘数据会丢失
  • 整点扣费
  • SD的一些代码运行可能出错,官方没有及时更新维护。需要自己解决,但是下次开机,修改的如果是sd的代码,那么修改就丢失了。

2. 揽睿星舟

  • 优点
  • 部署简单:有应用和工作空间2中方式。应用即一键启动;工作空间需要自己选择镜像和数据集创建
  • 数据集提前给用户准备好了大模型和LoRA/controlNet等数据
  • 稳定
  • 按照实际使用时长扣费
  • 缺点
  • 没有阿里云这样的云盘支持
  • 虚拟机每次开机系统盘还原,保存的一些系统盘数据会丢失
  • SD的一些代码运行可能出错,官方没有及时更新维护。需要自己解决,但是下次开机,修改的如果是sd的代码,那么修改就丢失了。

3. 本地部署

使用 秋葉 安装包合集是最快的了。其他方案自行搜索了,需要一点编程知识。

4. Midjourney

参考 加急分享美化二维码教程:通宵换来的二维码风口

其他套壳的应用此处就不介绍了

SD经验之谈

  1. 不能完全直接抄写别人的png info,到stable diffusion导入,因为很可能你的sd版本/controllNet版本是不一样的,会导致部分参数因为识别问题,而让sd崩溃
  2. controlNet如果没有显示多个单元的话,就需要去设置页面,controlNet设置项,默认可能是1,可以改成2或者更大,就可以看到多个单元
  1. 黑暗主题颜色设置需要在启动脚本上增加参数 --theme dark

报错解决

  1. ImportError: cannot import name 'Undefined' from 'pydantic.fields'

这是fastapi和pydantic版本的问题,可以降一下版本:

SQLsource /app/stable-diffusion-webui/venv/bin/activate # 激活Python环境pip install fastapi==0.90.1 # 安装低版本

插件推荐

  1. 生成的图片浏览 gitcode.net/ranting8323
  2. civitai 模型/LoRA 缩略图自动下载(需要魔法) github.com/butaixianran
  3. qrcode-toolkit 二维码调整 github.com/antfu/sd-web
  4. ADetailer 脸部/手部修复 github.com/Bing-su/adet

SD脚本启动脚本修改

SQLgit config --global --add safe.directory '*'pip config set global.index-url pypi.tuna.tsinghua.edu.cn /app/stable-diffusion-webui/sed -i -e 's/fastapi~=0.94.1/fastapi==0.90.1/g' requirements_versions.txtbash webui.sh --theme dark --port 27777 --listen --xformers --enable-insecure-extension-access --ui-config-file /ark-contexts/data/sd/ui-config.json --ui-settings-file /ark-contexts/data/sd/config.json --styles-file /ark-contexts/data/sd/styles.csv $@
  1. 增加设置fastapi==0.90.1
  2. 设置主题为黑色--theme dark

放置在 /home/user/data 目录,防止重新开机丢失



可以关注我的公账号(以上随便一个可以扫描的图都是我的公账号),联系我私人订制哦