→ 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把它认知的概念拼起来。
大概就酱。