📘

Macbook Pro(M2)でComfyUIを使って画像生成をする

2023/12/19に公開

はじめに

以前から興味があり、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が動作する流れを知っておくといいかもしれません。動作の流れは、以下のようになっています:

動作フロー

  1. ComfyUI(ローカルのWeb画面)にアクセスする。
  2. ノードをカスタマイズする。
    1. 利用するモデルを指定する。
    2. テキストプロンプトを入力する。
    3. パラメータを調整する。
  3. 「Queue Prompt」ボタンをクリックする。
  4. ComfyUIがプロンプトをStable Diffusionに渡す。
  5. Stable Diffusionが画像を生成する。
  6. ComfyUIが表示したり保存したりする

今回の作業

具体的な今回の作業としては、

  1. 作業ディレクトリの作成
  2. ディレクトリにPython環境を構築
  3. pipで必要なものをインストール
  4. gitからComfyUIをクローン
  5. モデルを調達
  6. main.pyの実行
  7. ブラウザで確認
  8. 画像の生成
    という感じの流れになります。環境にもよるけど、1時間くらいあれば画像を生成できる状態になるかと思います。
    今回はテスト的にやってるので、あまり参考にならないかもしれませんが、画像の生成時間は、512x512の大きさの画像で数十秒といったところです。

ComfyUIの導入(macOS)

導入手順

  1. 作業ディレクトリの作成 => 一度だけ実施
    mkdir AI
    cd AI
  2. ディレクトリにPythonの仮想環境を構築
    python -m venv venv => 一度だけ実施(venvという仮想環境ディレクトリの作成)
    . ./venv/bin/activate => 仮想環境を起動(ターミナルの行頭に(venv)とかつくようになる)
  3. pipで必要なものをインストール => 一度だけ実施
    pip install --upgrade pip
    pip install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cpu
  4. gitからComfyUIをクローン => 一度だけ実施
    git clone https://github.com/comfyanonymous/ComfyUI.git
    cd comfyUI
    pip install -r requirements.txt
  5. モデルを調達 => 一度だけ実施
    たとえば、以下のようなサイトからCheckpointや必要であれば、LoRAのデータを調達
  • Civitai Models | Discover Free Stable Diffusion Models

  • Linaqruf/animagine-xl-2.0 · Hugging Face

    CheckpointとLoRA
    上記のサイトを利用する最低限の知識として、CheckpointとLoRAがなにかを把握しておく必要があります。

    • Checkpoint
      必須です。必ず一つ用意します。
      保存場所: ComfyUI > models > checkpoints
      モデルファイルの本体。作風の特徴を指定
    • LoRA
      必須ではない。複数適用可能。
      保存場所: ComfyUI > models > loras
      モデルファイル(Checkpoints)に対して、追加学習を行った差分ファイル
      背景、髪型、服装などのパーツの特徴を指定
  1. main.pyの実行
    python main.py
    エラーがなければ、
    To see the GUI go to: http://127.0.0.1:8188
    とか出るので、http://127.0.0.1:8188 へアクセス
  2. ブラウザで確認

画像を生成してみる

  • 画面説明
    初期の画面はこんな感じ
  • 操作説明
    「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に生成されている

aamAnyloraAnimeMixAnime_v1
Checkpoint: aamAnyloraAnimeMixAnime_v1
aingdiffusion_v13
Checkpoint: aingdiffusion_v13
anitoon_v10
Checkpoint: anitoon_v10
deepblueXL_v050
Checkpoint: deepblueXL_v050
kaywaii_v80
Checkpoint: kaywaii_v80
realcartoonPixar_v6
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年に公開
        • さまざまな画像のスタイルを転移できる

参考URL

Discussion