前言
% ~, t( ~; y: W2 A8 ^' v: ]# P7 u$ N' L
* G+ b! J0 P8 f+ F
! f6 {" f q, [ y" x$ R: D1 |
. O4 z9 a" N! L$ P
9 O( I, V- j# A0 L8 X# I 这样生成的二维码码点其实还是很明显的,并且站长也提出了图像偏绿的问题。 ) i% E* E9 U9 K. J2 O! F& {
其实现在已经出现了更好的ControlNet模型去生成更好的二维码。 8 q; M" x0 W2 e
准备
' K! Y( R- X; J O5 A1.Stable Diffusion WebUI
/ t6 Z/ z8 P4 I9 F2.ControlNet插件
6 H2 L2 ?9 L/ O) K" {/ e3.control_v1p_sd15_brightness.safetensors ?6 w9 C( q) K- T+ _4 z3 ~( A/ B
上述工具及模型及安装方式在站长的教程中都有分享,另外还需control_v1p_sd_qcode__monster.safetensors
' _3 _& ?. }5 z, a. [# D! Y0 t& R6 d/ p4 V, F
还有一个插件ADtailer 我没上传 大家自行安装吧(使用ADtailer是为了修复人物脸部,你也可以选择修复手部之类的,或者干脆不用)
! o- u& u5 z6 F8 j% d3 }7 i- x/ x全都准备好就可以开始制作了 $ D: }: b5 E' h. R
" | \& ^! R3 ^5 s; y制作 + U4 A' S4 d: F. Q1 e! `/ _: G$ f
我们需要先准备更好的二维码底图
3 L2 n7 y2 R) B9 T" }* S3 h! B5 Bhttps://qrcode.antfu.me/
0 \$ n, e- h7 Y7 s% l ) ^8 W: A9 v. m; c9 G4 `
这是一位开源社区大神的网站,可以生成更好的二维码,不想用网站的也可以安装同名插件。
& v) [2 d7 T/ C9 T
+ q. p: l$ _" B& y * {; x9 [& H k$ B2 \7 ?4 o9 m0 B
输入网址后,第一栏Error Correction是二维码纠错等级,等级从前往后依次递增,等级越高,码点约明显,识别成功率越高。
" D2 M1 ]3 c, u! \$ s1 r第二栏Mask Pattern代表二维码样式,建议选择分布更加均匀的样式。第三栏Style是二维码的风格,大家可以自己调试。 u) Z! _* m2 r8 R; y
需要注意的是,二维码包含的文字越长,二维码越复杂,我们需要增加Margin的大小,并勾选Margin Noise来延申二维码边缘。
4 }$ d( b8 k; h
0 h% ~% W `4 s+ k, N" r以上是我常用的设置。 & D/ [6 K" ?2 |
美化二维码
7 x5 G+ n& @" t" \9 @在Stable Diffusion中加载你常用的主模型
^: u. @& h% t) G* J勾选ADtailer,并选择face_yolov8n.pt在Mask Preprocessing中把Mask (-) / dilation (+)这一项改成-4 7 Z9 R H# x3 S: O n
加载两个ControlNet单元,都上传准备好的二维码图片。 ! [2 n9 S! q/ i5 t3 Q
第一个单元选择qcode__monster模型,勾选完美像素模式,控制权重1.35,启动步数0,结束步数1
8 d2 `& g- l$ P' x第二个单元选择brightness模型,勾选完美像素模式,控制权重0.2-0.3,启动步数0.5,结束步数0.8
3 u' ~; Q8 b6 w* x- m, j4 K6 B; k# I4 w0 c8 c# a! E( V; ]
4 q3 s! ]& H7 v' Z% F
! G, a- l2 b/ b% ~% M2 g( e: `
" ?7 Q! s' w8 |, O
最后设置完就像上述图片一样。 3 r8 F) k a, z7 P1 }% r4 B. h9 }
然后随便写点你想要的prompt就可以生成啦。 ' q! @8 Y! Z& i" I4 U0 `5 R
$ O4 l+ w* C" p! e8 l) G1 T2 X
& h+ s, D9 ] ~; l: ^
+ h1 |3 D7 M- v7 n可以看到,二维码码点的融合度明显提升,并仍可以继续识别(我用的微信扫描)
0 V/ b( l$ i t3 q1 ~- Z如果无法识别的话就多生成几次试试,若都无法识别就在准备二维码底图的一步少设置点参数,使其像正常二维码的样子靠拢,或增加brightness模型的权重,比如0.2改为0.3
" F( n( E$ _' ?. E k* Q7 d9 c7 W结尾
' w! A x" l. h! W& c- O. f
3 V, E3 K9 \( d% ?5 P+ k1 |% [以上参数是我摸索出的容错率较高的方案,如果大家有更好的方案欢迎分享(毕竟我这方案码点还是能看出来) 4 T7 N6 V( V% ^' _9 j/ p9 S
/ B3 R0 p- N9 \, C+ ^ |