→ h0103661: 2024怎麼還有人雲ai是拼圖10/17 19:04
→ FoxWu930065: 原理就不是拼圖啊 還是你指的切是random crop10/17 19:16
→ protoss97: 原理不是拼圖 如果只是拼圖這種東西 各大廠就不會搞軍10/17 19:18
→ 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把它認知的概念拼起來。
大概就醬。