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

Datawhale官方的Task3链接:Task03

往期Task1、Task2链接:Task01, Task02

【学习者手册】:链接直达

【QA文档】:链接直达

【赛事官网】:链接直达

ComfyUI

       ComfyUI是一个基于深度学习的图像生成软件,它通常被用于创建高质量的图像,特别是与AI艺术生成相关。该软件支持使用各种预训练的模型,用户可以通过简单的拖放操作来构建自己的图像生成流程。ComfyUI的特点包括直观的用户界面和强大的脚本功能,使得用户能够轻松地定制和优化图像生成过程。

        ComfyUI的核心在于其节点编辑系统,用户可以通过组合不同的节点来构建复杂的图像生成脚本。这些节点可能包括模型加载器、图像处理模块、输出模块等。软件的一个显著优点是它能够支持多种模型和工具链,允许用户进行各种创意实验。

       此外,ComfyUI经常更新,添加新功能和改进现有功能,以保持与最新技术的发展同步。它还具有一个活跃的社区,用户可以在这个社区中交流想法、分享预设以及获取支持。

参考手册:ComfyUI用户手册


速通ComfyUI

接下来我们来跑一下跟着教程速通一下ComfyUI:

新建实例

在这里,我们依旧选择使用魔搭社区提供的Notebook和免费的GPU算力体验来体验ComfyUI。

这里需要注意的是,不要使用 Task1 中的baseline实例来跑后面内容,会发生环境重叠出错。

执行git拉取项目等命令

等待实例启动,进入实例,新建终端执行命令

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/   

一键执行安装程序(大约10min)

进入预览界面

PS:如果链接访问白屏,或者报错,就等一会再访问重试,程序可能没有正常启动完毕

待执行到最后一个代码块出现跳转链接时,可以点击跳转,也可以复制链接到浏览器中访问

这是我打开之后的工作流界面:

配置工作流JSON文件

先将task3教程中的两个JSON文件下载到本地:

在工作流中点击加载:

这里可能会显示爆红,这意味着前面的模型下载和配置没有做好:

回到jupyter中检查:

正常加载后界面如下,这是两个JSON文件的各个模块说明

K采样器的参数说明

接下来我将详细介绍出图参数调整模块(K采样器)的参数说明

Positive:正向条件

Negative:负向条件

latent_image:将被去噪的潜在图像

seed:用于创建噪声的随机种子

control_after_generate:在每个提示后更改上述种子号的能力。节点可以randomizeincrementdecrement或保持种子号fixed

steps:去噪过程中使用的步骤数。采样器允许进行的步骤越多,结果就越准确。但过大的steps会导致出图过爆,出现不好的画面。

cfg:分类器自由引导(cfg)比例决定了采样器在实现提示内容方面的积极性。更高的比例强制图像更好地代表提示,但设置过高的比例会负面影响图像质量。

sampler_name:使用哪个采样器

scheduler:使用哪种计划

denoise:通过噪声擦除多少潜在图像的信息

结束动作

出图完毕之后,记得保存修改并停止远程ComfyUI的连接,并关闭实例。

ComfyUI的丰富组件及搭配,给许多不同的独立场景工作流提供了可能,感兴趣的同学可以去了解下,下面推荐一位up主:赛博迪克朗的个人空间-赛博迪克朗个人主页-哔哩哔哩视频 (bilibili.com)


LoRA微调

低秩适应(LoRA)。LoRA是什么?它是如何工作的?与其他流行的微调方法相比如何?

LoRA思路

低秩适应(Low-Rank Adaptation)是一种参数高效的微调技术,其核心思想是对大型模型的权重矩阵进行隐式的低秩转换。

什么是低秩转换呢?

整体的想法和概念与主成分分析(PCA)和奇异值分解(SVD)有关,我们通过一个较低维度的表示来近似表示一个高维矩阵或数据集。

换句话说,我们试图找到原始特征空间(或矩阵)中少数维度的(线性)组合,能够捕捉数据集中大部分的信息。

如下图所示:

1. 步数相关 repeat / epoch / batch_size 

  • epoch多轮次比单轮次要好,通过设置可以每轮保存一组模型,多轮次说明有多组模型,得到好概率的可能是比单轮次就一个模型的概率是要高的,epoch一般设置5~10;
  • batch_size要是高,一是可能显存带不动,二是值越高训练越快 越可能学得囫囵吞枣收敛得慢。 

 batch_size 从1到2,Ir就要*2

2. 速率/质量相关 Ir学习率 / Dim网络维度 / Optimizer优化器


学习率Ir,控制了每次参数更新的幅度,过低参数更新幅度小 训练收敛就慢 陷入局部最优解 训练时间增加,过低也会导致训练初期无法有效学习到特征;过高,参数更新幅度大 错过全局最优解附近的局部最优解 找不到稳定的收敛点,常用cos的学习率衰减策略,初始使用较大的学习率快读接近全局最优解,在随着训练的进行逐渐减小学习率,使得逐渐细化搜索空间,找到全局附近的局部最优解,提高收敛的稳定性。

前面提到的“bs提高,Ir也要提高”是因为bs较大时会导致参数更新的方差减小从而使得梯度更新幅度也减小,这时就需要Ir也相应地增大。我这里还在思考bs、Ir都提高了的话,训练速度是不是也会大幅度提高?chat告诉我不一定,因为bs大占用的内存和计算量也增加,Ir大模型容易不稳定不收敛,理论上肯定是会增加训练速度,但实际上还是要根据你的显卡来设置bs值,训练速度变向是看钞能力,跑起来才是王道,先优先考虑生成效果再训练速度吧~

3. 优化器(Optimizer)

Lion比AdamW8bit的优点是更快,总训练步数在3k-1w内都可以考虑选它。

图像这里居然不要很多,作者这里是考虑到耗费时间等因素,我觉得有道理,如果我训练效果不好,我将尝试将重新创建我的数据集,只选出质量最高的30来张图像来做训练。 

loss值的最优区间0.07-0.09,但loss值只是一个参考,但更多的还是要通过XYZ测试来看模型的好坏,原图VS根据原图tag测试模型生成的图片。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值