ComfyUIを手動インストールしてSDXLモデルを使用する手順(Windows)
Last update 08-12-2023
▼ 本記事について
概要
ComfyUIはStable Diffusionモデルから画像を生成する、Webブラウザベースのツールです。最近ではSDXLモデルでの生成速度の早さ、消費VRAM量の少なさ(1304x768の生成時で6GB程度)から注目を浴びています。
本記事では手動でインストールを行い、SDXLモデルで画像生成を行う手順を説明します。敢えて手動である理由は、gitで管理を行いたいからです。
動作環境(推定)
Geforce RTX 2xxx以降(VRAM 8GB以上)、Python 3.10、CUDA Toolkit 11.8、Git、なるべく高速なSSD、なるべく高速なインターネット回線、このあたりがそろっていれば大丈夫だと思います。
ComfyUIの公式リポジトリ
https://github.com/comfyanonymous/ComfyUI
通常の利用方法(ポータブル版)
公式リポジトリにアクセスして、「Installing」→「Windows」にある「Direct link to download」からアーカイブファイルをダウンロードしてください。これを適当なディレクトリに解凍(7z形式に対応したツールが必要)して、「run_nvidia_gpu.bat」を実行してください。アップデートの手順も備わっていますので、通常はこの方法が良いでしょう。
▼ インストール
基本的には、公式リポジトリにある「Manual Install (Windows, Linux)」の手順に従います。なお、他のリポジトリの仮想環境に相乗りする方法もあるようですが、これは行わずにComfyUI専用の仮想環境を作成します。
ダウンロードと仮想環境の作成
作業ディレクトリを「C:\aiwork」としていますので、適宜読み替えてください。コマンド プロンプトを開いて、ディレクトリ「C:\aiwork\ComfyUI」が無い状態で下記のコマンドを順に実行してください。
cd \aiwork
git clone https://github.com/comfyanonymous/ComfyUI
cd ComfyUI
python -m venv venv
venv\Scripts\activate
(ここで行頭に (venv) が付いていることを確認する)
python -m pip install --upgrade pip
PyTorchとxFormersのインストール
下記のコマンドを実行してください。パッケージのダウンロード等でしばらくかかります。
pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118 xformers
実行終了時に「Successfully installed … torch-2.0.1+cu118 …」と表示されることを確認してください。cu118のような記述が無い場合はCPU版のtorchがインストールされているため、GPUを使うことができません。
必要なパッケージのインストール
下記のコマンドを実行してください。少しだけ時間がかかるかもしれません。
pip install -r requirements.txt
モデルと設定ファイルのダウンロード
本記事では例として、Linaqruf氏のAnimagine XLを使用することにします。他のモデルでも構いませんが、ワークフロー(拡張子がjson)またはComfyUIで出力された画像(拡張子がpng)が必要です。
まずは https://huggingface.co/Linaqruf/animagine-xl へアクセスしてください。「Files and versions」→「animagine-xl.safetensors」の順でダウンロードを行い、「C:\aiwork\ComfyUI\models\checkpoints」へ移動してください。また、「animagine_xl_workflow.json」もダウンロードしてください。こちらは後で使用します。
▼ 実行(動作確認)
起動
まずは起動して動作を確認してみます。先ほどの手順から続けて、下記のコマンドを実行してください。
python main.py
起動には時間はかからず、下記の表示で止まります。Webブラウザで指示されたURLへアクセスしてください。
Total VRAM 12287 MB, total RAM 32691 MB
xformers version: 0.0.20
Set vram state to: NORMAL_VRAM
Device: cuda:0 NVIDIA GeForce RTX 3060 : cudaMallocAsync
Using xformers cross attention
Starting server
To see the GUI go to: http://127.0.0.1:8188
アクセスすると、下記の画面が表示されました。低解像度では少し扱いづらいかもしれません。各ボックスや全体は、ドラッグ操作で動かすことができます。
ワークフローの読み込み
前の手順でダウンロードした「animagine_xl_workflow.json」を読み込みます。「Load」をクリックしてファイルを選択するか、ファイルをUIの画面に直接ドラッグ&ドロップしてください。
推論(画像の生成)
推論を実行するため、「Queue Prompt」をクリックしてください。進捗が視覚的に示され、少し待つと生成された画像が表示されます。
画像の保存先は「C:\aiwork\ComfyUI\output」ですので、確認してください。
画像からワークフローを読み込んで生成する
ComfyUIで生成された画像には、ワークフローを含む設定が記録されています。動作確認の続きとして、これを読み込んでみることにします。
まずは「Clear」「OK」の順にクリックして、ワークフローを消してください。この手順は視覚的分かりやすくするために行うのみですので、今後は必要ありません。
次に「Load」をクリックして画像を選択するか、画像をUIの画面に直接ドラッグ&ドロップしてください。ワークフローが構築され、プロンプトや「seed」等の設定まで再現されます。
それでは改めて「Queue Prompt」をクリックしてください。今回は異なる画像が生成されました。これは「Ksampler」の「control_after_generate」が「randomize」になっていて、seedが変更されるためです。左矢印を何度かクリックして「fixed」にしておくと、seedが変わらずに同じ画像が生成されます。
終了する
コマンド プロンプトのウインドウで「Ctrl + C」を押すか、おもむろにコマンド プロンプトの画面を閉じてください。作業のためコマンド プロンプトの画面を残した場合は必要に応じて、下記のコマンドを実行して仮想環境から抜けてください。行頭の「(venv)」の表示が消えます。
deactivate
▼ 起動等を簡単にする
ComfyUIの起動が若干の手間なので、省力化することにします。また、更新(アップデート)の手順も用意しておきます。
起動用バッチファイルの作成
新規ファイル「C:\aiwork\comfy.bat」を下記の内容で作成してください。
@echo off
cd \aiwork\ComfyUI
call venv\Scripts\activate.bat
python main.py
cd ..
deactivate
これ以降にComfyUIを起動したい場合は、コマンド プロンプトを開いて、下記のコマンドを順に実行してください。
cd \aiwork
comfy
終了したい場合は、コマンド プロンプトのウインドウで「Ctrl + C」を押して、「バッチ ジョブを終了しますか (Y/N)」で「N」と答えるか、おもむろにウインドウを閉じてください。
なお、このバッチファイルは「deactivate」が最後に書いてあり、これが実行されるとバッチファイルの処理が終了します(後ろに何を書いても無効)。続けて処理を行いたい方は、deactivate.batをcallするように書き換える等、工夫してください。
更新用バッチファイルの作成
新規ファイル「C:\aiwork\gpc.bat」を下記の内容で作成してください。ファイル名はgpcでなくても構いません。
@echo off
cd \aiwork\ComfyUI
git pull
cd ..
このバッチファイルを実行すると、最新版への更新が行われるか、更新が無ければ下記の表示が出ます。
Already up to date.
▼ メモ
アンインストールの手順
もし、必要なファイルがあれば移動してください。その後、実行を終了した状態で「ComfyUI」のディレクトリを削除してください。
補足
本記事では最小限の手順しか行っていません。機能を増やすためにはワークフローを入手するか、自分で作る必要があります。
▼ その他
私が書いた他の記事は、メニューよりたどってください。
noteのアカウントはメインの@Mayu_Hiraizumiに紐付けていますが、記事に関することはサブアカウントの@riddi0908までお願いします。