ある人物の写った画像が1枚だけあれば、その人物の特徴を反映して画像生成をすることができる「Fast composer」という技術をWindowsのローカル環境で動かすまでの手順を丁寧に解説します。
手順通りにすれば10分かからず使い始められます!!(回線速度などに依る)
こういう入力画像の人物を踏まえた画像が簡単に作れます。
「A girl <A*> is drinking a cup of coffee at cafeteria
」というプロンプトで、カフェテリアでコップを持たせてみました。
入力画像
Fastcomposer出力
人物LoRAを過去のものにするような技術ですね。
1. Fast composerのインストール
予めインストールしておくもの
- Python(当方3.10.7で動作確認済)
- Git
- CUDA関連
これらをインストール&パスの通った状態にします。
リポジトリダウンロード
適当なフォルダを作成し、フォルダ内で右クリック→「ターミナルで開く」を選択。
git clone https://github.com/mit-han-lab/fastcomposer.git
上記コマンドでリポジトリをダウンロードします。
仮想環境作成
次はfastcomposerフォルダ内にPyhtonの仮想環境を構築します。
先ほどgit cloneした際のターミナルは閉じずに、そのまま以下のコマンドをコピペして実行しましょう。
cd fastcomposer
python -m venv venv
venv\Scripts\activate.ps1
警告は気にせず貼り付けてください。
これで仮想環境が作成できました。
Pytorch以外まとめてインストール
Pytorchをインストールしてから下のコマンドを実行します。
pip install transformers accelerate datasets evaluate diffusers==0.16.1 xformers scipy clip gradio
なお、本来triton
というモジュールもインストールするよう公式に書いてあるのですが、それをインストールする際エラー↓で先に進めなくなったので、省いています。
ERROR: Could not find a version that satisfies the requirement triton (from versions: none)
ERROR: No matching distribution found for triton
省いても動作するのでOK
(一部のオプティマイザーが使えなくなるだけです。
WebUI起動時にそう↓言われました。)
A matching Triton is not available, some optimizations will not be enabled.
Error caught was: No module named 'triton'
Pytorchをインストール
PyTorchについてはCUDAバージョンなどに左右されるため、エラーなど出たら公式を確認してください。
ここでは一例として当方の環境(上記画像の通り)のコマンドを載せておきます。
pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu118
これで必要なモジュールは全て仮想環境内にインストールできました。
setup.py実行
python setup.py install
上記コマンドを実行したらインストール完了です。
仮想環境構築とは別にセットアップのスクリプトを実行するタイプは珍しいですね!
もうターミナルは一度閉じてOK.
事前学習済みモデルのダウンロード&配置
環境構築とは別にモデルのダウンロードも必要です。
公式のwget
コマンドをコピペするより、手動でブラウザからダウンロードしたほうが10倍くらい早かったので、そちらのやり方で行きます。
https://huggingface.co/mit-han-lab/fastcomposer/blob/main/pytorch_model.bin
上記ページのモデルをダウンロードしてください。
ファイル名は変更せずに、このモデルをfastcomposer\model\fastcomposer
に配置します。
(多分どこに置いてもいいけど、公式はここに置いてます)
※modelフォルダとmodelフォルダ内のfastcomposer
フォルダは自分で新規作成してください
これで遂にWebUIを起動準備が終わりました。
2. Fast composerを起動&使用する
WebUIを起動するには
fastcomposer
フォルダをエクスプローラーで開き、右クリック→ターミナルで開くを選択。
次のコマンドを打ち込み実行します。
venv\Scripts\activate.ps1
python demo/run_gradio.py --finetuned_model_path model/fastcomposer/pytorch_model.bin --mixed_precision "fp16"
http://127.0.0.1:xxxxにアクセスします。
(URLは普通7860番ポートです)
WebUI起動時のエラー対処
venv\Scripts\activate.ps1
python demo/run_gradio.py --finetuned_model_path model/fastcomposer/pytorch_model.bin --mixed_precision "fp16"
おそらく上のコマンド実行時に、「ModuleNotFoundError: No module named 'demo'
」と表示されます。
その場合、メモ帳などでdemoフォルダ内のrun_gradio.pyを開き、「demo.
」の5文字を削除して保存してください。
その後再び起動コマンドを実行すればOK.
venv\Scripts\activate.ps1
python demo/run_gradio.py --finetuned_model_path model/fastcomposer/pytorch_model.bin --mixed_precision "fp16"
使い方 設定項目解説
任意の人物が写った画像が1枚あれば、その人物が登場する画像を生成できます。
また、複数枚の画像を入力すれば、人物A,人物B,……と何人も任意の人物を登場させられます。
(解説作成時点では2人まで)
登場させたい人物単体が写った画像を入力して、適当なプロンプトを入力して、Runを押します。
alphaは、小さくすると画像とテキストから逸脱した画像が生成されやすく、大きくするとアイデンティティの保存が改善されるそうです。
つまりアルファが大きいほど入力画像に忠実?!
なお、プロンプトは、「A girl <A*>
is drinking coffee」のようにします。
入力画像が2枚の場合は、「<A*>
」の順番に注意。
image1の人物が1番目の<A*>
で、image2の人物が2番目の<A*>
として扱われます。
下のような書き方ですね。
A girl <A*> is drinking coffee and a girl <A*> is watchig her
Advanced optionsでは、steps数やseed値などを調整できます。
なお、出力先はC:\Users\loveanime\AppData\Local\Temp
です。
(各々のユーザー名に依ります)
実演 実力は如何ほどか???
適当に生成しておいたリアル風画像を入力画像としました。
設定は上記のように。「A girl <A*> is drinking a cup of coffee at cafeteria
」です。
入力画像
Fastcomposer出力
ピンク髪と着物の色は反映がいまひとつです。
しかし顔や髪型などはおおむね特徴を踏まえており、ちゃんとプロンプト通りに「カフェテリアでコップに入ったコーヒを飲んで」います。
残念ながら二次元イラストには対応していないようですが、十分遊べそうですね。
人物LoRAはもう要らないかもしれません。
キャラLoRAもイラスト特化の事前学習済みモデルが登場すればあるいは……?!
まとめ 1枚の画像から任意の人物の特徴を踏まえ画像生成「Fast Compose」の使い方
- GIt,Pythonなどをインストールしておく
- リポジトリをダウンロード
- 諸々を仮想環境にインストール
- セットアップ&モデル配置
- WebUIを起動
- 画像を入力して、画像生成!!
手順通りにすれば10分かからず使い始められます。(回線速度などに依ります)
たった1枚で人物再現できるとかとんでもない進化ですね!
VRAM24GBと数時間を費やしてたった1人の学習をしていたDreamBooth時代が懐かしい!!
他にも有用な拡張機能はたくさんあるので、是非見ていってください!!