スポンサーリンク
少ない元データからオリジナルの人物に似た写真を作り出せるOSSの生成AI、Photo Makerを試してみた。今回は準備するところまで。
画像生成AIについてのまとめはこちら。
Photo Makerは学習していないデータであるのに、少ない元データ、典型的な例では1枚の写真からプロンプトで指定されるいろいろな写真を作り出すことができる生成AIだ。
中国のテンセントが作成、提供する、ApacheライセンスのOSSだ。
早速試してみよう。
使う機材はいつもの自作PC8代目のJisaku8。
CPUはRyzen 5700X、メモリ32GB、GPUはRTX3060(12GB)だ。最新スペックのものには劣るが割安で購入してくみ上げることができた。
もう元は取れているんじゃないかと思えるけど、いやいや、そんなことないない。
詳細はリンク先を参照。
インストールは下記手順で行う。
すでにインストールしている場合は省略できる。
Pythonのインストール方法は、CALM2の記事を参照。
どこでもいいのだが、仮想環境はいくつもつくると思うので、今回はこうした。
まずコマンドプロンプトを開く。
C:\にPython フォルダを作成する。
c:
cd \
mkdir python
cd python
以下のコマンドで仮想環境を作る。
python3 -m venv PhotoMaker
「PhotoMaker」の個所はどういう名前でも構わない。
仮想環境ができたので、有効にする。
cd PhotoMaker\Scripts
activate
プロンプトに(PhotoMaker)と仮想環境の名称が先頭につく。
GitからPhoto Makerをダウンロードする。今回はコマンドラインでGitからダウンロードする。
mkdir \PhotoMaker
cd \PhotoMaker
git clone https://github.com/TencentARC/PhotoMaker.git
終わったら、インストール。
pip install -r requirements.txt
下記コマンドでPhoto Makerを起動する。
python gradio_demo/app.py
エラーになった。前も見たことがあるエラーだ。今回はどう対応したか記録しておこう。
File "C:\python\PhotoMaker\Lib\site-packages\spaces\zero\wrappers.py", line 42, in
Process = multiprocessing.get_context('fork').Process
Process = multiprocessing.get_context('spawn').Process
(PhotoMaker) C:\PhotoMaker>python gradio_demo\app.py
Traceback (most recent call last):
File "C:\PhotoMaker\gradio_demo\app.py", line 16, in
from photomaker import PhotoMakerStableDiffusionXLPipeline
ImportError: cannot import name 'PhotoMakerStableDiffusionXLPipeline' from 'photomaker' (C:\python\PhotoMaker\Lib\site-packages\photomaker\__init__.py)
今度は、「PhotoMakerStableDiffusionXLPipeline」がないという。重症だな。
これについてはものはあるのだがパスが通ていないので発生するそうだ。
インストールしたc:\PhotoMakerの下にあるphotomakerフォルダをgradio_demoフォルダの中に移動すればよい。
これで起動した。
早速サンプル写真を指定してプロンプトを記述して生成開始。あれ。やたらと時間がかかる。絶望的に長い時間。見込みでは2,3分でできると思っていたのだが。
これはどうやらGPUが使われていないように思える。
gradio_demo/app.pyの32行目の後にprintを追加して確認した。下のマークしてある行が追加した行。
else:
device = "cpu"
except:
device = "cpu"
print(device)
MAX_SEED = np.iinfo(np.int32).max
STYLE_NAMES = list(styles.keys())
※インデントが狂っているので注意してください。ああ、直さなきゃ・・・
実行すると確かにcpuと表示される。CUDAの問題か。
GPUの有無にかかわらず同じライブラリを使えるように、GPU対応版とCPU版のpytorchがある。
誤ってCPU版がインストールされてしまったのだろう。
まずはtorchを入れ替える。
pip uninstall torch
pip cache purge
pip install torch -f https://download.pytorch.org/whl/torch_stable.html
するとエラー。
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
torchvision 0.15.2 requires torch==2.0.1, but you have torch 2.2.0+cu121 which is incompatible.
Successfully installed torch-2.2.0+cu121
バージョンがあってないようだ。
これはc:\PhotoMaker\requirement.txtの編集をする。下の2行をコメントにしてバージョンを指定しないようにする。
#torch==2.0.1
#torchvision==0.15.2
そのうえで再度インストールする。
pip install -r requirements.txt
起動時にエラーが表示されるが何とか使えるようになった。
次回は実際に動かすところを書く。
PR