前言 ) F" k0 o/ ?0 m7 @
! D* a$ o$ t( ]( a2 i+ l, W( w N
1 i7 t1 ]( W- B6 J+ V; s" P( w
6 d: b" e! L8 ?" l' T/ ~3 r+ P
* u u( z) p$ S, [3 Z) }
2 q! D$ p! {7 z/ C" Q# E 这样生成的二维码码点其实还是很明显的,并且站长也提出了图像偏绿的问题。 - `0 S' Q, D& y% I5 V" [
其实现在已经出现了更好的ControlNet模型去生成更好的二维码。
5 \# s3 I. T' R# T* b! L3 K6 \! j准备
1 P/ n$ ~2 ~8 A, r& i' r5 O+ V1.Stable Diffusion WebUI ' A, ^1 q4 c A7 D
2.ControlNet插件 ; F, c8 P- y: u0 x
3.control_v1p_sd15_brightness.safetensors
0 q* H0 U, v6 |3 O9 H! T+ c上述工具及模型及安装方式在站长的教程中都有分享,另外还需control_v1p_sd_qcode__monster.safetensors 4 w+ m( ^4 o! Z9 l" ^
9 V" L" g) Z7 |/ } |: L& L: I
还有一个插件ADtailer 我没上传 大家自行安装吧(使用ADtailer是为了修复人物脸部,你也可以选择修复手部之类的,或者干脆不用)
% S1 t" l$ u" T' P, V全都准备好就可以开始制作了 ' K& J$ `6 e0 R" l% }# q& J
: c3 I, G- i( `/ j2 j
制作 $ R+ F# ~$ V3 G$ B" }
我们需要先准备更好的二维码底图 1 @& r# ~5 \) R9 ]
https://qrcode.antfu.me/
2 w ]! G5 L X% Z* {1 p
3 `& d+ Y; T7 Y3 _这是一位开源社区大神的网站,可以生成更好的二维码,不想用网站的也可以安装同名插件。
) W9 G3 @0 k" k3 A( R" M% U) w) B& Q9 F
& ~. d7 S7 i0 x" Q' V) ^7 m
输入网址后,第一栏Error Correction是二维码纠错等级,等级从前往后依次递增,等级越高,码点约明显,识别成功率越高。 $ U6 A [. A7 O( ~( I' x6 |0 s
第二栏Mask Pattern代表二维码样式,建议选择分布更加均匀的样式。第三栏Style是二维码的风格,大家可以自己调试。
' d' h/ _ g8 X+ q/ Y需要注意的是,二维码包含的文字越长,二维码越复杂,我们需要增加Margin的大小,并勾选Margin Noise来延申二维码边缘。
8 O% i0 a( Y/ ^$ v# g0 L. E3 ]
5 |0 J( m# V( y4 v, [0 N0 V以上是我常用的设置。 + r9 R0 ]0 K1 ^% n
美化二维码
( V# W5 V/ i D$ M! l! L* m/ V0 X0 d在Stable Diffusion中加载你常用的主模型 ! K l, s. `, {( r
勾选ADtailer,并选择face_yolov8n.pt在Mask Preprocessing中把Mask (-) / dilation (+)这一项改成-4 6 e" Y4 q+ y$ a/ b# L0 D
加载两个ControlNet单元,都上传准备好的二维码图片。 " @- E6 |. ~! L' i) x/ m
第一个单元选择qcode__monster模型,勾选完美像素模式,控制权重1.35,启动步数0,结束步数1
) [6 w9 o/ e( W& Z0 Q) _7 q第二个单元选择brightness模型,勾选完美像素模式,控制权重0.2-0.3,启动步数0.5,结束步数0.8
! ^/ \( @4 _. w2 R5 f* `
& }! L$ r1 r; P& a: C) ` 5 D1 E7 S) |8 w
7 r) b* N. B6 g8 r& s6 Y
! e' I6 d/ X4 x& P4 m" B9 O$ u/ L
7 y' s" W% f3 P; ~2 Z. r最后设置完就像上述图片一样。
, J( W' B, }+ r然后随便写点你想要的prompt就可以生成啦。 7 ]0 W H P" l$ ~
8 m) A; r0 m$ ]# a% l! m$ _1 q
# y6 }2 \0 N1 Q5 J! A
+ L- ~# Y8 w2 g5 A- x7 R可以看到,二维码码点的融合度明显提升,并仍可以继续识别(我用的微信扫描)
5 H: m% f3 J- Z. |. X4 M如果无法识别的话就多生成几次试试,若都无法识别就在准备二维码底图的一步少设置点参数,使其像正常二维码的样子靠拢,或增加brightness模型的权重,比如0.2改为0.3 5 ]" w7 `/ X7 ^$ M4 x# l- P
结尾
* c! a( T2 M9 O" H9 S; E) u5 s8 R
8 s0 H3 b/ C1 O! i6 _' M3 o以上参数是我摸索出的容错率较高的方案,如果大家有更好的方案欢迎分享(毕竟我这方案码点还是能看出来)
( d, X# l" ^8 m* u+ s
! J, r; i- A6 ^ |