本期夏令营AIGC方向是通过参加可图Kolors-LoRA风格故事挑战赛https://tianchi.aliyun.com/competition/entrance/532254,学习并实践文生图AIGC、工作流搭建、LoRA微调等技术。
赛题内容
根据夏令营学习目标和赛题要求,我们必然要了解一些关于文生图的信息。
文生图
文生图的发展历程大致分为四个阶段,早期探索--基于统计模型的方法--深度学习的崛起--大规模预训练模型。其中的深度学习崛起时期是文生图技术发展的一个重要转折点。
在文生图实践中,提示词、lora、ComfyUI和参考图控制是四个必须掌握的知识点。task1的实验中,就需要准确提供提示词,提示词越细致准确,生成的图片越能贴近用户心中所想。
根据我提供的提示词,正向和反向的,生成了两张图片。
但很显然,仅凭几个提示词并无法生成最满意的图像,有时候甚至会生成一些奇奇怪怪的东西,比如这只鸭里鸭气的残疾乌龟、、、
所以想要文生图达到预想的效果,还需要参考图控制等操作,帮助“人工智障”更好理解要求,完成工作。
实验内容
搭建好PAI实验环境后,直接开始实验。
第一步,下载baseline文件。复制粘贴代码,等待下载,这一步简单粗暴。
git lfs install
git clone https://www.modelscope.cn/datasets/maochase/kolors.git
第二步,进入baseline文件,安装好环境,重启kernel。
安装 Data-Juicer 和 DiffSynth-Studio
Data-Juicer:数据处理和转换工具,旨在简化数据的提取、转换和加载过程
DiffSynth-Studio:高效微调训练大模型工具
注意,这一步虽然也只需要点击几个按钮,但一定要确认资源下载完成,不然后续操作会一直报错。我就是因为这里不够细致,导致第一次实验一直不成功,于是重新创建实例又操作了一次。第二次实验的时候,才发现了问题所在。
第三步,调整prompt,设置想要的图片风格,修改正向和反向描述词。
第四步,依次运行剩余代码块,得到生成的图片。
后面几步没什么技术含量,只要描述贴切,基本问题不大。第一次我发现提示词过长,导致它无法正确解读,把几个提示词混淆在一起,“印有小黄鸭的项圈”、“小乌龟”,结果得到了一直鸭里鸭气的小乌龟。于是第二次我直接去掉了项圈和小乌龟,得到了一张正常的图片。
了解baseline代码
baseline代码主体分为四个步骤:安装环境、下载数据集、处理数据集、训练模型。其中训练模型又包括LoRA微调、加载微调好的模型以及生成图像。
以下四点也是baseline主要完成的功能。
-
导入库:首先,代码导入了需要用到的库,包括 data-juicer 和微调的工具 DiffSynth-Studio
-
数据集构建:下载数据集kolors,处理数据集
-
模型微调:模型微调训练,以及加载训练后的模型
-
图片生成:调用训练好的模型生成图片