「8GBのGPUでSDXL 1.0を動かしたいが、ComfyUIは使いたくない・・・」
「WindowsでFooocusをrun.bat形式(7z)によって利用したくない・・・」
「とにかく簡単に高画質の画像を生成したい!」
このような場合には、この記事の内容が参考になります。
この記事では、Fooocusについて解説しています。
本記事の内容
- Fooocusとは?
- Fooocusのシステム要件
- Fooocusのインストール
- Fooocusの動作確認
それでは、上記に沿って解説していきます。
Fooocusとは?
Fooocusは、オープンソースの画像生成ソフトウェアです。
画像生成は、Stable Diffusion(SDXL 1.0)に依存しています。
シンプルで使いやすいGUIは、Midjourneyを参考にしているということです。
システム的にも、4GBのGPUでも動くように最適化が実施されています。
プログラムを見ると、ComfyUIをエンジンとして用いているようです。
この辺が、最適化ということなのかもしれません。

でも、8GBぐらいはないと速度にストレスを感じるかもしれませんね。
とにかく、FooocusのおかげでSDXL 1.0を利用できる間口は広まったと言えます。
現状、ComfyUIの利用者は増えています。
しかし、初心者にComfyUIの利用は無理があります。
そうかと言って、AUTOMATIC1111版web UIはスペック的に厳しいかもしれません。
web UIでは、最低でも12GBのGPUメモリが必要と言われています。
このような状況において、Fooocusは第3の選択肢になりそうです。
Windowsであれば、インストールも3クリック未満で可能とのこと。

そして、そこそこ複雑なこともやろうと思えば、できるようになっています。
もっと言うと、ComfyUIやweb UIと併用する価値が十分にあります。

「Advanced」を利用すれば、このような画像を簡単に生成できます。
ちなみに、これらの画像を生成するのに入力したプロンプトは以下。
a cat
「Advanced」の利用と言っても、マウスで選択肢から選んだだけです。
何も難しいことはありません。
以上、Fooocusについて説明しました。
次は、Fooocusのシステム要件を説明します。
Fooocusのシステム要件
Fooocusのシステム要件としては、以下がポイントになります。
- OS
- Python
- GPU
- PyTorch
それぞれを以下で説明します。
OS
FooocusがサポートしているOSは、以下となります。
- Windows
- Linux
macOSは、現状では未対応です。

これは、OSというよりGPUがという話なのでしょう。
Python
サポートしているPythonのバージョンは、xformersの状況によります。
例えば、Python 3.11だとFooocusの起動に次のようなエラーが出て止まります。
Installation of xformers is not supported in this version of Python. You can also check this and build manually: https://github.com/AUTOMATIC1111/stable-diffusion-webui/wiki/Xformers#building-xformers-on-windows-by-duckness
これは、以下のコード部分でチェックされてNGとなっているからです。

また、システム要件の一つであるPyTorch自体が以下のPythonに限られています。

Python 3.11は、xformersを手動でインストールすればOKとなります。
でも、そのようなイレギュラーな対応はオススメできません。
したがって、以下のバージョンであれば問題はなさそうです。
- Python 3.8
- Python 3.9
- Python 3.10
そうは言っても、Python 3.10が無難だと思います。

Fooocusの開発・テストは、Python 3.10で行われているようです。
そして、私自身もPython 3.10で動作確認ができています。
GPU
NVIDIAのGPUが、前提となっています。
そして、その容量がポイントになります。
4GBあれば、一応は動くようです。
ただ、4GBで動かすにはいろいろと工夫が必要となることが記載されています。
また、RTX 3060 Laptop GPU(6GB)で動作した証拠画像が公式ページにあります。

したがって、8GBのVRAMであれば大丈夫だと言えそうです。
もちろん、GPUメモリはあるに越したことはありませんけどね。
PyTorch
PyTorchのインストールは、自動的に行われます。

自動でインストールされるのは、上記のバージョンです。
現時点での最新版となります。
注意点としては、CUDA 11.8が指定されているというところですね。
CUDA 11.8は、自動でインストールされることはありません。
CUDA 11.8のインストールは、上記記事内で説明しています。
未インストールの場合は、上記を参考にインストールしておく必要があります。
以上、Fooocusのシステム要件について説明しました。
次は、Fooocusのインストールを説明します。
Fooocusのインストール
Windowsの場合は、run.batを実行するだけと公式ページでは記載されています。
ここでは、それに頼らずLinuxでの方法をベースにインストールを行います。
具体的に言うと、pipコマンドを用いてインストールします。
この方法であれば、OSを問わずにインストールが可能です。
インストールは、Python仮想環境を利用しましょう。
検証は、次のバージョンのPythonで行います。
> python -V Python 3.10.4
まずは、Fooocusをダウンロードします。
git clone https://github.com/lllyasviel/Fooocus.git cd Fooocus
場所をリポジトリルートに移動しましょう。
ここで、次のコマンドを実行します。
python.exe -m pip install --upgrade pip setuptools pip install packaging pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118 pip install -r requirements_versions.txt
すべての処理が終了したら、Fooocusのインストールは完了です。
ただし、一つ注意点があります。
requirements_versions.txt
torchsde==0.2.5 einops==0.4.1 transformers==4.30.2 safetensors==0.3.1 accelerate==0.21.0 pyyaml==6.0 Pillow==9.2.0 scipy==1.9.3 tqdm==4.64.1 psutil==5.9.5 numpy==1.23.5 pytorch_lightning==1.9.4 omegaconf==2.2.3 gradio==3.39.0 pygit2==1.12.2
現時点では、上記ライブラリは最新版と同じです。
もう少し時間が経てば、各ライブラリでバージョンにズレが出てきます。
その場合に、インストールでエラーが生じることがあり得ます。
手っ取り早い対処方法としては、バージョン指定を除外することです。
torchsde
これで解決しない場合は、ChatGPTにエラーの対応方法を聞くなりしてみてください。
以上、Fooocusのインストールを説明しました。
次は、Fooocusの動作確認を説明します。
Fooocusの動作確認
Fooocusの動作確認を行います。
Fooocusを起動する前に、必要なモデルをダウンロードしましょう。
- sd_xl_base_1.0_0.9vae.safetensors
- sd_xl_refiner_1.0_0.9vae.safetensors
それぞれは、以下のページよりダウンロードできます。




ダウンロードできたら、以下の場所に保存します。

これで準備は整いました。
リポジトリルートにいることを確認して、次のコマンドを実行します。
python launch.py
ズラズラと表示されて、最後に次のように表示されたらOKです。
App started successful. Use the app with http://127.0.0.1:7860/ or 127.0.0.1:7860
ブラウザで「http://127.0.0.1:7860」にアクセスします。
アクセスすると、非常にシンプルな画面を確認できます。
ここで画面下部にある入力欄にプロンプトを入力します。
シンプルなモノで構いません。
今回は、以下を入力。
Chihuahua
しばらくすると、2枚の画像が生成されます。

「Advanced」をチェックすると、設定を確認できます。
デフォルトの設定では、2枚の画像が生成されるようになっています。

そして、RefinerやLoRAが利用可能な設定になっています。

では、スタイルを変更して画像生成を行ってみましょう。

デフォルトの「cinematic-default」から、「game-streetfighter」に変更します。

スタイルを変更して生成した画像は、以下。

確かに、ファイトしそうな感じですね。
こんな感じでFooocusを用いると、高画質の画像を簡単に生成できます。
追記 2023年8月29日
Fooocusの改良版がリリースされました。
以上、Fooocusの動作確認を説明しました。