π€ Diffusers ΠΠ°Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄ΠΈΡΡΡΠ·ΠΈΠΎΠ½Π½ΡΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ

ΠΠΎΡΠ΅ΠΌΡ Π²ΡΠ΅ Π³ΠΎΠ²ΠΎΡΡΡ ΠΎ Π΄ΠΈΡΡΡΠ·ΠΈΠΎΠ½Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»ΡΡ ?
ΠΠ° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ ΠΏΠ°ΡΡ Π»Π΅Ρ ΠΌΠΈΡ Π·Π°Ρ Π»Π΅ΡΡΠ½ΡΠ»Π° Π²ΠΎΠ»Π½Π° Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΠΠ. ΠΡ Π½Π°Π²Π΅ΡΠ½ΡΠΊΠ° Π²ΠΈΠ΄Π΅Π»ΠΈ Π½Π΅Π²Π΅ΡΠΎΡΡΠ½ΡΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΡΠΎΠ·Π΄Π°Π½Π½ΡΠ΅ Π½Π΅ΠΉΡΠΎΡΠ΅ΡΡΠΌΠΈ ΠΏΠΎ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΌ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡΠΌ. ΠΠΎ ΠΊΠ°ΠΊ ΡΡΠΎ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ ΠΏΠΎΠ΄ ΠΊΠ°ΠΏΠΎΡΠΎΠΌ? ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ°ΠΊΠΈΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π΄ΠΈΡΡΡΠ·ΠΈΠΈ β ΠΏΠΎΡΡΠ΅ΠΏΠ΅Π½Π½ΠΎΠ΅ ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡΠΌΠ° Π² ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ»ΠΈ Π·Π²ΡΠΊ.
ΠΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠ°ΠΊΠΈΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° Hugging Face ΡΠΎΠ·Π΄Π°Π»Π° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Diffusers. Π ΠΎΠ½Π° Π±ΡΡΡΡΠΎ ΡΡΠ°Π»Π° ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠΌ Π΄Π΅-ΡΠ°ΠΊΡΠΎ Π² ΡΡΠΎΠΉ ΠΎΠ±Π»Π°ΡΡΠΈ.
Π§ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Diffusers?
ΠΡΠ° Python-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠΈ ΠΊΠ»ΡΡΠ΅Π²ΡΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°:
- ΠΠΎΡΠΎΠ²ΡΠ΅ ΠΏΠ°ΠΉΠΏΠ»Π°ΠΉΠ½Ρ Π΄Π»Ρ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ° Π±ΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π² Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠΎΠΊ ΠΊΠΎΠ΄Π°
- ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌΡΠ΅ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ (schedulers) Π΄Π»Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Ρ ΠΊΠ°ΡΠ΅ΡΡΠ²Π° ΠΈ ΡΠΊΠΎΡΠΎΡΡΠΈ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ
- ΠΡΠ΅Π΄ΠΎΠ±ΡΡΠ΅Π½Π½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΊΠ°ΠΊ ΡΡΡΠΎΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π±Π»ΠΎΠΊΠΈ Π΄Π»Ρ Π²Π°ΡΠΈΡ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ²
ΠΡΠΈΠΌΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ:
from diffusers import DiffusionPipeline
import torch
# ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΠ΅ΠΊΡΡΡ Π² ΡΡΠΈΠ»Π΅ ΠΠΈΠΊΠ°ΡΡΠΎ
pipeline = DiffusionPipeline.from_pretrained("stable-diffusion-v1-5", torch_dtype=torch.float16)
pipeline.to("cuda")
pipeline("An image of a squirrel in Picasso style").images[0]
ΠΠΎΠΌΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π΅Π½ Diffusers?
- Π Π°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠ΅ Ρ ΠΎΡΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ/Π°ΡΠ΄ΠΈΠΎ Π² ΡΠ²ΠΎΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
- ΠΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ, ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΡΡΡΠΈΠΌ Ρ Π΄ΠΈΡΡΡΠ·ΠΈΠΎΠ½Π½ΡΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ
- ΠΠΈΠ·Π°ΠΉΠ½Π΅ΡΠ°ΠΌ ΠΈ ΠΊΠΎΠ½ΡΠ΅Π½Ρ-ΠΌΠ΅ΠΉΠΊΠ΅ΡΠ°ΠΌ, ΠΊΠΎΡΠΎΡΡΠΌ Π½ΡΠΆΠ΅Π½ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠ²ΠΎΡΡΠ΅ΡΡΠ²Π°
ΠΠ»Π°Π²Π½ΡΠ΅ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π°
1. ΠΡΠΎΡΡΠΎΡΠ° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ
Diffusers ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π²ΡΡΠΎΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΡΠ΅ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ, ΡΠΊΡΡΠ²Π°ΡΡΠΈΠ΅ ΡΠ»ΠΎΠΆΠ½ΠΎΡΡΡ Π΄ΠΈΡΡΡΠ·ΠΈΠΎΠ½Π½ΡΡ ΠΌΠΎΠ΄Π΅Π»Π΅ΠΉ. ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ Π² ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠ΅ Π΄ΠΈΡΡΡΠ·ΠΈΠΈ, ΡΡΠΎΠ±Ρ Π½Π°ΡΠ°ΡΡ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅Π½Ρ.
2. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° Π·Π°Π΄Π°Ρ
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ:
- ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΎ ΡΠ΅ΠΊΡΡΡ
- ΠΡΠ΅ΠΎΠ±ΡΠ°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ (ΡΡΠΈΠ»ΠΈΠ·Π°ΡΠΈΡ, ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅)
- ΠΠ΅Π½Π΅ΡΠ°ΡΠΈΡ 3D-ΡΡΡΡΠΊΡΡΡ ΠΌΠΎΠ»Π΅ΠΊΡΠ»
- Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΡ Π°ΡΠ΄ΠΈΠΎ
3. ΠΠΈΠ±ΠΊΠΎΡΡΡ ΠΈ ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·Π°ΡΠΈΡ
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅:
- ΠΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ°Π·Π½ΡΠ΅ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΈ ΠΏΠ»Π°Π½ΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ
- ΠΠΎΠΎΠ±ΡΡΠ°ΡΡ ΠΌΠΎΠ΄Π΅Π»ΠΈ ΠΏΠΎΠ΄ ΡΠ²ΠΎΠΈ Π·Π°Π΄Π°ΡΠΈ
- ΠΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ ΠΏΠΎΠ΄ ΡΠ²ΠΎΠΈ Π½ΡΠΆΠ΄Ρ
Π’Π΅Ρ Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠΈ
Diffusers ΠΏΠΎΡΡΡΠΎΠ΅Π½ Π½Π° PyTorch ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ:
- Π Π°Π±ΠΎΡΡ Π½Π° GPU ΠΈ CPU
- Apple Silicon (M1/M2)
- Π Π°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΠΎΡΠΌΠ°ΡΡ Π΄Π°Π½Π½ΡΡ
ΠΡΠΈΠΌΠ΅Ρ ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·Π°ΡΠΈΠΈ:
from diffusers import DDPMScheduler, UNet2DModel
scheduler = DDPMScheduler.from_pretrained("google/ddpm-cat-256")
model = UNet2DModel.from_pretrained("google/ddpm-cat-256").to("cuda")
# ΠΠ°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΠΌ ΠΏΡΠΎΡΠ΅ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠΈ
scheduler.set_timesteps(50)
ΠΠ΄Π΅ ΡΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ?
Diffusers ΡΡΠ°Π» ΠΎΡΠ½ΠΎΠ²ΠΎΠΉ Π΄Π»Ρ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²Π° ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ²:
- InvokeAI β ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π΄Π»Ρ Stable Diffusion
- Lama Cleaner β ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΡΠ΅ΡΡΡΠΈ ΡΠΎΡΠΎ
- Grounded Segment Anything β ΠΏΡΠΎΠ΄Π²ΠΈΠ½ΡΡΠ°Ρ ΡΠ΅Π³ΠΌΠ΅Π½ΡΠ°ΡΠΈΡ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ
ΠΠ°ΠΊ Π½Π°ΡΠ°ΡΡ?
Π£ΡΡΠ°Π½ΠΎΠ²ΠΊΠ° ΠΏΡΠΎΡΡΠ°:
pip install --upgrade diffusers[torch]
ΠΠ»ΠΈ ΡΠ΅ΡΠ΅Π· conda:
conda install -c conda-forge diffusers
ΠΡΠ²ΠΎΠ΄: ΡΡΠΎΠΈΡ Π»ΠΈ ΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ?
Diffusers β ΡΡΠΎ ΡΠ°ΠΌΡΠΉ ΡΠ΄ΠΎΠ±Π½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± ΡΠ°Π±ΠΎΡΠ°ΡΡ Ρ Π΄ΠΈΡΡΡΠ·ΠΈΠΎΠ½Π½ΡΠΌΠΈ ΠΌΠΎΠ΄Π΅Π»ΡΠΌΠΈ ΡΠ΅Π³ΠΎΠ΄Π½Ρ. ΠΡΠ»ΠΈ Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ:
- ΠΡΡΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠΈΡΠΎΠ²Π°ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°
- ΠΠΌΠ΅ΡΡ Π³ΠΈΠ±ΠΊΠΈΠΉ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π»Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ
- ΠΠ½ΡΠ΅Π³ΡΠΈΡΠΎΠ²Π°ΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΠ²Π½ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π² ΡΠ²ΠΎΠΈ ΠΏΡΠΎΠ΅ΠΊΡΡ
...ΡΠΎ ΡΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΡΠΎΡΠ½ΠΎ Π·Π°ΡΠ»ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Π°ΡΠ΅Π³ΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ. Π ΡΡΠΈΡΡΠ²Π°Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΠ΅ ΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²Π°, Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π±ΡΠ΄ΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΡΡΠΈ.
ΠΠ°ΠΊΠΎΠΉ ΠΊΠΎΠ½ΡΠ΅Π½Ρ Π²Ρ Π±Ρ Ρ ΠΎΡΠ΅Π»ΠΈ Π³Π΅Π½Π΅ΡΠΈΡΠΎΠ²Π°ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Diffusers?
