画像生成AI「Stable Diffusion」でたった1枚の画像から「特定の画像っぽい○○」をわずか数十秒で生成する方法が発表される

GIGAZINE



Stable Diffusionなどの画像生成AIに、特定の画像や画風を特定の単語に圧縮してAIに指示することで、自分の生成したい画像を任意の画像によく似せる「最適化」が可能です。テル・アビブ大学のコンピューター科学者であるリノン・ガル氏らのチームが、たった1枚の画像と5~15ステップの調整で画像の最適化を実現する方法を発表しました。

[2302.12228] Designing an Encoder for Fast Personalization of Text-to-Image Models
https://doi.org/10.48550/arXiv.2302.12228

Encoder-based Domain Tuning for Fast Personalization of Text-to-Image Models
https://tuning-encoder.github.io/

Stable Diffusionで画像の最適化を可能にする技術の1つに、Textual Inversionがあります。このTextual Inversionは「Embeddings(埋め込み)」とも呼ばれる技術で、Stable Diffusionのモデルデータとは別に画像から学習したデータを用意するだけで、特定の画像によく似た画像を生成することができるようになります。Textual Inversionは、キーワードのベクトル化における「重み付け」を更新するだけなので、学習に必要なメモリが比較的少なくて済むというのがメリット。

画像生成AI「Stable Diffusion」を数枚の画像でファインチューニングする「Textual Inversion」のメリットとデメリットを実例と共に解説 – GIGAZINE


また、Googleの画像生成AI「Imagen」向けに開発された画像の最適化技術が「Dream Booth」です。Textual Inversionと異なり、Dream Boothはモデルそのものに追加学習を行ってパラメーターを更新します。このDream BoothはStable Diffusionにも適用する方法が開発されており、例えば以下のようなツールを使うことで誰でも簡単にDream Boothを実行できます。

画像生成AI「Stable Diffusion」にたった数枚のイラストから絵柄や画風を追加学習できる「Dream Booth」が簡単に使える「Dreambooth Gui」レビュー – GIGAZINE


しかし、ガル氏らは「従来の画像最適化のアプローチは、長い学習時間や高いストレージ要件などが問題です」と指摘し、これらの問題を解決するための「エンコーダーベースのドメインチューニングアプローチ」を提案しています。

Stable Diffusionは、「テキストエンコーダー」によって入力されたテキストが768次元のトークン埋め込みベクトルに出力され、「U-NETエンコーダー」によってそのトークン埋め込みベクトルを潜在空間内でノイズ画像情報に変換し、さらに「デコーダー」によってそのノイズ画像情報をピクセルイメージに出力することで画像を生成します。その具体的な仕組みは以下の記事にまとめられています。

画像生成AI「Stable Diffusion」がどのような仕組みでテキストから画像を生成するのかを詳しく図解 – GIGAZINE


ガル氏らのアプローチは、入力された1枚の画像とその画像を示す単語の組み合わせをテキストエンコーダーに追加し、さらにU-NETエンコーダーを更新してベクトルの重み付けを変えるという2段階で構成されています。


実際にStable Diffusionに研究者の顔写真を読み込ませて、似た画像を生成した結果をまとめたものが以下。画像の列は、一番左から「読み込ませた画像」「Stable Disffusion」「Textual Inversion(読込み画像1枚)」「Textual Inversion(読込み画像5枚)」「Dream Booth(読込み画像1枚)」「Dream Booth(読込み画像5枚)」「Textual Inversion+Dream Booth」「ガル氏らのアプローチ」となっています。ガル氏らのアプローチで生成された画像は、読み込ませた人物の顔をかなり忠実に再現できていることがよくわかります。


また、ガル氏らのアプローチは人物の顔以外でも機能するほか、画像のタッチをそのままに被写体を変えるよう指示したり、逆に被写体をそのままに画風を変えたりすることも可能なことが確認されています。


ただし、ガル氏らによると、このエンコーダーベースのアプローチはVRAMの必要容量が大幅に増加するとのこと。また、テキストエンコーダーとU-NETエンコーダーの両方を同時にチューニングする必要があるため、多くのメモリを必要とするそうです。

記事作成時点でガル氏らはこのアプローチを行うためのコードを公開していませんが、GitHubで近日公開する予定だと述べています。

この記事のタイトルとURLをコピーする

Source

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