当前位置:AIGC资讯 > AIGC > 正文

DataWhale夏令营第四期魔搭- AIGC方向 task03笔记

文章目录

前言 一、ComfyUI的了解 1.认识ComfyUI 2. GUI的图片生成流程 二、Lora微调 1. Lora和微调简介 2.Lora微调的优势和详细内容 3.Lora实例详解 三,训练集的get 总结

前言

经过task01的初次运行和大致了解,对文生图有了进一步的理解;
同时,过了task02的代码和过程的解读,也对原理和操作步骤有了更深刻的理解。

那咱么现在为了痛快的文生图,用task01的 后端页面看起来不太舒服,同时对于用户来说不友好;这就要开始今天的课题了。

一、ComfyUI的了解

1.认识ComfyUI

可以看出内容冗余,对于开发者来说是好的。但是对于使用者和新手来说,甚是不友好。 /

所以就有了 GUI-------------(图形用户界面是指采用图形方式显示的计算机操作用户界面。与早期计算机使用的命令行界面相比,除了降低用户的操作负担之外,对于新用户而言,图形界面对于用户来说在视觉上更易于接受,学习成本大幅下降,也让电脑的大众化得以实现。 )

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

使用GUI图片如下:

再一看,改提示词和图片尺寸的地方,就显而易见了。

2. GUI的图片生成流程

二、Lora微调

1. Lora和微调简介

LoRA (Low-Rank Adaptation) 微调是一种用于在预训练模型上进行高效微调的技术。它可以通过高效且灵活的方式实现模型的个性化调整,使其能够适应特定的任务或领域,同时保持良好的泛化能力和较低的资源消耗。这对于推动大规模预训练模型的实际应用至关重要。(新型的微调技术/相比于全部参数调整)

微调:微调是机器学习中一种针对特定任务或用例调整预训练模型的过程。这样做可以使得模型更好地适应特定领域的需求。具体来说,它是基于已经在大规模数据集上预训练好的模型,使用特定数据集进行进一步训练,以提高模型在该领域的表现。例如,在生成式AI的基础模型训练中,微调可以是一种基本技术。(
理解的就是对原有的不满意,相对参数进行修改,以达到目的)

2.Lora微调的优势和详细内容

优势如下:

详细内容 :

3.Lora实例详解

来看Task02的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训练    

参数表:

三,训练集的get

训练集:数据集是指一组相关的数据样本,通常用于机器学习、数据挖掘、统计分析等领域。数据集可以是数字、文本、图像、音频或视频等形式的数据,用于训练和测试机器学习算法和模型。

当我们进行图片生成相关的工作时,我们需要根据我们的需要选择合适的训练集(训练场景/数据类型/数据量等)。

总结

感觉挺好,但缺乏历练。

总结

### 文章总结
本文介绍了文生图领域中的几个关键技术与工具,旨在提升用户体验和操作效率。主要内容分为三大板块:ComfyUI的使用、Lora微调技术以及训练集的选择与获取。
**前言**部分回顾了之前任务的学习和收获,强调了改进用户界面以提升用户友好度的重要性,引出了本文探讨的重点。
#### 一、ComfyUI的了解
1. **认识ComfyUI**: 介绍了传统命令行界面与图形用户界面的差异,并详细阐述了ComfyUI作为GUI在图像处理中的应用。ComfyUI采用模块化设计,将图像生成过程分解成多个小步骤(节点),用户可以自定义生成流程,降低了操作难度和学习成本。

2. **GUI的图片生成流程**: 虽然文中未具体展示GUI的操作流程,但提到了GUI界面操作的优势,如直观修改提示词和图片尺寸等,为用户提供了便利。
#### 二、Lora微调
1. **Lora和微调简介**: 解释了LoRA(Low-Rank Adaptation)微调技术的概念和原理,这是一种在预训练模型上进行高效微调的技术,能够在保持模型良好性能的同时,降低计算和内存需求,适用于多种特定任务场景。

2. **Lora微调的优势和详细内容**:虽未详述具体优势,但介绍了LoRA微调作为一种新型、高效的微调技术的重要性。

3. **Lora实例详解**:通过Task02中的Lora训练代码实例,详细讲解了LoRA训练的参数设置,包括选择模型、指定数据集路径、输出路径、训练轮数等,以及如何通过命令行执行训练任务。
#### 三、训练集的get
介绍了训练集的概念及其在机器学习、图像处理中的重要作用。强调了根据具体需求选择合适的训练集的重要性,涉及训练场景、数据类型、数据量等方面的考虑。
**总结**部分,作者自我评价感觉良好但缺乏历练,暗示了对所学知识的持续探索和实践的期待。
通过对ComfyUI、Lora微调技术和训练集选择的深入探讨,本文为文生图领域的初学者提供了宝贵的指南和思路,旨在促进其更好地理解和应用这些技术工具。

更新时间 2024-09-26