[AI繪圖] 如何用AI生成風格獨特的QR Code - Stable Diffusion進階應用(一)

2023/06/19閱讀時間約 6 分鐘
Unique QR code that can be used
AI繪圖當道,如果最近有在關心AI繪圖的你可能會看到一篇在國外Reddit的文章裡面展示了非常驚人的QR Code,但是很不幸的是這篇文章的圖片是利用特別訓練的Controlnet model來生成QR Code的,原來的作者並沒有發布這個特別訓練過的controlnet model (很有可能不會發佈)。但是在各個網友積極嘗試之下,也終於有人找到了方法可以用一搬的controlnet得到可以運作的QR Code,也就是類似我標題這樣的一張圖片(大家不妨試試看我的圖片,這是跟我合作的醫師所以會連結到她的網站)。 用這樣的方法生成的圖片,雖然沒有原本文章發表的那種QR code令人驚艷(幾乎看不到方塊的元素),但是一樣可以讓人耳目一新,所以我這邊就以我嘗試過的方法分享給各位。
首先這邊聲明,這邊是進階的教學,如果看完這篇教學要很快上手,那麼
1.你至少要已經安裝好Stable Diffusion Automatic1111
2.你要了解ControlNet如何使用並且也已經稍微操作過
3.如果稍微了解怎麼PS圖片那麼會幫助你微調一些已經接近滿意的照片
4.要有實驗精神,因為每個不同風格的圖片需要很多參數微調跟測試
好的,那麼接下來我們就說明如何生成這樣的QR Code圖片,首先你需要生成一張普通的QR Code,我這邊利用的是這個網站,但是任何可以免費幫你生成QR code的網站都可以。進入網站以後如下圖,請在最上方的網址列輸入你希望連結到的網址,以我們的例子來說是連結到我們合作醫師的網站,Image Size的部分請儘量選擇最大的,Error Correction Level 請選擇High(這點非常重要,會關係我們的QR Code辨識率)
QR code generator website
產生出來的QR code請大家先下載下來,可以先存檔為qr.png。
接下來我們進到Automatic1111 的介面這邊,並且進入到img2img依照以下的順序進行
1. 選擇合適的Model,我這邊範例使用的是Dreamshaper
2. 輸入合適的prompt & negative prompt,以我這邊的範例而言,我的目的是將這位合作醫師的形象能夠放在QR Code之中,所以我利用已經訓練好的LORA model搭配prompt,來產生出這樣的圖片。我會建議在沒有 controlnet的狀態下就先測試一下產出圖片的狀況,才能大致掌握加上QRCode會長什麼樣子。
3. 將qr.png 上傳到img2img的 輸入圖檔區域
4. 然後將 qr.png也輸入到Controlnet的Input image如下圖
QR code controlnet
關鍵參數如下:
Denoise: 決定主體的呈現,太高或是太低都不行,建議0.7~0.85之間。
Contronet type: 固定選用tile-resample
Controlnet Weight: 數值越高,controlnet影響越大,也就是說QR Code的影響力越大。
Controlnet starting control step: controlnet開始作動的步驟,越早開始作動,就會讓QR code的影響力越早浮現。如果圖片裡面看不到你要表達的主題而是只有QR code,那麼這個數值就應該調高一點。數值為0~1,起始值可以設定0.2
Contronet ending control step: controlnet結束作動的步驟,越早讓controlnet 結束,就可以讓SD開始修復你的構圖,也就是你想要表達的主角比較不會變形。如果圖片裡面看不到你要表達的主題而是只有QR code,那麼這個數值就應該調低一點。數值為0~1,起始值可以設定0.9。
接下來就是調整參數的時間,我們調整參數的目標是
1. 你要表達的主體可以完整呈現。
2. QR code 看來是完整的,沒有被表達的主體吃掉
3. 整體看起來美感是OK的。
要怎麼調整參數? 我們只能利用Prompt Matrix 的方式來做測試。以我們的例子來說,如下方的測試,我們可以看到這一組的Prompt可能Denoise:0.75, weight 0.95會有比較平衡的結果。
Denoise vs controlnet weight
那麼接下來固定Denoise & Weight以後的參數,我們就可以測試另外兩個參數
controlnet start /end guidance. 可以一樣使用Prompt matrix來測試
Controlnet start/end
這邊要兼顧美型還有QR code也必須要能掃描得出來,以這邊來說,Start 0.17 End 0.9感覺是比較合理的設定。最後我們依此設定,可以產出很多張圖,從裡面挑選可以Work然後也看得出人物的。
以下是一張我們從這次範例中挑選出來可以Work的QR Code。的確沒有我標題的那一張好看,但是還是可以掃,這是因為這次我用比較小的批量下去跑。
A Working QR Code for human face
這是用另一個QR code產生的, 一樣可以用
另外這邊也要強調,我們用人臉來當例子,是因為人臉是最最困難的例子,要讓人臉結合QR code,不是看起來像怪物,就是QRcode無法掃,如果換成別的主題,因為可以承受的美感問題降低很多,也就不需要製造這麼多張圖片百中選一了。
A flower QR Code
Japanese girl and mountains
A cup of capuccino
今天這個方法就介紹到這邊,目前我也覺得這樣的方法算不上完美,如果有網友有發現更有效率的方法,歡迎分享給我知道。






為什麼會看到廣告
技術PM的AI實驗室,是以輕鬆的角度深入簡出的探討各種生成式AI工具的使用。無論你是想理解AI到底是怎麼運作的? 想知道有那些好用的生成式AI工具? 或者是對AI繪圖有興趣的,都歡迎加入我們的AI實驗室一起輕鬆地玩耍,我們邊玩邊學,學習跟AI一起共創新的可能。
留言0
查看全部
發表第一個留言支持創作者!