Buckets:

mishig's picture
|
download
raw
48.3 kB

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 bir torch.no_grad dekoratö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()

Kaynak

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()

Kaynak

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)

Kaynak

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 dtype ile bir pipeline döndürmek için to(dtype, silence_dtype_warnings=False) → DiffusionPipeline
  • Belirtilen device ile bir pipeline döndürmek için to(device, silence_dtype_warnings=False) → DiffusionPipeline
  • Belirtilen device ve dtype değerlerine sahip bir pipeline döndürmek için to(device=None, dtype=None, silence_dtype_warnings=False) → DiffusionPipeline

bileşenler[[diffusers.DiffusionPipeline.components]]

components()

Kaynak

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()

Kaynak

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()

Kaynak

xFormers için bellek verimli dikkati devre dışı bırakın.

indir[[diffusers.DiffusionPipeline.download]]

download(pretrained_model_name, **kwargs)

Kaynak

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')

Kaynak

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)

Kaynak

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)

Kaynak

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)

Kaynak

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)

Kaynak

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)

Kaynak

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)

Kaynak

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 login ile.

Ö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()

Kaynak

Aşağıdakileri gerçekleştiren yöntem:

  • Tüm bileşenleri taşır.
  • enable_model_cpu_offload kullanı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)

Kaynak

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()

Kaynak

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()

Kaynak

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)

Kaynak

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)

Kaynak

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()

Kaynak

Etkinse, FreeU mekanizmasını devre dışı bırakır.

PushToHubMixin[[diffusers.utils.PushToHubMixin]]

diffusers.utils.PushToHubMixin[[diffusers.utils.PushToHubMixin]]

diffusers.utils.PushToHubMixin()

Kaynak

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)

Kaynak

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)

Kaynak

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)

Kaynak

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)

Kaynak

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)

Kaynak

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)

Kaynak

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)

Kaynak

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.