前言 4 ~0 V. X' U7 B! [" b" \$ u
- i5 ^0 U) o" _" u5 M7 ~9 n( |+ A X3 r( l
8 R0 R4 H0 \, F , y1 t. x% @* w/ Q
+ Q8 h* N( U# W, }/ \9 @3 Q
这样生成的二维码码点其实还是很明显的,并且站长也提出了图像偏绿的问题。
( J, |1 B; I9 H- i+ j1 U* y: j 其实现在已经出现了更好的ControlNet模型去生成更好的二维码。 S' F. |, ?6 ~% Q
准备
# T6 L* | h* ]" `) `& ]+ v/ s) q9 p1.Stable Diffusion WebUI , c2 ]9 j7 R4 h3 N1 \
2.ControlNet插件 0 L/ T8 J" `0 t8 h7 I
3.control_v1p_sd15_brightness.safetensors 3 h% p4 Z4 I% W8 [; l9 t3 z" I9 g
上述工具及模型及安装方式在站长的教程中都有分享,另外还需control_v1p_sd_qcode__monster.safetensors
3 J" a7 F5 ]1 v# O
$ m, r% o, u8 C9 ]2 i4 {6 b+ W0 X还有一个插件ADtailer 我没上传 大家自行安装吧(使用ADtailer是为了修复人物脸部,你也可以选择修复手部之类的,或者干脆不用) * a5 t0 a4 f' Q' _2 W1 i% E5 V
全都准备好就可以开始制作了
1 _, r' U! c, w7 W. v
% H7 _2 z5 L( i9 g, o4 F$ q制作 1 l, p" R+ K: L/ f
我们需要先准备更好的二维码底图
4 ~: a$ D! K) l2 i/ Lhttps://qrcode.antfu.me/
}, K. j: H" p3 k, I o; y& S k
8 l8 i% y6 v, O8 G- z! G这是一位开源社区大神的网站,可以生成更好的二维码,不想用网站的也可以安装同名插件。
9 @+ h5 u- m# A8 [6 E2 ^: P& ` i) c" L6 S' J, r; n
9 A) r2 J/ a% r8 J, u输入网址后,第一栏Error Correction是二维码纠错等级,等级从前往后依次递增,等级越高,码点约明显,识别成功率越高。
8 j! X3 J g* B) q; U第二栏Mask Pattern代表二维码样式,建议选择分布更加均匀的样式。第三栏Style是二维码的风格,大家可以自己调试。
% T# R0 f! y5 _1 ]4 _7 a: O需要注意的是,二维码包含的文字越长,二维码越复杂,我们需要增加Margin的大小,并勾选Margin Noise来延申二维码边缘。 / s7 h2 F& q+ x B+ o
" L/ L+ b) v8 H以上是我常用的设置。
+ \( d0 e0 v. l& ]+ q美化二维码
) Z: ~; @4 o' k' `在Stable Diffusion中加载你常用的主模型 # t% b6 K) g2 G, O- n8 M! F
勾选ADtailer,并选择face_yolov8n.pt在Mask Preprocessing中把Mask (-) / dilation (+)这一项改成-4
4 Y: L0 Q+ H, E- l' t9 t加载两个ControlNet单元,都上传准备好的二维码图片。 * Y1 U+ P, {) i' x f, J
第一个单元选择qcode__monster模型,勾选完美像素模式,控制权重1.35,启动步数0,结束步数1 ) M$ w# D) p- h& a1 X" z
第二个单元选择brightness模型,勾选完美像素模式,控制权重0.2-0.3,启动步数0.5,结束步数0.8
5 p8 p# @: @3 o$ C9 J1 L) H3 ?+ C
9 o- L6 X" d9 {8 n. q
9 M0 L+ U+ _4 m4 U( U
) y1 [* s4 x, X0 k) E 0 L1 @; n( f# j2 r8 X$ I& e1 F2 {. W6 A
最后设置完就像上述图片一样。 ) u E) G: H; d9 P4 B4 _! n
然后随便写点你想要的prompt就可以生成啦。
7 y: e3 O! A$ U K4 r1 h+ r7 C
' k$ s6 Q* b, Y9 ?
8 T% d% F) t, h- \) E6 s0 K; R9 L9 E$ y
可以看到,二维码码点的融合度明显提升,并仍可以继续识别(我用的微信扫描)
: I* X" C1 c$ e6 Y' Q# S$ R6 s如果无法识别的话就多生成几次试试,若都无法识别就在准备二维码底图的一步少设置点参数,使其像正常二维码的样子靠拢,或增加brightness模型的权重,比如0.2改为0.3
D2 E9 I8 B* r# q结尾 & l4 B( R0 D3 Y- E4 n
% O2 \9 K& U h
以上参数是我摸索出的容错率较高的方案,如果大家有更好的方案欢迎分享(毕竟我这方案码点还是能看出来)
, G% S6 Q$ v, P( z+ T) o+ H0 t( ^( n# J/ [
|