Diffusers documentation

Pipeline Stable Diffusion

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Pipeline Stable Diffusion

LoRA

Stable Diffusion adalah model difusi laten dari teks ke gambar yang dibuat oleh peneliti dan insinyur dari CompVis, Stability AI, dan LAION. Difusi laten menerapkan proses difusi pada ruang laten berdimensi lebih rendah untuk mengurangi kompleksitas memori dan komputasi. Jenis model difusi spesifik ini diusulkan dalam High-Resolution Image Synthesis with Latent Diffusion Models oleh Robin Rombach, Andreas Blattmann, Dominik Lorenz, Patrick Esser, dan Björn Ommer.

Stable Diffusion dilatih pada gambar 512x512 dari subset dataset LAION-5B. Model ini menggunakan text encoder CLIP ViT-L/14 yang dibekukan untuk mengondisikan model berdasarkan prompt teks. Dengan UNet 860M dan text encoder 123M, model ini relatif ringan dan dapat dijalankan pada GPU konsumen.

Untuk detail lebih lanjut tentang cara kerja Stable Diffusion dan bagaimana perbedaannya dengan model latent diffusion dasar, lihat pengumuman Stability AI dan artikel blog kami untuk detail teknis lebih lanjut.

Anda dapat menemukan kodebase asli untuk Stable Diffusion v1.0 di CompVis/stable-diffusion dan Stable Diffusion v2.0 di Stability-AI/stablediffusion beserta skrip aslinya untuk berbagai tugas. Checkpoint resmi tambahan untuk berbagai versi dan tugas Stable Diffusion dapat ditemukan di organisasi CompVis dan Stability AI di Hub. Jelajahi organisasi-organisasi ini untuk menemukan checkpoint terbaik untuk kasus penggunaan Anda!

Tabel di bawah ini merangkum pipeline Stable Diffusion yang tersedia, tugas yang didukung, dan demo interaktif:

PipelineTugas yang didukung🤗 Space
StableDiffusionteks-ke-gambar
StableDiffusionImg2Imgimage-to-image
StableDiffusionInpaintinpainting
StableDiffusionDepth2Imgdepth-to-image
StableDiffusionImageVariationvariasi gambar
StableDiffusionPipelineSafe (tidak didukung lagi; tidak ada halaman dokumentasi)teks-ke-gambar terfilter
StableDiffusion2teks-ke-gambar, inpainting, kedalaman-ke-gambar, super-resolusi
StableDiffusionXLteks-ke-gambar, gambar-ke-gambar
StableDiffusionLatentUpscalesuper-resolution
StableDiffusionUpscalesuper-resolution
StableDiffusionLDM3Dteks-ke-rgb, teks-ke-kedalaman, teks-ke-pano
StableDiffusionUpscaleLDM3Dldm3d super-resolution

Tips

Untuk membantu Anda memaksimalkan penggunaan pipeline Stable Diffusion, berikut adalah beberapa tips untuk meningkatkan kinerja dan kemudahan penggunaan. Tips ini berlaku untuk semua pipeline Stable Diffusion.

Jelajahi tradeoff antara kecepatan dan kualitas

StableDiffusionPipeline menggunakan PNDMScheduler secara default, tetapi 🤗 Diffusers menyediakan banyak scheduler lain (beberapa di antaranya lebih cepat atau menghasilkan kualitas lebih baik) yang kompatibel. Misalnya, jika Anda ingin menggunakan EulerDiscreteScheduler alih-alih default:

from diffusers import StableDiffusionPipeline, EulerDiscreteScheduler

pipeline = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4")
pipeline.scheduler = EulerDiscreteScheduler.from_config(pipeline.scheduler.config)

# or
euler_scheduler = EulerDiscreteScheduler.from_pretrained("CompVis/stable-diffusion-v1-4", subfolder="scheduler")
pipeline = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4", scheduler=euler_scheduler)

Gunakan ulang komponen pipeline untuk menghemat memori

Untuk menghemat memori dan menggunakan komponen yang sama di beberapa pipeline, gunakan metode .components untuk menghindari pemuatan bobot ke RAM lebih dari sekali.

from diffusers import (
    StableDiffusionPipeline,
    StableDiffusionImg2ImgPipeline,
    StableDiffusionInpaintPipeline,
)

text2img = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4")
img2img = StableDiffusionImg2ImgPipeline(**text2img.components)
inpaint = StableDiffusionInpaintPipeline(**text2img.components)

# now you can use text2img(...), img2img(...), inpaint(...) just like the call methods of each respective pipeline

Buat demo web menggunakan gradio

Pipeline Stable Diffusion didukung secara otomatis di Gradio, sebuah pustaka yang memudahkan pembuatan aplikasi machine learning yang indah dan ramah pengguna di web. Pertama, pastikan Anda telah menginstal Gradio:

pip install -U gradio

Lalu, buat demo web di sekitar pipeline berbasis Stable Diffusion. Misalnya, Anda dapat membuat pipeline generasi gambar dalam satu baris kode dengan fungsi Interface.from_pipeline dari Gradio:

from diffusers import StableDiffusionPipeline
import gradio as gr

pipe = StableDiffusionPipeline.from_pretrained("CompVis/stable-diffusion-v1-4")

gr.Interface.from_pipeline(pipe).launch()

yang membuka antarmuka drag-and-drop yang intuitif di browser Anda:

Demikian pula, Anda dapat membuat demo untuk pipeline image-to-image dengan:

from diffusers import StableDiffusionImg2ImgPipeline
import gradio as gr


pipe = StableDiffusionImg2ImgPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5")

gr.Interface.from_pipeline(pipe).launch()

Secara default, demo web berjalan di server lokal. Jika Anda ingin membagikannya dengan orang lain, Anda dapat membuat tautan publik sementara dengan mengatur share=True di launch(). Atau, Anda dapat meng-host demo Anda di Hugging Face Spaceshttps://huggingface.co/spaces untuk tautan permanen.

Update on GitHub