「Stable diffusion Reimagineで一体何ができるの?」
「レイアウトや構図のパターンを何種類も自動的に出したい」
このような場合には、この記事の内容が参考になります。
この記事では、Stable diffusion Reimagineについて解説しています。
本記事の内容
- Stable diffusion Reimagineとは?
- Stable diffusion Reimagineのシステム要件
- Stable diffusion Reimagineのインストール
- Stable diffusion Reimagineの動作確認
それでは、上記に沿って解説していきます。
Stable diffusion Reimagineとは?
Stable diffusion Reimagineとは、類似画像を生成するWebアプリです。
どのようなモノかは、次のページから確認できます。
Stable diffusion reimagine(※ユーザー登録など不要)
https://clipdrop.co/stable-diffusion-reimagine
Stable diffusion Reimagineの実体は、unCLIPベースのモデルになります。
unCLIPとは、DALL·E 2で採用されている画像生成技術です。
この技術により、「CLIPの反転」が可能になります。
「CLIPの反転」が、類似(バリエーションのある)画像の生成を可能にしています。
そして、そのために学習されたモデルが次のページで公開されています。
CLIP毎にモデルが用意されています。
- OpenAI CLIP(sd21-unclip-l.ckpt)
- OpenCLIP(sd21-unclip-h.ckpt)
これらのモデルを利用するデモプログラムが、GitHubで公開済みです。
機能的には、上記で紹介したWebアプリよりも高機能かもしれません。
このデモプログラムでは、Stepsなどの設定を細かく入力可能です。
設定(VRAMのサイズ)次第により、一気に12枚の画像を表示することも可能です。
デモと言いながら、十分に完成度が高いプログラムとなっています。
以降では、このデモプログラムをStable diffusion Reimagineと呼びます。
以上、Stable diffusion Reimagineについて説明しました。
次は、Stable diffusion Reimagineのシステム要件を説明します。
Stable diffusion Reimagineのシステム要件
Stable diffusion Reimagineのポイントとなるシステム要件は、以下。
- PyTorch 1系
- xFormers
- OpenAI CLIP
それぞれを以下で説明します。
PyTorch 1系
PyTorch 2系が、2023年3月にリリースされました。
処理は高速になり、後方互換性もあります。
そのため、PyTorch 2系を使いたくなります。
しかし、今回はPyTorch 1系を利用する必要があります。
それは、後述するxFormersのところで説明します。
とにかく、PyTorch 1系のGPU版をインストールしましょう。
基本的には、次の記事の内容に従えば問題ないでしょう。
なお、今回は次のコマンドでインストールしています。
(※各自の環境で利用するコマンドは異なります)
pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 torchaudio==0.13.1 --extra-index-url https://download.pytorch.org/whl/cu116
xFormers
xFormersについては、次の記事で説明しています。
Stable diffusion Reimagineは、xFormers必須のプログラムとなっています。
そのため、xFormersがインストールされていないとエラーになります。
インストールは、次のコマンドで簡単に行えます。
pip install xformers
しかし、現状ではPyTorch 2系に対応するxFormersが存在していません。
その理由は、次の記事で解説しています。
したがって、必然的にPyTorch 1系のインストールが必要になるのです。
OpenAI CLIP
OpenAI CLIPについては、次の記事をご覧ください。
OpenAI CLIPがインストールされていないと、Stable diffusion Reimagineが動きません。
そのため、事前にインストールしておきます。
pip install git+https://github.com/openai/CLIP.git
以上、Stable diffusion Reimagineのシステム要件を説明しました。
次は、Stable diffusion Reimagineのインストールを説明します。
Stable diffusion Reimagineのインストール
Stable diffusion Reimagineのインストールは、Python仮想環境の利用をオススメします。
Python仮想環境は、次の記事で解説しています。
検証は、次のバージョンのPythonで行います。
> python -V Python 3.10.4
そして、システム要件はすべてインストール済という状況です。
このような状況において、次の手順でStable diffusion Reimagineのインストールを進めます。
- Stable diffusion Reimagineの取得(GitHubから)
- requirements.txtを使った一括インストール
- モデルのダウンロード・設置
それぞれを下記で説明します。
Stable diffusion Reimagineの取得(GitHubから)
次のコマンドでGitHUbからリポジトリを取得します。
git clone https://github.com/Stability-AI/stablediffusion.git
ダウンロードできたら、リポジトリルートへ移動しておきます。
cd stablediffusion
基本的には、ここで作業を行います。
requirements.txtを使った一括インストール
リポジトリルートで、次のファイルを確認できます。
requirements.txt
albumentations==0.4.3 opencv-python pudb==2019.2 imageio==2.9.0 imageio-ffmpeg==0.4.2 pytorch-lightning==1.4.2 torchmetrics==0.6 omegaconf==2.1.1 test-tube>=0.7.5 streamlit>=0.73.1 einops==0.3.0 transformers==4.19.2 webdataset==0.2.5 open-clip-torch==2.7.0 gradio==3.13.2 kornia==0.6 invisible-watermark>=0.1.5 streamlit-drawable-canvas==0.8.0 -e .
現状では、特に修正は不要です。
よって、そのまま次のコマンドを実行します。
pip install -r requirements.txt
インストールには、しばらく時間がかかります。
モデルのダウンロード・設置
Stable Diffusion v2.1-768ベースの次のファイルをダウンロードします。
どちらか一つだけでも良いですが、私は両方ダウンロードしています。
保存先は、「checkpoints」です。
さらに、次の処理を行います。
mkdir -p checkpoints/karlo_models cd checkpoints/karlo_models wget https://arena.kakaocdn.net/brainrepo/models/karlo-public/v1.0.0.alpha/096db1af569b284eb76b3881534822d9/ViT-L-14.pt wget https://arena.kakaocdn.net/brainrepo/models/karlo-public/v1.0.0.alpha/0b62380a75e56f073e2844ab5199153d/ViT-L-14_stats.th wget https://arena.kakaocdn.net/brainrepo/models/karlo-public/v1.0.0.alpha/85626483eaca9f581e2a78d31ff905ca/prior-ckpt-step%3D01000000-of-01000000.ckpt cd ../../
Windowsの場合、wgetは非常に遅く安定していません。
そのため、ダウンロードはChromeなどのブラウザで行った方がベターです。
また、「use_karlo」(任意)を利用する場合は次の処理も行います。
両方のファイルで9GBの容量があります。
cd checkpoints/karlo_models wget https://arena.kakaocdn.net/brainrepo/models/karlo-public/v1.0.0.alpha/efdf6206d8ed593961593dc029a8affa/decoder-ckpt-step%3D01000000-of-01000000.ckpt wget https://arena.kakaocdn.net/brainrepo/models/karlo-public/v1.0.0.alpha/4226b831ae0279020d134281f3c31590/improved-sr-ckpt-step%3D1.2M.ckpt cd ../../
この処理は、今回は必須ではありません。
すべてダウンロードした場合、次のようなファイル構成になります。
以上、Stable diffusion Reimagineのインストールを説明しました。
次は、Stable diffusion Reimagineの動作確認を説明します。
Stable diffusion Reimagineの動作確認
Stable diffusion Reimagineは、次のコマンドで起動します。
streamlit run scripts/streamlit/stableunclip.py
起動すると、コンソールに次のように表示されます。
You can now view your Streamlit app in your browser. Local URL: http://localhost:8501 Network URL: http://192.168.11.50:8501
そして、自動的にブラウザで「http://localhost:8501/」を開きます。
開かない場合は、このURLにアクセスします。
画面上にエラーの表示がなければ、正常に起動できています。
ただし、次のエラーは無視しても問題ありません。
画像をアップロードすれば、このエラーは消えます。
まずは、モデルを選択しましょう。
「Full Karlo」以外で各自がダウンロードした方を選びます。
それ以外はデフォルトのままでOK。
では、画像をアップロードしましょう。
アップロードできたら、「Sample」ボタンをクリックします。
処理が完了すると、次のように4枚の画像が表示されます。
まあ、アップロードした犬に似ていると言えば似ています。
設定を変更すれば、もっと似るのかもしれませんね。
生成された画像は、次のようなパスで保存されています。
stablediffusion\outputs\demo\stable-unclip\Stable unCLIP-L\samples\000000195.png
あと、「Sample」クリック時にエラーが出るかもしれません。
その場合は、次の設定を変更すればエラーが解消する可能性があります。
数値を下げれば、その分だけ処理の負荷も減ります。
どうもVRAMに余裕がないと、エラーが出るようです。
その際、画像サイズを512×512にするのも有効です。
以上、Stable diffusion Reimagineの動作確認を説明しました。