ComfyUI 实战:从0上手跑通一个工作流

最近体验了一下 ComfyUI。作为刚入门的新手,把一些我在配置和运行图像生成工作流中的实践经验记录下来。

前置要求

在实践前,需要具备以下背景知识和技能:

  1. 基础编程能力

    • 熟悉 Python 编程语言,能够理解和修改简单的 Python 脚本。
    • 了解基本的命令行操作,能够在终端中执行命令。
  2. 图像处理知识

    • 了解基本的图像处理概念,如分辨率、色彩空间等。
    • 熟悉常见的图像文件格式(如 JPG、PNG)和处理工具。
  3. 云计算基础

    • 了解云计算的基本概念,特别是 AWS EC2 服务。
    • 能够创建和管理 EC2 实例,了解基本的网络安全设置。
  4. Stable Diffusion 基础

    • 对 Stable Diffusion 模型有基本了解,知道其主要用途和工作原理。
    • 熟悉 ControlNet、VAE 等相关概念。
  5. 版本控制

    • 了解 Git 的基本用法,能够克隆仓库、提交更改。
  6. 环境配置能力

    • 能够设置 Python 虚拟环境。
    • 了解如何安装 Python 包和管理依赖。
  7. 基本的问题排查能力

    • 能够阅读和理解错误日志。
    • 具备基本的调试技能,能够解决简单的环境和代码问题。

环境搭建:基础设施与依赖项

硬件环境

本次实验在 AWS 云平台上进行,具体配置如下:

  • EC2 实例类型:g4dn.xlarge
  • AMI:Deep Learning OSS Nvidia Driver AMI GPU PyTorch 2.4.1 (Ubuntu 22.04) 20240929

选择这个配置的原因:

  1. g4dn.xlarge 实例配备了 NVIDIA T4 GPU,非常适合运行中等规模的深度学习任务。
  2. 预装的 Deep Learning AMI 大大简化了环境配置过程,已包含 NVIDIA 驱动和 PyTorch 等必要组件。

软件环境

在此基础上,我们还需要安装一些额外的组件来支持 ComfyUI 的完整功能:

  • ComfyUI-Manager:用于管理和安装各种自定义节点的实用工具。
  • comfyui_controlnet_aux:执行 ControlNet 相关操作的核心组件。
  • rgthree's ComfyUI Nodes:扩展工作流功能的自定义节点集,尤其适用于 LoRA 操作。

提示:加载新工作流时,务必检查节点类型是否齐全。ComfyUI 界面会对缺失组件发出警告。

模型与输入文件准备

最耗时但至关重要的步骤是下载所有必需的模型和输入文件。以下是本次生图工作流所需资源的详细清单,包括下载链接和对应的存储路径:

  1. SDXL 模型

  2. VAE 模型

  3. 输入图像

  4. ControlNet 模型
    a. 草图控制和风格固定用 T2I-Adapter:

    b. 深度估计用 SAI XL Depth:

  5. 超分辨率模型

注意:如果 ComfyUI 安装中没有上述目录,则需要手动创建。

工作流程执行

完成准备工作后,我们点击界面右边的Queue Prompt按钮开始执行工作流。以下是观察到的一些现象:

  1. 执行时间:首次运行整个流程耗时约 383.24 秒,后续运行仅需 106 秒。这种显著的性能提升主要得益于缓存机制和 GPU 预热。

  2. 工作流复杂度:该生图工作流涉及多个复杂步骤,包括图像预处理、ControlNet 引导、SDXL 推理和超分辨率处理。

  3. 资源消耗:请注意,特别是在处理高分辨率输入或输出时,该流程会导致 GPU 使用率和内存消耗激增。

经验总结与优化方向

  1. 充分准备至关重要:提前准备好所有模型和输入文件可大幅减少故障排除时间。请仔细核对文件路径!

  2. LoRA 实验:虽然本次运行未使用 LoRA 模型,但将其纳入未来实验计划中,以探索进一步提升生图效果的可能性。

  3. 性能优化:如需进行多次迭代,建议优化工作流程以加快后续运行速度。考虑使用模型量化、批处理等技术。

posted @ 2024-10-03 01:39  LexLuc  阅读(281)  评论(0编辑  收藏  举报