「Googleの発表したStyleDropを早く試してみたい」
「スタイル指定による画像生成を行いたい」
このような場合には、StyleDrop(PyTorch版)がオススメです。
この記事では、StyleDrop(PyTorch版)について解説しています。
本記事の内容
- StyleDrop(PyTorch版)とは?
- StyleDrop(PyTorch版)のインストール
- StyleDrop(PyTorch版)の動作確認
それでは、上記に沿って解説していきます。
StyleDrop(PyTorch版)とは?
StyleDropとは、Googleが開発した画像生成に関する技術です。
Gitthub上の公式ページは、以下。
StyleDropの特徴は、1枚の画像からスタイル用のモデルを生成できるという点です。
このことは、次の画像で表現されています。
![](https://self-development.info/wp-content/uploads/2023/07/11.jpg)
もともとは、花の画像だけが存在しています。
この1枚の画像をもとにして、専用のモデルを生成します。
そうやってできたモデルを利用して、様々な画像を生成できるようになります。
その際には、Stable Diffusionのようにテキストを入力します。
この技術を活かせば、次のように独自フォントを簡単に作れます。
![](https://self-development.info/wp-content/uploads/2023/07/13_char_01.jpg)
また、ロゴ画像もテキストで指定するだけで無限に生成できます。
![](https://self-development.info/wp-content/uploads/2023/07/03_design_01.jpg)
こうやって見てみると、結構ヤバい技術と言えます。
簡単にアーティストのスタイルを許可なくコピーできてしまう可能性がありますからね。
そのこともあり、Googleも慎重になっているようです。
まだ、現時点(2023年7月初旬)でGitHub上においてソースコードが公開されていません。
それに、公開日についても特に明記されていません。
もしかしたら、このまま公開されない可能性もあるかもしれませんね・・・
そんな状況において、StyleDropの非公式版が2023年7月4日に公開されました。
ありがたいことに、PyTorchで動きます。
Google製であれば、おそらくTensorFlowが前提となるはずです。
StyleDropの論文や公開情報をもとにPyTorchで動くように開発したのでしょう。
出力される結果は、公式StyleDropの結果からかけ離れているわけではありません。
![](https://self-development.info/wp-content/uploads/2023/07/output_border_1000-2.jpg)
この部分は、結局学習にかけた時間なのではないでしょうか?
GPUリソースが豊富なGoogleと比べると、やはり個人(開発者)では太刀打ちできません。
これは、StyleDropを利用する際に我々利用者にも関係がある話です。
1枚の画像からモデルを生成する際、そこそこ時間を要します。
用意されている学習用のスクリプトを用いると、40分ほど学習に時間がかかります。
(※GPUメモリはRTX 3090を利用)
![](https://self-development.info/wp-content/uploads/2023/07/image_02_02.jpg)
実際に、この画像を用いてモデルを生成しました。
その結果生成されたモデルを利用すると、次のような画像が生成されます。
![](https://self-development.info/wp-content/uploads/2023/07/output_border_1000-3.jpg)
かなり質が低いです。
おそらく、あと複数回の学習が必要なのでしょう。
その機能については、ToDoリストに記述されています。
![](https://self-development.info/wp-content/uploads/2023/07/image-40.png)
そのため、まずは開発者が用意してくれているモデルを利用しましょう。
モデルを自作するのは、次回の更新まで待った方がよいかもしれません。
以上、StyleDrop(PyTorch版)について説明しました。
次は、StyleDrop(PyTorch版)のインストールを説明します。
StyleDrop(PyTorch版)のインストール
仮想環境にインストールすることを推奨します。
まずは、PyTorchをインストールします。
ただし、StyleDrop(PyTorch版)の公式ページでは特に記載はありません。
私は、PyTorch 2系をインストールしています。
もちろん、GPU版です。
PyTorchがインストールできたら、次のコマンドを実行しましょう。
pip install accelerate==0.12.0 absl-py ml_collections einops wandb ftfy==6.1.1 transformers==4.23.1 loguru webdataset==0.2.5
Linuxの場合は、「cudatoolkit=11.3」をインストールする必要があります。
Windowsの場合は、不要です。
ここまでは公式ページで記載されています。
以下は、デモを動かす場合に必要なモノです。
pip install gradio pip install xformers pip install omegaconf pip install scipy
また、学習する際にも必要となります。
後々のことを考えて、事前にインストールしておきます。
次は、StyleDrop(PyTorch版)のプロジェクトを取得します。
git clone https://github.com/zideliu/StyleDrop-PyTorch.git
ダウンロードできたら、「assets」ディレクトリを以下のような状況にしましょう。
ディレクトリは必要な都度、作成します。
. ├── assets │ ├── ckpts │ │ ├── cc3m-285000.ckpt │ │ │ ├── lr_scheduler.pth │ │ │ ├── nnet_ema.pth │ │ │ ├── nnet.pth │ │ │ ├── optimizer.pth │ │ │ └── step.pth │ │ └── imagenet256-450000.ckpt │ │ ├── lr_scheduler.pth │ │ ├── nnet_ema.pth │ │ ├── nnet.pth │ │ ├── optimizer.pth │ │ └── step.pth │ ├── fid_stats │ │ ├── fid_stats_cc3m_val.npz │ │ └── fid_stats_imagenet256_guided_diffusion.npz │ ├── pipeline.png | ├── contexts │ │ └── empty_context.npy └── └── vqgan_jax_strongaug.ckpt
ダウンロードするファイルのURLは、ここでは書きません。
コロコロと変更する可能性があるので、公式ページからアクセスしてください。
![](https://self-development.info/wp-content/uploads/2023/07/image-41.png)
とにかく、「assets」を以下のようにします。
![](https://self-development.info/wp-content/uploads/2023/07/image-42.png)
以上、StyleDrop(PyTorch版)のインストールを説明しました。
次は、StyleDrop(PyTorch版)の動作確認を説明します。
StyleDrop(PyTorch版)の動作確認
リポジトリルートに移動します。
名称を変更していない限りは、「StyleDrop-PyTorch」がリポジトリルートになります。
ここで、次のコマンドを実行します。
python gradio_demo.py
起動に成功すると、コンソールでは次のように表示されます。
Running on local URL: http://127.0.0.1:7860 Running on public URL: https://ランダムな一意の値.gradio.live This share link expires in 72 hours. For free permanent hosting and GPU upgrades, run `gradio deploy` from Terminal to deploy to Spaces (https://huggingface.co/spaces)
Chromeなどのブラウザで、「http://127.0.0.1:7860」にアクセスします。
(※「gradio.live」についてはここでは取り扱いません)
![](https://self-development.info/wp-content/uploads/2023/07/27632e3663115c404275b91210e20609.jpg)
この画面を見れたら、問題ありません。
動作確認のために「Example」を利用しましょう。
今回は、次のスタイルを選択。
![](https://self-development.info/wp-content/uploads/2023/07/image-43.png)
選択した例と、次の「Style」は連動しています。
![](https://self-development.info/wp-content/uploads/2023/07/image-44.png)
このスタイルで「チワワ」を生成してみましょう。
![](https://self-development.info/wp-content/uploads/2023/07/image-45.png)
「Prompt」に「Chihuahua」と入力して、「Run」ボタンをクリックします。
![](https://self-development.info/wp-content/uploads/2023/07/111a91849668cca0c869952cf4b528e3.jpg)
処理が完了すると、選択したスタイルで「チワワ」の画像が生成されています。
以上、StyleDrop(PyTorch版)の動作確認を説明しました。