首页 > 其他分享 >Datawhale X 魔搭 AI0夏令营 魔搭-AIGC文生图方向 Tsak 3 就要完成了...

Datawhale X 魔搭 AI0夏令营 魔搭-AIGC文生图方向 Tsak 3 就要完成了...

时间:2024-08-16 22:57:24浏览次数:9  
标签:... 微调 文生 ComfyUI 模型 Tsak -- kolors Lora

本文为AI方向小白记录暑期参加魔搭夏令营-AIGC文生图方向的Task 01

       报名赛事链接:可图Kolors-LoRA风格故事挑战赛_创新应用大赛_天池大赛-阿里云天池的赛制

       欢迎所有小白,大神前来交流学习。

一. 初识ComfyUI

        1.1 什么是ComfyUI

        GUI 是 "Graphical User Interface"(图形用户界面)的缩写。简单来说,GUI 就是你在电脑屏幕上看到的那种有图标、按钮和菜单的交互方式。

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

<iframe allowfullscreen="true" data-mediaembed="bilibili" frameborder="0" id="AolAqNTs-1723815721492" src="https://player.bilibili.com/player.html?aid=662317869"></iframe>

1 万字系统剖析ComfyUI | Stable Diffusion:GUI全盘点 | ComfyUI系统性教程原理篇04 | Ai+建筑

        1.2 ComfyUI核心模块

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

本小节内容来自魔搭社区,具体内容可点击查看:魔搭官方教程

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

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

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

  • seed:控制噪声产生的随机种子

  • control_after_generate:控制seed在每次生成后的变化

  • steps:降噪的迭代步数,越多则信号越精准,相对的生成时间也越长

  • cfg:classifier free guidance决定了prompt对于最终生成图像的影响有多大。更高的值代表更多地展现prompt中的描述。

  • denoise: 多少内容会被噪声覆盖 sampler_name、scheduler:降噪参数。 

        1.3 ComfyUI图片生成流程

        1.4 ComfyUI的优势

        模块化和灵活性:ComfyUI 提供了一个模块化的系统,用户可以通过拖放不同的模块来构建复杂的工作流程。这种灵活性允许用户根据自己的需求自由组合和调整模型、输入、输出、和其他处理步骤。

        可视化界面:ComfyUI 提供了直观的图形界面,使得用户能够更清晰地理解和操作复杂的 AI 模型和数据流。这对没有编程背景的用户特别有帮助,使他们能够轻松构建和管理工作流程。

        多模型支持:ComfyUI 支持多个不同的生成模型,用户可以在同一平台上集成和切换使用不同的模型,从而实现更广泛的应用场景。

        调试和优化:通过其可视化界面,ComfyUI 使得调试生成过程变得更简单。用户可以轻松地追踪数据流,识别并解决问题,从而优化生成结果。

        开放和可扩展:ComfyUI 是一个开源项目,具有高度的可扩展性。开发者可以根据需要编写新的模块或插件,扩展系统功能,并根据项目需求进行定制。

        用户友好性:尽管其功能强大,但 ComfyUI 仍然保持了用户友好性,即使对于复杂任务,也能以相对简单的方式完成,使其成为生成式 AI 工作流程管理的有力工具。

二. 速通ComfyUI 

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

我们选择方式2直接打开

         2.1下载脚本代码文件

        下载安装ComfyUI的执行文件task1中微调完成Lora文件

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/   

 

执行结果如下

执行完成后,进入ComfyUI.pynb

          2.2 一键执行安装程序

        我们点击操作栏上面的一键运行按钮即可运行ComfyUI

          2.3 进入预览界面

三. 浅尝ComfyUI工作流

        3.1 不带Lora的工作流样例

        第一步,下载工作流脚本

        第二步,点击ComfyUI可视化界面下面的load,导入刚刚下载好的不带Lora的工作流脚本,点击Queue Prompt 生成不带Lora的工作流脚本

        3.2 带Lora的工作流样例

        我们先下载好带Lora脚本的工作流案例

        为了倒入我们Task 1中所生成的Lora 我们先来到Task 1中我们发布的可图训练中

Task 1 中我们发布的可图训练

        接着复制好Git下载的地址,到我们实例的终端中进行下载 

        下载好后,我们对刚刚下载好的带Lora的工作流文件进行修改,使用我们自己的Lora文件,以下使用VScode修改:

        先将文件中的202行修改为我们Task 1中对第一张图片的描述:

        再将第268行修改为我们刚刚下载好的我们自己的Lora库:

        保存后,我们再在ComfyUI中load一下我们修改后的文件,再执行一下,即可以得到我们自己的Lora修改后的图片

经过Lora微调后的第一张图片
未经Lora微调的Task 1图片

        我们可以很清楚的对比到Lora微调后的图片明显更加好看生动,由此可见,ComfyUI是我们不可或缺的好伙伴。

四. Lora微调 

        4.1 Lora简介

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

        4.2 Lora微调的原理

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

        具体可以参考下面视频,对Lora的原理讲的比较通俗易懂。

<iframe allowfullscreen="true" data-mediaembed="bilibili" frameborder="0" id="vwQHAdMW-1723818741496" src="https://player.bilibili.com/player.html?aid=112715645455253"></iframe>

通俗易懂理解全量微调和LoRA微调

         4.3 Lora微调的优势

        快速适应新任务

        在特定领域有少量标注数据的情况下,也可以有效地对模型进行个性化调整,可以迅速适应新的领域或特定任务。

        保持泛化能力

        LoRA通过微调模型的一部分,有助于保持模型在未见过的数据上的泛化能力,同时还能学习到特定任务的知识。

        资源效率

        LoRA旨在通过仅微调模型的部分权重,而不是整个模型,从而减少所需的计算资源和存储空间。

        4.4 微调代码

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.5 参数详情表

         

 

         

标签:...,微调,文生,ComfyUI,模型,Tsak,--,kolors,Lora
From: https://blog.csdn.net/Destinycccc/article/details/141270380

相关文章

  • Datawhale X 魔搭 AI0夏令营 魔搭-AIGC文生图方向 Tsak 1
    本文为AI方向小白记录暑期参加魔搭夏令营-AIGC文生图方向的Task01    报名赛事链接:https://tianchi.aliyun.com/competition/entrance/532254    欢迎所有小白,大神前来交流学习。一.文生图相关基础知识介绍    1.1文生图的介绍        文......
  • python判断语句之if语句、比较和逻辑运算符、if...else...语句、if...elif...else语句
    文章目录1.介绍1.1顺序语句1.2判断语句1.3循环语句2.if语句的基本格式2.1判断语句介绍2.2程序中的判断2.3if语句的基本格式3.比较和逻辑运算符3.1比较运算符3.2逻辑运算符4.if...else...语句4.1if...else...的语法格式4.2实例5.if...elif...else...语......
  • 【-..-.-.-----..-./-...-.----.---.-】-----/---../.-.-.-/.----/...../.-.-.-/..---
    -----/---../.----/...../-..-.-.-----..-./-...-.----.---.--.--..-..--.-../-.-.--.-------./--------...--.-.-..---.--..-.-./--..-.----..-.-/--...---.-.-.../--.-.--.-..--../--------...--.-.--........-.-./----.-..----.-./--....-..-..-./--.---.-......./--........
  • 报表的多行业应用!用工具做报表省了我不少事...
    一、什么是报表?说起报表,你不会还停留在Excel报表的层面上吧? 传统的报表一般都是基于Excel制作的,主要面向业务人员、开发人员等,也有一些公司会自己去开发设计,只不过周期较长,耗费人力多。现在的报表早已经不同于往日,它们可以将不同的数据源进行整合,然后生成所需要的各种类型报表......
  • Datawhale X 魔搭 AI夏令营 第四期魔搭-AIGC文生图方向Task3笔记
    工具初探一ComfyUI应用场景探索ComfyUI剖析视频:1万字系统剖析ComfyUI|StableDiffusion:GUI全盘点  ComfyUI应用场景视频:ComfyUI应用场景探索官方Github链接:GitHub-ComfyUI官方应用的示例:ComfyUIExamples 工作流分享网站:ComfyWorkflows在魔搭使用ComfyUI:在魔搭......
  • Python - 详情介绍Zmail发送邮件(支持普通&企业邮箱,163、QQ、gmail...)
    Python-详情介绍Zmail发送邮件为了满足在python项目中收发邮件给其他人,可利用自己的邮箱账号结合Zmail来完成。Zmail使得在python3中发送和接受邮件变得更简单。你不需要手动添加服务器地址、端口以及适合的协议。Zmail仅支持python3,不需要任何外部依赖.不支持python2......
  • 8.13扣...(我以后必定不是狗)
    publicclasskmp{staticbooleanflag=true;publicstaticvoidmain(String[]args){Stringhaystack="loloqwlololhlklllellllo";Stringneedle="ol";chararr1[]=haystack.toCharArray();ch......
  • node.js文件上传(图片等等...)——利用connect-multiparty中间件
    一.概念步骤讲解1.安装和引入中间件安装:通过npm安装connect-multiparty:npminstallconnect-multiparty--save。引入:在项目中引入connect-multiparty:varmultipart=require('connect-multiparty');2.基本设置配置上传目录:指定上传文件的临时存储位置,例如:app.us......
  • 【算法】求1+2+3+...+n
    1.概述地址:JZ64求1+2+3+…+n描述求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。数据范围:0<n≤2000<n\le2000<n......
  • MySQL常用命令增删改查select,update,alter...
    MySQL常用命令增删改查select,update,alter…文章目录MySQL常用命令增删改查select,update,alter...MySQL修改用户密码MySQL删除用户命令MySQL修改用户密码查看MySQL的用户及hostselectuser,hostfrommysql.user;备注host分别代表的连接方式user@‘localh......