Macbook Pro(M2)でComfyUIを使って画像生成をする
はじめに
以前から興味があり、AIによる画像生成に挑戦するタイミングをうかがっていましたが、ふと見たYoutube動画にピンときて、脳内で諸葛亮孔明が「今です!」と言いましたので、ちょっと手を出してみました。
ひとまず、やんわりと賑わいを外からながめていた程度の知識しかありませんので、用語等の整理をしつつ、生成の環境を揃えて画像を生成してみるところまでの記録です。
スペック
2023年の夏頃にちょっとだけMidjourneyを使ってたけど、なんかしっくりこずに疎遠に。
- MacBook Pro 14インチ 2023
- Apple M2 Max 32GB/1TB
- macOS Sonoma 14.2
-
python -V
=> Python 3.12.0 -
git --version
=> git version 2.33.0
概要
今回は、ComfyUIというツールを使って、画像生成をやります。
ComfyUIは、Stable Diffusionという画像生成AIを簡単に使うためのツールで、Webブラウザを使って、ノードベースで設定をしながら、画像を生成します。
ノードベースというのは処理の手順をフローチャートみたいな感じで配置して実行できるプログラミング環境?です。
参考までに、ComfyUIとStable Diffusionが動作する流れを知っておくといいかもしれません。動作の流れは、以下のようになっています:
動作フロー
- ComfyUI(ローカルのWeb画面)にアクセスする。
- ノードをカスタマイズする。
- 利用するモデルを指定する。
- テキストプロンプトを入力する。
- パラメータを調整する。
- 「Queue Prompt」ボタンをクリックする。
- ComfyUIがプロンプトをStable Diffusionに渡す。
- Stable Diffusionが画像を生成する。
- ComfyUIが表示したり保存したりする
今回の作業
具体的な今回の作業としては、
- 作業ディレクトリの作成
- ディレクトリにPython環境を構築
- pipで必要なものをインストール
- gitからComfyUIをクローン
- モデルを調達
- main.pyの実行
- ブラウザで確認
- 画像の生成
という感じの流れになります。環境にもよるけど、1時間くらいあれば画像を生成できる状態になるかと思います。
今回はテスト的にやってるので、あまり参考にならないかもしれませんが、画像の生成時間は、512x512の大きさの画像で数十秒といったところです。
ComfyUIの導入(macOS)
導入手順
- 作業ディレクトリの作成 => 一度だけ実施
mkdir AI
cd AI
- ディレクトリにPythonの仮想環境を構築
python -m venv venv
=> 一度だけ実施(venvという仮想環境ディレクトリの作成)
. ./venv/bin/activate
=> 仮想環境を起動(ターミナルの行頭に(venv)
とかつくようになる) - pipで必要なものをインストール => 一度だけ実施
pip install --upgrade pip
pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu
- gitからComfyUIをクローン => 一度だけ実施
git clone https://github.com/comfyanonymous/ComfyUI.git
cd comfyUI
pip install -r requirements.txt
- モデルを調達 => 一度だけ実施
たとえば、以下のようなサイトからCheckpointや必要であれば、LoRAのデータを調達
-
Linaqruf/animagine-xl-2.0 · Hugging Face
CheckpointとLoRA
上記のサイトを利用する最低限の知識として、CheckpointとLoRAがなにかを把握しておく必要があります。- Checkpoint
必須です。必ず一つ用意します。
保存場所:ComfyUI > models > checkpoints
モデルファイルの本体。作風の特徴を指定 - LoRA
必須ではない。複数適用可能。
保存場所:ComfyUI > models > loras
モデルファイル(Checkpoints)に対して、追加学習を行った差分ファイル
背景、髪型、服装などのパーツの特徴を指定
- Checkpoint
- main.pyの実行
python main.py
エラーがなければ、
To see the GUI go to: http://127.0.0.1:8188
とか出るので、http://127.0.0.1:8188 へアクセス - ブラウザで確認
画像を生成してみる
- 画面説明
初期の画面はこんな感じ
- 操作説明
「Load Checkpoint」ノードでを指定して、「Queue Prompt」ボタンをクリック
ノードの枠が緑に変化し、処理の状況がわかる
「KSampler」ノードでは、プログレスバーも表示される - 結果
いくつかのCheckpointで、以下のプロンプトを指定して生成してみた結果
face focus, bishounen, masterpiece, best quality, 1girl, pink hair, sweater, looking at viewer, upper body, beanie, outdoors, night, turtleneck
画像はComfyUI > output
に生成されている
Checkpoint: aamAnyloraAnimeMixAnime_v1
Checkpoint: aingdiffusion_v13
Checkpoint: anitoon_v10
Checkpoint: deepblueXL_v050
Checkpoint: kaywaii_v80
Checkpoint: realcartoonPixar_v6
起動・終了
終了
-
Ctrl + c
でComfy UIが終了 -
exit
でvenvが終了
起動
-
. ./venv/bin/activate
で仮想環境が起動 -
cd comfyUI
でディレクトリを移動 -
python main.py
でComfy UIを起動 - http://127.0.0.1:8188 へアクセス
Comfy UIの使い方(基本)
以下の動画が参考になる
Comfy UIの使い方(応用)
後日追加予定
用語
-
Stable Diffusionとは
- 深層生成ニューラル ネットワークの一種である潜在拡散モデル
- 2022年にStability AIによって開発
- テキストから画像への変換に特化したモデル
- DALL-E 2やMidJourney
- OpenAIが公開したテキストと画像のデータセット「DALL-E 2 Dataset」を使用してトレーニングされている
- オープンソース
-
ComfyUIとは
- Stable Diffusionを簡単に使えるようにWebUI上で操作できるようにしたツール
- コードを書かなくてもStable Diffusionを使いこなすことができる
- ノードベースのUIで、処理の流れを可視化
- さまざまなパラメータを調整して、画像の生成をカスタマイズ
- 3GB未満のVRAMを持つGPUでも動作
- ノードを追加することができる
- テキストプロンプトを加工するノード
- 生成された画像をさらに加工するノード
-
画像生成AIとは
- テキストやコードなどの入力情報に基づいて、画像を生成することができるAI
- テキストから画像を生成
- 既存の画像を加工して新しい画像を生成
- 代表的な画像生成AI
-
DALL-E 2
- OpenAIが開発した、
- テキストから画像を生成するAIです。
- 2022年1月、まだ開発中の段階で公開され、
- 画質の高さと表現力の高さから大きな注目を集めた
-
Midjourney
- DeepMindが開発
- テキストから画像を生成
- 2022年11月、まだ開発中の段階で公開
- DALL-E 2と比較して、よりクリエイティブでユニークな画像を生成できる
-
Stable Diffusion
- Stability AIが開発
- テキストから画像を生成
- 2022年12月、オープンソースで公開
- DALL-E 2やMidjourneyと同様に、テキストから画像への変換の精度と品質の高さが特徴
-
StyleGAN
- NVIDIAが開発
- 既存の画像を加工して新しい画像を生成
- 2018年に公開
- 画質の高さから注目を集めた
-
CycleGAN
- Google AIが開発
- 異なる画像のスタイルを転移するAI
- 2017年に公開
- さまざまな画像のスタイルを転移できる
-
DALL-E 2
- テキストやコードなどの入力情報に基づいて、画像を生成することができるAI
参考URL
- 【Stable Diffusion】MacのローカルでComfyUIを実行する方法
- Stable Diffusion ComfyUIをインストールする | パソコンニキ
- AnimateDiffをComfyUI環境で実現する。簡単ショートムービーを作る|Alone1M
- <Stable Diffusion>checkpointとは?おすすめモデルや使い方を詳しく解説!
- [ComfyUI]LoRAを使う|さいぴ
-
Stable Diffusionをより理解するため ComfyUIを使ってみる - YouTube
【別次元!】AnimateDiffが6GBでも動いた!さらに、進化版AnimateDiffで、最高のmov2movも可能に - YouTube
Discussion