前几天看到几个逼格比较高的二维码,然后自己动手做了一下,给大家看看效果:
1、文生图(狮子):
2、文生图(城市):
下边将开始介绍怎么做的,有兴趣的可以继续读一读。
这里使用的AI绘图工具是Stable Diffusion,没有的同学需要去部署一个,计算平台国内建议使用AutoDL,国外可以白嫖Kaggle的算力,这两个我都用过。具体怎么部署网上已经有很多教程,这里就不多说了,如果大家希望我再写一篇部署说明,请在评论区留言,人多了可以考虑。
生成艺术二维码有两种方法:
一是直接使用提示词,也就是文生图,这样出来的二维码比较漂亮,但是细节很难控制。
二是使用图生图,复刻现有图片的构图或者姿势,这样容易控制细节,但是图像不那么漂亮。
由于内容比较多,这篇文章先讲文生图,图生图后边再开一篇。
文生图
这里文生图用到的模型是:revAnimated,大家可以去huggingface下载,参考地址:https://huggingface.co/hanafuusen2001/ReVAnimated/tree/main
1、我们以生成狮子二维码为例,这里给的提示词都是关于生成狮子的,二维码部分在后边。
提示词:Full Photo shot of a lion, Yoji Shinkawa style, Jean-baptiste Monge, general plan, central composition, entirely on a sheet, Ink painting, expressive painting, watercolor, bold brushstrokes, Concept art, orange, (purple:1.2), gray and white, stylize, intricate detail, 8k, transparent background, (white background:1.4), 3D vector
反向提示词: Watermark, Text, censored, deformed, bad anatomy, disfigured
2、首先看下几个主要参数:
·
采样器:DPM++ 2M Karras
·
·
采样步数:30
·
·
分辨率 768 x 768
·
·
提示词引导系数:11
·
3、然后我们添加两个ControlNet,用来控制二维码部分的处理。这两个ControlNet都需要将待合成的二维码上传上去。
(1)先看第一个ControlNet的配置,主要是将二维码的黑白对比度融入到图像中。
注意这里设置的几个参数:
·
Control Type:All
·
·
预处理器:inpaint_global_harmonious
·
·
ControlNet模型:control_v1p_sd15_brightness
·
·
控制权重:0.35,如果画面太灰,试试调高这个权重。
·
(2)再看第二个ControlNet的配置,主要是还原二维码细节,让二维码更容易被扫出。
注意这里设置的几个参数:
·
Control Type:All
·
·
预处理器:inpaint_global_harmonious
·
·
ControlNet模型:control_v11f1e_sd15_tile
·
·
控制权重:0.5,如果不容易扫出,可以增大这个参数。
·
·
Starting Control Step:什么时候开始介入,越早介入,二维码越容易识别。
·
·
Ending Control Step:什么时候结束介入,越晚退出,二维码越容易识别。
·
4、最后点击生成就可以了。
如果生成的图不美观或者扫不出,可以尝试调整ControlNet的各个参数。
ControlNet
1、ControlNet是什么?
如果我们仅仅使用提示词,不能精确的控制图像的细节,比如让人把手举到什么高度;或者我们只想复制图片中的人脸,其它部分可以自由发挥;再或者这里我们需要一个二维码的底图,这个绘制出的二维码必需能扫描出来,不能随便生成一张。
总结起来就是ControlNet能让设计者复制参考图片的构图或者人体的姿势。
2、相关参数
预处理器:提取参考图的特征,不同的预处理器会提取不同的特征。
模型:实现不同的图像生成控制,比如人体姿势、线条控制、图像深度、配色方案等。
权重:值越大,则生成图越依从参考图,反之则越依从提示词。
起始/终止控制步数:ControlNet介入图像绘制的起始和终止采样步数,取值范围0-1,是个百分比。
对于二维码的例子可以调整权重和开始步骤控制图片展示效果和二维码识别率。
其它
另外测试发现色彩明亮、2.5D或者3D模型的效果更好,比如我尝试了“国风3”这个模型,感觉出图效果也还可以,有兴趣的可以试试。
出自:https://mp.weixin.qq.com/s/CMr0qCIoubHTN7fPtMSUGw