当前位置:AIGC资讯 > AIGC > 正文

Datawhale X 魔搭 AI夏令营--AIGC Task3

Datawhale X 魔搭 AI夏令营–AIGC Task3

文章目录

Datawhale X 魔搭 AI夏令营--AIGC Task3 ComfyUI 实践 Lora微调

ComfyUI

目前主流GUI有三种:使用范围最广的以窗口式为特征的Web UI,节点式工作流为特征并且方便作为后端使用的ComfyUI,只需关注提示词无需在乎各种复杂参数的Fooocus

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

模型加载器:Load Checkpoint用于加载基础的模型文件,包含了Model、CLIP、VAE三部分 CLIP模块将文本类型的输入变为模型可以理解的latent space embedding作为模型的输入 解码器:VAE模块的作用是将Latent space中的embedding解码为像素级别的图像 采样器:用于控制模型生成图像,不同的采样取值会影响最终输出图像的质量和多样性。采样器可以调节生成过程的速度和质量之间的平衡
实践

下载安装,进入ipynb文件执行全部代码

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/   

找到This is the URL to access ComfyUI

启动后,通过代码输出的链接查看 UI 页面

点击右侧“Load”,加载“kolors_example.json”(不带 LoRA)或者 “kolors_with_lora_example.json”(带 LoRA)

加载 LoRA 时,请在“lora_path”处填入 LoRA 模型的路径,例如 /mnt/workspace/models/lightning_logs/version_0/checkpoints/epoch=0-step=500.ckpt

load的json文件是Datawhale提供的ComfyUI配置文件,也可以按自己喜好创建使用
Lora微调

想要在云端使用本地图片作为数据集时,可以把图片上传至gitee等平台,再在云端git clone,通义给出的代码如下

在gitee新建远程仓库作为临时中转,不添加任何文件,直接新建即可
# 切换到你的项目目录
cd /path/to/your/project

# 初始化 Git 仓库
git init

# 添加所有文件到暂存区
git add .

# 提交更改
git commit -m "Initial commit"

# 创建远程仓库后,获取仓库的 URL
# 假设你的 Gitee 仓库 URL 为 https://gitee.com/username/reponame.git
git remote add origin https://gitee.com/username/reponame.git

# 推送代码到远程仓库
git push -u origin master
将本地图片改名为数字1.jpg,2.jpg…
import os

def batch_rename_images(folder_path, filetype):
    # 获取文件夹中的所有文件
    files = os.listdir(folder_path)
    
    # 过滤出特定类型的文件
    image_files = [f for f in files if f.endswith(filetype)]
    
    # 对图片文件进行排序,确保按顺序重命名
    image_files.sort()
    
    # 重命名每个图片文件
    for i, filename in enumerate(image_files, start=1):
        # 构建新的文件名
        new_filename = f"{i}.{filetype}"
        
        # 获取完整的源文件路径和目标文件路径
        src = os.path.join(folder_path, filename)
        dst = os.path.join(folder_path, new_filename)
        
        # 重命名文件
        os.rename(src, dst)

# 使用
folder_path = "./"
filetype = "jpg"

batch_rename_images(folder_path, filetype)
需要时将png和jpg相互转换
from PIL import Image
import os

def convert_png_to_jpg(input_folder, output_folder):
    # 确保输出文件夹存在
    if not os.path.exists(output_folder):
        os.makedirs(output_folder)

    # 获取所有PNG文件
    png_files = [f for f in os.listdir(input_folder) if f.lower().endswith('.png')]

    # 遍历所有PNG文件
    for png_file in png_files:
        # 构建完整的输入和输出路径
        input_path = os.path.join(input_folder, png_file)
        jpg_file = os.path.splitext(png_file)[0] + '.jpg'
        output_path = os.path.join(output_folder, jpg_file)

        # 打开PNG图片
        with Image.open(input_path) as img:
            # 转换为RGB模式(因为PNG可以是RGBA)
            img_rgb = img.convert('RGB')
            # 保存为JPG格式
            img_rgb.save(output_path, 'JPEG')

# 使用
input_folder = './'  # 当前目录
output_folder = './'

convert_png_to_jpg(input_folder, output_folder)
删除指定类型文件
import os
import glob

def delete_png_files(directory):
    # 使用glob获取指定目录中所有后缀名为".png"的文件列表
    png_files = glob.glob(os.path.join(directory, "*.png"))
    
    # 遍历文件列表,逐个删除文件
    for png_file in png_files:
        try:
            os.remove(png_file)
            print(f"已删除文件:{png_file}")
        except OSError as e:
            print(f"删除文件时出错:{e}")

# 使用
directory = './'  # 当前目录
delete_png_files(directory)

总结

### 文章总结:Datawhale X 魔搭 AI夏令营 – AIGC Task3
#### 内容概述
本文介绍了Datawhale X 魔搭 AI夏令营中的第三项任务(AIGC Task3),主要围绕使用**ComfyUI**进行图像生成技术实践,并探讨了如何通过**LoRA微调**来定制化图像生成模型。
#### 主要部分
##### 1. ComfyUI 介绍
- **定义**:ComfyUI是一种基于节点工作的用户界面,用于操作图像生成技术。
- **特点**:
- **模块化设计**:将图像生成过程分解为多个小步骤(节点),用户可按需定制生成流程。
- **核心模块**:包括模型加载器、提示词管理器、采样器、解码器。
- **模型加载器**:加载基础的模型文件(Model、CLIP、VAE)。
- **CLIP**:将文本输入转换为模型可识别的latent space embedding。
- **解码器(VAE)**:将Latent space中的embedding解码为像素级别的图像。
- **采样器**:控制生成图像的质量和多样性。
##### 2. 实践步骤
- **安装与准备**:
- 使用Git下载并配置相关文件(如`kolors_test_comfyui`)。
- 移动文件到指定目录并创建必要的结构和链接。
- **启动与操作**:
- 启动后通过代码输出链接访问ComfyUI页面。
- 加载预设的或自定义的配置文件(JSON),可以选择是否带LoRA模型。
##### 3. LoRA 微调
- **云端使用本地图片**:
- 图片可通过平台如Gitee上传到云端,然后使用Git clone下载。
- 提供了一系列代码示例(如Git初始化与推送、批量重命名图片、图片格式转换、删除指定类型文件)来准备和传输图片数据。
#### 总结
本任务通过ComfyUI这一用户友好的界面展示了图像生成技术的实践过程,同时介绍了如何利用LoRA微调技术进一步定制和优化图像生成模型。从下载安装到实际操作,再到数据的准备与传输,都是以实现定制化图像生成为目标的一系列步骤,为参与者提供了完整的实践指南。

更新时间 2024-09-24