关于 Python

世界上有许多编程语言,而 ComfyUI 主要是用 Python 这种语言运行的。

为了熟练使用 ComfyUI,你完全不需要学会用 Python 编程。 不过,如果能稍微了解一些术语,也许在你将来面对错误报错时,能多一些与之战斗的勇气。


版本

说“语言”有版本可能会让人觉得有点奇怪,就像昭和时代没有的词汇在令和时代诞生一样,Python 也在不断的更新中加入新功能并做出改善。

虽然基本上设计为保持向下兼容性(让旧代码也能运行),但有时版本升级后,旧的程序也会无法运行。

  • 推荐版本
    • 目前 Python 的最新版更新得很快,但 ComfyUI 能稳定运行的版本范围在 3.103.13 之间。

库 (Library)

虽然用 ComfyUI 来打比方有点奇怪,但“库”就像是 自定义节点 一样的东西。 它是为了给 Python 本体追加功能,或者让复杂的处理写起来更简单而存在的“扩展部件”。

虽然很方便,但如果库与库之间有依赖关系,或者与 Python 本体的版本不匹配,有时就会引发 “明明什么都没做却坏掉了” 的状态。 实际上,在 ComfyUI 中遇到的大部分错误都是由库引起的。


pip install

这是用于安装上述“库”的命令。

pip install <库名>

例如像上面这样输入,就会从互联网下载并安装库。


虚拟环境

库既是 Python 的优势,也是容易引发错误的根源。 虽然装得越多越方便,但相应的依赖关系也会变复杂,引发错误的可能性也会上升。

于是就轮到 “虚拟环境” 登场了。

如果什么都不做直接安装库,会影响到 PC 上所有的 Python 程序,但如果按软件分到“专用的房间”里进行管理,就可以防止依赖关系变得过于复杂。 经常出现的 venv,就是创建这种虚拟环境的功能之一。


便携版

便携版的 ComfyUI 有点特别。 看一眼 ComfyUI_windows_portable 文件夹,你会发现里面有一个 python_embeded 文件夹。

  • 手动安装(venv): 在 PC 上安装 Python,并在其中创建虚拟环境(房间)。
  • 便携版: 将 Python 本身内嵌在了文件夹里。

这就是所谓的“连房子一起搬过来”的结构。 因此,即使 PC 本机没有安装 Python 也能运行,放入 USB 存储器插到其他 PC 上启动,也能直接运行。

🚨 注意点

虽然说“哪里都能跑”,但也是有极限的。

    1. OS 之墙: Windows 版的便携版无法在 Linux 或 Mac 上运行。
    1. 硬件之墙: 针对 CUDA (NVIDIA) 设置的 ComfyUI,无法在没有 NVIDIA GPU 的 PC 上运行。
    1. 环境依赖之墙:xformersFlashAttention 等特定的库,强烈依赖于驱动程序或硬件配置以及路径,带到其他 PC 上往往无法运行。

请理解为“只有在基本的硬件配置和 OS 相同时才能运行”的程度。