テキストから画像を生成することができる新モデル Stable Diffusion パブリックリリース

CGソフト

2022年8月22日(現地時間)- AIを利用してテキスト入力から画像を生成することができる新しいモデル Stable Diffusion が公開されました。

Stable Diffusionとは

Stable Diffusion は  CompVis、 Stability AILAION の研究者やエンジニアによって作成されたテキストから画像へ(text-to-image)の latent diffusion モデルです。ジェネレーティブAI開発者のKatherine Crowson氏による条件付き拡散モデル(conditional diffusion models)、Open AIによるDall-E 2、Google BrainによるImagen、その他多くの洞察と組み合わせて構築されたもので、任意のテキスト入力から写真のようにリアルまたはアーティスティックな画像を生成することができます。

このモデルは 、GoogleのImagenと同様に、 frozen CLIP ViT-L/14 テキストエンコーダを使用し、テキストプロンプトでモデルの条件付けを行います。860MのUNetと123Mのテキストエンコーダを持つこのモデルは、比較的軽量で、コンシューマー向けGPUの10GB以下のVRAMで動作し、512×512ピクセルの画像を数秒で生成します。

コアデータセットは、LAION-5B データベースのサブセットである LAION-Aesthetics の512×512の画像で学習されています。LAION-Aestheticsは、Stable Diffusionのアルファテスターからの評価をもとに、画像の「beautiful(美しさ)」に基づいてLAION-5Bをフィルタリングする、CLIPベースの新しいモデルで作成されています。

一般的なDiffusionモデルとの違い

Stable Diffusionは、論文:High-Resolution Image Synthesis with Latent Diffusion Modelsで提案されたLatent Diffusionという特殊なタイプのDiffusionモデルに基づいています。

一般的にDiffusionモデルは、ランダムなガウスノイズを段階的にノイズ除去し、画像のような目的のサンプルに到達するように学習された機械学習システムです。

diffusionモデルは、人工合成において非常に効果的であることが実証されており、画像データの生成においては、GANよりも優れているとさえ言われていますが、逆ノイズ処理が繰り返される逐次処理であるため、時間がかかるという欠点があります。また、このモデルはピクセル空間で動作するため、メモリを大量に消費し、高解像度の画像を生成する際には巨大なメモリとなります。そのため、これらのモデルを学習し、さらに推論に利用することは困難となります。

Latent diffusion は、実際のピクセル空間を使用する代わりに、低次元の潜在空間上で拡散処理を適用することで、メモリと計算の複雑さを軽減することができます。これが標準的なdiffusionとLatent diffusion モデルの主な違いです。

ライセンスについて

モデルは、Creative ML OpenRAIL-M license [https://huggingface.co/spaces/CompVis/stable-diffusion-license]の下でリリースされています。これは、モデルカードで知らされた誤用や害を防ぐための特定の使用ベースの制限を含む営利・非営利を問わず使用できる寛容なライセンスです。このライセンスは、個人の責任において倫理的かつ合法的にモデルを使用することに重点を置いており、モデルを配布する際には必ず添付しなければなりません。

バイアスについて

モデルは、広範なインターネットスクレイプからの画像とテキストのペアで訓練されたので、その学習データに存在するバイアス(誤った概念)を反映します。

Stable Diffusion v1は、主に英語表記に限定された画像からなるLAION-2B(en)のサブセットで学習されているため他の言語を使用するコミュニティや文化からのテキストや画像は、十分に説明されていない可能性があります。英語では、白人や西洋の文化がデフォルトとして設定されることが多いのでモデル全体の出力に影響を及ぼします。さらに、英語以外のプロンプトを使用してコンテンツを生成するモデルの能力は、英語のプロンプトを使用した場合よりも大幅に低下します。

こういったバイアスや既知の制限があるため、追加の安全機構や考慮なしにサービスや製品に使用することは推奨されていません。一般的なテキストから画像へのモデルの安全かつ倫理的な展開に関する研究は現在も進められています。

今後について

今後、追加の機能と API アクセス、ローカル GPU サポート、アニメーション、ロジックベースのマルチステージ ワークフローなどが利用できるようになるようです。さらに、モデルの最適化されたバージョンパフォーマンスと品質が向上したバリアントやアーキテクチャのリリースも予定されています。

また、現在NVIDIA チップが推奨されていますが、AMD、Macbook M1/M2、およびその他のチップセットで動作する最適化版のリリースも予定されています。

使用方法

現時点で大きく分けると以下の3つの方法でStable Diffusionを利用することができます。

  1. DreamStudio
  2. Google Colab
  3. ローカル環境

いちおうこちらのデモページでも利用することができますが、あくまでデモなので、試してみるにもDreamStudioを使用した方が良いと思います。ここでは、簡単に利用できる1のDreamStudioと2のGoogle Colabを利用する方法を紹介したいと思います。

DreamStudio

今後、似たようなものも出てくるかもしれせんが、現時点で一番簡単で使いやすいのが DreamStudio かと思います。

DreamStudioは、自然言語処理と革新的な入力操作により創造性を加速させ、誰もが簡単に無限の想像力とビジュアル表現を手に入れることができる、新しいジェネレーティブメディアツールとされています。

現在利用できるベータ版の DreamStudio Liteは、Stable Diffusionを使用したイメージ生成ツールとして利用できます。今後、DreamStudio Pro(ビデオ/オーディオ)とEnterprise(スタジオ)のがリリースされる予定となっています。

パラメータについて

生成する画像について以下の用な設定項目があります。

  • Width:生成する画像の幅
  • Height:生成する画像の高さ
  • Cfg Scale:画像がプロンプトにどれだけ似ているかを調整します。値が高いほど、イメージがプロンプトに近くなります。
  • Steps:画像の生成 (拡散) に費やすステップ数です。一般に、使用するステップが多いほど結果は良くなりますが、Stable Diffusion は、比較的少ないステップ数でうまく機能するためデフォルトでは50が推奨されています。より速い結果が必要な場合は、より小さい数値を使用してみてください。
  • Number of Images:生成する画像の数
  • Sampler:拡散サンプリング法とされていますが、選択できる名前からするとSchedulersと呼ばれているノイズ処理に関するアルゴリズムだと思います。生成する画像の品質に影響を与える可能性がありますが、生成する画像の内容には関係ないので、あまり気にしなくていいかと思います。
  • Seed:乱数を作成するときの最初の設定値のことで数値によって違う画像が生成されます。なので、同じプロンプト、同じシード値で画像を生成した結果は当然同じとなります。

プロンプトガイド

画像を生成する際のヒントをいくつか紹介したいと思います。

スタイル

スタイルは、プロンプトの重要な要素とされています。AIは、指定されたスタイルがない場合、通常、関連する画像で最も多く目にしたものを選択します。例えば、風景を生成した場合、おそらくリアルな画像や油絵のような画像を生成することになります。

最も一般的に使用されるスタイルには以下のようなものがあります。

  • リアリスティック(写実的)
  • 油絵
  • 鉛筆画
  • コンセプトアート

写実的な画像にするためには、次の方法使用します。

a photo of + プロンプト
a photograph of + プロンプト
プロンプト, hyperrealistic
プロンプト, realistic

油絵を作成するのは、プロンプトに「an oil painting of」を追加するだけです。この場合、フレーム内の油絵が表示されることがありますが、 「プロンプト + oil painting 」を使用すると修正できます。

同様に鉛筆画を作成するには、「a pencil drawing of」を追加するか、 「プロンプト + pencil drawing 」を使用することができます。

また、アーティストの名前を使用するも有効で、その作風の画像を生成することが可能となります。例えば、非常に抽象的なイメージが必要な場合、「Made by Pablo Picasso」または単に「Picasso」と追加すると良い結果が得られます。

仕上げ

仕上げとは、プロンプトを自分の好きなように仕上げるために、最終的に追加するもののことです。

例えば、よりアーティスティックなイメージにしたい場合は、「trending on artstation」を、よりリアルなライティングを追加したい場合は、”Unreal Engine “を追加します。何を加えてもいいとされていますが、以下のような例が挙げられています。

  • Highly detailed
  • surrealism
  • trending on art station
  • triadic color scheme
  • smooth
  • sharp focus
  • matte
  • elegant
  • the most beautiful image ever seen
  • illustration
  • digital paint
  • dark
  • gloomy
  • octane render
  • 8k
  • 4k
  • washed colors
  • sharp
  • dramatic lighting
  • beautiful
  • post processing
  • picture of the day
  • ambient lighting
  • epic composition

より詳しいガイドの確認はこちらから

また、こちらのGithubでは参考になる情報が掲載されています。

著作権について

Public Domainは、法的管轄の違いにより統一された概念ではないことから、DreamStudioベータ版およびStable Diffusionサービスを使用した際の画像の著作権は、CC0 1.0 Universal Public Domain Dedication [available at https://creativecommons.org/publicdomain/zero/1.0/] となっています。

Google Colab

公開されているこちらの Google Colab のノートブックでは、Hugging Face の Diffusers library を使用した Stable Diffusion を利用することができます。

以下の動画のように、ドライブにコピーし、特に何も考えずに準備されているコードを実行していくことで簡単に利用できます。あらかじめ、Hugging Faceのアカウントを作成し、こちらのページからトークンを発行しておくとスムーズに進められます。

また、ウェイトをダウンロードするためには、モデルライセンスに同意する必要があります。こちらのページのライセンスをよく読み、同意するチェックボックスをオンにしておいてください。

この StableDiffusionPipeline はデフォルトで、すべての Google Colab の無料ユーザーが利用できるように半精度ブランチ fp16 を使用しています。StableDiffusionPipeline の初めのコードで revision=”fp16″ と torch_dtype=torch.float16 を削除すると、より高いメモリ使用量を犠牲にして可能な限り高い精度を確保することができます。

パラメータについて

画像生成の際に設定できるパラメータはDreamStudioとほぼ同じです。DreamStudio でいうところの Cfg Scale は guidance_scale、Steps は、num_inference_steps となっています。

DreamStudioと比較してこちらを利用する画像生成におけるメリットとしては、時間がかかりますが生成する画像の数に制限がなかったり、コードを追加することで自分用に使いやすくできたりするといったことがあります。

■Stable Diffusion による画像修正

SDEditによって最初に提案された拡散-ノイズ除去機構を使用することで、テキストガイド付きの画像から画像への変換やアップスケーリングなどの異なるタスクにモデルを使用することができます。

こちらのノートブックでは、Hugging Face の Diffusers library を使用したStable Diffusionモデルでテキストガイド付きの画像変換が紹介されています。

おまけ

上記で紹介した方法では、使用できるテキストや生成できる画像に制限がかかったりしていたりします。

redditのStable Diffusion Wiki では、そういった制限のオン/オフ機能や、Googleドライブへの出力、アップスケーリングが利用できる有志による Colabノートブック が共有されています。興味がある方は、ライセンスをよく読み、自己責任のもとご利用ください。


Stable Diffusion Public ReleaseStable Diffusion Githubページへ

コメント

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