qidao123.com技术社区-IT企服评测·应用市场

标题: Datawhale X 魔搭 AI夏令营 第四期AIGC_task03笔记 [打印本页]

作者: 曂沅仴駦    时间: 2024-8-27 04:49
标题: Datawhale X 魔搭 AI夏令营 第四期AIGC_task03笔记
工具初探一ComfyUI

 认识ComfyUI

ComfyUI 是"Graphical User Interface"(图形用户界面)的缩写,简单来说,GUI 就是你在电脑屏幕上看到的那种有图标、按钮和菜单的交互方式。ComfyUI 是GUI的一种,是一个用于构建和运行稳定扩散(Stable Diffusion)模子的图形用户界面工具。它允许用户通过直观的界面来创建模子处理流程,而无需编写复杂的代码。ComfyUI 支持多种差别的模子和算法,而且可以通过节点编辑的方式轻松地组合差别的模子组件以实现图像生成、修改和其他创意任务。
 ComfyUI基础逻辑

对于ComfyUI的逻辑可以理解成由小往大的过程,即从基础的元素,到由元素组成的模块,到由模块组成的功能组,再到由功能组组成针对性的工作流。

 ComfyUI核心模块

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

模子加载器: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:降噪参数。
对于基础模块或深入分析ComfyUI可以参考(图引用自【1 万字体系分析ComfyUI | Stable Diffusion:GUI全盘货 | ComfyUI体系性教程原理篇04 | Ai+建筑】)
 

 ComfyUI生成流程

ComfyUI上风

主要特点:


使用场景:


ComfyUI安装

Lora

前言:对于模子微调,本质上就是对于模子各个数据的调节。而一个模子往往伴随着大量的数据,对于这些大量数据的处理是贫困的,所以引出了高效微调PEFT (Prompt-Encoder for Fine-Tuning)下,最常见的Lora。
Lora简介

LoRA (Low-Rank Adaptation) 是一种轻量级的微调技术,特殊适用于像Stable Diffusion如许的大型预练习模子。LoRA 的核心思想是在不改变原有模子权重的情况下,通过引入额外的低秩矩阵来实现对模子的有效调解。这种方法可以显著镌汰所需的练习资源和时间,而且通常只需要少量的数据就能达到不错的效果。
Lora 微调上风


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

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

LoRA旨在通过仅微调模子的部分权重,而不是整个模子,从而镌汰所需的盘算资源和存储空间。
Lora 代码举例

task02的微调代码
  1. import os
  2. cmd = """
  3. python DiffSynth-Studio/examples/train/kolors/train_kolors_lora.py \ # 选择使用可图的Lora训练脚本DiffSynth-Studio/examples/train/kolors/train_kolors_lora.py
  4.   --pretrained_unet_path models/kolors/Kolors/unet/diffusion_pytorch_model.safetensors \ # 选择unet模型
  5.   --pretrained_text_encoder_path models/kolors/Kolors/text_encoder \ # 选择text_encoder
  6.   --pretrained_fp16_vae_path models/sdxl-vae-fp16-fix/diffusion_pytorch_model.safetensors \ # 选择vae模型
  7.   --lora_rank 16 \ # lora_rank 16 表示在权衡模型表达能力和训练效率时,选择了使用 16 作为秩,适合在不显著降低模型性能的前提下,通过 LoRA 减少计算和内存的需求
  8.   --lora_alpha 4.0 \ # 设置 LoRA 的 alpha 值,影响调整的强度
  9.   --dataset_path data/lora_dataset_processed \ # 指定数据集路径,用于训练模型
  10.   --output_path ./models \ # 指定输出路径,用于保存模型
  11.   --max_epochs 1 \ # 设置最大训练轮数为 1
  12.   --center_crop \ # 启用中心裁剪,这通常用于图像预处理
  13.   --use_gradient_checkpointing \ # 启用梯度检查点技术,以节省内存
  14.   --precision "16-mixed" # 指定训练时的精度为混合 16 位精度(half precision),这可以加速训练并减少显存使用
  15. """.strip()
  16. os.system(cmd) # 执行可图Lora训练   
复制代码
代码中界说的主要 LoRA 参数及其含义:
除了 LoRA 特有的参数之外,还有一些其他的配置选项:

数据集的获取

来源类型
推荐
公开的数据平台
魔搭社区内开放了近3000个数据集,涉及文本、图像、音频、视频和多模态等多种场景,左侧有标签栏资助快速导览,大家可以看看有没有自己需要的数据集。

其他数据平台推荐:
     

  • ImageNet:包含数百万张图片,广泛用于分类任务,也可以用于生成任务。
  • Open Images:由Google维护,包含数千万张带有标签的图片。
  • Flickr:特殊是Flickr30kK和Flickr8K数据集,常用于图像描述任务。
  • CelebA:专注于人脸图像的数据集。
  • LSUN (Large-scale Scene Understanding):包含各种场景种别的大规模数据集。
使用API或爬虫获取
     

  • 假如需要特定类型的内容,可以使用API从图库网站抓取图片,如Unsplash、Pexels等。
  • 使用网络爬虫技术从互联网上抓取图片,但需要注意版权问题。
数据合成
使用现有的图形引擎(如Unity、Unreal Engine)或特定软件生成合成数据,这在练习某些类型的模子时非常有效。
近来Datawhale联合阿里云天池,做了一整套多模态大模子数据合成的学习,欢迎大家一起交流。从零入门多模态大模子数据合成
数据增强
对于较小的数据集,可以通过旋转、翻转、缩放、颜色变更等方式进行数据增强。
购买或定制
假如你的应用是特定领域的,好比医学影像、卫星图像等,发起从靠谱的渠道购买一些数据集。
 如何准备高质量的数据集




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 qidao123.com技术社区-IT企服评测·应用市场 (https://dis.qidao123.com/) Powered by Discuz! X3.4