前言 8 i5 c8 a( G( X" h+ @- s+ O
5 E. m! \" W4 M8 A+ M
5 r0 A) }1 E+ T( E: X. W7 A
# x" C) }) @, v" s, D3 ^" Y
! i$ ~' W0 ~0 l( ?
2 ~4 O \# x$ W ?+ S
这样生成的二维码码点其实还是很明显的,并且站长也提出了图像偏绿的问题。
1 Z4 O$ H" v% Z6 t* ~+ K* ?4 b 其实现在已经出现了更好的ControlNet模型去生成更好的二维码。 $ \6 m# ^2 q, Q% b( M7 B" K+ r; n" D
准备 . H' J4 v: u9 C
1.Stable Diffusion WebUI 5 L; Y- c# R3 x8 Q- E$ H
2.ControlNet插件
" F v7 v% R7 P/ _3.control_v1p_sd15_brightness.safetensors 5 g* A9 B+ H' ]: h3 |
上述工具及模型及安装方式在站长的教程中都有分享,另外还需control_v1p_sd_qcode__monster.safetensors
: |' h2 o) R2 }2 D1 ]0 A
) ]6 P; y& o2 L' z6 B# u6 ^9 u! n还有一个插件ADtailer 我没上传 大家自行安装吧(使用ADtailer是为了修复人物脸部,你也可以选择修复手部之类的,或者干脆不用) 0 j- B! o1 e% i q
全都准备好就可以开始制作了 $ F- O4 P' O. ?
' Q2 L" _/ a8 ~& A; y4 z3 z D
制作
( b3 X5 F9 q' [我们需要先准备更好的二维码底图 ! @( @5 G o: Q7 s2 K+ v+ v
https://qrcode.antfu.me/- u& A/ B) N& ~% n% y( @
: f i4 |) D. |( M) V这是一位开源社区大神的网站,可以生成更好的二维码,不想用网站的也可以安装同名插件。
% a8 c; Y9 W! v" f
6 u3 _* M( K8 R7 j5 c* e6 _ , {- c) V$ N( R/ J) ^
输入网址后,第一栏Error Correction是二维码纠错等级,等级从前往后依次递增,等级越高,码点约明显,识别成功率越高。 : _. x) y: V' |( a, i
第二栏Mask Pattern代表二维码样式,建议选择分布更加均匀的样式。第三栏Style是二维码的风格,大家可以自己调试。 1 h. k0 ~5 i$ ]8 ?( a& U
需要注意的是,二维码包含的文字越长,二维码越复杂,我们需要增加Margin的大小,并勾选Margin Noise来延申二维码边缘。
% |& t5 U* D2 C" R/ R y
% }. g* Y8 J5 k$ I以上是我常用的设置。 * G6 ^" g2 B! E. m# s
美化二维码 3 ^- B( ]6 c" p5 H7 \7 d# n
在Stable Diffusion中加载你常用的主模型
2 h7 Q# n& N$ ^! _勾选ADtailer,并选择face_yolov8n.pt在Mask Preprocessing中把Mask (-) / dilation (+)这一项改成-4
2 [$ a! \, t! p0 _0 K加载两个ControlNet单元,都上传准备好的二维码图片。 : v0 D! p: H% F
第一个单元选择qcode__monster模型,勾选完美像素模式,控制权重1.35,启动步数0,结束步数1 , f. `) u) Y: q$ A
第二个单元选择brightness模型,勾选完美像素模式,控制权重0.2-0.3,启动步数0.5,结束步数0.8
2 g0 p$ w/ s* L/ L0 L, v* a
4 I3 M+ O: p: b& Q i* R7 r* e. L 1 H& A# T. o7 Y1 B2 q, Q4 @
; j7 `6 g& ~) Y* T3 W: U* w% e, q, V% q3 t
; ]% n5 F/ ^) c1 Z2 y- _ t最后设置完就像上述图片一样。 5 s4 R) ^) p0 r4 p/ R2 z; u' Q
然后随便写点你想要的prompt就可以生成啦。
' ~/ f) I E1 s8 Z9 t. N0 h
. ]' q* \/ B5 k5 A / G# z5 W2 {% K. Q) @: ?
/ z; [; y2 N4 T& d) V3 d5 b8 X可以看到,二维码码点的融合度明显提升,并仍可以继续识别(我用的微信扫描) 5 W- Q+ b; _9 B- L/ o5 r. T
如果无法识别的话就多生成几次试试,若都无法识别就在准备二维码底图的一步少设置点参数,使其像正常二维码的样子靠拢,或增加brightness模型的权重,比如0.2改为0.3 % d$ L. w! Z0 i% |" C
结尾 4 ^5 `$ m# X) P" F3 b
8 r% P- {2 b( f" h: w- M) k
以上参数是我摸索出的容错率较高的方案,如果大家有更好的方案欢迎分享(毕竟我这方案码点还是能看出来)
( D/ |1 {* D: m7 d. K: m; z3 u6 l* \! M
|