从零入门AI生图原理&实践 是 Datawhale 2024 年 AI 夏令营第四期的学习活动(“AIGC”方向),基于魔搭社区“可图Kolors-LoRA风格故事挑战赛”开展的实践学习。
Datawhale官方的速通教程链接:
Datawhale(Task2)
Datawhale(Task3)
下面是根据教程实践的记录(里面一些脚本附不上来,需要感兴趣的小伙伴自行去教程里下载)
Part1:了解文生图工作流平台工具ComfyUI
①ComfyUI含义
它是GUI(图形用户界面Graphical User Interface)的一种,基于节点工作的用户界面,主要用于操作图像的生成技术。它采用模块化设计,将图像生成过程分解成许多小的步骤,每个步骤都是一个节点,这些节点可以连接起来形成一个工作流程,用户可以根据需要定制自己图像的生成过程。下面是B站一个up主的视频链接,讲的非常浅显易懂!1 万字系统剖析ComfyUI | Stable Diffusion:GUI全盘点 | ComfyUI系统性教程原理篇04 | Ai+建筑_哔哩哔哩_bilibili
②ComfyUI核心模块
模型加载器(加载基础的模型文件)、提示词管理器(将文本类型的输入变为模型可以理解的内容作为模型的输入)、采样器(控制模型生成图像,不同采样取值会影响在最终输出图像的质量和多样性)、解码器(将通过提示词管理器转成的模型可以理解的内容解码为像素级别的图像)
SD基本原理:通过降噪方式将一个原本的噪声信号变为无噪声的信号(eg.人可理解的图像)
一些采样系数配置:
seed:控制噪声产生的随机种子
control_after_generate:控制seed在每次生成后的变化
steps:降噪的迭代步数,越多则信号越精准,相对的生成时间也越长
cfg:classifier free guidance决定了prompt对于最终生成图像的影响有多大。更高的值代表更多地展现prompt中的描述。
denoise: 多少内容会被噪声覆盖 sampler_name、scheduler:降噪参数。
③ComfyUI图片生成流程(来自教程里的图片)
该部分内容来自魔搭社区,可自行查看下方链接https://datawhaler.feishu.cn/wiki/QHSTwBPFKiZxqfkA1INc1u4fn0f#part-P5ufdxyIEo1U6ixULfGcQA8bnSf
④ComfyUI优势
模块化和灵活性;可视化界面;多模型支持;调试和优化;开放和可扩展;用户友好性
⑤20min速通安装ComfyUI
前往魔搭社区提供的Notebook体验,启动预计2min,耐心等待~
先在file中创建一个terminal
再下载脚本文件(下载安装ComfyUI的执行文件和task1中微调完成的Lora文件)
git lfs install
git clone 魔搭社区
mv kolors_test_comfyui/* ./
rm -rf kolors_test_comfyui/
mkdir -p /mnt/workspace/models/lightning_logs/version_0/checkpoints/
mv epoch=0-step=500.ckpt /mnt/workspace/models/lightning_logs/version_0/checkpoints/
再双击进入ComfyUI的安装文件,一键执行安装程序(大约10min 可能会更久,耐心等等~)
当执行到最后一个节点的内容会输出一个访问链接,复制该链接到浏览器中(如果链接访问白屏/报错,再等一会重新访问试试,程序可能没有正常启动好)
下面是我点击链接打开的样子(终于打开了,一直没有等到链接出现,多restart就有了)
⑥浅尝ComfyUI工作流
→不带lora的工作流样例
Ⅰ.下载工作流脚本(附不上脚本,大家可以去Datawhale教程里下载)
点击工作流界面右方的load选择脚本下载
Ⅱ.加载模型,完成第一次生图
用之前最早的提示词试了一下,第二张挺喜欢的
→带lora的工作流样例
Ⅰ.下载工作流脚本(同样地,大家去教程里下载)
Ⅱ.生图
由于用的是task1的lora模型 所以生成的图和最初一样
Part2:认识lora微调
①LoRA(Low-Rank Adaptation)
是一种高效的微调技术,主要应用于预训练模型的个性化调整。
②LoRA微调原理
Ⅰ.核心机制:在预训练模型的关键层中添加低秩矩阵。
Ⅱ.参数设计:低秩矩阵具有较低维度的参数空间,允许在不改变模型整体结构的情况下进行微调。
Ⅲ.训练过程:仅更新新增的低秩矩阵,原始模型的大部分权重保持不变。
③ LoRA微调优势
Ⅰ.快速适应新任务:即使在特定领域只有少量标注数据,也能快速实现模型的个性化调整,迅速适应新领域或任务。
Ⅱ.保持泛化能力:通过微调模型的一部分,有助于保持模型在未见过的数据上的泛化能力,同时学习特定任务的知识。
Ⅲ.资源效率:通过仅微调模型的部分权重而非整个模型,减少了所需的计算资源,提高了资源使用效率。
Part 3 如何准备一个高质量数据集
教程里讲了两个步骤可以帮助我们快速找到适合的数据集,还整理了一些数据集来源,不过均需要考虑合规性问题,需谨慎选择。
来源类型 | 推荐 |
公开的数据平台 | 魔搭社区内开放了近3000个数据集,涉及文本、图像、音频、视频和多模态等多种场景,左侧有标签栏帮助快速导览,大家可以看看有没有自己需要的数据集。 其他数据平台推荐:
|
使用API或爬虫获取 |
|
数据合成 | 利用现有的图形引擎(如Unity、Unreal Engine)或特定软件生成合成数据,这在训练某些类型的模型时非常有用。 最近Datawhale联合阿里云天池,做了一整套多模态大模型数据合成的学习,欢迎大家一起交流。从零入门多模态大模型数据合成 |
数据增强 | 对于较小的数据集,可以通过旋转、翻转、缩放、颜色变换等方式进行数据增强。 |
购买或定制 | 如果你的应用是特定领域的,比如医学影像、卫星图像等,建议从靠谱的渠道购买一些数据集。 |
实践记录暂且到这里啦!Datawhale里还有很多自学网站和资源,可以点击教程多多探索!