? Diffusersは、分子の画像、オーディオ、さらには3D構造を生成するための最先端の前処理された拡散モデルの頼りになるライブラリです。単純な推論ソリューションを探しているのか、それとも独自の拡散モデルをトレーニングしているのですか? Diffusersは、両方をサポートするモジュラーツールボックスです。私たちのライブラリは、パフォーマンスよりも使いやすさ、簡単な簡単な高さ、抽象化に対するカスタマイズ可能性に焦点を当てて設計されています。
? Diffusersは3つのコアコンポーネントを提供します。
インストールをお勧めしますか? PypiまたはCondaの仮想環境のディフューザー。 PytorchとFlaxのインストールの詳細については、公式ドキュメントを参照してください。
pip
(公式パッケージ):
pip install --upgrade diffusers[torch]
conda
(コミュニティが維持):
conda install -c conda-forge diffusers
pip
(公式パッケージ):
pip install --upgrade diffusers[flax]
Apple Silicon Guideで安定した拡散の使用方法を参照してください。
生成出力は非常に簡単ですか?ディフューザー。テキストから画像を生成するには、 from_pretrained
メソッドを使用して、前提条件の拡散モデルをロードします(30,000以上のチェックポイントのハブを閲覧します):
from diffusers import DiffusionPipeline
import torch
pipeline = DiffusionPipeline . from_pretrained ( "stable-diffusion-v1-5/stable-diffusion-v1-5" , torch_dtype = torch . float16 )
pipeline . to ( "cuda" )
pipeline ( "An image of a squirrel in Picasso style" ). images [ 0 ]
モデルとスケジューラツールボックスを掘り下げて、独自の拡散システムを構築することもできます。
from diffusers import DDPMScheduler , UNet2DModel
from PIL import Image
import torch
scheduler = DDPMScheduler . from_pretrained ( "google/ddpm-cat-256" )
model = UNet2DModel . from_pretrained ( "google/ddpm-cat-256" ). to ( "cuda" )
scheduler . set_timesteps ( 50 )
sample_size = model . config . sample_size
noise = torch . randn (( 1 , 3 , sample_size , sample_size ), device = "cuda" )
input = noise
for t in scheduler . timesteps :
with torch . no_grad ():
noisy_residual = model ( input , t ). sample
prev_noisy_sample = scheduler . step ( noisy_residual , t , input ). prev_sample
input = prev_noisy_sample
image = ( input / 2 + 0.5 ). clamp ( 0 , 1 )
image = image . cpu (). permute ( 0 , 2 , 3 , 1 ). numpy ()[ 0 ]
image = Image . fromarray (( image * 255 ). round (). astype ( "uint8" ))
image
QuickStartをチェックして、今日の拡散の旅を開始してください!
ドキュメント | 何を学ぶことができますか? |
---|---|
チュートリアル | モデルとスケジューラを使用して独自の拡散システムを構築したり、独自の拡散モデルをトレーニングするなど、ライブラリの最も重要な機能を使用する方法を学ぶための基本的なクラッシュコース。 |
読み込み | ライブラリのすべてのコンポーネント(パイプライン、モデル、およびスケジューラ)をロードおよび構成する方法、およびさまざまなスケジューラの使用方法に関するガイド。 |
推論のためのパイプライン | さまざまな推論タスク、バッチ生成、生成された出力とランダム性の制御、およびライブラリにパイプラインを寄付する方法にパイプラインを使用する方法のガイド。 |
最適化 | 拡散モデルを最適化して、より速く実行し、より少ないメモリを消費する方法のガイド。 |
トレーニング | さまざまなトレーニングテクニックを備えたさまざまなタスクの拡散モデルをトレーニングする方法のガイド。 |
オープンソースコミュニティからの貢献!このライブラリに貢献したい場合は、寄付ガイドをご覧ください。ライブラリに貢献するために取り組みたい問題に注意することができます。
また、私たちの公の不一致チャネルで。拡散モデルに関する最もホットな傾向について説明したり、貢献や個人的なプロジェクトでお互いを助けたり、単にたむろします。
タスク | パイプライン | ?ハブ |
---|---|---|
無条件の画像生成 | DDPM | Google/DDPM-EMA-Church-256 |
テキストから画像へ | 安定した拡散テキストからイメージまで | stable-diffusion-v1-5/stable-diffusion-v1-5 |
テキストから画像へ | クリップを除去します | カカオブレイン/カルロ-V1-アルファ |
テキストから画像へ | Deepfloyd if | Deepfloyd/if-i-xl-v1.0 |
テキストから画像へ | カンディンスキー | Kandinsky-Community/Kandinsky-2-2-Decoder |
テキスト誘導画像から画像へ | ControlNet | lllyasviel/sd-controlnet-canny |
テキスト誘導画像から画像へ | instructpix2pix | Timbrooks/instruct-pix2pix |
テキスト誘導画像から画像へ | 安定した拡散画像から画像へ | stable-diffusion-v1-5/stable-diffusion-v1-5 |
テキスト誘導画像の開始 | 安定した拡散インペインティング | runwayml/stable拡散inpainting |
画像のバリエーション | 安定した拡散画像の変化 | Lambdalabs/sd-image-variations-diffusers |
スーパー解像度 | 安定した拡散の高級 | stabilityai/stable-diffusion-x4-upscaler |
スーパー解像度 | 安定した拡散潜在的な高級 | stabilityai/sd-x2-latent-upscaler |
私たちを使っていただきありがとうございます。
このライブラリは、多くの異なる著者による以前の研究を具体化しており、彼らの優れた研究と実装がなければ不可能だったでしょう。特に、私たちの開発に役立った以下の実装に感謝したいと思います。
また、diffusionモデルに関する論文、コード、リソースの非常に役立つ概要については、 @crowsonkbと@rrombの有用な議論や洞察についても@heejkooに感謝します。
@misc { von-platen-etal-2022-diffusers ,
author = { Patrick von Platen and Suraj Patil and Anton Lozhkov and Pedro Cuenca and Nathan Lambert and Kashif Rasul and Mishig Davaadorj and Dhruv Nair and Sayak Paul and William Berman and Yiyi Xu and Steven Liu and Thomas Wolf } ,
title = { Diffusers: State-of-the-art diffusion models } ,
year = { 2022 } ,
publisher = { GitHub } ,
journal = { GitHub repository } ,
howpublished = { url{https://github.com/huggingface/diffusers} }
}