0%

二维码耍出新花样,充满创意艺术

艺术二维码是一种创新的技术产品,它将二维码与美观的背景图像相结合,创造出既实用又美观的作品。它们不仅具有传统二维码的功能性,能被智能设备快速扫描识别,还加入了艺术元素,增强了视觉吸引力和品牌识别度。其中,部分艺术二维码甚至由人工智能生成,充分利用了现代技术,展示出无与伦比的创新和独特性。这使得艺术二维码在品牌营销、广告推广等领域有着广泛的应用。

简单来说,艺术二维码是扫描二维码与艺术美感的完美结合,它不仅提供了信息传递的功能,同时也能提升用户的视觉体验,使得每一次的扫描都充满艺术的享受。

作品概览

我们先来看几个二维码作品:

怎么样?这些二维码就是艺术二维码,它实现了图片和二维码的完美结合,比普通的二维码更加具有艺术感。而且关键是,每一个二维码都能扫描!

怎样制作?

想制作这样的二维码吗?怎么来制作这样的艺术二维码呢?

其实这个从技术来讲是相对复杂的。在现在这个 AI 时代,目前艺术二维码的解决方案是基于 Stable Diffusion 来做的,通过输入 prompt 我们可以生成对应的图片,同时结合一些二维码内容的融合最终实现这样的效果。

所以这里面其实最主要的挑战在于:如何既把二维码做得好看而且富有艺术,而且二维码还能被正确扫描。说实话这个技术其实还是蛮难的,需要大量的参数调整才能做到稍微好点的效果。

应该 99% 的人在第一步就放弃了。

假设通过不断的调整,我们真的做出来了这样的效果,真正运行起来也是一个不小的开销,如果要速度比较快的话,可能得性能比较好的 GPU,可能一不小心就上万块钱了。

有朋友可能会说:我不想费那么多精力,我也不想花那么多钱,我就想做个艺术二维码,或者我想把这个能力集成到我的产品里面,要是有这样现成的 API 就好了。

有吗?还真有。

本平台提供了艺术二维码相关生成 API,我们可以调用 API 输入各种参数,比如图片内容、二维码链接、样式风格等等各种参数,就可以非常方便地生成想要的艺术二维码了,而且首次申请免费赠送 20 张绘制次数。

申请 API

要使用艺术二维码 API,首先可以到艺术二维码 API 页面点击「获取」按钮:

如果你尚未登录,会自动跳转到登录页面,扫码关注公众号即可自动登录,无需额外注册步骤。

登录完了之后会跳回原页面,此时会提示「您尚未申请该服务,需要申请」。申请时会校验实名认证情况,请按照网站提示完成实名认证。实名认证会校验姓名、手机号、身份证号,认证完了之后可以返回页面,刷新一下页面确保信息更新,然后重新申请即可通过申请。

基本使用

要使用艺术二维码的最基本的功能,需要填入如下几个必须参数:

  • type:二维码的类型,如纯文本、链接等。
  • content:二维码的内容,比如如果是链接的话,我们可以填入对应的链接。
  • prompt:二维码对应的风格绘制指令,强烈建议用英文。比如说 pizza 则会绘制一个像披萨的二维码。

接下来,我们来生成一个知数云官网的二维码,类型是链接,内容是 https://data.zhishuyun.com,prompt 这里填写如下内容:

1
(best quality, masterpiece:1.2), underwater, ((pirate ship)), close up, zoom in, absurdes, big waves, twister, water falling, tentacles, ((glowing lights)), ((lighting storm)), fog, smoke, 4k res, 8k, higly detailed textures, cinematic shot, intricate details, side view

在测试页面填写如下内容:

然后点击测试:

过一会就发现艺术二维码就生成了,结果类似如下:

1
2
3
4
5
6
{
"task_id": "a7e8831c-203d-447e-83fc-71783c766446",
"image_url": "https://qrart.cdn.zhishuyun.com/attachments/1132182283529494652/1136344944630563006/Germey_2023-08-02__64ca8da51e5834b500e077bf.png",
"image_width": 768,
"image_height": 768
}

二维码如下:

这样我们就生成了一个二维码,主体是一个船只,悬挂着几个旗帜,而这些旗帜恰恰构成了二维码的定位点。

用手机扫描一下,就可以跳转到知数云的官网了。

同时上述内容调用方案我们可以非常方便地转成 API 调用。

prompt 指南

通过上述操作可以看到,艺术二维码关键在于 prompt 的编写,那 prompt 的编写都有什么讲究呢?

其实这个都是通用的 Stable Diffusion 的 prompt 指令,艺术二维码就是基于 Stable Diffusion 技术加上一些特殊调优生成的,所以它的输入 prompt 和 Stable Diffusion 是完全一样的。

如果你还不知道什么是 Stable Diffusion,可以到它的官网了解下:https://stablediffusionweb.com/,还有prompt 教程和指南:https://stable-diffusion-art.com/prompt-guide/,另外 Stable Diffusion 还制作了 prompt 生成器,可以帮助我们生成 prompt:https://stablediffusionweb.com/prompt-generator,除此之外还有一些 prompt 样例集合网站:https://publicprompts.art/

如上内容仅作参考,如果更多,可以自行搜索 Stable Diffusion 相关的资料进行学习。

高级参数

本 API 还提供了更多高级参数方便进行更多功能定制,说明如下:

  • preset:预设背景风格。二维码背景的风格,如超现实风格、霓虹效果、手绘风格等。
  • steps:绘制迭代次数。当次数越大,绘制的二维码艺术风格越强,范围为 10-20,默认是 16。
  • qrw:二维码的权重。当权重越大,图片越接近真实二维码,但是艺术化的风格会减弱,取值范围是 1.5-3,默认是 1.5。
  • seed:随机种子。用于生成随机二维码,当种子相同时,生成的二维码风格是一样的,范围为 1-9007199254740991。
  • rawurl:是否保持原始链接。默认情况下会将输入链接缩短为短链接,可以提高扫码率,该值默认为 false。
  • padding_level:二维码内边距。二维码内边距的大小,
  • aspect_ratio:二维码宽高比。
  • position:二维码位置。
  • pixel_style:二维码像素风格。
  • marker_shape:二维码定位框形状。
  • sub_marker:二维码子标记样式。
  • rotate:二维码旋转角度。
  • ecl:二维码纠错等级。
  • padding_noise:二维码内边距噪点。
  • pattern:预设二维码组合。预设二维码风格组合,如定位框的样式(方形、圆形等)、点的样式(方形、圆形等)。

下文我们来详细了解下艺术二维码 API 的一些高级参数,选取其中一些进行介绍。

预设 preset

艺术二维码 API 设置了很多预设模板,这个参数叫做 preset,取值如下:

  • sunset(日落): 融合了夕阳余晖的温暖色调和柔和光线效果。
  • floral(花卉): 带有花朵和植物元素的艺术风格,强调自然之美。
  • snowflakes(雪花): 冰雪世界,具有冰晶和雪花的冷酷氛围。
  • feathers(羽毛): 呈现出羽毛和鸟类特征,营造轻盈和柔软的感觉。
  • raindrops(雨滴): 以雨滴和水珠为灵感,创造出清新湿润的效果。
  • ultra-realism(超现实): 极度逼真的细节和质感,营造出超越现实的效果。
  • epic-realms(史诗领域): 壮丽的场景和史诗感,带来宏大的视觉体验。
  • intricate-studio(错综复杂): 富有细节和复杂性,需要仔细观察才能完全理解的风格。
  • symmetric-masterpiece(对称杰作): 通过对称元素创造出精美的平衡和谐。
  • luminous-highway(发光高速公路): 强调夜间的发光效果,如车灯和霓虹灯。
  • celestial-journey(星际之旅): 探索宇宙和星际的奇幻旅程。
  • neon-mech(霓虹机械): 结合了霓虹灯和机械元素,营造出未来感。
  • ethereal-low-poly(飘渺低多边形): 低多边形风格,创造出虚幻和抽象的效果。
  • golden-vista(金色景观): 以金色调为主,呈现出壮观的视觉景象。
  • cinematic-expanse(电影式广袤): 带有电影感的广阔场景,引人入胜。
  • cinematic-warm(电影式温暖): 具有电影质感的温暖色调和光线效果。
  • desolate-wilderness(荒凉荒野): 描绘荒芜和荒野,营造出孤寂感。
  • vibrant-palette(鲜明调色板): 色彩丰富多样,强烈的色彩对比。
  • enigmatic-journey(神秘之旅): 探索充满谜团和神秘感的旅程。
  • timeless-cinematic(永恒电影): 具有电影质感且不受时间限制的风格。
  • regal-galaxy(皇家星系): 带有皇家气息的星系和宇宙元素。
  • illustrious-canvas(杰出画布): 创作出卓越而引人注目的画布效果。
  • expressive-mural(富有表现力的壁画): 充满表现力和情感的大型壁画风格。
  • serene-haze(宁静薄雾): 带有宁静和薄雾效果,营造出宁静的氛围。

我们下面来尝试下不同参数的效果,比如拿 sunset(日落)和 raindrops(雨滴)为例来看下效果。

1
2
3
4
5
6
7
8
9
curl -X POST "https://api.zhishuyun.com/qrart/generate?token={token}" \
-H "accept: application/json" \
-H "content-type: application/json" \
-d '{
"type": "link",
"content": "https://data.zhishuyun.com",
"prompt": "sakura",
"preset": "sunset"
}'

这里我们把 preset 设置为了 sunset(日落效果),效果如下:

如果我们换个风格,比如把 preset 参数换成 raindrops(雨滴效果),效果如下:

关于其他的一些设定大家可以自行试验。

二维码宽高比 aspect_ratio

通过 aspect_ratio 参数我们可以设置二维码的宽高比,比如正方形 1:1,长方形 16:9 等等,该参数:

  • 768x768:宽高比为 1:1,表示画布的宽度和高度相等。对应的像素尺寸为 768x768,生成的二维码画布为正方形。
  • 1008x576:宽高比为 16:9,表示画布的宽度是高度的 16/9 倍。对应的像素尺寸为 1008x576,生成的二维码画布宽度较大,适合宽屏显示。
  • 576x1008:宽高比为 9:16,表示画布的宽度是高度的 9/16 倍。对应的像素尺寸为 576x1008,生成的二维码画布高度较大,适合竖屏显示。
  • 864x672:宽高比为 4:3,表示画布的宽度是高度的 4/3 倍。对应的像素尺寸为 864x672,生成的二维码画布略带正方形感,适合一般显示。
  • 672x864:宽高比为 3:4,表示画布的宽度是高度的 3/4 倍。对应的像素尺寸为 672x864,生成的二维码画布略带纵向矩形感,适合一般显示。
1
2
3
4
5
6
7
8
9
curl -X POST "https://api.zhishuyun.com/qrart/generate?token={token}" \
-H "accept: application/json" \
-H "content-type: application/json" \
-d '{
"type": "link",
"content": "https://data.zhishuyun.com",
"prompt": "Fish",
"aspect_ratio": "576x1008"
}'

这里我们尝试生成了一个长方形的二维码,效果如下:

二维码位置 position

我们还可以通过 position 参数控制二维码的位置,比如说一张图片里面有一个女生穿裙子,而我们想要把二维码放在裙子的位置并与之融合起来,我们就可以尝试改下二维码的位置,调用样例如下:

1
2
3
4
5
6
7
8
9
10
curl -X POST "https://api.zhishuyun.com/qrart/generate?token={token}" \
-H "accept: application/json" \
-H "content-type: application/json" \
-d '{
"type": "link",
"content": "https://data.zhishuyun.com",
"prompt": "one of the beautiful girls in the moonlight in the background, in the style of pixelated chaos, rococo-inspired art, dark white and sky-blue, made of plastic, delicate flowers, gongbi, wimmelbilder",
"position": "bottom",
"aspect_ratio": "576x1008"
}'

效果如下:

二维码像素风格 pixel_style

我们还可以自定义二维码的像素风格,通过传入 pixel_style 即可,参数可选值如下:

  • square(方形):使用方形的像素单元,每个像素单元都是正方形的形状。
  • rounded(圆角):像素单元具有圆角,使得生成的二维码看起来更加柔和和现代化。
  • dot(点状):使用小圆点作为像素单元,生成的二维码呈现出点阵的效果,类似于印刷效果。
  • squircle(圆角方形):类似于圆角矩形,但更加接近圆形的形状,为生成的二维码赋予一种独特的风格。
  • row(行排列):将像素单元按行排列,呈现出水平方向的图案。
  • column(列排列):将像素单元按列排列,呈现出垂直方向的图案。

样式预览如下:

二维码框风格 marker_shape

通过 marker_shape 可以自定义定位框的风格,参数可选值如下:

  • square(方形):标记形状为正方形,用于突出特定位置或元素。
  • circle(圆形):标记形状为圆形,可用于标记关键区域或元素。
  • plus(加号):标记形状为加号,类似十字型,用于突出注意或特定信息。
  • box(方框):标记形状为方框,类似于描边的矩形,可用于围绕区域或元素。
  • octagon(八边形):标记形状为八边形,带有独特的角落,用于视觉吸引。
  • random(随机):标记形状随机分布,为二维码添加艺术感和视觉趣味。
  • tiny-plus(微小加号):微小的加号标记,可用于标记细微的元素或细节。

样式预览如下:

二维码子标记风格 sub_marker

通过 sub_marker 可以用于子标记(较小的标记)的形状,参数可选值如下:

  • square(方形):子标记的形状为正方形,可以用于突出特定位置的细节。
  • circle(圆形):子标记的形状为圆形,可用于强调关键细节或元素。
  • box(方框):子标记的形状为方框,类似于描边的矩形,适用于标记细小区域。
  • random(随机):子标记的形状随机分布,为二维码添加艺术感和视觉趣味。
  • plus(加号):子标记的形状为加号,类似十字型,可以用于标记细微的信息或元素。

二维码旋转角度 rotate

通过 rotate 可以控制二维码的旋转角度,参数可选值如下:

  • 0:不进行旋转,生成的二维码保持原始方向,没有旋转效果。
  • 90:将生成的二维码顺时针旋转90度,使其以纵向方向显示。
  • 180:将生成的二维码旋转180度,使其倒置,即上下颠倒的显示方式。
  • 270:将生成的二维码顺时针旋转270度,使其以逆纵向方向显示。

二维码预设 pattern

通过 pattern 可以方便地启用一些二维码样式风格,比如方形的定位框、圆形的像素点等等,这里预定义了一些 pattern:

pattern 含义
s1 pixel_style: square marker_shape: square img
s2 pixel_style: square marker_shape: square rotate: 180 img
s3 pixel_style: square marker_shape: square rotate: 180custom_padding_noise: 0.25 img
rd1 pixel_style: rounded marker_shape: random img
rd2 pixel_style: rounded marker_shape: random rotate: 180 img
rd3 pixel_style: rounded marker_shape: random rotate: 180custom_padding_noise: 0.25 img
d1 pixel_style: dot marker_shape: circle img
d2 pixel_style: dot marker_shape: circle rotate: 180 img
d3 pixel_style: dot marker_shape: circle rotate: 180custom_padding_noise: 0.25 img
r1 pixel_style: row marker_shape: plus img
r2 pixel_style: row marker_shape: plus rotate: 180 img
r3 pixel_style: row marker_shape: plus rotate: 180custom_padding_noise: 0.25 img
c1 pixel_style: column marker_shape: box img
c2 pixel_style: column marker_shape: box rotate: 180 img
c3 pixel_style: column marker_shape: box rotate: 180custom_padding_noise: 0.25 img
sq1 pixel_style: squircle marker_shape: random img
sq2 pixel_style: squircle marker_shape: random rotate: 180 img
sq3 pixel_style: squircle marker_shape: random rotate: 180custom_padding_noise: 0.25 img