2022年9月4日日曜日

Stable Diffusion

画像生成AI(4)からの続き

画像生成AIで,いま一番ホットな Stable Diffusionの特徴は,オープンソースであり,誰でもが自分のローカル環境にこのAIアプリケーションを導入できるというところだ。

以前から,ネット上には環境構築手順がいろいろと投稿されているが,ゲーミングPCの高いGPUスペックがないと使い物にならないというのが定説だった。

MacBook M1環境での報告がないわけではなかったが,python環境のためにAacondaがどうとか(以前複数のバージョンのanacondaを入れて往生した),ややこしいことこの上なく,それも人によって説明がマチマチなので閉口していた。

この度公開された手順は大変スッキリしていて簡単だった。さっそく手元のMacBook Air M1で試してみることにする。環境構築は何の問題もなくパスした。huggingface.co からのモデルの取得には,アカウントの作成が必要で,GitHubのそれと途中で混乱してあわてたけれど,4GBのデータ取得も数分もかからなかった。

見本にしたがってリンゴの絵を出してみたところ,7分程度で完了した。途中でメモリを使い切っているという警告が出たので,あれこれのバックグラウンドで立ち上がっていたアプリは全部シャットダウンした。
ローカル環境構築
% git clone -b apple-silicon-mps-support https://github.com/bfirsh/stable-diffusion.git
% cd stable-diffusion
stable-diffusion % mkdir -p models/ldm/stable-diffusion-v1/
stable-diffusion % python3 -m pip install virtualenv
stable-diffusion % python3 -m virtualenv venv
stable-diffusion % source venv/bin/activate
(venv) stable-diffusion % pip install -r requirements.txt

モデルの取得
https://huggingface.co/CompVis/stable-diffusion-v-1-4-original
% mv /Downloads/sd-v1-4.ckpt stable-diffusion/models/ldm/stable-diffusion-v1/model.ckpt

見本の出力
(venv) stable-diffusion % python scripts/txt2img.py --prompt "a red juicy apple floating in outer space, like a planet" --n_samples 1 --n_iter 1 --plms

(venv) stable-diffusion % mv outputs/txt2img-samples/grid-0000.png ~/Desktop/grid-0009.png

安全装置の場所
(venv) stable_diffusion % pwd
stable-diffusion/venv/lib/python3.10/site-packages/diffusers/pipelines/stable_diffusion
(venv) stable_diffusion % vi safety_checker.py

プロンプトは,"a turtle and a pigeon are fighting on the sunny veranda under the blue sky"として,
1枚の画像生成に3分ほどかかる。n_samplesパラメタを増やすと異常終了し,iterationパラメタをさわると複数画像が生成された。ときどき,リックロールGive You Up)イメージがでる。


写真:ローカルにインストールしたStable Fusionの20回の出力から選んだ2点

0 件のコメント: