前言 % s K$ K0 q- D1 S( x
& h8 o1 X1 Y0 t% W5 m% M& c8 a7 o
5 W3 e5 B# o- X* l% T
( s* k( T6 f- h" P
- A5 d& H. j' y* D4 A8 T* s, C1 U. f; s5 n, N! K/ Z
这样生成的二维码码点其实还是很明显的,并且站长也提出了图像偏绿的问题。
& K1 J9 D# w8 E: u' z 其实现在已经出现了更好的ControlNet模型去生成更好的二维码。 8 I& z+ i; N" w8 |) e
准备
$ i* n, Y0 l- K- I8 S" ]# w1.Stable Diffusion WebUI 5 @& I, I( o0 Z& M8 |# R5 H
2.ControlNet插件 - @% V) J d9 Y+ i- c
3.control_v1p_sd15_brightness.safetensors * I8 i6 I$ ?: \2 M! g
上述工具及模型及安装方式在站长的教程中都有分享,另外还需control_v1p_sd_qcode__monster.safetensors 3 q1 P4 P7 r9 M5 B1 ]' V, d, x: r
$ t/ L- M0 C( N5 m9 \( \9 D
还有一个插件ADtailer 我没上传 大家自行安装吧(使用ADtailer是为了修复人物脸部,你也可以选择修复手部之类的,或者干脆不用) : Q8 _& Y7 {" R- {7 t: k
全都准备好就可以开始制作了 8 \" x. s1 ^1 m
0 z6 C S1 Y& s F8 i1 W! ]
制作
' e R! e# t' ]) T' P我们需要先准备更好的二维码底图 1 ?* v/ m9 P. {# h( h0 s9 `$ m# ?
https://qrcode.antfu.me/
+ X3 y; X A9 c) r- Y
: z; G( S# g, r# \ p2 k: M# r- S这是一位开源社区大神的网站,可以生成更好的二维码,不想用网站的也可以安装同名插件。
* T, M3 B8 W6 B9 _+ K- w- V ~8 M7 R
2 x+ ^* g* Q) _, v4 s
2 d: N! q9 e8 Q2 D输入网址后,第一栏Error Correction是二维码纠错等级,等级从前往后依次递增,等级越高,码点约明显,识别成功率越高。 5 f+ B2 y+ q& v' ?
第二栏Mask Pattern代表二维码样式,建议选择分布更加均匀的样式。第三栏Style是二维码的风格,大家可以自己调试。 + j+ u: H ?( A" S: T+ x. ?8 r
需要注意的是,二维码包含的文字越长,二维码越复杂,我们需要增加Margin的大小,并勾选Margin Noise来延申二维码边缘。
: x: C& m8 U5 T( J# A) ~
7 H0 d$ {, H0 A" P7 @9 I以上是我常用的设置。
e0 t6 Y4 F) c. J2 \" K4 P美化二维码
4 Z0 J( v" x/ @在Stable Diffusion中加载你常用的主模型
8 B5 E' o' M4 z0 C q1 G6 I勾选ADtailer,并选择face_yolov8n.pt在Mask Preprocessing中把Mask (-) / dilation (+)这一项改成-4
5 A+ r/ m# K! }* U, q5 J, J加载两个ControlNet单元,都上传准备好的二维码图片。
6 R+ h. k5 D+ o# `8 R! D第一个单元选择qcode__monster模型,勾选完美像素模式,控制权重1.35,启动步数0,结束步数1
- b7 R6 U$ N( i" K% w* p2 l# P第二个单元选择brightness模型,勾选完美像素模式,控制权重0.2-0.3,启动步数0.5,结束步数0.8
5 r5 ?0 U: m' i' \6 f, C7 t+ ]- f% [. W. U, ?
* d% a9 m: Y8 F# ~' U+ M k. ] g% C1 |# k
2 _$ \2 v# ~ b7 M6 F% b
- E0 C* ?" ]% g' o) \8 A* R" [" A最后设置完就像上述图片一样。
1 W8 t8 D: D& [8 j' _然后随便写点你想要的prompt就可以生成啦。 i, ~. i* \. _2 t+ J, F% K0 p
, f$ o3 \& S! a5 f! v+ G
: W* }6 D% q+ v. I, Z9 |0 R: ~8 h! P
5 q1 N" g# X. k: x% K: {( U) f可以看到,二维码码点的融合度明显提升,并仍可以继续识别(我用的微信扫描) % E7 e( V0 W3 K( T
如果无法识别的话就多生成几次试试,若都无法识别就在准备二维码底图的一步少设置点参数,使其像正常二维码的样子靠拢,或增加brightness模型的权重,比如0.2改为0.3 2 F- g5 y; B: ?$ l( s* \" ?2 \
结尾
/ F( m& C! u" `* v/ n& Q! O% x
1 M- C* s; K8 {3 N# ^- t9 Y以上参数是我摸索出的容错率较高的方案,如果大家有更好的方案欢迎分享(毕竟我这方案码点还是能看出来) $ B0 ^1 R+ S, f, a
" F# L% c+ w! T4 O
|