Datawhale X 魔搭 AI夏令营第四期-AIGC文生图 Task3笔记

一、ComfyUI应用

1.1 什么是ComfyUI

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

首先,ComfyUI具有直观易用的界面: 通过节点的方式,用户可以清晰地看到各个模块的功能,并根据自己的需求进行调整和连接。这种方式使得工作流程更加明确,也降低了使用门槛,使得不熟悉代码的用户也能够轻松上手

其次,ComfyUI的生成速度更快: 相较于传统的Web UI,ComfyUI在生成图片时进行了优化,显著提高了生成速度。这意味着用户可以更快地获得所需的图片,节省了宝贵的时间和计算资源

此外,ComfyUI对显存的要求更低: 由于内部流程的优化,ComfyUI所需的显存比传统的Web UI更少。这意味着用户不需要高配置的硬件设备就能流畅地运行ComfyUI,降低了使用门槛

1.2 ComfyUI核心模块

模型加载器:Load Checkpoint用于加载基础的模型文件,包含了Model、CLIP、VAE三部分,CLIP模块将文本类型的输入变为模型可以理解的latent space embedding作为模型的输入

解码器:VAE模块的作用是将Latent space中的embedding解码为像素级别的图像

采样器:用于控制模型生成图像,不同的采样取值会影响最终输出图像的质量和多样性。采样器可以调节生成过程的速度和质量之间的平衡

1.3 速通安装ComfyUI

通过 学习手册 安装熟悉ComfyUI

git lfs install
git clone https://www.modelscope.cn/datasets/maochase/kolors_test_comfyui.git
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/   

 在终端(terminal)复制粘贴上述代码,运行下载文件

 打开ComfyUI.ipynb,全部运行

在最后点击网址进入ComfyUI工作流界面

1.4 ComfyUI运用

通过 学习手册 下载工作流脚本,分为 不带Lora的工作流样例 和 带Lora的工作流样例

 点击右下角Load,载入工作流脚本,再点击Queue Prompt生成图片(可以看到整个运行流程)

不带Lora的工作流样例,生成如下

二、Lora微调

2.1 Lora简介

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

2.2 Lora微调的优势

  1. 参数效率:Lora通过在模型的权重矩阵中引入低秩结构,减少了需要训练的参数数量,这使得微调过程更加高效

  2. 快速适应:由于参数数量的减少,Lora微调可以在更短的时间内完成,这对于需要快速部署模型的场景非常有用

  3. 更好的泛化能力:通过低秩适应,Lora能够在不破坏预训练模型原有知识的情况下,更好地适应特定任务

  4. 减少过拟合:由于参数数量的减少,Lora微调有助于减少模型在特定任务上的过拟合风险

  5. 灵活性:Lora可以应用于不同类型的预训练模型,包括但不限于语言模型、视觉模型等

  6. 成本效益:由于训练时间的减少和参数数量的降低,Lora微调可以降低计算资源的需求,从而降低成本

  7. 持续学习:Lora微调可以支持模型在面对新数据时进行持续学习和适应,而不需要从头开始训练

2.2 Lora微调代码详解

Baseline中Lora设置参数代码如下

import os

cmd = """
python DiffSynth-Studio/examples/train/kolors/train_kolors_lora.py \
  --pretrained_unet_path models/kolors/Kolors/unet/diffusion_pytorch_model.safetensors \
  --pretrained_text_encoder_path models/kolors/Kolors/text_encoder \
  --pretrained_fp16_vae_path models/sdxl-vae-fp16-fix/diffusion_pytorch_model.safetensors \
  --lora_rank 16 \
  --lora_alpha 4.0 \
  --dataset_path data/lora_dataset_processed \
  --output_path ./models \
  --max_epochs 1 \
  --center_crop \
  --use_gradient_checkpointing \
  --precision "16-mixed"
""".strip()

os.system(cmd)

参数名称

参数值

说明

pretrained_unet_path

models/kolors/Kolors/unet/diffusion_pytorch_model.safetensors

指定预训练UNet模型的路径

pretrained_text_encoder_path

models/kolors/Kolors/text_encoder

指定预训练文本编码器的路径

pretrained_fp16_vae_path

models/sdxl-vae-fp16-fix/diffusion_pytorch_model.safetensors

指定预训练VAE模型的路径

lora_rank

16

设置LoRA的秩(rank),影响模型的复杂度和性能

lora_alpha

4

设置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)

通过Lora微调后,生成结果如下:

图片编号

场景描述

正向提示词

反向提示词

图 1

女主正在上课

童话风格,教室,金色长发少女,认真听课, 手上拿着笔,身着红色鲜艳的校服,上半身,正面,坐在课桌前

丑陋,变形,嘈杂,模糊,低对比度

图 2

开始睡着了

童话风格,教室,金色长发少女,闭上眼睛,身着红色鲜艳的校服,上半身,正面,坐在课桌前

丑陋,变形,嘈杂,模糊,低对比度

图 3

进入梦乡,梦到自己在森林

童话风格,四周全是茂密的森林,金色长发少女,站白色长裙,上半身,看向远方

丑陋,变形,嘈杂,模糊,低对比度

图 4

王子骑马而来

童话风格,四周全是茂密的森林,一位英俊的王子,骑着白马,上半身

丑陋,变形,嘈杂,模糊,低对比度

图 5

两人相谈甚欢

童话风格,四周全是茂密的森林,金色长发少女,一位英俊的王子,白色长裙,两个人一起聊天,开心,上半身

丑陋,变形,嘈杂,模糊,低对比度

图 6

两人一起跳舞

童话风格,四周全是茂密的森林,金色长发少女,白色长裙,一位英俊的王子,两个人一起跳舞,全身

丑陋,变形,嘈杂,模糊,低对比度

图 7

下课了,梦醒了

童话风格,教室,金色长发少女,用右手揉眼睛,左手拿笔,闭上眼睛,身着红色鲜艳的校服,上半身,正面,坐在课桌前

丑陋,变形,嘈杂,模糊,低对比度

图 8

又回到了学习生活中

童话风格,教室,金色长发少女,惊醒, 惊讶,身着红色鲜艳的校服,上半身,正面,坐在课桌前,墙上有下课铃

丑陋,变形,嘈杂,模糊,低对比度

  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值