Skip to main content

技巧十:控制變數法漸進最佳化

很多人把 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這個應該沒啥問題

從這個表裡可以看到,我們發現了三個問題,其中第一個黏土風格問題,跟最後一個問題有關,此時我的建議是:

  1. 每次僅修改一個,其餘變數不變。
  2. 修改完一條,效果符合預期後,再修改下一個。
  3. 我的經驗優先修改主體內容,因為主體有的時候會影響其餘的變數。
  4. 如果想確定這個修改是否具有一致性,或者說是否符合要求,而不是恰巧符合,可以用相同的 prompt 再生成一次。不過因為沒生成一次都要花錢,所以這個是可選項。

OK,按照以上原則,我們修改一下我們的 prompt,看看生成了什麼,的確加了 different types of 後,光劍就多了,問題解決了:

MJ051.png

然後我們修改下 blender 3d,將其改為 clay render (黏土渲染),我改完之後發現生成的結果(左邊四張),好像質感還是差了一點,於是我又試了下保留 3d blender 加 oily 的效果(中間四張),以及 clay render 加 oily 兩個一起用(右邊四張)。

MJ052.png

我個人覺得好像兩個都改了效果是最好的(右邊四張)。

對比一下最開始的 prompt 生成的圖片,是不是最終的圖片效果更好?所以這個技巧主要想告訴大家,寫 prompt 沒有必要照抄答案,你也有能力自己寫好 prompt。