【ComfyUI】SDXLをVRAM6GMの低スぺGPUで動かす方法を紹介!【初心者向け導入方法】【Stable Diffusion】

こんにちは!悠です!

 

今回は2023年8月24日時点で、「Stable Diffusion」の最新バージョンであるSDXLを使って、VRAM6GBの低スペックGPU(GTX 1660Ti)で画像を生成する方法に関して紹介していきます。

いつもの「AUTOMATIC1111」ではなく、「ComfyUI」という別のツールを使っていくので、その導入方法に関してもまとめていきます。

軽くググると自分でノードを作成しないといけなくてハードルが高そうに思うかもしれませんが、実はコピペするだけでできるためノードの知識はほぼ0でOKです!

 

スポンサーリンク
スポンサーリンク

VRAM6GB(1111)でSDXLはほぼ不可能

VRAM6GBのGPU(GTX1660Ti)で、Stable Diffusion WebUI(AUTOMATIC1111)を使って画像生成に何度か挑戦してみたんですが、結果は大失敗でした。

YouTube上には下のように、–lowvramや–xformersのオプションを併用することで、SDXLによる画像生成(VRAM6GB)を成功させている動画もあったんですが、私には無理でしたね。

 

上の動画の方は、VRAM6GBとはいってもRTX4050だったからできたのかもしれないです(涙)



ComfyUIの導入方法

そこで、AUTOMATIC1111に比べて動作が軽いノードベースの生成ツール「ComfyUI」を試してみることにしました。

結果は大成功で、VRAM6GBのGPUでも問題なく画像を生成させることができたので、今回はそのやり方に関してまとめていきます。

GitHub - comfyanonymous/ComfyUI: A powerful and modular stable diffusion GUI with a graph/nodes interface.
A powerful and modular stable diffusion GUI with a graph/nodes interface. - GitHub - comfyanonymous/ComfyUI: A powerful and modular stable diffusion GUI with a ...

 

ComfyUIの導入

まずデスクトップ上に任意の名前のフォルダを作成します(私の場合はComfyUIにしました)。

 

コマンドプロンプトを起動し、下記のコマンドでカレントディレクトリを移動します。

cd ComfyUI

 

下記のコマンドでComfyUIのリポジトリを複製します。

git clone https://github.com/comfyanonymous/ComfyUI

 

生成されたフォルダ内(1つ下の階層)にディレクトリを移動します。

cd ComfyUI

 

仮想環境(venvフォルダ)を作成します。

python -m venv venv

 

仮想環境を有効化します。

venv\Scripts\activate

 

Pytorchとxformersを下記のコマンドで導入します。

なおこのコマンドは2023年8月24日時点で公式のGithubページに記載されているものです。今後のPytorchのアップデート状況によって変更があるかもしれません。

pip install torch torchvision torchaudio --extra-index-url https://download.pytorch.org/whl/cu118 xformers

 

無事に導入ができればいいんですが、もしzipfile.BadZipFile: Bad CRC-32 for file ‘torch/lib/torch_cuda.dll’というエラーが表示されたときは、次の2つの方法を試してみて下さい。

  1. venvフォルダを削除し、もう一度python -m venv venvで仮想環境を構築した後、pip cache purgeコマンドでキャッシュをクリアしてからPytorchをインストールする。
  2. venvフォルダを削除し、もう一度python -m venv venvで仮想環境を構築した後、pip install torch torchvision torchaudio –index-url https://download.pytorch.org/whl/cu117で2.0.0+cu117をインストールする。

 

導入後、下記のコマンドでモジュールをアップデートします(必須ではないかも)。

python -m pip install --upgrade pip

 

最後に必要な要件を下記のコマンドでインストールします。

pip install -r requirements.txt

 

これでComfyUIの導入は完了です。

 

Could not build wheels for safetensors

私の場合、pip install -r requirements.txtを実行した後、ERROR: Could not build wheels for safetensors, which is required to install pyproject.toml-based projectsというエラーが表示されてComfyUIが起動できませんでした。

 

この場合は、C:\Users\NAME\Desktop\ComfyUI\ComfyUI内にあるrequirements.txtをメモ帳で開いて、safetensors>=0.3.0safetensors==0.3.0に書き換えることでエラーを解消することができました。



モデルを配置する

それでは次に画像生成に使用するSDXLのモデルを準備します。

今回はアニメイラスト系のモデルで有名なCounterfeitXLを使用しました。Civitaiからダウンロード可能で、約6GBのサイズです。

 

DLしたモデルをC:\Users\NAME\Desktop\ComfyUI\ComfyUI\models\checkpointsに配置してください。

 

なお、SDXL専用のVAEを利用したい場合はC:\Users\NAME\Desktop\ComfyUI\ComfyUI\models\vaeに、SDXL専用のembeddingsを利用したい場合はC:\Users\NAME\Desktop\ComfyUI\ComfyUI\models\embeddingsに配置してください。

CounterfeitXLの場合は、専用のembeddingsであるnegativexl_dの利用が推奨されています。こちらもCivitaiで入手可能です。

 

ComfyUIの起動

仮想環境を有効化した後、main.pyを実行することでComfyUIを起動できます。

cd C:\Users\NAME\Desktop\ComfyUI\ComfyUI
venv\Scripts\activate
python main.py

 

main.py実行後に表示されるURLをCTRLを押しながらクリックすることで、ブラウザ上でComfyUIが実行されます。

 

ただ毎回このコマンドを打ち込むのが面倒な方は、下記のようなbatファイルを作成してC:\Users\NAME\Desktop\ComfyUI\ComfyUIに保存しましょう(ファイルの名前は何でも構いません)。

メモ帳を新規作成して下記のコマンドを記載した後、拡張子を.batに変更すればOKです。

call .\venv\scripts\activate.bat

python main.py

 

後はこれをダブルクリックするだけで、自動的にComfyUIを実行するURLが表示されます。

 

ノード情報のコピペ

さてここからがComfyUIで一番面倒なノードの作成なんですが、実はCivitaiのサムネ画像にあるWorkflowをコピペするだけで一瞬で終わります。

今回私が利用したCounterfeitXLの場合、まずはCivitaiの配布ページに移動し、バージョン1.0の横にあるβをクリックします。

サムネ画像の詳細情報を開き、Workflowの欄にあるコピーボタンを押してください。

 

新たにメモ帳を開いて、コピーした内容をペーストした後保存し、任意の名前を付けて.jsonの拡張子で保存してください。

たとえば「counterfeit_xl.json」などですね。

 

このjsonファイルをComfyUI画面上にドラッグアンドドロップすれば、Civitaiのサムネ画像生成に使用されたノード情報がそのまま表示されます。

 

後はポジティブプロンプトとネガティブプロンプトを記入後、右上にあるQueue Promptをクリックすれば画像が生成されます。

細かい調整はノードの数値を変更するだけでいいので、AUTOMATIC1111を使っている方なら迷わないはずです。

生成した画像はC:\Users\NAME\Desktop\ComfyUI\ComfyUI\outputの中に保存されます。

 

まとめ

以上が、VRAM6GBのGPUでもSDXLを使用して画像を生成できる「ComfyUI」の導入方法でした。

やってみた感想として、2023/8/24時点でなら私はSD1.5系の方が好きですw

AUTOMATIC1111で各種拡張機能も使えますし、何よりこれまでに蓄積された技術・知見が大量にあるため、簡単に可愛い画像を生成できますからね。

SDXLでSD1.5レベルの画像を生成するのには、私自身もう少し研究が必要だと感じました。

 

とはいえこれからの技術の進歩によっては、SDXLが主流になる可能性もあるので、いままで低VRAMで諦めていた方もComfyUIを使ってみてはいかがでしょうか?

本当か嘘かわかりませんが、VRAM4GBでも動くという情報をRedditで見かけましたよ!

 

では、ここまで読んでいただきありがとうございました。

 

コメント

  1. Profile より:

    こんにちは。
    ControlNetの製作者がAUTOMATIC1111と同じ感覚で使用できるFooocusというWebUIクライアントを開発していて、
    私はFooocusを使っています。
    この記事を見てComfyUIも使ってみようかと思うのですが、ComfyUIを使うメリットは何かありますか?

    • 悠 より:

      こんにちはです!

      Comfyuiの1番のよさはvramの消費量が少ないことですね。色々調べてもvram6gbでsdxlを使う事ができそうなのは、これしかありませんでした…

      Webuiが1.5.0以降sdxlに対応しているので、本当はこれが使えるのが1番いいんですが、6gbではキツすぎました

      Fooocusというのは名前だけ聞いたことがあります!私も今度試してみます!