前几天看到几个逼格比较高的二维码,然后自己动手做了一下,给大家看看效果:

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”这个模型,感觉出图效果也还可以,有兴趣的可以试试。


以上就是本文的主要内容了,后续我会继续分享AI应用方面的东西,大家有兴趣的及时加我关注(微信公众号:萤火遛AI),以免错过精彩内容。

探秘高逼格艺术二维码的制作过程-AI绘画文生图的更多相关文章

  1. 分享:Java 开发精美艺术二维码

    博客地址:https://ainyi.com/58 Java 开发精美艺术二维码 看到网络上各种各样的二维码层出不穷,好像很炫酷的样子,一时兴起,我也要制作这种炫酷二维码效果 例如: 根据以往例子 根 ...

  2. 通通WPF随笔(3)——艺术二维码素材生成器

    原文:通通WPF随笔(3)--艺术二维码素材生成器 最近公司让我开发一个条形码的生成控件,花了半天时间搞定觉得不过瘾,什么年代了该用二维码了吧.于是wiki了一下二维码的资料. 比较常见的就是QR码( ...

  3. Java生成艺术二维码也可以很简单

    原文点击: Quick-Media Java生成艺术二维码也可以很简单 现在二维码可以说非常常见了,当然我们见得多的一般是白底黑块,有的再中间加一个 logo,或者将二维码嵌在一张特定的背景中(比如微 ...

  4. Java二维码的制作

    二维码现在已经到处都是了,下面是二维码的介绍 :二维码 ,又称 二维条码 , 二维条形码最早发明于日本,它是用某种特定的几何图形按一定规律在平面(二维方向上)分布的黑白相间的图形记录数据符号信息的,在 ...

  5. html5调用手机本地摄像头和相册识别二维码详细实现过程

    项目中有用到h5识别我们的单据,单据上面有二维码. 实现的场景就是业务人员扫码 类似以下场景  业务员拿到单据以后,直接可以扫码进入相关单据业也可以 输入二维码下方的号码进行识别 下面是h5的页面构造 ...

  6. 从零玩转JavaWeb系列7web服务器-----用户登录界面二维码的制作

    1.用eclipse工具新建一个Dynamic Web Project工程如下: 2.在Java Resources的src目录下新建一个包,包名称为com.it666.code 3.在com.it6 ...

  7. iOS系统原生 二维码的生成、扫描和读取(高清、彩色)

    由于近期工作中遇到了个需求:需要将一些固定的字段 在多个移动端进行相互传输,所以就想到了 二维码 这个神奇的东东! 现在的大街上.连个摊煎饼的大妈 都有自己的二维码来让大家进行扫码支付.可见现在的二维 ...

  8. 使用 Python 生成二维码

    在“一带一路”国际合作高峰论坛举行期间, 20 国青年投票选出中国的“新四大发明”:高铁.扫码支付.共享单车和网购.其中扫码支付指手机通过扫描二维码跳转到支付页面,再进行付款.这种新的支付方式,造就二 ...

  9. [开源]C#二维码生成解析工具,可添加自定义Logo

    二维码又称 QR Code,QR 全称 Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的 Bar Code 条形码能存更多的信息,也能表示更多的数据类型:比如:字 ...

  10. iOS开发-二维码

    二维码 从ios7开始集成了二维码的生成和读取功能 此前被广泛使用的zbarsdk目前不支持64位处理器 生成二维码的步骤: 倒入CoreImage框架 通过滤镜CIFilter生成二维码 二维码的内 ...

随机推荐

  1. Spring中Bean的实例化详细流程

    还是举个例子,我有一个朋友小汪他远赴南方某城市打工.然后安定下来后他的朋友很想来家里玩,但是呢我这个朋友家里搞的很乱,所以他不好意思请朋友来家里玩.这时我的另一个朋友说那请一个保姆把家里好好整理一下就 ...

  2. NextCloud 在lnmp下 nginx 的配置

    server { listen 80; listen [::]:80; server_name lnmp.org www.lnmp.org; root /home/wwwroot/nextcloud; ...

  3. ChatGPT API接口编程基础与使用技巧

    总结/朱季谦 趁着这周末空闲时间,在研读完OpenAi官网文档的基础上,及时总结了这篇<ChatGPT API接口编程基础与使用技巧>. 本文大部分内容是围绕编程方面,包括ChatGPT模 ...

  4. ShardingJDBC配置

    Sharding-JDBC定位为轻量级Java框架,在Java的JDBC层提供的额外服务. 它使用客户端直连数据库,以jar包形式提供服务,无需额外部署和依赖,可理解为增强版的JDBC驱动,完全兼容J ...

  5. 16-js兼容性处理

    const { resolve } = require('path'); const HtmlWebpackPlugin = require('html-webpack-plugin'); modul ...

  6. 五天学会Deep Learning

    五天学完deep learning......是时候来证明chatGPT和new bing的能力了...... DAY1 Sigmoid function Sigmoid 函数是一种常用的激活函数,它 ...

  7. 前端获取后端设置的自定义头,前端获取不到后端设置的response headers

    需要后端设置 Access-Control-Expose-Headers 例如:后端在返回头中设置 user-name: 张三 但是前端直接response.headers['user-name']是 ...

  8. 深度学习--魔法类nn.Module

    深度学习--魔法类nn.Module 作用 pytorch 封装了一些基本的网络类,可以直接调用 好处: 可以直接调用现有的类 容器机制:self.net = nn.Sequential() 参数返回 ...

  9. 笔记:设置redhat 7.2 默认root用户启动以及网络服务自启动

    笔记:设置redhat 7.2 默认root用户启动以及网络服务自启动 1.root用户启动    root用户下打开 /etc/gdm/custom.conf文件,添加字段如下:    [daemo ...

  10. 学习笔记——树形dp

    树形 dp 介绍 概念 树形 dp,顾名思义,就是在树上做 dp,将 dp 的思想建立在树状结构之上. 常见的树形 dp 有两种转移方向: 从叶节点向根节点转移,这种也是树形 dp 中较为常见的一种. ...