Datawhale X 魔搭 AI夏令营 第四期-AIGC方向Task3笔记

一、comfyUI

ComfyUI是一个基于节点的Stable Diffusion用户界面,可以进行文字转图像、图像转图像、LoRA等多种图像生成任务。

comfyUI官方地址:https://github.com/comfyanonymous/ComfyUI
comfyUI官方演示:https://comfyanonymous.github.io/ComfyUI_examples/

使用魔塔安装comfyUI步骤

网址:我的Notebook · 魔搭社区 (modelscope.cn)
image.png

1.1 下载脚本代码文件

file→new→terminal,复制代码粘贴到新建的Terminal中
image.png

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_2/checkpoints/
mv epoch=0-step=500.ckpt /mnt/workspace/models/lightning_logs/version_2/checkpoints/

1.2 双击comfyUI.ipynb进入文件

image.png

1.3 一键执行,安装程序

1.4 进入预览界面

如果出现下面的网址,复制网址在新网页打开
image.png
image.png

1.5 尝试ComfyUI工作流

加载工作流脚本
image.png
image.png
输入正向提示词和负向提示词,点击Queue Prompt运行
image.png
image.png

二、Lora微调

通俗易懂的介绍视频:通俗易懂理解全量微调和LoRA微调_哔哩哔哩_bilibili
总结:通过矩阵分解,降秩的思想,节省空间和成本

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)

下面是命令的详细解释:

  • python DiffSynth-Studio/examples/train/kolors/train_kolors_lora.py:运行用于Kolors模型的LoRA训练脚本。
  • --pretrained_unet_path:指定预训练的UNet模型的路径。
  • --pretrained_text_encoder_path:预训练文本编码器的路径。
  • --pretrained_fp16_vae_path:使用FP16精度的预训练VAE模型的路径。
  • --lora_rank:设置LoRA的秩(rank)。
  • --lora_alpha:指定LoRA的缩放因子。
  • --dataset_path:处理后的数据集的路径。
  • --output_path:保存训练后的模型的目录。
  • --max_epochs:训练的轮数(这里设为1)。
  • --center_crop:在训练过程中对图像应用中心裁剪。
  • --use_gradient_checkpointing:启用梯度检查点,以节省内存。
  • --precision "16-mixed":使用混合精度(FP16)进行训练。

在使用LoRA(Low-Rank Adaptation)进行模型训练时,lora_ranklora_alpha是两个重要的超参数,它们分别对模型的适应能力和训练效果产生影响。

2.1 lora_rank

  • 定义lora_rank是指低秩分解的秩(rank)。在LoRA中,模型的权重矩阵被分解为两个低秩矩阵的乘积,lora_rank决定了这两个低秩矩阵的维度大小。
  • 作用
    • 模型容量lora_rank越大,低秩矩阵能够捕获的特征信息越多,模型的表达能力越强。然而,较高的lora_rank也意味着更多的参数,因此需要更多的计算资源和内存。
    • 精度与资源的平衡:较低的lora_rank可以减少训练时间和内存消耗,但可能会导致模型表达能力不足,尤其在处理复杂任务时。反之,较高的lora_rank可以提高模型的精度,但也会增加计算开销。

2.2 lora_alpha

  • 定义lora_alpha是一个缩放因子(scaling factor),用于调整LoRA产生的矩阵对原始权重矩阵的影响。它类似于一个学习率缩放参数。
  • 作用
    • 控制更新幅度lora_alpha决定了LoRA矩阵在应用到原始权重时的缩放比例。较大的lora_alpha值意味着LoRA对模型权重的调整更大,可能导致模型快速适应新的数据分布,但也可能引入更大的不稳定性或过拟合风险。
    • 平衡模型适应性:较小的lora_alpha值可以使模型更稳定地学习,减少过拟合的风险,但也可能导致学习速度变慢,特别是在需要快速适应新任务或数据分布时。

2.3 如何选择合适的值?

  • lora_rank:通常,较简单的任务或较小的数据集可以使用较小的lora_rank,如8或16;而较复杂的任务或大规模数据集则可能需要较高的lora_rank,如32或64。
  • lora_alpha:开始时可以选择一个适中的值,如4或8,然后根据验证集的表现进行调整。如果模型收敛过慢或训练不稳定,可以尝试调整lora_alpha

image.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值