廣告

為何ChatGPT無法畫出滿杯的紅酒?

這個影片"Why ChatGPT Can't Draw a Full Glass of Wine"討論為何ChatGPT無法畫出滿杯的紅酒? 

影片用「叫 ChatGPT 生成一杯滿到杯緣的紅酒」這個小任務,揭示了生成式模型在「非常常見但不符合資料慣例」的場景裡會集體失靈,並連結到 David Hume 的經驗論:模型只會在「見過的印象」上做重組,對「沒在資料裡的、需要抽象補完」的細節 (如凸形液面/表面張力) 就卡關。

影片中怎麼提示都無法叫 ChatGPT 把紅酒畫滿,即使反覆要求「貼齊杯緣、甚至溢出」,ChatGPT 的內建繪圖仍多次給出「七到九分滿」的酒杯,還會信心滿滿地聲稱符合需求。

如下圖,大多的大語言模型畫出「紅酒滿杯」都無法真的全滿。

這顯示紅酒的「常見服務量」並沒滿杯的情況,網路商品照與餐飲視覺很少把酒倒到杯緣;而「滿到外拱」牽涉玻璃折射/反射、液面高光連續性等細節,模型與後處理器常把這些微小幾何與光學訊號忽略。 

影片中主張,模型擅長把「見過的元素」做拼接(如酒杯+翅膀),但要它「把半滿想像成全滿」涉及對體積、表面張力與邊界條件的抽象補完,這不是單純組合可解。作者引用 Hume 的「觀念來自印象」觀點來說明無法畫出滿杯紅酒的原因。

相關討論在 Reddit、Hacker News 等處也有人重複測試並回報類似失敗例(也有人偶爾成功,但非穩定再現)。 並且不是只有 ChatGPT,多位使用者回報其他模型也有相同傾向,凸顯這是影像生成通病而非單一服務問題。

但是這篇 "I asked ChatGPT to make an image of a completely full glass of wine. It did",作者說他可以畫出「紅酒滿杯」,如下圖。

作者實測新版 ChatGPT 影像生成功能,嘗試生成「完全盛滿、到杯緣」的紅酒杯圖像,並宣稱「成功做到」。文中將此視為模型對「物理細節」與「語意精確度」的進步:不只是畫『滿杯』,還能體現接近杯緣的液面形狀。

我在"AI搜尋時代,不要管SEO會不會死了,要如何恢復流量比較重要"曾經談過,AI工具會在兩個階段接觸資料 : 大語言模型的訓練期 (包含預訓練與微調)、以及推論期。如果 ChatGPT 在訓練期沒看過「滿滿的紅酒」,他就不會知道什麼是「滿滿的紅酒」,因此要讓 ChatGPT 產生出滿杯紅酒的照片,你就必須完整定義何謂「滿滿的紅酒」? 何謂「滿杯的」狀態。

就上面的實驗來看,無法讓ChatGPT畫出「紅酒滿杯」,除了訓練資料的問題之外,大概就是清楚的定義什麼是「紅酒滿杯」,而不能只是「畫出紅酒滿杯」,你必須清楚的定義「滿杯」,然後再叫ChatGPT盛裝「紅酒」進去來呈現剛剛定義的「滿杯」。

第一次結果如下圖 : 


牛奶還是沒有全滿,於是再修飾指令,第二次結果如下圖 : 


現在牛奶滿杯的任務已經完成,試著用同樣方式來畫紅酒滿杯,結果如下圖 : 



上面的紅酒已經接近滿杯,但是還差一點點。於是,再使用更精準一點的指令。



以上是使用付費的ChatGPT,現在以同樣的指令,要求免費的 ChatGPT 畫出紅酒滿杯,結果如下圖 : 



並沒有滿杯,再使用更精準的提示詞,結果如下圖 : 


最後終於也產生滿杯紅酒的照片。

[結論]

這個實驗告訴我們,你要讓 ChatGPT 之類的工具產生滿意的結果,不能想當然爾地認為 ChatGPT 應該要聽懂我的意思,因為他的訓練資料未必會有相符的相關資訊讓他聽懂,當他沒有相符的相關資訊時,他就必須從外部資料再去找,或是利用他懂得元素去引導他聽懂原本不懂的事情。

因此清楚的定義問題,ChatGPT 之類的工具才能產生符合期待的結果。

但是何謂清楚的定義呢? 要完成類似任務應該注意什麼呢?

(1) 明確定義「狀態」再定義「物件」

多數生成失敗不是因為「紅酒」畫不好,而是「滿杯/表面張力外凸」這個狀態沒被完整指定,因此請先把狀態語意拆解

☑ 液面幾何:液面與杯緣齊平、液面微微外凸。
☑ 接觸條件:液體必須完全接觸杯緣,不可留出透明空隙。
☑ 邊界細節:杯緣高光連續、折射/反射與液面高光對齊。
☑ 容積描述:零空隙零留白無安全邊
☑ 不要只說「畫滿杯紅酒」,而要先定義何謂「滿杯」,再把該狀態套到紅酒上。

(2) 以「兩段式提示」降低理解落差

第一段只定義「滿杯液體」這一種抽象狀態;第二段再把液體替換成紅酒。這種把狀態與主體拆分的做法,在社群實測裡能提升成功率(先讓模型自述細節,再用自述餵回去生成)。

(3) 明確標註「物理常識」與「相機視覺細節」

目前多數 T2I(text-to-image)模型在物理常識上仍有弱點;加入表面張力、外凸液面、折射/反射、玻璃邊緣高光連續性等字眼,可拉高模型對「非典型影像」的服從度。

(4) 以「反慣例語彙」對抗資料分佈偏好

影像訓練資料裡,紅酒常見呈現是「七到九分滿」:要用反慣例措辭強調「違反商品照慣例」的構圖,例如:

☑「無剩餘空間」
☑「打破飲品攝影慣例,液面略高於杯緣」
☑「避免常見餐飲擺拍留白」
☑ 這點呼應影片與各界測試:模型偏好見過的樣態,要靠語意與約束把它「推出舒適圈」。

(5) 建立「小步驗證→再約束」的迭代流程

☑ 先生成「滿杯水/牛奶」驗證幾何是否正確,再替換成紅酒(避免酒色與杯壁折射先把難度拉滿)。
☑ 失敗時只修一處條件(例如「提高液面 2% 並保持外凸」),方便歸因。
☑ 每一次皆要求近距離裁切細節以檢查杯緣與液面高光是否連續。
☑ 你的原文也以牛奶→紅酒的漸進方式示範了這個策略。

(6) 何時該「換模型/換路徑」

若多輪仍無法穩定重現:

☑ 改用描述→再生成的兩階段(讓模型先產出一段自我說明,再以該段作為圖像提示)。
☑ 嘗試不同影像模型或不同「渲染模式」;近月來部分模型版本已被報導可成功生成「貼齊杯緣、外凸液面」的紅酒(但重現性仍因機型/版本差異而起伏)。

(7) 把「滿杯」寫進你的長期素材庫

如果你(或品牌)經常需要此類違反資料慣例的構圖,建議把可重複使用的「滿杯詞庫」收編到團隊的提示樣板與風格指南裡,未來可直接套用,減少來回試錯的成本。

(8) 風險控管與成品驗證

☑ 請務必安排人工視覺檢查多角度裁切確認液面與杯緣交界;
☑ 重要商用場景加入A/B 兩張備選圖;
☑ 若文案聲稱「液面微微外凸」,圖片就必須能看見「外凸弧度」與連續高光,避免廣告法規或消費者誤導疑慮。



張貼留言

0 留言