背景
从零入门AI生图原理&实践 是 Datawhale 2024 年 AI 夏令营第四期的学习活动("AIGC"方向),基于魔搭社区"可图Kolors-LoRA风格故事挑战赛"开展的实践学习------
- 适合想 入门并实践 AIGC文生图、工作流搭建、LoRA微调 的学习者参与
学习内容提要:从文生图实现方案逐渐进阶,教程偏重图像工作流、微调、图像优化等思路,最后会简单介绍AIGC应用方向、数字人技术(选学)
学习笔记
通义千问
通义千问的介绍:通义千问是具有信息查询、语言理解、文本创作等多能力的AI助手。编程与技术支持能力是它的强项之一。
精读baseline
这段代码主要完成以下几个工作流程:
1. **环境准备**:
- 安装所需的Python包,例如`simple-aesthetics-predictor`, `data-juicer`, `peft`, `lightning`, `pandas`, `torchvision`等。
- 卸载并重新安装某些特定版本的包,例如卸载`pytorch-lightning`再安装其他依赖。
2. **数据集加载与预处理**:
- 加载名为`AI-ModelScope/lowres_anime`的数据集,并提取其中的图像数据。
- 将图像数据保存至磁盘,并创建一个包含图像路径和对应的文本标签(这里是统一标记为"二次元")的元数据文件`metadata.jsonl`。
3. **数据清洗与过滤**:
- 创建一个配置文件`data_juicer_config.yaml`,定义数据清洗的规则,包括图像尺寸过滤和宽高比过滤。
- 使用`data-juicer`工具对数据集进行处理,输出过滤后的结果到`result.jsonl`文件。
4. **数据集整理与特征提取**:
- 读取经过清洗的数据集,将其整理成DataFrame格式,并保存为CSV文件`result.csv`。
- 使用CLIP模型提取图像和文本的嵌入向量,并计算它们之间的相似度分数。
5. **构建PyTorch数据集**:
- 创建一个自定义的PyTorch数据集类`CustomDataset`,用于加载图像和文本数据。
- 使用该数据集类创建一个数据加载器`DataLoader`,以便于后续训练使用。
6. **图像生成**:
- 使用`StableDiffusionPipeline`模型根据不同的提示(prompt)生成一系列二次元风格的图像,并保存至磁盘。
- 将生成的图像拼接在一起形成一个大的图像,并调整其尺寸。
下面是每个部分更详细的解释:
### 环境准备
这部分负责确保所有必要的Python包都已正确安装。
### 数据集加载与预处理
这部分从`MsDataset`加载数据集,并对图像进行基本处理,如转换颜色模式和保存至磁盘。同时,为每个图像创建一个包含路径和标签的元数据条目。
### 数据清洗与过滤
这部分定义了一个配置文件来指定数据清洗的标准,并调用`data-juicer`工具来执行这些操作。
### 数据集整理与特征提取
这部分将处理后的数据集整理成易于使用的格式,并利用CLIP模型计算图像和文本的相似度。
### 构建PyTorch数据集
这部分创建了一个PyTorch数据集类,用于方便地加载和预处理数据,以及创建数据加载器。
### 图像生成
这部分使用`StableDiffusionPipeline`根据给定的提示生成图像,并将多个图像拼接起来形成最终的输出。
整个脚本的工作流程是从数据集的加载和预处理开始,然后进行数据清洗,接着是特征提取和数据集构建,最后使用生成模型根据提示生成新的图像。
通义千问返回Prompt
好的,根据您的要求,我为您编写了一套适用于每个场景的生图提示词。以下是每个场景的详细描述:
-
女主正在上课
- 古风,淡墨勾勒,一位身穿青色长裙、束着高髻的少女,坐在书案前,专注地听着先生讲解,上半身特写,桌上散落着竹简和毛笔。
-
开始睡着了
- 古风,轻柔笔触,那位少女头轻轻侧向一边,手肘支在书案上,手中还握着毛笔,似乎是在听课时不知不觉进入了梦乡,上半身特写,背景是安静的学堂。
-
进入梦乡,梦到自己站在路旁
- 古风,细腻水彩,少女穿着蓝色衣裙,站在一条幽静的石板小径旁,周围是葱郁的竹林与盛开的桃花,她眺望着远方,全身特写。
-
王子骑马而来
- 古风,线条流畅,一位英俊少年骑着一匹骏马缓缓而来,他身穿金色铠甲,头戴玉冠,目光温柔地看着少女,背景是宽阔的平原和远处的山峦,全身特写。
-
两人相谈甚欢
- 古风,温暖色调,少女与少年并肩站立,彼此交谈,眼神中流露出笑意,背景是一片花海,花瓣随风飘落,上半身特写。
-
一起坐在马背上
- 古风,动感画面,少女与少年共乘一骑,马儿正穿过一片森林,少女依偎在少年身后,双手环抱着他的腰,全身特写。
-
下课了,梦醒了
- 古风,细腻笔触,少女从梦中醒来,手按住额头,似乎还在回味梦境,周围的同学都已离开,上半身特写,背景是空荡荡的学堂。
-
又回到了学习生活中
- 古风,淡雅色彩,少女重新坐回书案前,手持毛笔认真书写,旁边放着几本古籍,上半身特写,学堂内还有其他学子的身影忙碌着。
这些描述可以作为生成图像的基础。如果您需要进一步调整或者有其他具体要求,请随时告诉我!
这是第一张场景的图像:"女主正在上课"。
接下来我会继续生成其余的场景图像。请确认这张是否符合预期,如果没有问题,我们将继续下一个场景。
这是第二张场景的图像:"开始睡着了"。
现在让我们继续生成下一个场景。
这是第三张场景的图像:"进入梦乡,梦到自己站在路旁"。
接下来我们生成第四张场景的图像。
这是第四张场景的图像:"王子骑马而来"。
现在让我们继续生成第五张场景的图像。
遇到问题&解决方案
1、阿里云PAI实例莫名被关闭移除,导致要重新创建实例和运行Baseline;
2、尝试本地部署训练模型和了解scepter webui相关知识。