【Datawhale AI夏令营第四期】魔搭-AIGC方向 八图故事挑战赛
赛事介绍:
官方给的赛事任务:
- 参赛者需在可图Kolors 模型的基础上训练LoRA 模型,生成无限风格,如水墨画风格、水彩风格、赛博朋克风格、日漫风格…
- 基于LoRA模型生成 8 张图片组成连贯故事,故事内容可自定义;基于8图故事,评估LoRA风格的美感度及连贯性
样例:偶像少女养成日记
官方给的案例:
这也是参加AIGC方向夏令营的Task1主要内容,用这个来练手:
参赛网址:
https://modelscope.cn/brand/view/Kolors?branch=0&tree=0
传送门
规则挺简单的,微调模型,生成八张图,做一个完整的故事。
好巧不巧,我参加这个夏令营的时候,手上这正好有个很适合做八图故事的剧本:
别看这个剧本很简单还很幼稚和理想主义,这背后可是一个i人挑战自己的血泪史!
以前年少无知,在自己五线不识五音不全的情况下斗胆报名了一个校内音乐剧工作坊体验课,发现场内好多人有经验也就罢了, 关键是老师就让我们随机组队编排音乐剧,命题就是新编《龟兔赛跑》,给我们45分钟头脑风暴然后现场编剧编舞表演(因为是在香港所以要求是粤语剧,不过我们组很多人不会粤语最后选的英语表演)。
要知道我们当时组内选的剧本是《兔子跑一半突然良心发现觉得当卷王没意思,要合作共赢和谐文明友善,于是折返回去跟乌龟手牵手一起到达了终点》……
这个剧本已经够尴尬的了,更尴尬的是我们那组草台班子的演技和教室里逼仄的表演场地:我当时扮演的是乌龟,按道理我应该慢慢一直走,等兔子回来拉我,但其实是教室太小了旁白还没念完我都快穿进墙了……然后我和扮演兔子的同学就一直在那绕圈圈,等着我们漫长的旁白和解说结束。
后面我回家说起这件事,谁听谁尴尬,直到后面我的一位家人突发奇想给我提供了这个新剧本的灵感,我感觉这个版本很适合拆分为八图故事,就打算在这个夏令营期间试试,算是一边学习一边给当时音乐剧工作坊手足无措的自己一点找补吧(笑死)。
创作过程:
在跑完整个BaseLine流程以后,我决定先自己改提示词看看效果。
然后我就发现了一个难点所在——我这个剧本很难描述给AI。
比如说“小龟明知兔子是在羞辱自己,还是选择参赛”,那么该怎样让AI展示出“明知是在羞辱自己”到“我不怕你来就来!”这样的心理?
这跟示例那个故事的很大区别是:示例给的故事很适合用外貌描写来写提示词,比如淡黄的长裙、蓬松的头发 啥的。
但我这个龟兔赛跑……更多的是心理描写和神态描写,这就很难传达给AI我想要的效果,这也是过去我自己在使用AI绘画时,有时候觉得“感觉不对,这不是我想要的”的原因——没有感情,全是技巧。
所以在写提示词的时候,我真的很有种一跑代码全是BUG最后发现是环境冲突还无法解决的无力感——我该怎么跟AI描述《故意》、《明知》、《心存侥幸》、《悔不当初》呢?
我选择的是根据字面意思把角色的心情翻译出来,再转化成表情描写,就像看着漫画图片来看图写话一样,比如把“故意”写成动作和表情上的“骄傲得意”。
那么这个AI的生成效果怎么样呢?
其实还可以,但看不出是赛跑。
下面是我目前比较喜欢的一张:
但也不免会出现这样的奇葩……
我发现秘诀是【不要把兔子和乌龟这俩关键词放在一句话里】,不然AI分不清谁是主体。
漫长的调提示词&改BUG过程:
就在我命令AI重新生成改头换面脱胎换骨卷土重来重新做人的时候,我又遇到了之前就发现的一个问题——每次AI生成的图片出人意料的稳定?!
人话:只要不改提示词,每次生成的图都一模一样,哪怕改了随机种子,也是一模一样。
对于这点我真的很好奇,因为以前试用AI绘画软件的经验告诉我:哪怕是一模一样的提示词,每次生成的图都不同(效果也不稳定,哈哈),跑两次生成出完全一样的图可能性几乎为0。
但为什么这能够实现重复出图呢?这很和我的认知常理不符合啊!
经过读代码+问Kimi,终于知道了同一提示词每次生成不同图片的奥秘——删掉随机种子这一行或者换个写法。
抛开以上问题不谈,这个给的参赛数据集实在是有亿点点一言难尽:一言以蔽之:各画各的,甚至里面还有AI生成的图,是的,自产自销,AI训AI。
我希望能通过Lora的方式,以修改数据集的形式微调一下模型,让它的风格能更稳定,然后我就开始全网搜索合适的数据集:
很高兴的是我在B站上发现了一个整合帖:
1.《动漫相关的数据集有哪些?》:
https://www.bilibili.com/read/cv25821479/
传送门
2.这个帖子里面介绍的第一个Github链接里就有不少动漫数据集:不过这里信息量有点太大了,还没有缩略图预览,我一下子很难找到有用的信息。
AwesomeAnimeResearch
https://github.com/SerialLain3170/AwesomeAnimeResearch
传送门
3.还有这次举办活动的魔搭社区的数据集:
https://modelscope.cn/datasets/iic/style_custom_dataset/file/view/master?fileName=README.md&id=4096&status=1
传送门
4.有几个帖子都在推荐的Dreambooth数据集:
https://github.com/google/dreambooth
传送门
5.这还发现一个帖子在评测文生图模型,我没来得及细看,粗略扫一眼觉得还不错,这些测评的思路方法可以借鉴:
《ImageEval 评测数据集开源,力求细粒度综合评测文生图模型》:
https://zhuanlan.zhihu.com/p/627236817
添加链接描述
6.然后还搜了一个关于这个老出Bug的data_juicer库的简介:
《探索数据处理的新境界:Data-Juicer——大模型的数据烹饪大师》:
https://blog.csdn.net/gitblog_00054/article/details/139570251
传送门
7.以及data_juicer的Github链接:
https://github.com/modelscope/data-juicer/tree/main
传送门
这个data_juicer库在云端跑都容易莫名其妙地报错找不到module,群里助教给的建议是刷新重启kernel不行的话就重开实例。
八图故事效果:
官网评分代码使用:
参加比赛以后,我还在官网上发现了评分代码。
https://modelscope.cn/brand/view/Kolors?branch=0&tree=0
传送门
研究了一下怎么用:
经过研读代码(详细过程请见Task2部分的笔记),这个得出的结果是平均得分,但是我目前还没查到满分是多少的相关信息,所以也不知道我这个小白初次练手的水平在哪个阶段。总的来说,这次创作体验我玩得还蛮开心的。