🤗 Diffusers هي مكتبة نماذج الانتشار الأكثر تطوراً التي طورتها Hugging Face، وهي متخصصة في إنشاء الصور والصوت وحتى الهياكل ثلاثية الأبعاد الجزيئية. سواء كنت تبحث عن حلول استنتاج بسيطة أو تدريب نماذج الانتشار الخاصة بك، فإن 🤗 Diffusers هي مجموعة أدوات معيارية تدعم كليهما.
عنوان المشروع: https://github.com/huggingface/diffusers
خطوط أنابيب الانتشار الأكثر تطوراً (Diffusion Pipelines)
جداول الضوضاء القابلة للتبديل (Noise Schedulers)
نماذج مدربة مسبقاً (Pretrained Models)
# الحزمة الرسمية
pip install --upgrade diffusers[torch]
# إصدار conda الذي يحتفظ به المجتمع
conda install -c conda-forge diffusers
pip install --upgrade diffusers[flax]
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
مهمة | خط الأنابيب | النموذج الموصى به |
---|---|---|
إنشاء صور غير مشروط | DDPMPipeline | google/ddpm-ema-church-256 |
نص إلى صورة | StableDiffusionPipeline | stable-diffusion-v1-5/stable-diffusion-v1-5 |
نص إلى صورة (unCLIP) | UnCLIPPipeline | kakaobrain/karlo-v1-alpha |
نص إلى صورة (DeepFloyd IF) | IFPipeline | DeepFloyd/IF-I-XL-v1.0 |
نص إلى صورة (Kandinsky) | KandinskyPipeline | kandinsky-community/kandinsky-2-2-decoder |
إنشاء قابل للتحكم | StableDiffusionControlNetPipeline | lllyasviel/sd-controlnet-canny |
تحرير الصور | StableDiffusionInstructPix2PixPipeline | timbrooks/instruct-pix2pix |
صورة إلى صورة | StableDiffusionImg2ImgPipeline | stable-diffusion-v1-5/stable-diffusion-v1-5 |
ترميم الصور | StableDiffusionInpaintPipeline | runwayml/stable-diffusion-inpainting |
متغيرات الصور | StableDiffusionImageVariationPipeline | lambdalabs/sd-image-variations-diffusers |
دقة فائقة للصور | StableDiffusionUpscalePipeline | stabilityai/stable-diffusion-x4-upscaler |
دقة فائقة كامنة | StableDiffusionLatentUpscalePipeline | stabilityai/sd-x2-latent-upscaler |
نوع الوثيقة | محتوى التعلم |
---|---|
Tutorial | تعلم المهارات الأساسية للمكتبة، مثل استخدام النماذج والجداول الزمنية لبناء نظام انتشار، وتدريب نماذج الانتشار الخاصة بك |
Loading | كيفية تحميل وتكوين جميع مكونات المكتبة (خطوط الأنابيب والنماذج والجداول الزمنية)، وكيفية استخدام جداول زمنية مختلفة |
Pipelines for inference | كيفية استخدام خطوط الأنابيب لمهام استنتاج مختلفة، وإنشاء دفعات، والتحكم في مخرجات الإنشاء والعشوائية |
Optimization | كيفية تحسين خطوط الأنابيب للتشغيل على أجهزة ذات ذاكرة محدودة، وتسريع الاستنتاج |
Training | كيفية تدريب نماذج الانتشار الخاصة بك لمهام مختلفة |
🤗 Diffusers هي واحدة من أكثر مكتبات نماذج الانتشار اكتمالاً وسهولة في الاستخدام حالياً. فهي لا توفر فقط مجموعة غنية من النماذج وخطوط الأنابيب المدربة مسبقاً، ولكنها تدعم أيضاً التدريب والتخصيص والتحسين. سواء كنت باحثاً في مجال الذكاء الاصطناعي أو مطوراً أو مبدعاً، يمكنك العثور على الأدوات التي تحتاجها في هذه المكتبة لتنفيذ تطبيقات الذكاء الاصطناعي التوليدية المختلفة.