Task2:精读代码,实战进阶
利用AI解读baseline
通过向通义千问进行提问,一步步引导AI向我们解释代码的具体逻辑,AI的回答如下:
安装依赖
首先,您安装了一系列的Python包,包括
simple-aesthetics-predictor
,data-juicer
,pytorch-lightning
,peft
,lightning
,pandas
, 和torchvision
,以及DiffSynth-Studio
。其中data-juicer
是用来进行数据预处理的工具,而DiffSynth-Studio
则是用来训练 LoRA 模型的框架。数据集准备
接下来,您从 ModelScope 下载了一个名为
AI-ModelScope/lowres_anime
的低分辨率动漫数据集,并将其保存到了/mnt/workspace/kolors/data
目录下。生成数据集
您创建了一个名为
./data/lora_dataset/train
的文件夹,并将数据集中的每一张图片保存到该文件夹下。同时,您还创建了一个metadata.jsonl
文件,用于记录每张图片的路径和对应的描述信息。数据筛选过滤
使用
data-juicer
对原始数据集进行了筛选和过滤,确保所有图片的宽度和高度都至少为 1024 像素,并且长宽比介于 0.5 和 2.0 之间。经过筛选后的数据被保存到了./data/data-juicer/output/result.jsonl
文件中。生成处理过的数据集
您基于
data-juicer
筛选出的图片生成了一个新的数据集,并保存到了./data/lora_dataset_processed/train
文件夹中。此外,还创建了一个metadata.csv
文件,记录了每张图片的文件名和对应的描述信息。下载预训练模型
您下载了
Kolors
和SDXL-vae-fp16-fix
模型,这些模型将用于后续的 LoRA 训练。训练 LoRA 模型
使用
DiffSynth-Studio
提供的训练脚本train_kolors_lora.py
来训练 LoRA 模型。训练过程中指定了预训练模型路径、LoRA 参数、数据集路径、输出路径等,并设置了一些训练选项如精度、最大训练轮数等。加载微调后的模型
您加载了经过 LoRA 微调的模型,并将其注入到
SDXLImagePipeline
中,以便生成图像。生成图像
最后,您使用了定义好的提示词(prompt)来生成一幅二次元风格的图像,并保存为
1.jpg
。图像拼接
您尝试将八张图像拼接成一张大图,但是代码中只生成了一张图像
1.jpg
,所以实际上无法完成拼接操作。请注意,上述代码中有一些可能的问题点:
LoRA 训练脚本: 脚本执行的命令
os.system(cmd)
只能输出命令执行的结果,不会显示实际的训练进度或输出。为了更好地监控训练过程,建议直接运行 Python 脚本而不是通过os.system
。LoRA 模型加载: 在加载 LoRA 模型时,您使用了一个特定的路径
"models/lightning_logs/version_0/checkpoints/epoch=0-step=500.ckpt"
,这意味着您需要确保这个路径是正确的,并且确实存在训练好的 LoRA 模型。图像拼接: 您的代码试图拼接八张图像,但实际上只有一张图像被生成。因此,这部分代码没有实际作用。
这个回答介绍的代码的总体逻辑,从安装的必要库开始,逐步介绍了如何准备数据集、筛选数据、训练LoRA模型,以及如何生成和处理图像。除此之外,他还指出了代码在运行过程中可能会出现的一些问题点,并且提出合理的修改建议,有利于学习者更好的了解这份代码的具体逻辑。
基于话剧的连环画制作
利用AI,向其提问以获得一个文生图话剧
你是一个文生图专家,我们现在要做一个实战项目,就是要编排一个文生图话剧
话剧由8张场景图片生成,你需要输出每张图片的生图提示词
具体的场景图片
1、女主正在上课
2、开始睡着了
3、进入梦乡,梦到自己站在路旁
4、王子骑马而来
5、两人相谈甚欢
6、一起坐在马背上
7、下课了,梦醒了
8、又回到了学习生活中
生图提示词要求
1、风格为古风
2、根据场景确定是使用全身还是上半身
3、人物描述
4、场景描述
5、做啥事情
例子:
古风,水墨画,一个黑色长发少女,坐在教室里,盯着黑板,深思,上半身,红色长裙
通过一些自定义的修改(如中国风、现代风等),不断像AI提问改进,获得一个自己满意的文生图话剧,最终的话剧文案如下:
现代风,清新校园,一个文静的中国女学生,坐在明亮的教室里,专注地看着黑板,上半身,穿着整齐的白色校服,手中拿着笔记本,沉浸在学习的氛围中。
现代风,温馨午后,这位中国女学生头轻轻靠在书桌上,上半身,穿着舒适的校服,周围是轻轻翻书的声音,她已经悄然入睡。
现代风,梦幻旅途,这位中国女学生站在繁忙的街道旁,全身,穿着休闲的牛仔裤和T恤,手中拿着一杯咖啡,眼神中透露出对未来的憧憬。
现代风,豪车邂逅,一位风度翩翩的中国绅士驾驶着豪车而来,全身,穿着精致的西装,与女学生的目光相遇,两人似乎有着不言而喻的默契。
现代风,咖啡馆对话,这位中国女学生和绅士坐在咖啡馆的窗边,上半身,她手中拿着一本书,绅士则专注地听着她讲述,两人的交流充满了愉悦和轻松。
现代风,城市漫游,这位中国女学生与绅士一同在豪车中穿梭于城市的街道,全身,她穿着优雅的连衣裙,两人享受着城市的繁华与宁静。
现代风,梦醒时分,这位中国女学生从梦中醒来,上半身,穿着简单的T恤,脸上带着微笑,似乎对刚才的梦境感到满足。
现代风,回归日常,这位中国女学生回到书桌前,全身,穿着休闲的家居服,手中拿着笔,继续她的学习生活,眼中闪烁着对知识的渴望。
利用baseline的代码生成相对应的图片,展示成果:
这八张图片都是较为符合描述的,接下来我们看一下这组图片的美学评分。
运行代码可知,这组图片的美学评分为6.37,是大于比赛官方要求的分数(6分)的。这样的结果表明,我们的模型在生成符合描述的图片方面表现良好,可以说是相当成功的。这表明模型能够理解并准确地将文本描述转化为视觉图像,且生成的图片在审美上得到了认可。
浅尝scepter webui
以话剧图片一的描述为例,尝试利用scepter webui生成图片,图片如下:
图片显示的是一个穿着白色上衣、长发披肩的女性,背景模糊,给人一种宁静的感觉。然而,图片内容并不完全符合所给的文字描述。文字描述中提到的是一个“文静的中国女学生”,坐在明亮的教室里,专注地看着黑板,上半身穿着整齐的校服,手中拿着笔记本。图片中的女性虽然符合“文静”的特征,但她并没有坐在教室里,也没有看着黑板,也没有拿着笔记本。因此,可以说这张图片并不符合文字描述的内容。