看板 C_Chat作者 Satoman (沙陀曼)標題 Re: [問題] 描圖比較可惡還是Ai比較可惡?時間 Fri Oct 18 15:27:05 2024
→ protoss97: 原理不是拼圖 如果只是拼圖這種東西 各大廠就不會搞軍備競賽了10/17 19:18
我一直很好奇說AI不是拼圖的根據在那裡 ==
因為實際上目前的模型就是真的用圖片去拼出來的 ==
我舉個比較完整簡單的栗子 ==
我在看我的幸福婚約的時候,一直覺得後母這角色很○○。
查了一下沒人搞她的pony模型,所以自己做了一個來玩。
我先回去把自己知道她有出場的部分的圖片截下來,官網的人物介紹圖也抓下來,
然後開始處理,該去背的去背、該修圖的修圖。
下一步分類。
第一個資料夾我會先抓出輪廓清楚的全身圖或七分身圖。
https://i.imgur.com/cW0HmCz.jpeg
這類圖片的功用是讓AI抓住角色的頭身比,
對經常把日式ACG角色身體蘿莉化的pony底模非常重要。
第二個資料夾裝這個角色裝角色的大頭照。
https://i.imgur.com/oZ2OcUP.jpeg
目的當然是就是讓AI知道這個人物的臉長怎樣用的。
第三個資料夾,角色的背影和側身的圖片。
https://i.imgur.com/0kqE7YA.jpeg
AI對於背面一直都比較不敏感,
沒有特別針對這背面訓練的話,有可能造成頭轉過來但是身體沒轉的貓頭鷹現象。
也可能會學不到角色背後的特色。
這個角色背後有個髮髻,加上這件和服背後的飾帶有特別的設計,
所以這些圖片必須額外分開來。
第四個資料夾,角色上半身和輪廓不是很清楚的圖片。
https://i.imgur.com/jDJeLrZ.jpeg
這類的圖片數量一定最多,和其他圖片混在一起容易造成AI只訓練到上半身,
沒有訓練到下半身的情況,所以也得分類出來。
這個資料夾我沒注意到夾了一張穿另一件和服的圖片,
但是因為我打tag的時候本來就有區分出這件衣服,所以沒影響到訓練結果。
最後一個資料夾,一張穿上另一件和服的圖片。
https://i.imgur.com/G6YNz1V.jpeg
這不是我的訓練目標,但是這張圖片我認為對訓練這個角色有正面助益。
所以我額外拿出來,準備將它當正則化用的圖片來處理。(本來另一張也是丟這邊)
之後打標,將我想訓練的目標標出來讓AI去拼。
https://i.imgur.com/lHUAlsJ.jpeg
臉部的部分確認都有被加上"close-up"特寫的標籤,讓AI知道這只是特寫,
不要真的給我生出一堆大臉圖。
然後設定訓練權重。
https://i.imgur.com/zw6L5tH.jpeg
其他的圖片只是給AI參考的,所以一輪只跑1次。
臉和上半身圖片最多,平均下來一輪各4次。
(其實可以丟同一個資料夾,但是分開來比較好分類)
背面圖片約是上半身的一半,所以就一輪*2跑8次。
全身圖圖片最少,簡單估一下大概一輪15次應該夠了,
也不能再多不然AI只會給你一堆全身圖。
然後去睡覺,睡醒驗收成果,叫AI生一張側身的圖片讓我瞧瞧。
https://i.imgur.com/NpeYEHE.png
很好,該學的都有學到,不該學的也沒混進去,一發入魂不用調整直接收工。
再舉兩個將圖片拼成模型的栗子。
這是我的86蕾娜模型的圖片。
https://i.imgur.com/wq69nnB.png
這個模型能生出類似動畫23話感覺的圖片,
運氣好的話還還可以看到後面的鐵幕。
但是按照上面的流程是訓練不出能生出這張圖片的模型的。
因為實際上這個場景的圖片不多,
過於提高蕾娜站在花海圖片的訓練步數則是會造成過擬合,連帶影響其他生成結果。
那怎麼辦?我就讓AI去拼,方法說真的也不難。
https://i.imgur.com/cF8v95c.jpeg
就把23話的純背景圖片截出來,放進訓練集裡面當令一個訓練目標給AI學。
在生成時輸入兩個概念同時叫AI生成,就能生出上面那種風格的圖片。
只是目前解析度好像沒辦法讓AI能認出彼岸花,所以看起來完全是另一種花就是了。
當然,如果我不輸入背景相關的提詞,這個蕾娜也不會動不動就被一堆紅色花朵包起來。
如果我把提詞改一下,換成水仙花,衣服也換為藍色沒挑染的版本。
也能生成這種氛圍類似,但是結果不同的圖片。
https://i.imgur.com/jfH4xZV.png
又或者像這個桔梗。
https://i.imgur.com/ABzEnXs.png
我在做模型的時候想把能死魂蟲和桔梗本人一起練出來。
但是兩個概念沒區隔的話,要嘛死魂蟲打死生不出來,要嘛每張圖旁邊都有白色條狀物。
那怎麼處理呢,一樣。
打標將死魂蟲用特別標註,
打上"sinidama"這個概念區分用的題詞,
以及影響生圖結果用,AI知道其含意的題詞"white dragon"。
https://i.imgur.com/rkBt8nh.jpeg
最後同上,額外挑出特寫死魂蟲的圖片,
並且確認都有標上"no humans"這個提詞標籤,作為和桔梗本身的區分。
https://i.imgur.com/Pi7uNI9.jpeg
這樣AI就能理解,當我打出"sinidama, white dragon"加上桔梗本人的提詞,
但是又沒有"no humans"時,它就應該生成一個有死魂蟲,又有桔梗本人的圖片。
結果就是這樣,勉強還行:
https://i.imgur.com/TceOsvz.png
再舉一個拼圖的反例,這是別人的桔梗模型,
https://i.imgur.com/0IVyDNA.jpeg
我就是因為覺得這模型用起來怪怪的所以自己又去搓了一個出來。
這模型產出的圖片乍看之下很正常,該有的都有,也很還原動畫的畫風,
不像我這樣犯賤,故意偷塞料把畫風破壞掉。
但因為我是以前每天下課準時收看犬夜叉的怪叔叔,
所以生了幾張圖就發現有點怪怪的。
這是這個模型的桔梗。
https://i.imgur.com/7ysGB7K.jpeg
這是本來動畫的桔梗,來找找看哪裡不一樣。
https://i.imgur.com/uyncmY4.jpeg
對,瀏海。
瀏海中間怎麼常常空出一塊?
如果你和我一樣,以前下課就是等著看犬夜叉的話,可能已經猜出答案了。
解答是:
https://i.imgur.com/yaMHKnM.jpeg
對啊,珊瑚的瀏海就是長那個樣子不是嗎?
會造成這種結果的原因是這位作者在製作模型時採用流水自動化作業,
他的圖片是用AI辨認角色自動截圖下來的,並且在自動打標後就丟給AI進行訓練。
由於珊瑚和桔梗本來就長得有點像,AI肯定會將兩個人搞混,
珊瑚的登場機會遠高於桔梗,所以他的訓練集裡肯定包含了大量珊瑚的圖片。
再加上珊瑚和桔梗兩者的瀏海給AI辨認自動打標時,
一定都會被標上"blunt bangs"齊瀏海和"hime cut"公主頭這兩個標籤,
所以也無法被提詞區隔。
最終這個同時包含桔梗和珊瑚的訓練集,結果就造成了AI將這兩個角色拼成了同一個:
一個有著珊瑚瀏海的桔梗。
再一個栗子。
https://i.imgur.com/HuuT5RA.png
戰隊黑禍源死死美,如果有看過愛在世界征服後,
那應該知道這張圖片的概念不存在於動畫之中。
動畫只有兩幕主角的妄想,而且是戴著頭盔的。
而這張圖的生成原理是:
https://i.imgur.com/wlR0pmu.jpeg
我把其他兩個女性戰隊成員的頭砍掉氇,然後把衣服染成黑色。
最後打標加上"faceless",讓AI能將衣服與塗黑的砍頭標示分開。
這樣AI就能幫我拼出一個穿著戰隊服的死死美。
其他的栗子像是:
https://i.imgur.com/tquAgKY.png
氣噗噗的鞘姬。
https://i.imgur.com/u0DSFkS.png
穿著第一季衣服,但是髮型是劇場版版本的菲特。
這些都是我用類似手法,用訓練權重與提詞區分概念,之後生圖時讓AI去拼的結果。
還有另一種就是更為確實的拼圖,像是用controlnet換臉。
當然,換臉這個行為這東西比起AI本身又是更惡劣的勾當,進警察局也是活該的那種。
我就用比較沒爭議的歷史人物做個示範:
像是阿希和阿史
https://i.imgur.com/7TBSGjc.jpeg
或阿史+阿希
https://i.imgur.com/SGiDHHd.jpeg
直接實現法西斯主義和馬克斯主義的殊途同歸。
同樣的原理,叫AI拼圖換衣服、換動作、換背景、換表情都做得到。
之前巴哈換頭活俠傳就是用這個方法搞出來的。
當然,我知道我講那麼多,可能還是有人會想用論文砸我臉說「AI不是在拼圖」。
真的要這樣我也尊重。
但是我也必須講,實務上目前的AI產圖模型就是用圖片拼出來的,
既然模型是用圖片拼的,那用那個模型生出來的圖片算不算拼圖呢?
我覺得算,起碼我玩AI也玩兩年了。
這期間我一直覺得自己在搞模型的時候是讓AI認知概念,
而生圖時則是想辦法讓AI把它認知的概念拼起來。
大概就醬。
--
(と・てノ) 翼龍欸
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.226.160.164 (臺灣)
※ 作者: Satoman 2024-10-18 15:27:05
※ 文章代碼(AID): #1d4WtC9f (C_Chat)
※ 文章網址: https://www.ptt.cc/bbs/C_Chat/M.1729236428.A.269.html
※ 同主題文章:
Re: [問題] 描圖比較可惡還是Ai比較可惡?
10-18 15:27 Satoman
推 Amulet1: 如果你把現代AI算法叫做拼圖 那大部分人類也是在拼圖
也是可以 看你拼圖的定義是什麼而已1F 10/18 15:28
推 deer8dog9: 比起拼圖,我會覺得之前聽到的比喻「灑鹽」再貼切一點因為AI雖然說是「拼」,但是它其實沒有「圖」的概念3F 10/18 15:30
→ bluejark: 不是 你先去看sd的生成原理5F 10/18 15:30
→ Wardyal: 這種就定義的問題 就看你怎麼看AI這黑盒子裡面的運作6F 10/18 15:30
→ Satoman: 看完原理了,然後呢
實際上模型就是用圖片拼出來的
你要認定用圖片拼出來的模型生出來的圖不是拼的嗎7F 10/18 15:30
→ bluejark: 你沒發現在拼圖的是你而不是ai嗎10F 10/18 15:32
→ deer8dog9: AI從圖裡得到的比較像是一堆向量資料
如果說把每個位元看作是個點的話,那AI在學的就像是怎麼樣撒一把鹽然後讓鹽盡量落在想落的點上11F 10/18 15:32
→ Satoman: 所以你說我叫AI拼圖,就不等於AI自己拼圖嗎 ==
那也還是拼圖不是嗎 ==14F 10/18 15:33
推 stinger5009: AI拼的不是圖是概念 把概念用拼湊的形式拼成一張圖和拼圖只有87%像所以不是拼圖16F 10/18 15:34
→ Satoman: 說那些向量降噪之類的我都知道,只是我覺得還是拼啊
真的要講也是我叫AI拼圖這樣,那還不是拼圖嗎19F 10/18 15:35
推 CowGundam: 你要說拼概念也不是,因為ai從來沒有真正的概念這東西,像一個食物對人的概念可能是:能吃、有能量、能被加工等等等,這種概念是從人的日常生活中統整出來的,但ai並沒有人生,他們所有的模型原理是A+B比A+C能得到更多肯定所以以後都是A+C21F 10/18 15:39
→ Satoman: 當然不是 ==
你畫畫前置需要40張圖片然後打上標籤和權重嗎 ==28F 10/18 15:42
→ yyykk: 你舉的這些例子,都沒辦法有效說明你為什麼認為 AI 都在拼圖啊!倒不如你先用文字說說看,你覺得什麼叫做拼圖...30F 10/18 15:42
→ Satoman: 那你舉個AI不用這樣搞也能生圖的栗子給我看看吧,如何?34F 10/18 15:43
→ lifehunter: 例子 你為什麼一直打成栗子? 你的中文拼圖程式有誤?35F 10/18 15:44
→ Satoman: 阿希阿史的不用喂啊,這只是contorlnet拼兩個和他們很像的大叔
因為我故意打成栗子啊,這樣文章比較有趣,不然咧36F 10/18 15:44
推 vsepr55: 都2024了還有人覺得AI跟人類的學習方法一樣==39F 10/18 15:45
→ bluejark: 有個簡單的例子就是sd是沙畫把沙子聚在一起
ai訓練是你餵什麼進去他的學到抓沙的方法40F 10/18 15:46
推 astinky: 這個概念就是拼圖沒錯,不是具體拼湊的行為才叫拼圖42F 10/18 15:47
→ Satoman: 你說沙畫前你要知道,沒喂資料的AI什麼都不知道43F 10/18 15:47
推 SunnyBrian: 翼龍大只是想說「現在的」這些AI產圖工具都離想像中的AI還有點差距吧44F 10/18 15:47
→ Satoman: 實際上目前的AI模型就是用圖片去拼出來的46F 10/18 15:47
推 showwhat2: 人類其實不是在拼圖哦,而是建立各式各樣的物理觀念。47F 10/18 15:48
→ yyykk: 我猜想板友說的拼圖是:把犬夜叉漫畫頁面上的角色剪下來,再拆分成各部分,然後在白紙上拼貼起來,這樣叫做拼圖。而你所謂的拼圖比較像是:我看了整部犬夜叉的桔梗(訓練),48F 10/18 15:48
→ bluejark: 第二個ai是對於文字其他控制的解讀51F 10/18 15:49
→ yyykk: 然後按照同學的要求(提詞)在白紙上畫下他們想要看的圖(生成)。如果這樣叫做拼圖,那所有創作都算是拼圖啦!52F 10/18 15:49
→ Satoman: 現在練模型的流程就和你把犬夜叉漫畫剪下來拼差不多
那你覺得這樣還不叫拼圖嗎,還是只能叫拼模型?54F 10/18 15:50
推 dbr623: 用原圖抽向量再用那些向量生新圖不算拼就是瞎扯56F 10/18 15:51
→ Satoman: 那拼出來的模型生出來的圖片算不算拼圖?57F 10/18 15:51
→ dbr623: 轉向量這種事從圖像壓縮就在做,那改圖片格式我也說在創作好了58F 10/18 15:52
→ bluejark: 以輸出方式來定義那你螢幕還是印表機也是在拼圖啊60F 10/18 15:52
推 Amulet1: 你怎麼會覺得人類畫畫前沒有40張圖片打標籤跟權重
人類的大腦完全有在做這件事
人的創造是從記憶中產生的61F 10/18 15:52
→ lifehunter: 是啊 就像叫你畫顆蘋果 人也是從以前輸入(看到)的記憶64F 10/18 15:55
→ Satoman: 並不是,人畫蘋果會先理解他是顆蘋果65F 10/18 15:56
→ lifehunter: 裡面調資料 只是你的畫技不夠 沒辦法完美呈現你記憶裡66F 10/18 15:56
→ Satoman: AI生蘋果圖他只是把學習到有標apple的東西生成一團紅67F 10/18 15:57
推 showwhat2: 那只是一部份,如果真的只靠這樣就能畫畫那就不用學畫68F 10/18 15:57
→ lifehunter: 的蘋果 但AI記得比較好 所以他呈現的非常像輸入的資料69F 10/18 15:57
→ a05150707: 創作不需要完美呈現 甚至你可以依據自己的需要加入美化70F 10/18 15:57
→ Satoman: 你怎麼會覺得連遠近都無法判斷的生圖技術和人腦一樣?71F 10/18 15:57
→ showwhat2: 了,素描就是要學習他的結構光影解剖比例等等。72F 10/18 15:57
→ lifehunter: 可是你訓練的過程 不就是在教AI什麼是蘋果嗎?73F 10/18 15:57
推 Amulet1: 簡單一點講 權重~=喜好 理解~=標籤 40張圖~=所見所聞74F 10/18 15:58
→ Satoman: 我只能教蘋果是一團紅色,上面可能有些綠綠的球體75F 10/18 15:58
→ Satoman: 但是正常人腦可以非常清楚的理解蘋果是什麼東西77F 10/18 15:58
→ a05150707: AI只能畫出你教他的蘋果 沒辦法畫出立體派的蘋果78F 10/18 15:59
→ Satoman: 對啊,但是他分不清楚珊瑚和桔梗的瀏海,所以拼在一起了79F 10/18 15:59
推 vsepr55: 人的圖形辨識強多了好嗎
跟AI一樣爛早就全家死光光了==80F 10/18 15:59
→ lifehunter: 他就AI 怎麼可能像正常人腦~
他如果像正常人腦早就出事了www82F 10/18 15:59
→ Satoman: 對啊,本來就不同的東西有人硬要把人腦扯下來84F 10/18 15:59
→ clothg34569: 這算拼圖那人類畫畫也是在拼了啊..
誰家拼圖這樣拼的85F 10/18 16:00
→ Satoman: 你看,又一個人腦 ==
那你解釋看看珊瑚和桔梗的瀏海被融合在一起為何不算拼圖87F 10/18 16:00
推 Amulet1: 你所謂的理解是什麼
你看過蘋果的樣子 摸過蘋果 還是吃過蘋果89F 10/18 16:01
→ Satoman: 人類看到蘋果會很清楚這是個擺在桌子上的球體91F 10/18 16:02
→ Amulet1: 融合在一起你可以理解成AI看錯 人味一下子就多了起來93F 10/18 16:02
→ Satoman: 但是AI只會知道這團紅色的東西生成時旁邊要搭上一團東西94F 10/18 16:02
→ lifehunter: 你拿荔枝跟小孩說這也是蘋果 他當然就畫出奇怪東西95F 10/18 16:02
→ Satoman: 那又是另一個不同的概念,你教小孩荔枝是蘋果,那他如果97F 10/18 16:03
→ Satoman: 沒有被糾正他永遠都會覺得這種水果叫荔枝99F 10/18 16:04
→ tuoliiii: 請定義拼圖
最基本的擴散模型訓練原理就是透過讓模型從一張依比例混合高斯噪點和訓練集影像的輸入,去預測高斯噪點,來達到學習訓練集影像分布的目的
stable diffusion透過學習語言標籤和影像間的跨模態關聯性,來讓你的模型可以依提詞為條件吐出相對應的輸出
準確來說,擴散模型是透過降噪過程來捕捉訓練資料的分布,並透過從一個潛空間取樣(就是你的seed),來做到隨機生圖的目的
所以,實際上的命題是,逼近一個複雜分布並從中取樣是否等於拼圖。而我覺得人腦學習繪圖的過程也很像是學習一個分布,譬如我看完了犬夜叉動畫,然後翻出幾張桔梗的截圖、參考她的形貌,並在不描圖的前提下畫出一張桔梗。這當然不能算是拼圖了,個人淺見526F 10/19 00:48
--