V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cqcreer
V2EX  ›  程序员

怎样制作艺术二维码?

  •  
  •   cqcreer · 293 天前 · 2200 次点击
    这是一个创建于 293 天前的主题,其中的信息可能已经有所发展或是发生改变。

    艺术二维码 API 申请及使用

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

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

    作品概览

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

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

    怎样制作?

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

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

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

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

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

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

    有吗?还真有。

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

    申请 API

    知数云平台是什么呢?简单来说,它是一个提供多样数字化 API 的服务平台,其官网链接是: https://data.zhishuyun.com

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

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

    登录完了之后会跳回原页面,此时会提示「您尚未申请该服务,需要申请」。

    申请时会校验实名认证情况,请按照网站提示完成实名认证。实名认证会校验姓名、手机号、身份证号,需要三者一致才可以通过认证。认证完了之后可以返回页面,刷新一下页面确保信息更新,然后重新申请即可通过申请。

    基本使用

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

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

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

    (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
    

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

    然后点击测试:

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

    {
      "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 还提供了更多高级参数方便进行更多功能定制,说明如下:

    • pattern:预设二维码组合。预设二维码风格组合,如定位框的样式(方形、圆形等)、点的样式(方形、圆形等)。
    • 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:二维码内边距噪点。

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

    注意:API 可能在不断迭代,下文内容仅供参考,最新 API 使用方式请参见知数云官方文档: https://data.zhishuyun.com/documents/821cfbbf-6b97-4c42-b21f-e29fdd245a96

    预设 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 (宁静薄雾): 带有宁静和薄雾效果,营造出宁静的氛围。

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

    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 设置为了日落效果,效果如下:

    如果我们换个风格,比如把 preset 参数换成 expressive-mural (富有表现力的壁画),效果如下:

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

    二维码宽高比 aspect_ratio

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

    • 1:1:宽高比为 1:1 ,表示画布的宽度和高度相等。对应的像素尺寸为 768x768 ,生成的二维码画布为正方形。
    • 16:9:宽高比为 16:9 ,表示画布的宽度是高度的 16/9 倍。对应的像素尺寸为 1008x576 ,生成的二维码画布宽度较大,适合宽屏显示。
    • 9:16:宽高比为 9:16 ,表示画布的宽度是高度的 9/16 倍。对应的像素尺寸为 576x1008 ,生成的二维码画布高度较大,适合竖屏显示。
    • 4:3:宽高比为 4:3 ,表示画布的宽度是高度的 4/3 倍。对应的像素尺寸为 864x672 ,生成的二维码画布略带正方形感,适合一般显示。
    • 3:4:宽高比为 3:4 ,表示画布的宽度是高度的 3/4 倍。对应的像素尺寸为 672x864 ,生成的二维码画布略带纵向矩形感,适合一般显示。
    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": "Plate of Nigiri sushi",
        "aspect_ratio": "1:1"
      }'
    

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

    二维码位置 position

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

    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"
      }'
    

    效果如下:

    二维码像素风格 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 度,使其以逆纵向方向显示。

    在这里我们就不再对各种 API 参数进行一一介绍了,更详细更实时的内容可以参见知数云的官方文档,链接为: https://data.zhishuyun.com/documents/ee085d2a-a0b9-4f0e-8b4d-8da407345138

    价格

    知数云艺术二维码的 API 提供了阶梯定价,首次申请免费赠送 20 次,而且购买越多越便宜,由于价格会动态调整,所以大家可以查看知数云官网来查看最新实时价格: https://data.zhishuyun.com/services/38ecf158-36f2-42f2-8e7f-6786cdfc2452

    以上便是知数云艺术二维码的一些介绍,希望对大家有帮助,谢谢!

    25 条回复    2023-08-25 17:49:24 +08:00
    1map
        1
    1map  
       293 天前
    挺牛逼。。不过用户需要时间理解这个是二维码
    rkb
        2
    rkb  
       293 天前 via Android
    在腾讯云上刷到过你的文章,没有想到这里也能遇到你
    johnsona
        3
    johnsona  
       293 天前
    捕捉一只大才
    xixiv5
        4
    xixiv5  
       293 天前
    这一般都是给那些引流防检测的人用的最多了
    danbai
        5
    danbai  
       293 天前 via Android
    我昨天生产了一张类似的二维码发现不太容易扫出来。
    murmur
        6
    murmur  
       293 天前
    这东西真的能识别出来么,标准的黑码识别有时候都好难
    wjx0912
        7
    wjx0912  
       293 天前
    功能很新颖,但是网站做的不人性化
    GGMM
        8
    GGMM  
       293 天前
    @murmur 新版手机 QQ 自带了生成风格化 QRCode 的功能,可以试一下
    LaGeNanRen
        9
    LaGeNanRen  
       293 天前
    推广请去推广节点
    cqcreer
        10
    cqcreer  
    OP
       293 天前
    @1map 是,这个一些场合确实有限
    cqcreer
        11
    cqcreer  
    OP
       293 天前
    @rkb 哈哈,我两边都发
    cqcreer
        12
    cqcreer  
    OP
       293 天前
    @johnsona 被发现了 hh
    cqcreer
        13
    cqcreer  
    OP
       293 天前
    @xixiv5 嗯感觉这个适合人工审核那种,机器应该还是比较好检测的吧
    cqcreer
        14
    cqcreer  
    OP
       293 天前
    @danbai 嗯有时候确实比较难,可以通过增加二维码的纠错率,或者转短链接什么的应该更容易扫
    cqcreer
        15
    cqcreer  
    OP
       293 天前
    @LaGeNanRen 多谢我以后多注意
    cqcreer
        16
    cqcreer  
    OP
       293 天前
    @wjx0912 谢谢,后面我反馈让网站流程上更人性化一点
    cqcreer
        17
    cqcreer  
    OP
       293 天前
    @murmur 看二维码的复杂度了,比如纠错率高的,或者内容更短的,可以更容易扫。然后这个接口还有 qrw 等参数可以调整
    token10086
        18
    token10086  
       293 天前   ❤️ 2
    实名认证,打扰了。现在是个网站都强制实名吗。。。。
    liantao
        19
    liantao  
       293 天前
    我看了下接口文档,没有传入二维码的参数,别人是怎么做到识别出自己的微信号的呢?
    gscsnm
        20
    gscsnm  
       293 天前
    @Livid 推广。
    gscsnm
        21
    gscsnm  
       293 天前
    试用一下看看。
    这种想做好,既艺术有精准识别,有难度。
    cat9life
        22
    cat9life  
       293 天前
    @token10086 #18 生成二维码还要实名?!
    YGHMXFAL
        23
    YGHMXFAL  
       293 天前
    真难扫...扫不出来有啥用...
    justfun
        24
    justfun  
       293 天前
    有没有类似妙鸭相机那种 ai 写真的接口
    MaydayV
        25
    MaydayV  
       293 天前
    这广告打的,也太生硬了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1641 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 16:57 · PVG 00:57 · LAX 09:57 · JFK 12:57
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.