文章目录
-
- 概要
- 整体架构流程
- 细节与问题解决
- 文生图术语介绍
- 说在最后
概要
从零入门AI生图原理&实践 是 Datawhale 2024 年 AI 夏令营第四期的学习活动(“AIGC”方向),基于魔搭社区“可图Kolors-LoRA风格故事挑战赛”开展的实践学习——
- 适合想 入门并实践 AIGC文生图、工作流搭建、LoRA微调 的学习者参与
学习内容提要:从通过代码实现AI文生图逐渐进阶,教程偏重图像工作流、微调、图像优化等思路,最后会简单介绍AIGC应用方向、数字人技术(选学)
赛题解读
可图Kolors-LoRA风格故事挑战赛
赛事链接
https://tianchi.aliyun.com/s/ce4dc8bf800db1e58d51263ff357d28f
1. 参赛者需在可图Kolors 模型的基础上训练LoRA 模型,生成无限风格,如水墨画风格、水彩风格、赛博朋克风格、日漫风格......
2. 基于LoRA模型生成 8 张图片组成连贯故事,故事内容可自定义;基于8图故事,评估LoRA风格的美感度及连贯性
样例:偶像少女养成日记
整体架构流程
Step0:开通阿里云PAI-DSW试用
链接:https://free.aliyun.com/?productCode=learn
开通PAI-DSW 试用 ,可获得 5000算力时!有效期3个月!
如果已经开通试用或试用已过期,可以跳过此步骤,使用魔搭免费GPU额度或寻找其他的算力方案
- 注意多模态数据合成方向无法通过魔搭免费GPU执行
- 在魔搭社区进行授权
链接:https://www.modelscope.cn/my/mynotebook/authorization
如果这一步授权失败,可跳过此步骤,继续往下进行
- 新用户需要先注册 & 绑定阿里云账号
Step1:报名赛事!
赛事链接:https://tianchi.aliyun.com/competition/entrance/532254
点击报名比赛,即可报名成功
Step2: 创建实例
链接:https://www.modelscope.cn/my/mynotebook/authorization
创建实例,启动!
如果在上一步授权失败,可到阿里云控制台创建 & 打开实例,具体步骤详见下方子步骤
Step3:30 分钟体验一站式 baseline!
1. 下载baseline文件(大约需要2分钟)
复制这段代码
git lfs install
git clone https://www.modelscope.cn/datasets/maochase/kolors.git
2. 进入文件夹,打开baseline文件
3. 安装环境,然后重启kernel
安装 Data-Juicer 和 DiffSynth-Studio
Data-Juicer:数据处理和转换工具,旨在简化数据的提取、转换和加载过程
DiffSynth-Studio:高效微调训练大模型工具
4. 调整prompt,设置你想要的图片风格,依次修改8张图片的描述(可选)
正向描述词:你想要生成的图片应该包含的内容
反向提示词:你不希望生成的图片的内容
5. 依次顺序运行剩余的代码块,点击代码框左上角执行按钮,最终获得图片(大约需要20分钟)
下面的代码块按照功能主要分成这几类
1. 使用Data-Juicer处理数据,整理训练数据文件
2. 使用DiffSynth-Studio在基础模型上,使用前面整理好的数据文件进行训练微调
3. 加载训练微调后的模型
4. 使用微调后的模型,生成用户指定的prompt提示词的图片
Step4:微调结果上传魔搭
链接:https://www.modelscope.cn/models/create
1. 移动结果文件
创建terminal,粘贴如下命令,回车执行
mkdir /mnt/workspace/kolors/output & cd
cp /mnt/workspace/kolors/models/lightning_logs/version_0/checkpoints/epoch\=0-step\=500.ckpt /mnt/workspace/kolors/output/
cp /mnt/workspace/kolors/1.jpg /mnt/workspace/kolors/output/
2.下载结果文件
3. 创建并上传模型所需内容
点击魔搭链接,创建模型,中文名称建议格式:队伍名称-可图Kolors训练-xxxxxx
关闭PAI实例!!
链接:https://www.modelscope.cn/my/mynotebook/authorization
运行完成后,别忘了回到魔搭,【关闭】实例,否则会一直消耗你的试用额度!
每小时消耗大概7个试用额度!(总共5000个,有效期三个月)
🎉 恭喜你生成了自己的第一个图片!
细节与问题解决
在训练模型板块,我经常遇到以下报错:
无论是重新搭建环境,还是重新开启示例,或是重新运行,每次到这都会显示错误。
解决方法:
1.查看一下这个路径下是否有对应文件,有可能是训练完的模型没保存下来或者路径错了。
2.可以找找这个文件是在哪个环节获取的。找不到也可以重新建一个。
学友解答:
在上一步训练完之后version_0/checkpoints/epoch=0-step=500.ckpt会有这个文件,有可能是第一次训练出问题了,导致version_0/checkpoints/epoch=0-step=500.ckpt没有保存,可以看看models/lightning_logs目录下有没有version_1,version_2等其类名文件夹,看这些目录下有没有训练好的epoch=0-step=500.ckpt
最后:重开一个实例,重新下载运行,成功找到报错提醒的缺失文件,问题顺利解决啦!
文生图术语介绍
AIGC(Artificial Intelligence Generated Content,人工智能生成内容)涉及许多技术概念和术语,主要包括以下几个方面:
1. **生成模型(Generative Models)**
- **生成对抗网络(GANs, Generative Adversarial Networks)**:一种通过两个神经网络(生成器和判别器)对抗训练的模型,用于生成逼真的图像、音频或文本。
- **变分自编码器(VAEs, Variational Autoencoders)**:一种生成模型,通过学习数据的潜在分布来生成新样本,通常用于图像生成和数据降维。
- **扩散模型(Diffusion Models)**:一种通过逐步去噪的过程生成图像的方法,能够生成高质量的视觉内容。
2. **自然语言处理(NLP, Natural Language Processing)**
- **语言模型(Language Models)**:用于生成或理解文本的模型,例如GPT(Generative Pre-trained Transformer),通过训练大量文本数据来理解和生成自然语言。
- **预训练和微调(Pre-training and Fine-tuning)**:预训练模型在大量通用数据上进行训练,微调模型则是在特定任务或数据集上进行进一步训练,以提高在特定任务上的表现。
3. **文本到图像生成(Text-to-Image Generation)**
- **文本描述(Text Descriptions)**:用自然语言描述生成图像的内容,模型根据这些描述生成相应的图像。
- **条件生成(Conditional Generation)**:生成图像时,模型根据输入的条件(如文本描述或其他数据)来生成相关内容。
4. **图像到图像转换(Image-to-Image Translation)**
- **风格迁移(Style Transfer)**:将一种图像的风格应用到另一种图像上,如将一张照片转换为艺术风格的画作。
- **图像修复(Image Inpainting)**:填补图像中的缺失部分或修复图像中的损坏区域。
5. **自监督学习(Self-Supervised Learning)**
- **对比学习(Contrastive Learning)**:通过比较相似和不相似的样本来学习特征,使得模型能够从无标签数据中获取有用的信息。
- **掩码模型(Masked Models)**:例如在文本生成中,模型会掩盖一些输入词,并通过预测这些被掩盖的词来进行训练。
6. **控制和调节(Control and Conditioning)**
- **多模态生成(Multimodal Generation)**:生成模型能够结合多种输入模式(如文本和图像),实现更复杂的内容生成。
- **用户控制(User Control)**:允许用户通过输入特定的指令或条件来控制生成内容的风格、内容或其他特征。
这些术语和技术共同推动了AIGC领域的发展,使得生成内容的质量和多样性不断提升。
说在最后
在这个学习与试运行的过程中,发现问题,理解问题,解决问题,很有成就感,也真心感谢助教老师与学友的热心帮助,收获成长了很多!
快来试试创建自己的第一个AIGC文生图吧!