見出し画像

FLUX.1を自宅のパソコンで動かす

Stable Diffusion 3になってから、画像生成に時間が掛かる割に内容が今ひとつでしたので、必要な時は手軽なDALL·E 3をChatGPTで使うくらいになっていました。
ところが2024/8にFLUX.1が登場し、その圧倒的なクオリティーが話題になっていましたので自宅のパソコンに画像生成の環境を再び作りました。その時にダウンロードしたファイル、導入手順、使い方をまとめたいと思います。

1.使ったハードウェア環境

今回FLUX.1をセットアップしたパソコンは、購入してから3年経つパソコンを使っているため、だいぶ性能的に見劣りしてきました。しかし解像度1280*720であれば20stepで画像1枚あたり平均80秒くらいで生成できましたので、ギリギリ我慢できる感じです。良いシード値を見つけるまでは解像度を低くして何度も試した方が良いかもしれません。

なお、FLUX.1を使う上で重要な部品は、システムメモリとNvidia系のグラフィックカードですので、それ以外は挙げていません。

  • システムメモリ:32GB

  • グラフィックカードメモリ:8GB(GeForce RTX 3060Ti)

2.使ったソフトウェア環境

ソフトウェアもバージョンが色々とありますので、そちらも紹介します。

  • Windows11 Home 23H2

  • Python v3.11.9

  • Git v2.46.0

  • CUDA v12.1

  • cuDNN v9.3

3.ファイルのダウンロード

今回試した環境で使用したファイルのリンクを案内します。

3-1.Git v2.46.0

リンク先のDownload for Windowsを選択し、64-bit Git for Windows Setupからインストーラーをダウンロードします。

3-2.Python v3.11.x

下記リンクからWindows11であればWindows installer (64-bit)をダウンロードしてください。

3-3.CUDA Toolkit v12.1

私と同じWindows11でしたら、下記のリンクからダウンロードします。

3-4.cuDNN v9.3.0

こちらのダウンロードにはNNIDIAアカウントの作成、ログインが必要です。今回使うCUDA Toolkitのバージョンがv12ですので、こちらもCUDA v12用を使ってください。Windows11でしたら以下を選んでダウンロードします。

cuDNN 9.3.0 Downloads | NVIDIA Developer

3-5.flux1-dev-bnb-nf4-v2.safetensors

FLUX.1のDevをNF4で量子化したモデルです。4bit Normal Floatのデータ型を使用することでメモリ使用量を落とすことができます。

3-6.Workflow

画像の中にFLUX1-dev-bnb-nf4の設定が入っていますのでリンク先の画像ファイル(png)をダウンロードします。

4.導入手順

ダウンロードしたファイルが何もインストールされていないパソコンを前提に手順を紹介したいと思います。既に導入しているものがありましたら、その部分は読み飛ばしてください。

4-1.Gitのインストール

ダウンロードした、「Git-2.46.0-64-bit.exe」をダブルクリックしてインストール画面を表示したら何も変更せずに「次へ」を押してインストールします。

4-2.Pythonのインストール

ダウンロードした、「python-3.11.9-amd64.exe」をダブルクリックし、以下の「Add Python 3.xx to PATH」を有効にしてください。

インストール後にコマンドプロンプトでpythonと入力したときにpythonのバージョンが表示されていれば、インストールは成功しています。

4-3.CUDA Toolkitのインストール

ダウンロードした「cuda_12.1.0_531.14_windows.exe」をダブルクリックしてインストールします。特に設定は変えずに「次へ」を押していきます。

4-4.cuDNNのインストール

ダウンロードした「cudnn-windows-x86_64-9.3.0.75_cuda12-archive.zip」を解凍し、中にあるbin、include、libフォルダを「C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1」にコピーします。

4-5.ComfyUIのインストール

今回はFLUXをComfyUIという画面から操作しようと思います。こちらのアプリケーションはGitから導入します。コマンド プロンプトを起動し、ComfyUIをインストールするパスに移動します。例えば%USERPROFILE%\Documentsにインストールする場合には、まずフォルダを移動してからgit cloneします。
またPythonの環境はプロジェクト毎に分けた方が安心なのでvenvで仮想環境を構築します。仮想環境が完成したら、pipを使う前に最新版にしましょう。またコマンド プロンプトは以後しばらく使うので、このまま立ち上げておきます。

cd %USERPROFILE%\Documents
git clone https://github.com/comfyanonymous/ComfyUI

cd ComfyUI
python -m venv venv
venv\Scripts\activate

python -m pip install --upgrade pip

4-6.Pytorchのインストール

Pytorchは機械学習ライブラリで、生成AIをパソコンで使うときにはほとんど使います。Pytorchはバージョンが複雑なライブラリですが、前段で専用の環境をvenvで作っているので安心です。
Pytorchのページに行くとインストール用のコマンドを調べることができます。

以下の図のように今回はPytorch Buildは安定版(Stable)、OSがWindows、Packageはpip、LanguageはPython、Compute PlatformはCUDA 12.1なので、これを選んでいきますとpipで実行するコマンドが表示されますので、これをコマンドプロンプトに入力します。

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121

4-7.ComfyUIが必要とするPythonライブラリのインストール

ComfyUIが必要なPythonライブラリはComfyUIフォルダ内のrequirements.txtに記載されていますので、これをコマンドプロンプトに入力します。

pip install -r requirements.txt

4-8.ComfyUI_bitsandbytes_NF4のインストール

flux1-dev-bnb-nf4-v2をComfyUIで使うためにComfyUI_bitsandbytes_NF4をGitで導入します。拡張機能はComfyUI\custom_nodesにインストールするのでコマンドプロンプトでフォルダに移動してからGit Cloneします。ComfyUI_bitsandbytes_NF4も必要なライブラリがrequirements.txtに記載されていますので、これをコマンドプロンプトに入力します。

cd custom_nodes
git clone https://github.com/comfyanonymous/ComfyUI_bitsandbytes_NF4

cd ComfyUI_bitsandbytes_NF4
pip install -r requirements.txt

4-8.flux1-dev-bnb-nf4-v2のコピー

ダウンロードしたflux1-dev-bnb-nf4-v2.safetensorsをComfyUI\models\checkpointsにコピーします。

4-9.ComfyUI起動バッチファイルの作成

ComfyUIを立ち上げるバッチファイルを以下の内容で作ります。テキストエディターで以下の内容を書いて保存し、ファイルの拡張子をtxtからbatに変更します。

@echo off
cd %USERPROFILE%\Documents\ComfyUI
call venv\Scripts\activate.bat
python main.py
call venv\Scripts\deactivate.bat
pause

5.操作手順

5-1.ComfyUIを起動する

導入時に作成したバッチファイルをダブルクリックで実行すると、しばらくしてコマンドプロンプトに「To see the GUI go to: http://127.0.0.1:8188」というメッセージが出ればComfyUIが起動していますのでChromeなどのブラウザでhttp://127.0.0.1:8188にアクセスします。下のような画面が表示されれば起動しています。

5-2.ComfyUIの初期設定でWorkflowを適用する

あらかじめダウンロードしたWorkflowのpngファイル(FLUX1-bnb-NF4.png)をブラウザ画面にドラッグ&ドロップします。これでflux1-dev-bnb-nf4-v2.safetensorsの設定が完了です。

5-3.画像生成する

ここまで長い道のりでしたが、いよいよ画像を生成できるようになりました。画面中央のCLIP Text Encode(Positive Prompt)に出力したい画像のプロンプトを入力します。日本語で書いた内容をChatGPTやClaudeなどでプロンプトにしてもらうと楽だと思います。まずは設定はそのままにプロンプトを入力したらQueue Promptボタンを押すと画像生成が開始します。
生成された画像はComfyUI\outputにpngファイルで出力されます。設定に関しては画像サイズは変更しますが、それ以外はとくに変更しないことが多いです。
一概には言えませんが、横長の解像度で引きの画像が何を指定しても改善しないときは縦長の解像度にすると解決する傾向があります。

この記事が気に入ったらサポートをしてみませんか?