跳轉到主要內容
藝術二維碼是一種創新的技術產品,它將二維碼與美觀的背景圖像相結合,創造出既實用又美觀的作品。它們不僅具有傳統二維碼的功能性,能被智能設備快速掃描識別,還加入了藝術元素,增強了視覺吸引力和品牌識別度。其中,部分藝術二維碼甚至由人工智能生成,充分利用了現代技術,展示出無與倫比的創新和獨特性。這使得藝術二維碼在品牌營銷、廣告推廣等領域有著廣泛的應用。 簡單來說,藝術二維碼是掃描二維碼與藝術美感的完美結合,它不僅提供了信息傳遞的功能,同時也能提升用戶的視覺體驗,使得每一次的掃描都充滿藝術的享受。

作品概覽

我們先來看幾個二維碼作品: 怎麼樣?這些二維碼就是藝術二維碼,它實現了圖片和二維碼的完美結合,比普通的二維碼更加具有藝術感。而且關鍵是,每一個二維碼都能掃描!

怎樣製作?

想製作這樣的二維碼嗎?怎麼來製作這樣的藝術二維碼呢? 其實這個從技術來講是相對複雜的。在現在這個 AI 時代,目前藝術二維碼的解決方案是基於 Stable Diffusion 來做的,通過輸入 prompt 我們可以生成對應的圖片,同時結合一些二維碼內容的融合最終實現這樣的效果。 所以這裡面其實最主要的挑戰在於:如何既把二維碼做得好看而且富有藝術,而且二維碼還能被正確掃描。說實話這個技術其實還是蠻難的,需要大量的參數調整才能做到稍微好點的效果。 應該 99% 的人在第一步就放棄了。 假設通過不斷的調整,我們真的做出來了這樣的效果,真正運行起來也是一個不小的開銷,如果要速度比較快的話,可能得性能比較好的 GPU,可能一不小心就上萬塊錢了。 有朋友可能會說:我不想費那麼多精力,我也不想花那麼多錢,我就想做個藝術二維碼,或者我想把這個能力集成到我的產品裡面,要是有這樣現成的 API 就好了。 有嗎?還真有。 本平台提供了藝術二維碼相關生成 API,我們可以調用 API 輸入各種參數,比如圖片內容、二維碼鏈接、樣式風格等等各種參數,就可以非常方便地生成想要的藝術二維碼了,而且首次申請免費贈送 20 張繪製次數。

申請 API

要使用藝術二維碼 API,首先可以到藝術二維碼 API 頁面點擊「獲取」按鈕: 如果你尚未登錄,會自動跳轉到登錄頁面,掃碼關注公眾號即可自動登錄,無需額外註冊步驟。 登錄完了之後會跳回原頁面,此時會提示「您尚未申請該服務,需要申請」。申請時會校驗實名認證情況,請按照網站提示完成實名認證。實名認證會校驗姓名、手機號、身份證號,認證完了之後可以返回頁面,刷新一下頁面確保信息更新,然後重新申請即可通過申請。

基本使用

要使用藝術二維碼的最基本的功能,需要填入如下幾個必須參數:
  • type:二維碼的類型,如純文本、鏈接等。
  • content:二維碼的內容,比如如果是鏈接的話,我們可以填入對應的鏈接。
  • prompt:二維碼對應的風格繪製指令,強烈建議用英文。比如說 pizza 則會繪製一個像披薩的二維碼。
  • callback_url:可選,異步回調地址,提供後會立刻返回任務 ID。
  • content_image_url:可選,包含真實二維碼內容的圖片鏈接。
  • aspect_ratio:可選,畫布寬高比,默認 1:1。
  • ecl:糾錯級別,默認 H。
  • qrw:二維碼權重,1.5-3,越大越接近真實二維碼。
  • seed:固定隨機種子,生成可複現的二維碼。
  • steps:繪製迭代步數,10-20,默認 16。
  • preset:預設背景風格。
  • pattern:主體樣式,默認 custom。
  • position:二維碼位置,默認 center。
  • marker_shape:定位點形狀,默認 square。
  • sub_marker:輔助定位點形狀,默認 square。
  • pixel_style:像素風格,例如 square、rounded、dot。
  • padding_level/padding_noise:留白和噪點強度。
  • rotate:旋轉角度,默認 0。
  • rawurl:是否保留原始鏈接,默認 false,開啟後不做短鏈。
接下來,我們來生成一個知數雲官網的二維碼,類型是鏈接,內容是 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 還提供了更多高級參數方便進行更多功能定制,說明如下:
  • 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(雨滴)為例來看下效果。
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,生成的二維碼畫布略帶縱向矩形感,適合一般顯示。
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 參數控制二維碼的位置,比如說一張圖片裡面有一個女生穿裙子,而我們想要把二維碼放在裙子的位置並與之融合起來,我們就可以嘗試改下二維碼的位置,調用樣例如下:
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": "月光下的美丽女孩之一,背景中,像素混乱风格,洛可可风格艺术,深白色和天蓝色,由塑料制成,精致的花朵,工笔,密集图像",
    "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像素樣式: 方形 標記形狀: 方形img
s2像素樣式: 方形 標記形狀: 方形 旋轉: 180img
s3像素樣式: 方形 標記形狀: 方形 旋轉: 180自定義邊距噪聲: 0.25img
rd1像素樣式: 圓角 標記形狀: 隨機img
rd2像素樣式: 圓角 標記形狀: 隨機 旋轉: 180img
rd3像素樣式: 圓角 標記形狀: 隨機 旋轉: 180自定義邊距噪聲: 0.25img
d1像素樣式: 點 標記形狀: 圓形img
d2像素樣式: 點 標記形狀: 圓形 旋轉: 180img
d3像素樣式: 點 標記形狀: 圓形 旋轉: 180自定義邊距噪聲: 0.25img
r1像素樣式: 行 標記形狀: 加號img
r2像素樣式: 行 標記形狀: 加號 旋轉: 180img
r3像素樣式: 行 標記形狀: 加號 旋轉: 180自定義邊距噪聲: 0.25img
c1像素樣式: 列 標記形狀: 方塊img
c2像素樣式: 列 標記形狀: 方塊 旋轉: 180img
c3像素樣式: 列 標記形狀: 方塊 旋轉: 180自定義邊距噪聲: 0.25img
sq1像素樣式: 方圓 標記形狀: 隨機img
sq2像素樣式: 方圓 標記形狀: 隨機 旋轉: 180img
sq3像素樣式: 方圓 標記形狀: 隨機 旋轉: 180自定義邊距噪聲: 0.25img