Windowsユーザーの皆様、画像編集の世界に革命をもたらすAnyDoorをご紹介します。
この先進的なソフトウェアは、仮想試着を可能にします。
それだけではなく、オブジェクトを新しいシーンにシームレスに配置することで、画像の可能性を広げます。
この記事では、この画期的なツールのインストール方法と、Windowsでの利用方法に焦点を当てます。
本記事の内容
- AnyDoorとは?
- WindowsへのAnyDoorのインストール
- AnyDoorの動作確認
それでは、上記に沿って解説していきます。
AnyDoorとは?
AnyDoorは、画像生成モデルであり、特定のオブジェクトを新しいシーンに自然に配置する能力を持っています。
この技術は、オブジェクトを異なる背景に合わせて調整し、リアルなビジュアルを作成することができます。
応用例としては、オブジェクトの移動、交換、複数主題の組み合わせ、仮想試着などがあります。
このモデルは、ビデオデータセットからの知識を活用し、様々なシーンへの適応能力を持っています。
仮想試着の例として、公式ページで以下の画像が公開されています。
ただ、サンプルは得てして大袈裟に盛って公開されますからね。
正直、そこまで期待するのはやめておいた方が無難なことが多いです。
しかし、AnyDoorでは次のような結果を出力できます。
左の画像は、Stable Diffusionで適当に作成しました。
その画像に対して、次の画像を指定して生成したのが右の画像となります。
かなり完成度は高いと言えます。
しかし、服のデザインや色を完全には再現はできてはいません。
でも、雰囲気はかなり近いのではないでしょうか?
WindowsへのAnyDoorのインストール
上記は、公式のGithubページになります。
ただし、上記に従ってもWindowsへのインストールはできません。
それをWindowsでも動くようにしたモノが、以下。
ここでは、このWindows用のAnyDoorのインストール方法を説明します。
まずは、プロジェクトをダウンロードしましょう。
git clone https://github.com/sdbds/AnyDoor-for-windows.git
ダウンロードできたら、リポジトリルートへ移動しておきます。
そこで、次のファイルを確認できます。
CUDA 11.8でPyTorchをインストールできる環境であれば、このファイルを実行するだけです。
この意味がよくわからない場合は、次の記事をご覧ください。
CUDA 11.8でPyTorchをインストールできる環境であれば、「install.ps1」を実行しましょう。
ただ、このファイルの中では仮想環境の構築を丁寧にしてくれています。
不要な場合は、上記の該当部分を削除しましょう。
また、モデルの自動ダウンロードにも対応してくれています。
ただ、上記のようにwgetでのダウンロードは非常に時間がかかります。
そのため、ブラウザに以下URLを打ち込んで直接ダウンロードした方が速いです。
https://dl.fbaipublicfiles.com/dinov2/dinov2_vitg14/dinov2_vitg14_reg4_pretrain.pth
保存先は、「install.ps1」の中で生成される「path」ディレクトリとなります。
その際、ファイル名から「_reg4」を除去する必要があります。
インストールは、これで完了です。
AnyDoorの動作確認
GUI画面の起動には、次のコマンドを用います。
python run_gradio_demo.py
問題なければ、下記のようにコンソールに表示されます。
Running on local URL: http://127.0.0.1:7860 To create a public link, set `share=True` in `launch()`.
そして、ブラウザで次のような画面が表示されます。
初見では、利用方法がわからないかもしれません。
一応、次のように但し書きは記載されています。
Upload / Select Images for the Background (left) and Reference Object (right) Your could draw coarse masks on the background to indicate the desired location and shape. Do not forget to annotate the target object on the reference image.
内容は、それぞれの画像を塗りつぶしましょうということです。
「Background」では、置き換えたい範囲を塗りつぶします。
「Reference」では、置き換える対象を塗りつぶすことになります。
上記の状態で「Run」を実行した結果は、以下。
仮想試着もいいですが、モニターなどへの画像の埋め込みでも使えそうです。