Buckets:
Hattalar
Pipelines, bağımsız olarak eğitilmiş birden fazla model, zamanlayıcılar ve işlemciler gibi gerekli tüm bileşenleri tek bir uçtan uca sınıfında bir araya getirerek, en son nesil difüzyon modellerini çıkarım (inference) sırasında çalıştırmak için basit bir yol sunar. Pipelines esnektir ve farklı zamanlayıcılar veya hatta model bileşenleri kullanacak şekilde uyarlanabilir.
Tüm pipeline'lar, tüm bileşenlerin yüklenmesi, indirilmesi ve kaydedilmesi için temel işlevselliği sağlayan DiffusionPipeline temel sınıfından oluşturulur. from_pretrained() ile yüklenen belirli pipeline türleri (örneğin StableDiffusionPipeline) otomatik olarak algılanır ve pipeline bileşenleri yüklenerek pipeline'ın __init__ fonksiyonuna aktarılır.
Eğitim için DiffusionPipeline sınıfını kullanmamalısınız. Difüzyon boru hatlarının bireysel bileşenleri (örneğin, UNet2DModel ve UNet2DConditionModel) genellikle ayrı ayrı eğitilir, bu nedenle doğrudan bunlarla çalışmanızı öneririz.
Pipelines herhangi bir eğitim işlevselliği sunmaz.
__call__()yönteminin birtorch.no_graddekoratörüyle süslenmiş olduğunu fark edeceksiniz; bu, PyTorch'un autograd'ının devre dışı bırakılması anlamına gelir çünkü pipeline'lar eğitim için kullanılmamalıdır. Eğitime ilgi duyuyorsanız, bunun yerine Eğitim kılavuzlarına göz atmanızı öneririz!
Kenar çubuğundaki API > Pipelines bölümünü kullanarak tüm pipeline referanslarını modaliteye göre görüntüleyin. Görev odaklı iş akışları için Quickstart ile başlayın veya text-to-image, image-to-image, inpainting ya da video generation gibi bir kılavuza göz atın.
DiffusionPipeline[[diffusers.DiffusionPipeline]]
diffusers.DiffusionPipeline[[diffusers.DiffusionPipeline]]
diffusers.DiffusionPipeline()
Tüm boru hatları için temel sınıf.
DiffusionPipeline, difüzyon boru hatları için tüm bileşenleri (modeller, zamanlayıcılar ve işlemciler) saklar ve modelleri yükleme, indirme ve kaydetme yöntemleri sunar. Ayrıca şu yöntemleri içerir:
- tüm PyTorch modüllerini seçtiğiniz cihaza taşıyın
- gürültü azaltma yinelemesi için ilerleme çubuğunu etkinleştirme/devre dışı bırakma
Sınıf özellikleri:
- config_name (
str) -- Tüm difüzyon hattı bileşenlerinin sınıf ve modül adlarını saklayan yapılandırma dosya adı. - _optional_components (
List[str]) -- Pipeline'in çalışması için iletilmesi gerekmeyen tüm isteğe bağlı bileşenlerin listesi (alt sınıflar tarafından geçersiz kılınmalıdır).
call[[diffusers.DiffusionPipeline.call]]
__call__(*args, **kwargs)
self'yi bir fonksiyon olarak çağırın.
cihaz[[diffusers.DiffusionPipeline.device]]
device()
Dönüş: torch.device
Hattın (pipeline) bulunduğu torch cihazı. Bileşenler cihazlar arasında bölündüğünde (örneğin, metin kodlayıcılar CPU'da çalışırken gürültü azaltma omurgası bir hızlandırıcıda çalışıyorsa), hızlandırıcı cihazı döndürülür.
'e[[diffusers.DiffusionPipeline.to]]
to(*args, **kwargs)
Parametreler:
dtype (torch.dtype, isteğe bağlı) : Belirtilen dtype ile bir pipeline döndürür
device (torch.Device, isteğe bağlı) : Belirtilen device ile bir pipeline döndürür
silence_dtype_warnings (str, isteğe bağlı, varsayılan False) : Hedef dtype, hedef device ile uyumlu değilse uyarıların atlanıp atlanmayacağı.
Dönüş: DiffusionPipeline
Pipeline, belirtilen dtype ve/veya dtype değerine dönüştürüldü.
Performs Pipeline dtype and/or device conversion. A torch.dtype and torch.device are inferred from the arguments of self.to(*args, **kwargs).
> Pipeline zaten doğru torch.dtype ve torch.device değerlerine sahipse, olduğu gibi döndürülür. Aksi takdirde, > döndürülen pipeline, istenen torch.dtype ve torch.device değerlerine sahip self'in bir kopyasıdır.
to çağrısının yolları şunlardır:
- Belirtilen
dtypeile bir pipeline döndürmek içinto(dtype, silence_dtype_warnings=False) → DiffusionPipeline - Belirtilen
deviceile bir pipeline döndürmek içinto(device, silence_dtype_warnings=False) → DiffusionPipeline - Belirtilen
devicevedtypedeğerlerine sahip bir pipeline döndürmek içinto(device=None, dtype=None, silence_dtype_warnings=False) → DiffusionPipeline
bileşenler[[diffusers.DiffusionPipeline.components]]
components()
self.components özelliği, ek bellek tahsis etmeden aynı ağırlıklar ve yapılandırmalarla farklı boru hatlarını çalıştırmak için faydalı olabilir.
Returns (dict): Hattın başlatılması için gereken tüm modülleri içeren bir sözlük.
Örnekler:
>>> from diffusers import (
... StableDiffusionPipeline,
... StableDiffusionImg2ImgPipeline,
... StableDiffusionInpaintPipeline,
... )
>>> text2img = StableDiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5")
>>> img2img = StableDiffusionImg2ImgPipeline(**text2img.components)
>>> inpaint = StableDiffusionInpaintPipeline(**text2img.components)
disable_attention_slicing[[diffusers.DiffusionPipeline.disable_attention_slicing]]
disable_attention_slicing()
Dilimlenmiş dikkat hesaplamasını devre dışı bırakır. enable_attention_slicing daha önce çağrıldıysa, dikkat tek adımda hesaplanır.
disable_xformers_memory_efficient_attention[[diffusers.DiffusionPipeline.disable_xformers_memory_efficient_attention]]
disable_xformers_memory_efficient_attention()
xFormers için bellek verimli dikkati devre dışı bırakın.
indir[[diffusers.DiffusionPipeline.download]]
download(pretrained_model_name, **kwargs)
Parametreler:
pretrained_model_name (str veya os.PathLike, isteğe bağlı) : Hub'da barındırılan önceden eğitilmiş bir pipeline'ın depo kimliği (örneğin CompVis/ldm-text2im-large-256) olan bir dize.
custom_pipeline (str, isteğe bağlı) : Şunlardan biri olabilir: - Hub'da barındırılan önceden eğitilmiş bir pipeline'ın depo kimliği (örneğin CompVis/ldm-text2im-large-256) olan bir dize. Depo, özel pipeline'ı tanımlayan pipeline.py adında bir dosya içermelidir. - GitHub'da Community altında barındırılan bir topluluk pipeline'ının dosya adı olan bir dize. Geçerli dosya adları, pipeline betiği yerine dosya adıyla eşleşmelidir (clip_guided_stable_diffusion.py yerine clip_guided_stable_diffusion). Topluluk pipeline'ları her zaman GitHub'ın mevcut main dalından yüklenir. - Özel bir pipeline içeren bir dizin (./my_pipeline_directory/) yoluna işaret eder. Dizin, özel pipeline'ı tanımlayan pipeline.py adında bir dosya içermelidir. > [!WARNING] > 🧪 Bu deneysel bir özelliktir ve gelecekte değişebilir. Özel pipeline'ların nasıl yükleneceği ve oluşturulacağı hakkında daha fazla bilgi için Bir topluluk pipeline'ı nasıl katkıda bulunulur başlığını inceleyin.
force_download (bool, isteğe bağlı, varsayılan False) : Model ağırlıklarının ve yapılandırma dosyalarının (yeniden) indirilmesinin zorlanıp zorlanmayacağını belirler; önbellekteki sürümler varsa bunların üzerine yazar.
proxies (Dict[str, str], isteğe bağlı) : Protokol veya uç nokta bazında kullanılacak vekil sunucuların sözlüğü, örneğin {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Vekiller her istekte kullanılır.
output_loading_info(bool, isteğe bağlı, varsayılan False) : Eksik anahtarlar, beklenmeyen anahtarlar ve hata mesajlarını içeren bir sözlüğün de döndürülüp döndürülmeyeceğini belirtir.
local_files_only (bool, isteğe bağlı, varsayılan False) : Sadece yerel model ağırlıklarının ve yapılandırma dosyalarının yüklenip yüklenmeyeceğini belirtir. True olarak ayarlanırsa, model Hub'dan indirilmez.
token (str veya bool, isteğe bağlı) : Uzaktaki dosyalar için HTTP bearer yetkilendirmesi olarak kullanılacak jeton. True ise, diffusers-cli login ile oluşturulan jeton (~/.huggingface içinde saklanır) kullanılır.
revision (str, isteğe bağlı, varsayılan "main") : Kullanılacak belirli model sürümü. Bir dal adı, etiket adı, commit kimliği veya Git tarafından izin verilen herhangi bir tanımlayıcı olabilir.
custom_revision (str, isteğe bağlı, varsayılan "main") : Kullanılacak belirli model sürümü. Hub'dan özel bir pipeline yüklenirken revision ile benzer şekilde bir dal adı, bir etiket adı veya bir commit id olabilir. GitHub'dan özel bir pipeline yüklenirken bir 🤗 Diffusers sürümü olabilir, aksi takdirde Hub'dan yüklenirken varsayılan olarak "main" kullanılır.
mirror (str, isteğe bağlı) : Çin'de bir model indiriyorsanız erişilebilirlik sorunlarını çözmek için ayna kaynağı. Kaynağın güncelliğini veya güvenliğini garanti etmiyoruz; daha fazla bilgi için ayna sitesine başvurmalısınız.
variant (str, isteğe bağlı) : Ağırlıkları, "fp16" veya "ema" gibi belirtilen bir varyant dosya adından yükler.
use_safetensors (bool, isteğe bağlı, varsayılan None) : None olarak ayarlanırsa, safetensors ağırlıkları mevcut ve safetensors kütüphanesi yüklüyse indirilir. True olarak ayarlanırsa, model zorla safetensors ağırlıklarından yüklenir. False olarak ayarlanırsa, safetensors ağırlıkları yüklenmez.
use_onnx (bool, isteğe bağlı, varsayılan False) : True olarak ayarlanırsa, mevcut olan ONNX ağırlıkları her zaman indirilir. False olarak ayarlanırsa, ONNX ağırlıkları asla indirilmez. Varsayılan olarak use_onnx, ONNX olmayan hatlar için False ve ONNX hatları için True olan _is_onnx sınıf özniteliğine ayarlanır. ONNX ağırlıkları, .onnx ve .pb ile biten her iki dosyayı da içerir.
trust_remote_code (bool, isteğe bağlı, varsayılan False) : Hub'da kendi dosyalarında tanımlanan özel pipeline'ların ve bileşenlerin kullanılmasına izin verilip verilmeyeceğini belirtir. Bu seçenek, yalnızca güvendiğiniz ve kodunu incelediğiniz depolar için True olarak ayarlanmalıdır; çünkü bu, Hub'da bulunan kodun yerel makinenizde çalıştırılmasına neden olur.
use_flashpack (bool, isteğe bağlı, varsayılan False) : True olarak ayarlanırsa, mevcut olan FlashPack ağırlıkları her zaman indirilir. False olarak ayarlanırsa, FlashPack ağırlıkları asla indirilmez.
Dönüş: os.PathLike
İndirilen pipeline'ın yolu.
Önceden eğitilmiş pipeline ağırlıklarından bir PyTorch difüzyon pipeline'ını indirin ve önbelleğe alın.
> Özel veya korumalı modelleri kullanmak için oturum açın `hf > auth login
enable_attention_slicing[[diffusers.DiffusionPipeline.enable_attention_slicing]]
enable_attention_slicing(slice_size: str | int = 'auto')
Parametreler:
slice_size (str veya int, isteğe bağlı, varsayılan "auto") : "auto" olduğunda, dikkat başlarına giden girdiyi ikiye böler, böylece dikkat iki adımda hesaplanır. "max" ise, her seferinde yalnızca bir dilim çalıştırılarak maksimum miktarda bellek tasarrufu sağlanır. Bir sayı sağlanırsa, attention_head_dim // slice_size kadar dilim kullanılır. Bu durumda attention_head_dim, slice_size'ın katı olmalıdır.
Dilimlenmiş dikkat (attention) hesaplamasını etkinleştirir. Bu seçenek etkinleştirildiğinde, dikkat modülü dikkat hesaplamasını birkaç adımda gerçekleştirmek için girdi tensörünü dilimlere böler. Birden fazla dikkat başlığı (attention head) varsa, hesaplama her başlık üzerinde sırayla yapılır. Bu, küçük bir hız kaybı karşılığında bellek tasarrufu sağlamak için faydalıdır.
> ⚠️ Zaten
scaled_dot_product_attention(SDPA) kullanıyorsanız dikkat dilimlemeyi etkinleştirmeyin from PyTorch > 2.0 or xFormers. Bu dikkat hesaplamaları zaten çok bellek verimlidir, bu yüzden bu işlevi etkinleştirmenize gerek yoktur. SDPA veya xFormers ile dikkat dilimlemeyi etkinleştirirseniz, ciddi yavaşlamalara yol açabilir!
Örnekler:
>>> import torch
>>> from diffusers import StableDiffusionPipeline
>>> pipe = StableDiffusionPipeline.from_pretrained(
... "stable-diffusion-v1-5/stable-diffusion-v1-5",
... dtype=torch.float16,
... use_safetensors=True,
... )
>>> prompt = "a photo of an astronaut riding a horse on mars"
>>> pipe.enable_attention_slicing()
>>> image = pipe(prompt).images[0]
enable_group_offload[[diffusers.DiffusionPipeline.enable_group_offload]]
enable_group_offload(onload_device: device, offload_device: device = torch.device(), offload_type: str = 'block_level', num_blocks_per_group: int | None = None, non_blocking: bool = False, use_stream: bool = False, record_stream: bool = False, low_cpu_mem_usage = False, offload_to_disk_path: str | None = None, exclude_modules: str | list[str] | None = None)
Parametreler:
onload_device (torch.device) : Modül grubunun yüklendiği cihaz.
offload_device (torch.device, varsayılan olarak torch.device("cpu")) : Modül grubunun aktarıldığı cihaz. Bu genellikle CPU olmalıdır. Varsayılan CPU'dur.
offload_type (str veya GroupOffloadingType, varsayılan "block_level") : Uygulanacak offload türü. "block_level" veya "leaf_level" değerlerinden biri olabilir. Varsayılan değer "block_level"dır.
offload_to_disk_path (str, isteğe bağlı, varsayılan None) : Parametrelerin taşınacağı dizinin yolu. Bu seçeneğin ayarlanması, makul bir hız-bellek ödüşlemesi istenen sınırlı RAM ortamı ayarlarında faydalı olabilir.
num_blocks_per_group (int, isteğe bağlı) : offload_type="block_level" kullanıldığında grup başına blok sayısı. offload_type="block_level" kullanıldığında bu alan zorunludur.
non_blocking (bool, varsayılan False) : True ise, offloading ve onloading işlemleri bloklayıcı olmayan veri aktarımı ile yapılır.
use_stream (bool, varsayılan False) : True ise, offloading ve onloading işlemleri bir CUDA stream kullanılarak asenkron olarak yapılır. Bu, hesaplama ve veri aktarımının üst üste binmesini sağlayarak faydalı olabilir.
record_stream (bool, varsayılan False) : use_stream ile etkinleştirildiğinde, mevcut tensörün bu akış tarafından kullanıldığını işaretler. Biraz daha fazla bellek kullanımı pahasına daha hızlıdır. Daha fazla ayrıntı için PyTorch resmi belgeleri'ne bakın.
low_cpu_mem_usage (bool, varsayılan False) : True ise, tensörler önceden sabitlenmek yerine anlık olarak sabitlenerek CPU bellek kullanımı en aza indirilir. Bu seçenek yalnızca akışlı CPU dışa aktarma kullanıldığında (yani use_stream=True) önem taşır. CPU belleği darboğaz oluşturduğunda faydalı olabilir ancak akış kullanımının sağladığı avantajları azaltabilir.
exclude_modules (Union[str, List[str]], varsayılan None) : Offloading'dan hariç tutulacak modüllerin listesi.
Bir torch.nn.Module'ün iç katmanlarına grup offloading uygular. Grup offloading'in ne olduğunu ve nerede faydalı olduğunu anlamak için, öncelikle diğer desteklenen offloading yöntemlerinin nasıl çalıştığına dair bazı bağlam sunmamız gerekir.
Genellikle, offloading iki düzeyde yapılır:
- Modül düzeyinde: Diffusers'ta bu,
ModelMixin::enable_model_cpu_offload()yöntemi kullanılarak etkinleştirilebilir. offload yöntemi, bir pipeline'ın her bileşenini depolama için CPU'ya aktararak (offload) ve hesaplama için gerektiğinde hızlandırıcı cihaza geri yükleyerek (onload) çalışır. Bu yöntem, tüm bileşenleri hızlandırıcıda tutmaktan daha bellek verimlidir, ancak bellek gereksinimleri hâlâ oldukça yüksektir. Bu yöntemin çalışabilmesi için, ileri geçişin (forward pass) tamamlanabilmesi adına çalışma zamanı veri türündeki (runtime dtype) model boyutuna eşdeğer bellek + en büyük ara aktivasyon tensörlerinin boyutu gerekir. - Yaprak düzeyi: Diffusers'ta bu,
ModelMixin::enable_sequential_cpu_offload()yöntemi kullanılarak etkinleştirilebilir. Hesaplama grafiğinin en alt yaprak seviyesindeki parametrelerini depolama için CPU'ya aktararak (offload) ve hesaplama için yalnızca yaprakları hızlandırıcı cihaza yükleyerek (onload) çalışır. Bu, en düşük hızlandırıcı bellek miktarını kullanır ancak aşırı sayıda cihaz senkronizasyonu nedeniyle daha yavaş olabilir.
Grup offloading, iki yöntem arasında bir orta yol sunar. İç katman gruplarını (ya da torch.nn.ModuleList ya da torch.nn.Sequential) offload ederek çalışır. Bu yöntem, modül düzeyindeki offloading'e göre daha az bellek kullanır. Ayrıca, cihaz senkronizasyonlarının sayısı azaldığı için yaprak düzeyi/sıralı offloading'den daha hızlıdır.
CUDA cihazlarında asenkron veri aktarım akışlarını destekleyen bir başka özellik, ardışık offloading'e kıyasla genel çalışma süresini azaltmak için veri aktarımı ile hesaplamayı üst üste bindirme yeteneğidir. Bu, akışlar kullanılarak katman ön yükleme (layer prefetching) ile etkinleştirilir; yani bir sonraki çalıştırılacak katman, mevcut katman çalıştırılırken hızlandırıcı cihaza onloading'e başlar - bu, bellek gereksinimlerini hafifçe artırır. Bu uygulamanın yaprak seviyesinde offloading'i de desteklediğini, ancak akışlar kullanıldığında çok daha hızlı hale gelebileceğini unutmayın.
Örnek:
>>> from diffusers import DiffusionPipeline
>>> import torch
>>> pipe = DiffusionPipeline.from_pretrained("Qwen/Qwen-Image", dtype=torch.bfloat16)
>>> pipe.enable_group_offload(
... onload_device=torch.device("cuda"),
... offload_device=torch.device("cpu"),
... offload_type="leaf_level",
... use_stream=True,
... )
>>> image = pipe("a beautiful sunset").images[0]
enable_model_cpu_offload[[diffusers.DiffusionPipeline.enable_model_cpu_offload]]
enable_model_cpu_offload(gpu_id: int | None = None, device: typing.Union[torch.device, str] = None)
Parametreler:
gpu_id (int, opsiyonel) : Çıkarımda kullanılacak hızlandırıcının kimliği. Belirtilmezse, varsayılan olarak 0 kullanılır.
device (torch.Device veya str, isteğe bağlı, varsayılanı None) : Çıkarımda kullanılacak hızlandırıcının PyTorch cihaz türü. Belirtilmezse, kullanılabilir hızlandırıcı otomatik olarak algılanır ve kullanılır.
Offloads all models to CPU using accelerate, reducing memory usage with a low impact on performance. Compared to enable_sequential_cpu_offload, this method moves one whole model at a time to the accelerator when its forward method is called, and the model remains in accelerator until the next model runs. Memory savings are lower than with enable_sequential_cpu_offload, but performance is much better due to the iterative execution of the unet.
enable_sequential_cpu_offload[[diffusers.DiffusionPipeline.enable_sequential_cpu_offload]]
enable_sequential_cpu_offload(gpu_id: int | None = None, device: typing.Union[torch.device, str] = None)
Parametreler:
gpu_id (int, opsiyonel) : Çıkarımda kullanılacak hızlandırıcının kimliği. Belirtilmezse, varsayılan olarak 0 kullanılır.
device (torch.Device veya str, isteğe bağlı, varsayılanı None) : Çıkarımda kullanılacak hızlandırıcının PyTorch cihaz türü. Belirtilmezse, kullanılabilir hızlandırıcı otomatik olarak algılanır ve kullanılır.
🤗 Accelerate kullanılarak tüm modeller CPU'ya aktarılır ve bellek kullanımı önemli ölçüde azaltılır. Çağrıldığında, self._exclude_from_cpu_offload içindekiler hariç olmak üzere tüm torch.nn.Module bileşenlerinin durum sözlükleri (state dicts) CPU'ya kaydedilir, ardından torch.device('meta') konumuna taşınır ve yalnızca ilgili alt modülün forward metodu çağrıldığında hızlandırıcıya (accelerator) yüklenir. Aktarma işlemi alt modül bazında gerçekleşir. Bellek tasarrufu enable_model_cpu_offload ile karşılaştırıldığında daha yüksektir, ancak performans daha düşüktür.
enable_xformers_memory_efficient_attention[[diffusers.DiffusionPipeline.enable_xformers_memory_efficient_attention]]
enable_xformers_memory_efficient_attention(attention_op: typing.Optional[typing.Callable] = None)
Parametreler:
attention_op (Callable, isteğe bağlı) : xFormers'in memory_efficient_attention() fonksiyonunda op argümanı olarak kullanılmak üzere varsayılan None operatörünü geçersiz kılar.
xFormers ile bellek verimli dikkati etkinleştirin. Bu seçenek etkinleştirildiğinde, GPU bellek kullanımının daha düşük olduğunu ve çıkarım sırasında olası bir hızlanmayı gözlemlemelisiniz. Eğitim sırasında hızlanma garanti edilmemektedir.
> ⚠️ Hem memory efficient attention hem de sliced attention etkinleştirildiğinde, memory efficient attention, > önceliğine sahiptir.
Örnekler:
>>> import torch
>>> from diffusers import DiffusionPipeline
>>> from xformers.ops import MemoryEfficientAttentionFlashAttentionOp
>>> pipe = DiffusionPipeline.from_pretrained("stabilityai/stable-diffusion-2-1", dtype=torch.float16)
>>> pipe = pipe.to("cuda")
>>> pipe.enable_xformers_memory_efficient_attention(attention_op=MemoryEfficientAttentionFlashAttentionOp)
>>> # Workaround for not accepting attention shape using VAE for Flash Attention
>>> pipe.vae.enable_xformers_memory_efficient_attention(attention_op=None)
from_pipe[[diffusers.DiffusionPipeline.from_pipe]]
from_pipe(pipeline, **kwargs)
Parametreler:
pipeline (DiffusionPipeline) : Yeni bir pipeline oluşturulacak olan pipeline.
Dönüş: DiffusionPipeline
pipeline ile aynı ağırlıklara ve yapılandırmalara sahip yeni bir pipeline.
Verilen bir pipeline'dan yeni bir pipeline oluşturun. Bu yöntem, ek bellek tahsis etmeden mevcut pipeline bileşenlerinden yeni bir pipeline oluşturmak için kullanışlıdır.
Örnekler:
>>> from diffusers import StableDiffusionPipeline, StableDiffusionSAGPipeline
>>> pipe = StableDiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5")
>>> new_pipe = StableDiffusionSAGPipeline.from_pipe(pipe)
from_pretrained[[diffusers.DiffusionPipeline.from_pretrained]]
from_pretrained(pretrained_model_name_or_path: str | os.PathLike, **kwargs)
Parametreler:
pretrained_model_name_or_path (str veya os.PathLike, isteğe bağlı) : Şunlardan biri olabilir: - Hub'da barındırılan önceden eğitilmiş bir pipeline'ın repo kimliği (örneğin CompVis/ldm-text2im-large-256) olan bir dize. - save_pretrained() kullanılarak kaydedilmiş pipeline ağırlıklarını içeren bir dizin yolu (örneğin ./my_pipeline_directory/).
dtype (torch.dtype veya dict[str, Union[str, torch.dtype]], isteğe bağlı) : Varsayılan torch.dtype değerini geçersiz kılar ve modeli başka bir dtype ile yükler. Alt modelleri farklı dtype'lerle yüklemek için bir dict iletin (örneğin {'transformer': torch.bfloat16, 'vae': torch.float16}). Belirtilmeyen bileşenler için varsayılan dtype değerini default ile ayarlayın (örneğin {'transformer': torch.bfloat16, 'default': torch.float16}). Bir bileşen belirtilmemiş ve varsayılan bir değer ayarlanmamışsa torch.float32 kullanılır.
custom_pipeline (str, isteğe bağlı) : > [!WARNING] > 🧪 Bu deneysel bir özelliktir ve gelecekte değişebilir. Şunlardan biri olabilir: - Hub'da barındırılan özel bir pipeline'ın repo kimliği (örneğin hf-internal-testing/diffusers-dummy-pipeline) olan bir dize. Depo, özel pipeline'ı tanımlayan pipeline.py adında bir dosya içermelidir. - GitHub'da Community altında barındırılan bir topluluk pipeline'ının dosya adı olan bir dize. Geçerli dosya adları, pipeline betiği yerine dosya adıyla eşleşmelidir (clip_guided_stable_diffusion.py yerine clip_guided_stable_diffusion). Topluluk pipeline'ları her zaman GitHub'ın güncel ana dalından yüklenir. - Özel bir pipeline içeren bir dizine giden yol (./my_pipeline_directory/). Dizin, özel pipeline'ı tanımlayan pipeline.py adında bir dosya içermelidir. Özel pipeline'ların nasıl yükleneceği ve oluşturulacağı hakkında daha fazla bilgi için Özel Pipeline'ların Yüklenmesi ve Eklenmesi bölümüne göz atın
force_download (bool, isteğe bağlı, varsayılan False) : Model ağırlıklarının ve yapılandırma dosyalarının (yeniden) indirilmesinin zorlanıp zorlanmayacağını belirler; önbellekteki sürümler varsa bunların üzerine yazar.
cache_dir (Union[str, os.PathLike], isteğe bağlı) : Standart önbellek kullanılmıyorsa, indirilen önceden eğitilmiş model yapılandırmasının önbelleğe alındığı dizinin yolu.
proxies (Dict[str, str], isteğe bağlı) : Protokol veya uç nokta bazında kullanılacak vekil sunucuların sözlüğü, örneğin {'http': 'foo.bar:3128', 'http://hostname': 'foo.bar:4012'}. Vekiller her istekte kullanılır.
output_loading_info(bool, isteğe bağlı, varsayılan False) : Eksik anahtarlar, beklenmeyen anahtarlar ve hata mesajlarını içeren bir sözlüğün de döndürülüp döndürülmeyeceğini belirtir.
local_files_only (bool, isteğe bağlı, varsayılan False) : Sadece yerel model ağırlıklarının ve yapılandırma dosyalarının yüklenip yüklenmeyeceğini belirtir. True olarak ayarlanırsa, model Hub'dan indirilmez.
token (str veya bool, isteğe bağlı) : Uzaktaki dosyalar için HTTP bearer yetkilendirmesi olarak kullanılacak jeton. True ise, diffusers-cli login ile oluşturulan jeton (~/.huggingface içinde saklanır) kullanılır.
revision (str, isteğe bağlı, varsayılan "main") : Kullanılacak belirli model sürümü. Bir dal adı, etiket adı, commit kimliği veya Git tarafından izin verilen herhangi bir tanımlayıcı olabilir.
custom_revision (str, isteğe bağlı) : Kullanılacak belirli model sürümü. Hub'dan özel bir pipeline yüklerken revision parametresine benzer şekilde bir dal adı, etiket adı veya commit kimliği olabilir. Varsayılan olarak en son kararlı 🤗 Diffusers sürümü kullanılır.
mirror (str, isteğe bağlı) : Çin'de bir model indirirken erişilebilirlik sorunlarını çözmek için ayna kaynağı. Kaynağın güncelliğini veya güvenliğini garanti etmiyoruz; daha fazla bilgi için ayna sitesine başvurmalısınız.
device_map (str, isteğe bağlı) : Bir pipeline'ın farklı bileşenlerinin kullanılabilir cihazlara nasıl yerleştirileceğini belirleyen strateji. Şu anda yalnızca "balanced" device_map desteklenmektedir. Daha fazla bilgi için buraya bakın.
max_memory (Dict, isteğe bağlı) : Maksimum bellek için bir sözlük cihaz tanımlayıcısı. Ayarlanmazsa, varsayılan olarak her GPU için kullanılabilir maksimum bellek ve kullanılabilir CPU RAM'i olacaktır.
offload_folder (str veya os.PathLike, isteğe bağlı) : "disk" değerini içeren bir device_map varsa, ağırlıkların taşınacağı yol.
offload_state_dict (bool, isteğe bağlı) : True ise, CPU durum sözlüğünün ağırlığı + checkpoint'in en büyük dilimi sığmıyorsa CPU RAM'inin dolmasını önlemek için CPU durum sözlüğü geçici olarak sabit diske aktarılır. Disk aktarımı varsa varsayılan olarak True değerine ayarlanır.
low_cpu_mem_usage (bool, isteğe bağlı, varsayılan olarak PyTorch sürümü >= 1.9.0 ise True, aksi halde False) : Ağırlıkları başlatmadan yalnızca önceden eğitilmiş ağırlıkları yükleyerek model yüklemesini hızlandırır. Bu, model yüklenirken (tepe bellek dahil) CPU belleğinde model boyutunun 1 katından fazlasını kullanmamaya da çalışır. Yalnızca PyTorch >= 1.9.0 için desteklenir. PyTorch'un daha eski bir sürümünü kullanıyorsanız, bu argümanı True olarak ayarlamak bir hata verecektir.
use_safetensors (bool, isteğe bağlı, varsayılan None) : None olarak ayarlanırsa, safetensors ağırlıkları mevcut ve safetensors kütüphanesi yüklüyse indirilir. True olarak ayarlanırsa, model zorla safetensors ağırlıklarından yüklenir. False olarak ayarlanırsa, safetensors ağırlıkları yüklenmez.
use_onnx (bool, isteğe bağlı, varsayılan None) : True olarak ayarlanırsa, mevcut olan ONNX ağırlıkları her zaman indirilir. False olarak ayarlanırsa, ONNX ağırlıkları asla indirilmez. Varsayılan olarak use_onnx, ONNX olmayan hatlar için False ve ONNX hatları için True olan _is_onnx sınıf özniteliğine ayarlanır. ONNX ağırlıkları, .onnx ve .pb ile biten her iki dosyayı da içerir.
kwargs (kalan anahtar kelime argümanları sözlüğü, isteğe bağlı) : Yüklenir ve kaydedilir değişkenleri (belirli pipeline sınıfının pipeline bileşenlerini) geçersiz kılmak için kullanılabilir. Geçersiz kılınan bileşenler doğrudan pipeline'ın __init__ yöntemine iletilir. Daha fazla bilgi için aşağıdaki örneğe bakın.
variant (str, isteğe bağlı) : Ağırlıkları, "fp16" veya "ema" gibi belirtilen bir varyant dosya adından yükler.
disable_mmap ('bool', isteğe bağlı, varsayılan 'False') : Bir Safetensors modeli yüklenirken mmap'in devre dışı bırakılıp bırakılmayacağını belirtir. Model bir ağ biriminde veya sabit diskte olduğunda, bu ortamın mmap'in rastgele erişim (seek) davranışını iyi yönetememesi nedeniyle bu seçenek daha iyi performans gösterebilir.
Önceden eğitilmiş pipeline ağırlıklarından bir PyTorch difüzyon pipeline'ı örnekleyin.
Hattın varsayılan olarak değerlendirme modunda (model.eval()) ayarlanır.
Aşağıdaki hata mesajını alıyorsanız, aşağı akış göreviniz için ağırlıkları ince ayar yapmanız gerekir:
Some weights of UNet2DConditionModel were not initialized from the model checkpoint at stable-diffusion-v1-5/stable-diffusion-v1-5 and are newly initialized because the shapes did not match:
- conv_in.weight: found shape torch.Size([320, 4, 3, 3]) in the checkpoint and torch.Size([320, 9, 3, 3]) in the model instantiated
You should probably TRAIN this model on a down-stream task to be able to use it for predictions and inference.
> Özel veya gated modelleri kullanmak için oturum açın
hf > auth loginile.
Örnekler:
>>> from diffusers import DiffusionPipeline
>>> # Download pipeline from huggingface.co and cache.
>>> pipeline = DiffusionPipeline.from_pretrained("CompVis/ldm-text2im-large-256")
>>> # Download pipeline that requires an authorization token
>>> # For more information on access tokens, please refer to this section
>>> # of the documentation](https://huggingface.co/docs/hub/security-tokens)
>>> pipeline = DiffusionPipeline.from_pretrained("stable-diffusion-v1-5/stable-diffusion-v1-5")
>>> # Use a different scheduler
>>> from diffusers import LMSDiscreteScheduler
>>> scheduler = LMSDiscreteScheduler.from_config(pipeline.scheduler.config)
>>> pipeline.scheduler = scheduler
maybe_free_model_hooks[[diffusers.DiffusionPipeline.maybe_free_model_hooks]]
maybe_free_model_hooks()
Aşağıdakileri gerçekleştiren yöntem:
- Tüm bileşenleri taşır.
enable_model_cpu_offloadkullanılırken eklenen tüm model kancalarını kaldırır ve ardından onları yeniden uygular. Model taşınmamışsa bu işlev hiçbir şey yapmaz.register_hook()ile eklendilerse, denoiser bileşenlerinin durumlu diffusers kancalarını sıfırlar.
enable_model_cpu_offload uygulandığında doğru çalışması için bu fonksiyonu pipeline'ınızın __call__ fonksiyonunun sonuna eklediğinizden emin olun.
numpy_to_pil[[diffusers.DiffusionPipeline.numpy_to_pil]]
numpy_to_pil(images)
Bir NumPy görüntüsünü veya görüntü grubunu bir PIL görüntüsüne dönüştürür.
remove_all_hooks[[diffusers.DiffusionPipeline.remove_all_hooks]]
remove_all_hooks()
enable_sequential_cpu_offload veya enable_model_cpu_offload kullanılırken eklenen tüm kanca (hook)ları kaldırır.
reset_device_map[[diffusers.DiffusionPipeline.reset_device_map]]
reset_device_map()
Cihaz haritalarını (varsa) None olarak sıfırlar.
save_pretrained[[diffusers.DiffusionPipeline.save_pretrained]]
save_pretrained(save_directory: str | os.PathLike, safe_serialization: bool = True, variant: str | None = None, max_shard_size: int | str | None = None, push_to_hub: bool = False, use_flashpack: bool = False, **kwargs)
Parametreler:
save_directory (str veya os.PathLike) : Bir pipeline'ın kaydedileceği dizin. Var değilse oluşturulur.
safe_serialization (bool, isteğe bağlı, varsayılan True) : Modelin safetensors ile mi yoksa geleneksel PyTorch yöntemiyle pickle kullanılarak mı kaydedileceğini belirtir.
variant (str, isteğe bağlı) : Belirtilirse, ağırlıklar pytorch_model.<variant>.bin biçiminde kaydedilir.
max_shard_size (int veya str, varsayılan None) : Bir kontrol noktasının parçalanmadan önceki maksimum boyutu. Parçalanan kontrol noktalarının her biri bu boyuttan küçük olacaktır. Dize olarak ifade ediliyorsa, birimden (örneğin "5GB") önce rakamlar gelmelidir. Tamsayı olarak ifade ediliyorsa birim bayttır. Not: Kullanıcıların diffusers'in en son sürümüne yükselmesine izin vermek için bu sınır, belirli bir süre sonra (Ekim 2024'ten itibaren) azaltılacaktır. Bu, Hugging Face ekosistemindeki farklı kütüphaneler (örneğin transformers ve accelerate) için bu argümana yönelik ortak bir varsayılan boyut belirlemektir.
push_to_hub (bool, isteğe bağlı, varsayılan False) : Modelinizi kaydettikten sonra Hugging Face model hub'ına gönderip göndermeyeceğinizi belirtir. Göndermek istediğiniz depoyu repo_id ile belirleyebilirsiniz (varsayılan olarak ad alanınızdaki save_directory adı kullanılır).
kwargs (Dict[str, Any], isteğe bağlı) : push_to_hub() yöntemine iletilen ek anahtar kelime argümanları.
Hattın (pipeline) tüm kaydedilebilir değişkenlerini bir dizine kaydeder. Bir hat değişkeni, sınıfı hem bir kaydetme hem de bir yükleme yöntemi uyguluyorsa kaydedilebilir ve yüklenebilir. Hat, from_pretrained() sınıf yöntemi kullanılarak kolayca yeniden yüklenebilir.
diffusers.StableDiffusionMixin.enable_freeu[[diffusers.StableDiffusionMixin.enable_freeu]]
diffusers.StableDiffusionMixin.enable_freeu(s1: float, s2: float, b1: float, b2: float)
Parametreler:
s1 (float) : 1. aşama için, atlanan özelliklerin katkılarını sönümlemek amacıyla kullanılan ölçekleme faktörü. Bu, geliştirilmiş gürültü azaltma sürecindeki "aşırı yumuşatma etkisini" azaltmak için yapılır.
s2 (float) : 2. aşama için, atlanan özelliklerin katkılarını azaltmak üzere kullanılan ölçekleme faktörü. Bu, geliştirilmiş gürültü azaltma sürecindeki "aşırı yumuşatma etkisini" (oversmoothing effect) hafifletmek için yapılır.
b1 (float) : Omurga özelliklerinin katkılarını artırmak için 1. aşama ölçekleme çarpanı.
b2 (float) : Omurga özelliklerinin katkılarını artırmak için 2. aşama ölçekleme çarpanı.
https://huggingface.co/papers/2309.11497'deki gibi FreeU mekanizmasını etkinleştirir.
Ölçekleme katsayılarının sonundaki ekler, bu katsayıların uygulandığı aşamaları temsil eder.
Stable Diffusion v1, v2 ve Stable Diffusion XL gibi farklı pipeline'lar için iyi çalıştığı bilinen değer kombinasyonları için resmi depoya bakın.
diffusers.StableDiffusionMixin.disable_freeu[[diffusers.StableDiffusionMixin.disable_freeu]]
diffusers.StableDiffusionMixin.disable_freeu()
Etkinse, FreeU mekanizmasını devre dışı bırakır.
PushToHubMixin[[diffusers.utils.PushToHubMixin]]
diffusers.utils.PushToHubMixin[[diffusers.utils.PushToHubMixin]]
diffusers.utils.PushToHubMixin()
Bir model, zamanlayıcı veya hattı Hugging Face Hub'a göndermek için bir Mixin.
push_to_hub[[diffusers.utils.PushToHubMixin.push_to_hub]]
push_to_hub(repo_id: str, commit_message: str | None = None, private: bool | None = None, token: str | None = None, create_pr: bool = False, safe_serialization: bool = True, variant: str | None = None, subfolder: str | None = None)
Parametreler:
repo_id (str) : Model, zamanlayıcı veya pipeline dosyalarınızı itmek istediğiniz depoyun adı. Bir organizasyona itme işlemi sırasında organizasyon adınızı içermelidir. repo_id ayrıca yerel bir dizine giden bir yol da olabilir.
commit_message (str, isteğe bağlı) : İterken commit edilecek mesaj. Varsayılan olarak "Upload {object}".
private (bool, isteğe bağlı) : Depoyu özel yapılıp yapılmayacağını belirtir. None (varsayılan) ise, organizasyonun varsayılanı özel değilse depo herkese açık olur. Depo zaten mevcutsa bu değer yok sayılır.
token (str, isteğe bağlı) : Uzaktaki dosyalar için HTTP bearer yetkilendirmesi olarak kullanılacak jeton. hf auth login çalıştırıldığında oluşturulan jeton (~/.huggingface içinde saklanır).
create_pr (bool, isteğe bağlı, varsayılan False) : Yüklenen dosyalarla bir PR oluşturulup oluşturulmayacağı veya doğrudan commit atılıp atılmayacağı.
safe_serialization (bool, isteğe bağlı, varsayılan True) : Model ağırlıklarının safetensors biçimine dönüştürülüp dönüştürülmeyeceği.
variant (str, isteğe bağlı) : Belirtilirse, ağırlıklar pytorch_model.<variant>.bin biçiminde kaydedilir.
Model, zamanlayıcı veya boru hattı dosyalarını 🤗 Hugging Face Hub'a yükleyin.
Örnekler:
from diffusers import UNet2DConditionModel
unet = UNet2DConditionModel.from_pretrained("stabilityai/stable-diffusion-2", subfolder="unet")
# Push the `unet` to your namespace with the name "my-finetuned-unet".
unet.push_to_hub("my-finetuned-unet")
# Push the `unet` to an organization with the name "my-finetuned-unet".
unet.push_to_hub("your-org/my-finetuned-unet")
Geri Çağrılar[[diffusers.callbacks.PipelineCallback]]
diffusers.callbacks.PipelineCallback[[diffusers.callbacks.PipelineCallback]]
diffusers.callbacks.PipelineCallback(cutoff_step_ratio = 1.0, cutoff_step_index = None)
Bir pipeline'da kullanılan tüm resmi geri çağrılar (callbacks) için temel sınıf. Bu sınıf, özel geri çağrılar (callbacks) uygulaması için bir yapı sağlar ve tüm geri çağrıların (callbacks) tutarlı bir arayüze sahip olmasını garanti eder.
Lütfen şunları uygulayın: tensor_inputs: Bu, geri çağırmanız (callback) için özel gergilik (tensor) girdilerinin bir listesini döndürmelidir. Sadece hattınızın (pipeline) sınıfındaki ._callback_tensor_inputs özniteliğinde listelenen değişkenleri dahil edebilirsiniz. callback_fn: Bu yöntem, geri çağırmanızın (callback) temel işlevselliğini tanımlar.
diffusers.callbacks.SDCFGCutoffCallback[[diffusers.callbacks.SDCFGCutoffCallback]]
diffusers.callbacks.SDCFGCutoffCallback(cutoff_step_ratio = 1.0, cutoff_step_index = None)
Stable Diffusion Pipelines için geri çağırma (callback) işlevi. Belirli bir adım sayısından sonra (cutoff_step_ratio veya cutoff_step_index ile ayarlanır), bu geri çağırma işlevi CFG'yi devre dışı bırakır.
Not: Bu geri çağrı, kesme adımından sonra _guidance_scale özniteliğini 0.0 olarak değiştirerek hattı değiştirir.
diffusers.callbacks.SDXLCFGCutoffCallback[[diffusers.callbacks.SDXLCFGCutoffCallback]]
diffusers.callbacks.SDXLCFGCutoffCallback(cutoff_step_ratio = 1.0, cutoff_step_index = None)
Temel Stable Diffusion XL Pipelines için geri çağırma (callback) işlevi. Belirli bir adım sayısından sonra (cutoff_step_ratio veya cutoff_step_index ile ayarlanır), bu geri çağırma işlevi CFG'yi devre dışı bırakır.
Not: Bu geri çağrı, kesme adımından sonra _guidance_scale özniteliğini 0.0 olarak değiştirerek hattı değiştirir.
diffusers.callbacks.SDXLControlnetCFGCutoffCallback[[diffusers.callbacks.SDXLControlnetCFGCutoffCallback]]
diffusers.callbacks.SDXLControlnetCFGCutoffCallback(cutoff_step_ratio = 1.0, cutoff_step_index = None)
Controlnet Stable Diffusion XL Pipelines için geri çağırma (callback) işlevi. Belirli bir adım sayısından sonra (cutoff_step_ratio veya cutoff_step_index ile ayarlanır), bu geri çağırma işlevi CFG'yi devre dışı bırakır.
Not: Bu geri çağrı, kesme adımından sonra _guidance_scale özniteliğini 0.0 olarak değiştirerek hattı değiştirir.
diffusers.callbacks.IPAdapterScaleCutoffCallback[[diffusers.callbacks.IPAdapterScaleCutoffCallback]]
diffusers.callbacks.IPAdapterScaleCutoffCallback(cutoff_step_ratio = 1.0, cutoff_step_index = None)
IPAdapterMixin sınıfından türeyen herhangi bir pipeline için geri çağrı (callback) işlevi. Belirli bir adım sayısından sonra (cutoff_step_ratio veya cutoff_step_index ile ayarlanır), bu geri çağrı IP Adapter ölçeğini 0.0 olarak ayarlar.
Not: Bu geri çağrı, kesme adımından sonra ölçeği 0.0 olarak ayarlayarak IP Adapter dikkat işleyicilerini değiştirir.
diffusers.callbacks.SD3CFGCutoffCallback[[diffusers.callbacks.SD3CFGCutoffCallback]]
diffusers.callbacks.SD3CFGCutoffCallback(cutoff_step_ratio = 1.0, cutoff_step_index = None)
Stable Diffusion 3 Pipelines için geri çağırma (callback) işlevi. Belirli bir adım sayısından sonra (cutoff_step_ratio veya cutoff_step_index ile ayarlanır), bu geri çağırma işlevi CFG'yi devre dışı bırakır.
Not: Bu geri çağrı, kesme adımından sonra _guidance_scale özniteliğini 0.0 olarak değiştirerek hattı değiştirir.
Xet Storage Details
- Size:
- 48.3 kB
- Xet hash:
- 38cd2479187bc3b24a215d885845fbbd2c5129c557ae4aa83f821cfce0a4bb40
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.