Datawhale X 魔搭 AI夏令营-AIGC文生图方向Task3笔记

活动来源:Datawhale (linklearner.com)

本笔记将简要介绍我所学的知识点以及心得。

1.初识ComfyUI

1.1ComfyUI

GUI的一种,是基于节点工作的用户界面,主要用于操作图像的生成技术,ComfyUI 的特别之处在于它采用了一种模块化的设计,把图像生成的过程分解成了许多小的步骤,每个步骤都是一个节点。这些节点可以连接起来形成一个工作流程,这样用户就可以根据需要定制自己的图像生成过程。

核心模块由模型加载器、提示词管理器、采样器、解码器。

Stable Diffusion的基本原理是通过降噪的方式(如完全的噪声图像),将一个原本的噪声信号变为无噪声的信号(如人可以理解的图像)。其中的降噪过程涉及到多次的采样。

1.2 ComfyUI的流程

Step1:选择模型

从可用的 AI 模型列表中选择合适的模型,例如 Stable Diffusion 或其他文本到图像模型。

Step2:构建工作流

在 ComfyUI 的图形界面上拖拽节点,并将它们连接起来以形成一个完整的图像生成或编辑流程。

输入必要的参数,如文本提示、图像文件等。

Step3:执行生成

运行构建好的工作流,观察生成的结果。

Step4:调整与优化

如果需要,可以根据生成的结果调整参数或修改工作流,直至获得满意的效果。

1.3 优势

模块化和灵活性、可视化界面、多模型支持、调试和优化、开放和可扩展、用户友好性……

2.安装

原官方教程中有更加详细的步骤。我的体验是:在魔搭社区提供的Notebook和免费的GPU算力支持下十分便捷。

下载脚本代码文件,再进入ComfyUI的安装文件进行安装后,即可进入预览界面。

3.工作流尝试

通过下载工作流的脚本,再加载到刚刚安装的comfyUI上后,就可以加载出模型,完成图片的生成啦!可以通过不同的脚本,选择是否带Lora的工作流。

Lora微调
1.Lora简介
LoRA (Low-Rank Adaptation) 微调是一种用于在预训练模型上进行高效微调的技术。它可以通过高效且灵活的方式实现模型的个性化调整,使其能够适应特定的任务或领域,同时保持良好的泛化能力和较低的资源消耗。

2.Lora详解
LoRA通过在预训练模型的关键层中添加低秩矩阵来实现。这些低秩矩阵通常被设计成具有较低维度的参数空间,这样它们就可以在不改变模型整体结构的情况下进行微调。在训练过程中,只有这些新增的低秩矩阵被更新,而原始模型的大部分权重保持不变。

Lora微调的优势:快速适应新任务;保持泛化能力;资源效率。

微调代码:

import os
cmd = """
python DiffSynth-Studio/examples/train/kolors/train_kolors_lora.py \ # 选择使用可图的Lora训练脚本DiffSynth-Studio/examples/train/kolors/train_kolors_lora.py
  --pretrained_unet_path models/kolors/Kolors/unet/diffusion_pytorch_model.safetensors \ # 选择unet模型
  --pretrained_text_encoder_path models/kolors/Kolors/text_encoder \ # 选择text_encoder
  --pretrained_fp16_vae_path models/sdxl-vae-fp16-fix/diffusion_pytorch_model.safetensors \ # 选择vae模型
  --lora_rank 16 \ # lora_rank 16 表示在权衡模型表达能力和训练效率时,选择了使用 16 作为秩,适合在不显著降低模型性能的前提下,通过 LoRA 减少计算和内存的需求
  --lora_alpha 4.0 \ # 设置 LoRA 的 alpha 值,影响调整的强度
  --dataset_path data/lora_dataset_processed \ # 指定数据集路径,用于训练模型
  --output_path ./models \ # 指定输出路径,用于保存模型
  --max_epochs 1 \ # 设置最大训练轮数为 1
  --center_crop \ # 启用中心裁剪,这通常用于图像预处理
  --use_gradient_checkpointing \ # 启用梯度检查点技术,以节省内存
  --precision "16-mixed" # 指定训练时的精度为混合 16 位精度(half precision),这可以加速训练并减少显存使用
""".strip()
os.system(cmd) # 执行可图Lora训练    

最终生成结果:

4.如何准备高质量的数据集

1.明确数据集需求和目标
关注应用场景:明确你的模型要被应用到什么样的场景当中

关注数据类型:你需要什么样的图片?是写实的还是二次元的?等等

关注数据量:考虑你的任务大概需要多少图片来进行训练和验证

2.数据集的多种不同来源
数据集可以通过多种渠道进行获取,例如:

1.从公开的数据平台获取;

2.使用API或爬虫获取;

3.进行数据合成;

4.进行数据增强;

5.进行购买或者定制;

我们在选取不同渠道时还要考虑其合规性,需要谨慎选取

5.学习总结

得知这次夏令营是刷帖子的偶然,本以为只是一些现有的AI生成图片的应用使用教程,没有想到竟然从文生图的历史开始,再到底层的搭建部署,十分认真详细的给我们在短时间内进行了梳理和实践,感谢每一位夏令营的工作人员,感谢你们提供的教程和资源!通过三个task的学习,我对于AI生图又有了更深的体会,初步上手了ComfyUI,学习了什么是LoRA微调方法,利用该方法能够使我们的模型拥有更好的泛化能力和运行效率,即使在标注数据不多的情况下模型也能够较好的生成图片。

通过本次夏令营活动我有很大收获,但也明白这仅仅是大模型应用的“冰山一角”,前方还有更多的技术等待着我们去学习和运用,因此自己还有很多的不足,希望在今后能够继续在Datawhale和魔塔提供的丰富,优质的资源下努力学习和进步。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值