怎麼修補 AI 生成的怪手? 淺談 AI 不會手部生成的原因

施威銘研究室
8 min readJun 21, 2023

--

AI 圖像生成現在很夯,但大家幾乎都遇到一樣的問題──AI 不會畫手,常常把手生成得奇形怪狀。原因是什麼呢? 我們又該如何修復?

只要有使用 AI 工具生成人像圖,幾乎免不了遇到失敗的手

一、AI 不擅長畫手的原因

AI 生成的人像圖每位顏值都媲美金城武跟志玲姊姊,為什麼偏偏對畫手有難度呢?大致分成三個原因。

原因一:手擁有複雜的構造與變化

可以去訪問有在學西洋繪畫的人,問他們在學習人體素描的過程中覺得哪個部位最難畫,87%以上的人都會跟你說「手」!

描繪手是繪畫中最困難的任務之一,它們的幾何形狀很難被描繪出來。這就是為什麼卡通人物經常用 3 根手指和 1 個拇指來繪製。 (更甚者,多啦A夢的拳頭手......)

手難畫? 沒關係,卡通就4根手指就好了!

手本身的解剖結構非常複雜,各種角度的手掌看起來都不一樣,每根手指又有不同的形狀和大小。除了手的結構之外,還有另一個魔王要顧及,那就是手上面的紋路、褶皺、指甲和互相遮擋之下的陰影

偏偏手一定需要被正確地描繪,否則我們一眼看起來就會發現不自然。因為我們對於手實在是再熟悉不過了,手是做事情的必備工具,即使不會畫也懂得看。因此我們的肉眼對於手的容錯率非常低,很容易一眼就看出圖像裡的手怪怪的。

其實AI生成圖的瑕疵處處都有,像是人物穿的襯衫沒有釦子、戴著眼鏡卻沒有眼鏡架......等,而這些我們可能就不是那麼容易注意到。

原因二:現在針對手的圖像資料庫不足

手的幾何形狀複雜,目前沒有一套標準的線條或形狀讓 AI 識別為手。AI 現在的做法,就是以二維平面的視角去比較許多不同樣貌的手,就會產生 6 根或更多奇形怪狀手指的悲劇。

目前缺乏針對各種手部姿態的資料集

況且一般來說「手」佔整張照片的比例不高,比起照片裡的臉,手往往更不顯眼,因此 AI 不會特別把重點放在這,只會學個大概。但實際上手部有很多細微的變化。其細微的差異目前沒有足夠的資料量讓 AI 做區分,未來可能要針對「手」特別去訓練。

原因三:對描述手部的 Prompt 不夠精確

當我們為生成式 AI 工具下 Prompt 時,用詞往往不是很準確。可能只輸入 「手 」這個詞,卻沒有明確說明手應該做什麼,或者應該如何擺放。

人工智慧顧問 Jim Nightingale 建議可以「 想像訓練圖像可能被標記的樣子,然後從那裡反向設計你的Prompt」。如緊握的拳頭,光滑纖細的手指,多毛的指關節……等,以幫助生成器分離出更具體或詳細的圖像。當然,這些技巧並不總是有效,我們還是得多嘗試幾次看看。

我們精巧的手就猶如藝術品一般。Photo by Ira Vishnevskaya on Unsplash

二、不需要 Photoshop 也可以修手的方法

方法一: 使用 Leonardo.AI 的圖像編輯功能

這邊提供兩個實際又簡單的解決方法,第一個是使用 CP 值很高的 AI 繪圖工具 Leonardo.AI,免費版就很夠用 (一天配給150 tokens)。這是目前測試起來,筆者認為最適合進行生成圖像再修改的生成工具,不僅可以編輯從 Leonardo.AI 生成的圖像,我們也可以自行從主機匯入其他照片來編輯。

預設我們今天要修改在 Leonardo.AI 生成的圖片,首先複製原圖 (也就是手部生成失敗的那張圖) 的 Prompt, 再進入圖像的 Canvas 編輯區。

開啟生成圖像的 Edit in canvas 功能

接著用 Draw Mask 工具將失敗的部分蓋過去,這樣 AI 就會只針對被擦除的部分重新生成。另外記得將原本的 Prompt提示詞貼到輸入框,維持對原圖像的敘述以確保生成一樣的風格。

用遮罩工具將生成失敗的部分去除

最後按下 Generate 進行重新生成,結果可以看到手指和手臂都變正常了。如果不滿意,也可以重新生成個幾次。依照筆者的經驗,用上述的步驟雖然不確保一次到位,但通常圖像都能改善許多。

擺脫了三隻手臂,也改成比較正常的手指

方法二:使用負向 Prompt

第二個方法則是從源頭做預防,可以多多利用負向 Prompt (Negative prompt),在負向欄位輸入以下關鍵詞,降低 AI 生成錯誤圖像的機會。

避免生成怪手的負向 Prompt 參考:
6 more fingers on one hand (6根手指的手)
poorly drawn hands (畫得不好的手)
extra hands (多出來的手)
extra arms (多出來的手臂)
extra fingers (多出來的手指)
mutation (變異)
mutilated (殘缺的)
mutated hands (變異的手)
missing hands (缺少的手)
missing arms (缺少的手臂)
missing fingers(缺少的手指)
fused fingers (融合的手指)

如果還是行不通,直接更改 Prompt讓人物的手放背後也算是折衷解法。

以上就分享到這裡,如果對更多的圖像生成技巧有興趣,可以參考旗標科技《AI 繪圖夢工廠:Midjourney、Stable Diffusion、Leonardo.ai × ChatGPT 超應用神技》一書。

參考資料:

  1. Phil Edwards et al. (2023):《Why AI art struggles with hands》, Vox. Retrieved June 20, 2023, from https://www.vox.com/videos/2023/4/4/23669625/ai-data-learning-hands-difficulty-patterns
  2. Vladyslav Nuzhnov. (2023):《The unattainable pinnacle of art: why does Midjourney artificial intelligence draw 6 fingers on hands and how can it be fixed?》, gagadget.com. Retrieved June 20, 2023, from https://www.vox.com/videos/2023/4/4/23669625/ai-data-learning-hands-difficulty-patterns
  3. Matt Growcoot. (2023):《Why AI Image Generators Can’t Get Hands Right》, PetaPixel. Retrieved June 20, 2023, from https://www.vox.com/videos/2023/4/4/23669625/ai-data-learning-hands-difficulty-patterns
  4. Kyle Chayka. (2023):《The Uncanny Failures of A.I.-Generated Hands》, The New Yoker. Retrieved June 20, 2023, from https://www.newyorker.com/culture/rabbit-holes/the-uncanny-failures-of-ai-generated-hands
  5. 施威銘研究室 (2023)。《AI 繪圖夢工廠:Midjourney、Stable Diffusion、Leonardo.ai × ChatGPT 超應用神技》。臺北市:旗標科技股份有限公司

--

--

施威銘研究室

致力開發AI領域的圖書、創客、教具,希望培養更多的AI人才。整合各種人才,投入創客產品的開發,推廣「實作學習」,希望實踐學以致用的理想。