雜談:為了管理Stable Diffusion提示詞而用AppSheet開發了工具 / Talk: I Developed a Tool Using AppSheet to Manage Stable Diffusion Prompts
由於我會在越來越地方使用Stable Diffusion繪圖,所以我花了一些時間用AppSheet做了提示詞管理工具。這篇就來聊一下我做了那些東西。
提示詞管理的演進 / The Evolution of Prompt Management
一開始我的做法是用圖片以及裡面保存的參數來管理提示詞。Stable Diffusion所產生的參數可以用PNG Info功能讀取出來,然後我們就可以在Txt2Img輸入這些參數,讓它產生類似的結果。
但隨著製作越來越複雜,我發現這樣的管理方式有很多問題喔。很多時候我希望圖片裡面維持同樣的希希助教角色,但是圖片的風格、畫法、場景、動作都要有所改變。因此我需要更細膩地管理提示詞裡面的內容。
後來我開了Google Sheet,將一長串提示詞分割成多個欄位。有些提示詞會隨著現在要繪製的主題而改變,例如節慶、服裝、動作;有些提示詞則是配合模型與角色,大部分圖片都會使用固定的用詞,例如希希助教的粉紅色頭髮與綠色眼睛。最後我再用Google Sheet的函數把被分割的提示詞合併在一起,這樣就能輸入到WebUI來繪圖。
這種做法另一個好處是讓我更有結構地整理每次繪圖的主題。例如我可以在「Topic」欄位描述這張圖片的目的,未來不僅能夠讓我快速瞭解這張圖片的用途,也能用搜尋找到對應的圖片。相較之下,以往WebUI產生的圖片僅是按照日期排序。儘管裡面可能會有我想要作為最後結果的檔案,但在大量圖片中依然難以找尋。
然而,這種做法也不算完美。當圖片數量越來越多的時候,這些提示詞就越發混亂,而且難以搜尋。因此就有了現在這次開發工具的想法。
用AppSheet管理提示詞 / Managing Prompts with AppSheet
AppSheet允許我們使用Google Sheet作為資料庫來開發網頁應用程式。雖然乍看之下,跟前面用Google Sheet管理提示詞的方式沒什麼不同,但有了AppSheet的包裹後,這些資料就能夠以各種客製化的形象呈現。
舉例來說,我們可以用Deck來條列資料表,讓資料只顯示重要欄位與操作。
特定欄位也可以設定固定選項,減少打字的困擾。
我們也可以客製化動作(action),讓資料以我們想要的方式操作。例如從特定圖片複製成為新的圖片,再以新的圖片來修改成下一張要創作的圖片。
最後設定好的提示詞,一樣可以合併成可供輸入到WebUI的參數。這些操作雖然比直接從PNG Info取得參數還要複雜,但將提示詞拆分所得到的彈性,卻可成為下一份創作主題的重要基礎。
超越提示詞 / Beyond the Prompt
實際上做到最後可以發現到,提示詞所產生的AI繪圖,僅能說是創作中的一部分而已。有些時候我可能需要為圖片加上文字、其他圖示,而選擇用其他工具在Stable Diffusion產生的圖片裡加工。有些時候我對原本產出的圖片進行修改,然後用ControlNet引導圖片在特定位置繪製出我想要的元素。這些技巧都已經不是單純使用提示詞可以做到的程度,但如果未來還需要繪製類似的圖片,那就必須保留整個製作過程所需要的素材才行。
目前我的做法還是用Google Drive把必要的素材保存起來,然後將Google Drive的網址記錄在AppSheet裡。希望未來能有更有效率的方式記錄整個創作過程啊。
小結 / In Closing
對有些人來說,AI繪圖只是社群媒體封面照片的產生工具。
對有些人來說,AI繪圖只是投影片裡可以快速找到一張照片塞進去的工具。
的確,AI繪圖終究只是達成目的的其中一種工具。目的是否完成,才是最重要的關鍵。
不過,其實有時候也沒必要把它想得這麼複雜。很多時候我只是看到覺得可愛或有趣的插畫,就會讓我有了繼續努力的動力,人就是這樣單純。
希望希希助教也將這種開心的感覺帶給你,支持你繼續走下去。一起加油吧!