StyleDrop(PyTorch版)のインストール | ジコログ

StyleDrop(PyTorch版)のインストール

StyleDrop(PyTorch版)のインストール 画像生成

「Googleの発表したStyleDropを早く試してみたい」
「スタイル指定による画像生成を行いたい」

このような場合には、StyleDrop(PyTorch版)がオススメです。
この記事では、StyleDrop(PyTorch版)について解説しています。

本記事の内容

  • StyleDrop(PyTorch版)とは?
  • StyleDrop(PyTorch版)のインストール
  • StyleDrop(PyTorch版)の動作確認

それでは、上記に沿って解説していきます。

StyleDrop(PyTorch版)とは?

StyleDropとは、Googleが開発した画像生成に関する技術です。
Gitthub上の公式ページは、以下。

StyleDrop: Text-to-Image Generation in Any Style

StyleDropの特徴は、1枚の画像からスタイル用のモデルを生成できるという点です。
このことは、次の画像で表現されています。

もともとは、花の画像だけが存在しています。
この1枚の画像をもとにして、専用のモデルを生成します。

そうやってできたモデルを利用して、様々な画像を生成できるようになります。
その際には、Stable Diffusionのようにテキストを入力します。

この技術を活かせば、次のように独自フォントを簡単に作れます。

また、ロゴ画像もテキストで指定するだけで無限に生成できます。

こうやって見てみると、結構ヤバい技術と言えます。
簡単にアーティストのスタイルを許可なくコピーできてしまう可能性がありますからね。

そのこともあり、Googleも慎重になっているようです。
まだ、現時点(2023年7月初旬)でGitHub上においてソースコードが公開されていません。

それに、公開日についても特に明記されていません。
もしかしたら、このまま公開されない可能性もあるかもしれませんね・・・

そんな状況において、StyleDropの非公式版が2023年7月4日に公開されました。

GitHub - zideliu/StyleDrop-PyTorch: Unoffical implement for [StyleDrop](https://arxiv.org/abs/2306.00983)
Unoffical implement for ( - GitHub - zideliu/StyleDrop-PyTorch: Unoffical implement for (

ありがたいことに、PyTorchで動きます。
Google製であれば、おそらくTensorFlowが前提となるはずです。

StyleDropの論文や公開情報をもとにPyTorchで動くように開発したのでしょう。
出力される結果は、公式StyleDropの結果からかけ離れているわけではありません。

この部分は、結局学習にかけた時間なのではないでしょうか?
GPUリソースが豊富なGoogleと比べると、やはり個人(開発者)では太刀打ちできません。

これは、StyleDropを利用する際に我々利用者にも関係がある話です。
1枚の画像からモデルを生成する際、そこそこ時間を要します。

用意されている学習用のスクリプトを用いると、40分ほど学習に時間がかかります。
(※GPUメモリはRTX 3090を利用)

実際に、この画像を用いてモデルを生成しました。
その結果生成されたモデルを利用すると、次のような画像が生成されます。

かなり質が低いです。
おそらく、あと複数回の学習が必要なのでしょう。

その機能については、ToDoリストに記述されています。

そのため、まずは開発者が用意してくれているモデルを利用しましょう。
モデルを自作するのは、次回の更新まで待った方がよいかもしれません。

以上、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は、ここでは書きません。
コロコロと変更する可能性があるので、公式ページからアクセスしてください。

とにかく、「assets」を以下のようにします。

以上、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」についてはここでは取り扱いません)

この画面を見れたら、問題ありません。
動作確認のために「Example」を利用しましょう。

今回は、次のスタイルを選択。

選択した例と、次の「Style」は連動しています。

このスタイルで「チワワ」を生成してみましょう。

「Prompt」に「Chihuahua」と入力して、「Run」ボタンをクリックします。

処理が完了すると、選択したスタイルで「チワワ」の画像が生成されています。

以上、StyleDrop(PyTorch版)の動作確認を説明しました。

タイトルとURLをコピーしました