技巧十:控制變數法漸進最佳化
很多人把 AI 生成圖片比喻為煉丹,我覺得非常貼切,很多時候,也不知道為啥,在 prompt 里加一點神秘配方,圖片就會很不一樣。
不過我覺得雖然過程很像煉丹,但並不代表我們需要像古人那樣,用撞大運的方式煉製丹藥。我認為目前使用 Midjourney 最好的方法是:控制變數漸進最佳化法。
拿上面那個裝備集的圖片為例,我希望它生成的是裝備,並且是一件件地排布,而且光劍的效果也很奇怪,首先我們來逐條排查 prompt:
Prompt | 檢查 | |
---|---|---|
型別是什麼? | blender 3d, game sheet | 這個好像有點問題,我希望的爐石傳說的風格,好像不是這種精緻的 3D 效果,生成的風格更像是星海爭霸的,而爐石傳說是那種黏土風格(clay render)。 |
主體是什麼? | lightsabers, paladin armor, | 這裡可能也有問題,會不會是沒有寫 different types of lightsabers 導致只生成一種光劍。 |
背景是什麼? | null | 這個應該沒啥問題 |
構圖是怎樣的? | null | 這個應該沒啥問題 |
用什麼鏡頭? | null | 這個應該沒啥問題 |
是什麼風格? | style of Hearthstone | 感覺生成的圖沒有那種中世紀盔甲的油膩感,但如果前面改了黏土風格,會不會好一些?這裡可能也需要最佳化下。 |
引數 | null | 這個應該沒啥問題 |
從這個表裡可以看到,我們發現了三個問題,其中第一個黏土風格問題,跟最後一個問題有關,此時我的建議是:
- 每次僅修改一個,其餘變數不變。
- 修改完一條,效果符合預期後,再修改下一個。
- 我的經驗優先修改主體內容,因為主體有的時候會影響其餘的變數。
- 如果想確定這個修改是否具有一致性,或者說是否符合要求,而不是恰巧符合,可以用相同的 prompt 再生成一次。不過因為沒生成一次都要花錢,所以這個是可選項。
OK,按照以上原則,我們修改一下我們的 prompt,看看生成了什麼,的確加了 different types of 後,光劍就多了,問題解決了:
然後我們修改下 blender 3d,將其改為 clay render (黏土渲染),我改完之後發現生成的結果(左邊四張),好像質感還是差了一點,於是我又試了下保留 3d blender 加 oily 的效果(中間四張),以及 clay render 加 oily 兩個一起用(右邊四張)。
我個人覺得好像兩個都改了效果是最好的(右邊四張)。
對比一下最開始的 prompt 生成的圖片,是不是最終的圖片效果更好?所以這個技巧主要想告訴大家,寫 prompt 沒有必要照抄答案,你也有能力自己寫好 prompt。