🚀 バーサタイル拡散V1.0モデルカード
私たちは、Universal Generative AI への一歩として、最初の統一型マルチフローマルチモーダル拡散フレームワークである「Versatile Diffusion (VD)」 を構築しました。Versatile Diffusionは、画像からテキスト、画像のバリエーション、テキストから画像、テキストのバリエーションをネイティブにサポートし、さらに、意味スタイルの分離、画像とテキストの二重誘導生成、潜在画像からテキストを経由した画像編集などの他のアプリケーションに拡張することができます。将来のバージョンでは、音声、音楽、ビデオ、3Dなどのより多くのモダリティをサポートする予定です。
詳細情報に関するリソース: GitHub、arXiv。
🚀 クイックスタート
このモデルについての概要を説明します。Versatile Diffusion (VD) は、Universal Generative AI を目指して開発された最初の統一型マルチフローマルチモーダル拡散フレームワークです。多様なタスクをサポートし、将来的にはさらに多くのモダリティをサポートする予定です。
✨ 主な機能
- 画像からテキスト、画像のバリエーション、テキストから画像、テキストのバリエーションをネイティブにサポート。
- 意味スタイルの分離、画像とテキストの二重誘導生成、潜在画像からテキストを経由した画像編集などのアプリケーションに拡張可能。
- 将来のバージョンでは、音声、音楽、ビデオ、3Dなどのモダリティをサポート予定。
📚 ドキュメント
モデルの詳細
Versatile Diffusionの単一フローには、VAE、拡散器、コンテキストエンコーダが含まれており、1つのデータタイプ(例:画像)と1つのコンテキストタイプ(例:テキスト)の下で1つのタスク(例:テキストから画像)を処理します。Versatile Diffusionのマルチフロー構造は、次の図に示されています。
属性 |
详情 |
開発者 |
Xingqian Xu、Atlas Wang、Eric Zhang、Kai Wang、Humphrey Shi |
モデルタイプ |
拡散ベースのマルチモーダル生成モデル |
言語 |
英語 |
ライセンス |
MIT |
詳細情報のリソース |
GitHubリポジトリ、論文 |
引用形式 |
|
@article{xu2022versatile,
title = {Versatile Diffusion: Text, Images and Variations All in One Diffusion Model},
author = {Xingqian Xu, Zhangyang Wang, Eric Zhang, Kai Wang, Humphrey Shi},
year = 2022,
url = {https://arxiv.org/abs/2211.08332},
eprint = {2211.08332},
archiveprefix = {arXiv},
primaryclass = {cs.CV}
}
使用方法
このモデルは、🧨Diffusersライブラリ と SHI-Labs Versatile Diffusionコードベース の両方で使用できます。
🧨 Diffusers
Diffusersを使用すると、統一された、よりメモリ効率の良いタスク固有のパイプラインを使用できます。
⚠️ 重要提示
このモデルを使用するには、transformers
を "main"
からインストールする必要があります。
pip install git+https://github.com/huggingface/transformers
VersatileDiffusionPipeline
すべてのタスクでVersatile Diffusionを使用するには、VersatileDiffusionPipeline
を使用することをお勧めします。
from diffusers import VersatileDiffusionPipeline
import torch
import requests
from io import BytesIO
from PIL import Image
pipe = VersatileDiffusionPipeline.from_pretrained("shi-labs/versatile-diffusion", torch_dtype=torch.float16)
pipe = pipe.to("cuda")
prompt = "a red car"
url = "https://huggingface.co/datasets/diffusers/images/resolve/main/benz.jpg"
response = requests.get(url)
image = Image.open(BytesIO(response.content)).convert("RGB")
image = pipe.text_to_image(prompt).images[0]
image = pipe.image_variation(image).images[0]
image = pipe.dual_guided(prompt, image).images[0]
タスク固有のパイプライン
タスク固有のパイプラインは、必要な重みのみをGPUにロードします。すべてのタスク固有のパイプラインは、こちら で見つけることができます。
使用方法は次のとおりです。
テキストから画像
from diffusers import VersatileDiffusionTextToImagePipeline
import torch
pipe = VersatileDiffusionTextToImagePipeline.from_pretrained("shi-labs/versatile-diffusion", torch_dtype=torch.float16)
pipe.remove_unused_weights()
pipe = pipe.to("cuda")
generator = torch.Generator(device="cuda").manual_seed(0)
image = pipe("an astronaut riding on a horse on mars", generator=generator).images[0]
image.save("./astronaut.png")
画像のバリエーション
from diffusers import VersatileDiffusionImageVariationPipeline
import torch
import requests
from io import BytesIO
from PIL import Image
url = "https://huggingface.co/datasets/diffusers/images/resolve/main/benz.jpg"
response = requests.get(url)
image = Image.open(BytesIO(response.content)).convert("RGB")
pipe = VersatileDiffusionImageVariationPipeline.from_pretrained("shi-labs/versatile-diffusion", torch_dtype=torch.float16)
pipe = pipe.to("cuda")
generator = torch.Generator(device="cuda").manual_seed(0)
image = pipe(image, generator=generator).images[0]
image.save("./car_variation.png")
二重誘導生成
from diffusers import VersatileDiffusionDualGuidedPipeline
import torch
import requests
from io import BytesIO
from PIL import Image
url = "https://huggingface.co/datasets/diffusers/images/resolve/main/benz.jpg"
response = requests.get(url)
image = Image.open(BytesIO(response.content)).convert("RGB")
text = "a red car in the sun"
pipe = VersatileDiffusionDualGuidedPipeline.from_pretrained("shi-labs/versatile-diffusion", torch_dtype=torch.float16)
pipe.remove_unused_weights()
pipe = pipe.to("cuda")
generator = torch.Generator(device="cuda").manual_seed(0)
text_to_image_strength = 0.75
image = pipe(prompt=text, image=image, text_to_image_strength=text_to_image_strength, generator=generator).images[0]
image.save("./red_car.png")
元のGitHubリポジトリ
こちら の指示に従ってください。
注意事項、バイアス、およびコンテンツの承認
私たちは、このデモのユーザーに、その潜在的な問題と懸念事項についての認識を高めたいと考えています。以前の大規模な基礎モデルと同様に、Versatile Diffusionは、不完全なトレーニングデータと限られた範囲の事前学習ネットワーク(VAE / コンテキストエンコーダ)のため、場合によっては問題が生じる可能性があります。将来の研究段階では、より強力なVAE、より洗練されたネットワーク設計、およびよりクリーンなデータの助けを借りて、VDはテキストから画像、画像からテキストなどのタスクでより良い結果を得る可能性があります。これまでのところ、VDフレームワークの大きな潜在力を示し、将来的にモデルを改善するための重要なフィードバックを収集するために、すべての機能を研究テスト用に利用可能な状態に保っています。研究者やユーザーからの問題の報告を、HuggingFaceコミュニティのディスカッション機能または著者へのメールで歓迎しています。
VDは、社会的なバイアスを強化または悪化させるコンテンツ、ならびにリアルな顔、ポルノグラフィー、および暴力を含むコンテンツを出力する可能性があることに注意してください。VDは、非選別のオンライン画像とテキストを収集したLAION - 2Bデータセットでトレーニングされており、違法コンテンツを削除した後でも意図しない例外が含まれる可能性があります。このデモのVDは、研究目的のみを意図しています。
📄 ライセンス
このモデルはMITライセンスの下で提供されています。