作品概覽
我們先來看幾個二維碼作品:
怎麼樣?這些二維碼就是藝術二維碼,它實現了圖片和二維碼的完美結合,比普通的二維碼更加具有藝術感。而且關鍵是,每一個二維碼都能掃描!
怎樣製作?
想製作這樣的二維碼嗎?怎麼來製作這樣的藝術二維碼呢? 其實這個從技術來講是相對複雜的。在現在這個 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,開啟後不做短鏈。
然後點擊測試:
過一會就發現藝術二維碼就生成了,結果類似如下:
這樣我們就生成了一個二維碼,主體是一艘船,懸掛著幾面旗幟,而這些旗幟恰恰構成了二維碼的定位點。
用手機掃描一下,就可以跳轉到知數雲的官網了。
同時上述內容調用方案我們可以非常方便地轉成 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:預設二維碼組合。預設二維碼風格組合,如定位框的樣式(方形、圓形等)、點的樣式(方形、圓形等)。
預設 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(宁静薄雾): 带有宁静和薄雾效果,营造出宁静的氛围。
如果我們換個風格,比如把 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,生成的二維碼畫布略帶縱向矩形感,適合一般顯示。
二維碼位置 position
我們還可以通過 position 參數控制二維碼的位置,比如說一張圖片裡面有一個女生穿裙子,而我們想要把二維碼放在裙子的位置並與之融合起來,我們就可以嘗試改下二維碼的位置,調用樣例如下:
二维码像素风格 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 | 像素樣式: 方形 標記形狀: 方形 | ![]() |
| s2 | 像素樣式: 方形 標記形狀: 方形 旋轉: 180 | ![]() |
| s3 | 像素樣式: 方形 標記形狀: 方形 旋轉: 180自定義邊距噪聲: 0.25 | ![]() |
| rd1 | 像素樣式: 圓角 標記形狀: 隨機 | ![]() |
| rd2 | 像素樣式: 圓角 標記形狀: 隨機 旋轉: 180 | ![]() |
| rd3 | 像素樣式: 圓角 標記形狀: 隨機 旋轉: 180自定義邊距噪聲: 0.25 | ![]() |
| d1 | 像素樣式: 點 標記形狀: 圓形 | ![]() |
| d2 | 像素樣式: 點 標記形狀: 圓形 旋轉: 180 | ![]() |
| d3 | 像素樣式: 點 標記形狀: 圓形 旋轉: 180自定義邊距噪聲: 0.25 | ![]() |
| r1 | 像素樣式: 行 標記形狀: 加號 | ![]() |
| r2 | 像素樣式: 行 標記形狀: 加號 旋轉: 180 | ![]() |
| r3 | 像素樣式: 行 標記形狀: 加號 旋轉: 180自定義邊距噪聲: 0.25 | ![]() |
| c1 | 像素樣式: 列 標記形狀: 方塊 | ![]() |
| c2 | 像素樣式: 列 標記形狀: 方塊 旋轉: 180 | ![]() |
| c3 | 像素樣式: 列 標記形狀: 方塊 旋轉: 180自定義邊距噪聲: 0.25 | ![]() |
| sq1 | 像素樣式: 方圓 標記形狀: 隨機 | ![]() |
| sq2 | 像素樣式: 方圓 標記形狀: 隨機 旋轉: 180 | ![]() |
| sq3 | 像素樣式: 方圓 標記形狀: 隨機 旋轉: 180自定義邊距噪聲: 0.25 | ![]() |



















