2023-04-06

Stable Diffusion 如何使用 /describe 圖生文

阿舍上個星期才在 Stable Diffusion 測試從圖片產生描述文字的功能,沒想到 Midjourney 在 V5 上就推出了 /describe 這個新功能,只要用 /describe 指令上傳圖片,Midjourney 就會試著把圖片的內容用文字描述出來,所以,後續就可以用這組描述文字當提示詞 (Prompt) 送交給 Mijourney 來產出類似的圖,這對看到圖很有感卻不知道怎麼描述成提示詞的朋友們會很有幫助,阿舍當初也是因為這個需求才發現,原來,Stable Diffusion 就有這個功能。


Stable Diffusion 繪製


圖生文字不是新技術

從圖片產生文字的技術是屬於電腦視覺 (Computer Vision) 的領域,也就是從圖片識辨出圖片內組成物件的技術,這個領或已經發展有好長的一段時間了,而近年來則是透過 AI 運算技術為基礎的 CLIP (Contrastive Language–Image Pre-training) 模型將圖片與文字描述的關係大大的拉近距離,簡單說,CLIP 模型的訓練方式是讓圖片和文字建立關聯,所以,使用 CLIP 模型就有能力對圖片進行文字描述。

CLIP 模型要用那一種

阿舍之前找了一會兒,發現 Stable Diffusion Automatic1111 WebUI 有一個叫做「CLIP Interrogator」的擴充工具,安裝簡單,用 URL 安裝或在擴充工具清單裡面搜尋來安裝也可,安裝好之後,就會多了一個 「Interrogator」的 tab,點進去,上傳圖片按「Generate」就會開始跑了... 但是,事情沒有那麼簡單的,看一下那個 Clip Model 的選項,可是有十幾個可以選擇 ... 😱

果然,用預設跑出來的提示詞,真還是簡單有力啊 ! 所以,需要測試一下不同的 CLIP Model 跑出來的效果,不過,每一種 CLIP Model 要使用前,都會需要下載並且載入到顯示卡的 VRAM,所以,時間會有點久,阿舍選「best」測了 RN50/OpenAI、RN50x16/OpenAI、RN50x64/OpenAI、RN01/OpenAI、RN50x16/OpenAI、Vit-B-32/OpenAI、xlm-roberta-large-ViT-H-14、Vit-B-16-plus-240 等幾種模型,其中,RN50x64/OpenAI 讓阿舍的 8GB 顯示卡 VRAM 滿了,就算是按了「Generate」旁邊的「Unload」按鈕來把之前載入到 VRAM 的 CLIP Model 缷載也沒有用,最後,阿舍是花錢在 Google Colab 完成測試的。 

就阿舍這樣測試看來,阿舍個人是覺得 RN50x64/OpenAI 的效果是最好的,雖然,還是會有一些垃圾文字,但是,圖片中的特點有描述出來,RN50x16/OpenAI 也還不錯,不過,阿舍當時只測了一張圖,就花了不少時間,後來,再用不同風格測了幾張,好像結果又不太一樣,所以,下面是用上面那張圖採用二種不同的 CLIP Model 解出來的文字,提供各位感覺一下,有興趣可以自己玩玩看。 

ViT-L-14/openAI

a painting of a woman and a lion, japanese popsurrealism, colorful iridescent and playful, 3 d anime realistic, prideful, warm color scheme art rendition, a full-color airbrushed, young woman with lynx head, colourful jungle, unique and intricate painting, like liangchao wei, fauvism, art station front page, joongwon jeong

RN50x16/OpenAI 

a painting of a woman and a lion, stunning anime face portrait, by Lisa Frank, joongwon jeong, cute forest creature, vivid), inspired by Audrey Kawasaki, aslan the lion, colorful energetic brush strokes, triadic colours, sun-hyuk kim, in a colorful tent

其實,這一幅圖是阿舍用下面的提示詞和參數繪製出的,從上面二組的描述看的到和阿舍原來的 Prompt 有差別,但物件有辨識出來(女人和獅子),其它部份則是可以看的出來 CLIP 模組真的是看圖說圖,完全以類人看到圖在描述的方式來產生文字,所以,它的描述內容可能也會有些主觀,也會受限於於模型的訓練資料。

oil painting a young woman of 22 yo dancing with lion in forest by Takashi Murakami and ghibli and ana sui and Leonid Afremov, look at viewer, detail ed face, high quality

Steps: 20, Sampler: Euler a, CFG scale: 7, Seed: 364508314, Size: 512x512, Model hash: 9aba26abdf, Model: deliberate_v2

最後,再來試試用上面這二組解出來的文字放到 txt2img 來產產看結果如何 ... 滿有趣的 (採用 Delibrate V2 模型)

ViT-L-14/openAI

RN50x16/OpenAI


除了圖生文還有分析及批次處理

這個 Clip Interrogatore 擴充工具,除了可以用來一張一張的圖產文之外,也有提供批次的功能,可以一次大量的解析圖片,只要給它資料夾名稱即可,另外,它還有「分析」的功能,也就是針對圖片在 "Medium (繪圖工具)"、"Artist (創作者)"、"Movement(畫風)"、"Trending (網站類型)" 和 "Flavor (色彩口味)" 等五項所找出的特質及信心度,例如,"Artist" 會列出它認為相符的創作者姓名及信心度指數供參考。

結論:學習提示詞的好工具

Stable Diffusion 的 CLIP Interrogator 擴充工具可能沒有 Midjourney 的 /describe 指令來得單純易用,同時,產出的文字描述也沒有 Midjourney 那麼乾淨,但是,就以學習提示詞來說,以上面阿舍的圖為例,就算無法還原成原圖 (這在 AI 繪圖上,本來就不容易),但是,用它所產出的文字可以產出相同質感與風格的成品,這對想要學習某種風格畫風的人來說,會是一種可以快速幫上忙的好工具。

👉(續) Stable Diffusion 3.5種設定人物姿勢的工具


推薦閱讀


有疑問? 問題還是沒解決嗎? 歡迎下方留言提問和討論 😁

沒有留言 :

張貼留言

歡迎留言提問和討論 .... 😁