作为AIGC领域的一位普通的爱好者,我参加了DataWhale的学习营并参与了可图Kolors-LoRA风格故事挑战赛,最终获得了二等奖的成绩。怀着激动的心情,整理了一下我的比赛过程,如下~
01.关于比赛
本次LoRA挑战赛主要要求是用文生图技术绘制出一幅幅图片,来讲述一个完整的故事。
初赛要求如下:
1、参赛者需在可图Kolors 模型的基础上训练LoRA 模型,生成无限风格,如水墨画风格、水彩风格、赛博朋克风格、日漫风格......
2、基于LoRA模型生成 8 张图片组成连贯故事,故事内容可自定义;基于8图故事,评估LoRA风格的美感度及连贯性
下面是我的初赛作品,主要讲述了一个武士的复仇之路:
02.基础知识&准备
文生图基础知识介绍:
文生图主要以SD系列基础模型为主,以及在其基础上微调的lora模型和人物基础模型等。
提示词:很重要,一般写法:主体描述,细节描述,修饰词,艺术风格,艺术家。
LoRA:Stable Diffusion中的Lora(LoRA)模型是一种轻量级的微调方法,它代表了“Low-Rank Adaptation”,即低秩适应。Lora不是指单一的具体模型,而是指一类通过特定微调技术应用于基础模型的扩展应用。在Stable Diffusion这一文本到图像合成模型的框架下,Lora被用来对预训练好的大模型进行针对性优化,以实现对特定主题、风格或任务的精细化控制。
ComfyUI:一个工作流工具,主要用于简化和优化 AI 模型的配置和训练过程。通过直观的界面和集成的功能,用户可以轻松地进行模型微调、数据预处理、图像生成等任务,从而提高工作效率和生成效果。
ControlNet:一种用于精确控制图像生成过程的技术组件。它是一个附加到预训练的扩散模型(如Stable Diffusion模型)上的可训练神经网络模块。扩散模型通常用于从随机噪声逐渐生成图像的过程,而ControlNet的作用在于引入额外的控制信号,使得用户能够更具体地指导图像生成的各个方面(如姿势关键点、分割图、深度图、颜色等)
此外本次比赛还用到一些常用的工具:
Data-Juicer:数据处理和转换工具,旨在简化数据的提取、转换和加载过程
DiffSynth-Studio:高效微调训练大模型工具
本次比赛的平台我是利用魔搭社区的个人云账号授权实例,镜像版本:modelscope:1.17.0-pytorch2.3.0tensorflow2.16.1-gpu-py310-cu121-ubuntu22.04。总体来说使用下来几乎没什么问题。
打开实例后进入notebook,在baseline中有详细的问生图流程,基本而言可以一键生成,如果只是想体验文生图的过程,只需要修改这里的prompt:
03.决赛过程
首先来看一下决赛命题:
https://www.modelscope.cn/brand/view/Kolors?branch=0&tree=0
随着黑神话悟空的热度不减,本人作为游戏迷自然也是想到做西游相关的故事,最终我是结合之前看皮影戏的经历,决定做西游中三打白骨精的剧情,并融合皮影戏的元素。
皮影戏之所以让人着迷,本质还是要表现出人物最本质的特征,让观众能够看得懂是什么,在干什么。所以角色的形象和动作都要很鲜明。把握角色形象也就是要自制数据集训练LoRA模型,动作特征则决定了要利用ControlNet来控制人物的动作。
计划成立!开始行动!
原来的数据集存放在实例的kolors/data/lora_dataset/train文件夹下,可以看到初始的训练集中都是动漫风格,我们替换为自己期望的风格素材。有关皮影戏的图片我主要是通过其他AI生图软件生成符合自己需求的图片,再通过裁剪旋转等方式扩充数据集。最后效果如下:
此外进行模型训练参数的调整,这里举一些例子:
Baseline中还对数据集利用了DataJuicer,它像是榨汁机一样,将复杂的数据原料转化为易于“吸收”的精华。感兴趣的读者可以自行了解。
后面也了解到有些大佬用的github上的kolors训练脚本,感觉也比较方便,这里贴一下链接:https://github.com/lrzjason/T2ITrainer/tree/main
然后就是利用ControlNet进行动作特征的控制,由于kolors我没有找到配套的ControlNet,这里我是在SD中完成的~简单来说就是根据上传的照片提取骨骼,再根据骨骼特征+特征词生成对应的照片,以下图为例:
至此人物就基本上完成了,但是白色背景未免有些单调,这时候应该选择什么样的背景呢?(这也是答辩过程中老师提的问题)最开始我想到的是颇具国风色彩的水墨画,但是实际应用后发现水墨画简约大气,与人物鲜艳复杂的衣服格格不入,于是我想到利用山水画。山水画和皮影戏都兼具了美观、简约与细节刻画,最后也是有不错的效果。
最后就是我的最终作品啦!
1.师徒四人西天取经,前方峰峦叠嶂,草木丛生。
2.白骨精摇身一变,变做个月貌花容的女儿,说不尽那眉清目秀,齿白唇红,手提一个花篮子。
3.悟空朝妖精劈脸一棒,打死了妖精的替身,妖精则灵魂出窍逃走了。
4.不过一会,山坡上闪出一个年满八旬的老妇人,老妇人佝偻着腰,一步一声地哭着走来,寻找自己的“女儿”。孙悟空勾手远眺,使出火眼金睛,识破了妖精的诡计。
5.孙悟空拦在妖精面前,唐僧肉眼凡胎不识妖精计谋,想要伸手阻止孙悟空滥杀无辜。
6.孙悟空打死老妇人,唐僧怪孙悟空行凶,念紧箍咒劝诫孙悟空。
7.白骨精再次变成老爷爷,孙悟空趁唐僧不注意,一棒打死白骨精。
8.白骨精原形毕露,化成一堆白骨,师徒四人围在妖精身边,恍然大悟。
04.心得
很感谢阿里魔搭社区、datawhale和快手提供的比赛平台与支持,也让我在AIGC领域有了更多的认识与收获。比赛一路走来也认识了很多大佬,也感谢大佬们的帮助。
这里也安利一下伟大的DataWhale社区,Datawhale的Github链接:https://github.com/datawhalechina
AI看似很复杂,但是已经逐渐融入了我们的生活,我们可能预料不到AI究竟会发展成什么样,但是它将发展并且已经成为我们的工具。如何更好的发展AI并且应用于我们的生活,降低使用门槛,我们作为学生也可以出一份力。从了解到利用,从学习到延申,我们也有自己的“深度学习”。
That’s all!
点击阅读链接查看更多作品:https://modelscope.cn/brand/view/Kolors