🦊Python
👉️ |
この世には数多のプログラミング言語がありますが、ComfyUIは Python(パイソン) という言語で動いています ComfyUIを使いこなすためにPythonでプログラミングできる必要はまったくありません
が、少しだけ用語を知っておくと、これから直面するエラー達と戦う気力が湧くかもしれません
バージョン
「言語」にバージョンがあるのは少し不思議な感じがしますが、昭和に無かった言葉が令和の時代に生まれるように、Pythonもアップデートを重ねるごとに新しい機能や改善が加えられています
基本的には下位互換性(古いコードも動くようにすること)を保つように設計されていますが、バージョンが上がると動かなくなるプログラムもあります
現在Pythonの最新バージョンは3.15ですが、ComfyUIで安定して動作するのは 3.10〜3.12 の範囲です
ライブラリ
ComfyUIで例えるのも変な話ですが、「ライブラリ」はカスタムノードみたいなものです
Python本体には無い機能を追加したり、複雑な処理を簡単に書けるようにするための「拡張パーツ」ですね
便利ではありますが、ライブラリが他のライブラリに依存していたり、Python本体とのバージョンが合わなかったりすると、 「何もしていないのに壊れた」ような状態を引き起こすことがあります 実際、ComfyUIで出会うエラーのほとんどはライブラリが原因です
pip install
ライブラリをインストールするためのコマンドです
$ pip install torch
例えばこのように打つと、インターネットから「torch」というライブラリをダウンロードしてインストールします
仮想環境
Pythonの強みであり、同時にエラーの要因にもなりやすいのがライブラリでした
入れれば入れるほど便利になりますが、そのぶん依存関係が複雑になり、エラーを引き起こす可能性も上がります
そこで登場するのが「仮想環境」です
何もせずにライブラリを入れるとPCにあるすべてのPythonプログラムに影響してしまいますが、ソフトウェアごとに専用の部屋に分けてライブラリ管理することで、複雑な依存関係になるのを防ぐことができます
しばしば登場するvenvは、この仮想環境をつくる機能のひとつです
ComfyUIが少し厄介な作りなのはこのvenvをカスタムノード事に分けるのではなく、ComfyUI全体で同じものを利用するため「『特定のカスタムノード』を入れたら壊れた」が発生しやすくなっています… ストレージに余裕があり、明確に別の用途で使う(画像生成と音楽生成等)場合、ComfyUI環境そのものを分けてしまうのも手です。幸いモデルそのものはストレージ消費を増やさず共有する設定は可能です。(用途ごとで分ける場合あまり必要ないかもしれませんが…)
ポータブル版
ポータブル版のComfyUIはちょっと特別で、ComfyUI_windows_portableのフォルダを覗いてみると、python_embededというフォルダが入っています
通常はパソコンにPythonをインストールし、その中で仮想環境を作って部屋を区切るのですが、ポータブル版はそれよりも根本的に切り離されています
「家ごと持ってきている」ような構造ですね
そのため、ComfyUI_windows_portableというフォルダをダウンロードすれば、パソコンにPythonをインストールしなくても動作しますし、ComfyUI_windows_portableをUSBに入れて別のパソコンで起動すれば、そのまま動かすことができるのです
ただ、当然ですがCUDA(NVIDIA)向けに設定してるComfyUIはCUDAがなければ動かないですし、Windows向けのComfyUIはLinuxやMacでは動きません。あくまで基本的なハードウェア構成が同じなら動く、という話です。
「◯◯Attention」とか付いてる奴らのように特定の環境(ドライバやハードウェア、パスまで強く固定されるようなややこしいライブラリ)に強く依存してるものも他に持っていくと動かないことが多いです。