Buckets:
| # DiffusionPipeline | |
| Diffüzyon modelleri, UNet'ler veya diffüzyon transformatorları (DiT), metin kodlayıcılar, varyasyonel otoenkoderler (VAE) ve zamanlayıcılar gibi birden fazla bileşenden oluşur. [DiffusionPipeline](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline), bu bileşenlerin tümünü, bileşenlerini değiştirme esnekliğinden vazgeçmeden, tek bir kullanımı kolay API içinde bir araya getirir. | |
| Bu kılavuz, bir [DiffusionPipeline](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline) yüklemenin nasıl yapılacağını gösterecektir. | |
| ## Bir pipeline yüklemek | |
| [DiffusionPipeline](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline), `model_index.json` dosyasını sınıf adını bulmak için tarayarak, [QwenImagePipeline](/docs/diffusers/main/tr/api/pipelines/qwenimage#diffusers.QwenImagePipeline) gibi bir modelin pipeline alt sınıfının bir örneğini otomatik olarak seçen ve döndüren temel bir pipeline sınıfıdır. | |
| Bir pipeline yüklemek için bir model kimliğini [from_pretrained()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained) parametresi olarak iletin. | |
| ```py | |
| import torch | |
| from diffusers import DiffusionPipeline | |
| pipeline = DiffusionPipeline.from_pretrained( | |
| "Qwen/Qwen-Image", dtype=torch.bfloat16, device_map="cuda" # or "mps", "xpu", "cpu" | |
| ) | |
| ``` | |
| Her modelin, [DiffusionPipeline](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline) sınıfından türeyen belirli bir pipeline alt sınıfı vardır. Bir alt sınıf genellikle dar bir odak noktasına sahiptir ve görev bazlıdır. Örnek için aşağıdaki tabloya bakın. | |
| | pipeline alt sınıfı | görev | | |
| |---|---| | |
| | [QwenImagePipeline](/docs/diffusers/main/tr/api/pipelines/qwenimage#diffusers.QwenImagePipeline) | metinden görüntüye | | |
| | [QwenImageImg2ImgPipeline](/docs/diffusers/main/tr/api/pipelines/qwenimage#diffusers.QwenImageImg2ImgPipeline) | görselden görseli | | |
| | [QwenImageInpaintPipeline](/docs/diffusers/main/tr/api/pipelines/qwenimage#diffusers.QwenImageInpaintPipeline) | inpaint | | |
| Bir model kimliği geçirerek alt sınıfı doğrudan [from_pretrained()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained) ile kullanabilirsiniz. | |
| ```py | |
| import torch | |
| from diffusers import QwenImagePipeline | |
| pipeline = QwenImagePipeline.from_pretrained( | |
| "Qwen/Qwen-Image", dtype=torch.bfloat16, device_map="cuda" # or "mps", "xpu", "cpu" | |
| ) | |
| ``` | |
| > [!TIP] | |
| > Tek dosya modellerinin nasıl yükleneceğini öğrenmek için [Single file format](./other-formats#single-file-format) belgelerine bakın. | |
| ### Yerel boru hatları | |
| Pipelines yerel olarak da çalıştırılabilir. Bir model deposunu indirmek için [snapshot_download](https://huggingface.co/docs/huggingface_hub/main/en/package_reference/file_download#huggingface_hub.snapshot_download) kullanın. | |
| ```py | |
| from huggingface_hub import snapshot_download | |
| local_dir = snapshot_download(repo_id="Qwen/Qwen-Image") | |
| ``` | |
| Yüklemek için o yolu [from_pretrained()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained) parametresi olarak iletin. | |
| ```py | |
| import torch | |
| from diffusers import QwenImagePipeline | |
| pipeline = QwenImagePipeline.from_pretrained( | |
| local_dir, dtype=torch.bfloat16, device_map="cuda" # or "mps", "xpu", "cpu" | |
| ) | |
| ``` | |
| [from_pretrained()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained) yöntemi, yerel bir yol algıladığında Hub'dan dosya indirmez. Ancak bu, modele yapılan güncellemelerin de indirilip önbelleğe alınmayacağı anlamına gelir. | |
| ## Pipeline veri türleri | |
| Belirli bir veri türüyle bir model yüklemek için [from_pretrained()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained) içindeki `dtype` argümanını kullanın. Bu, farklı modelleri farklı hassasiyetlerde yüklemenizi sağlar. Örneğin, büyük bir transformer modelini yarı hassasiyette yüklemek, gereken belleği azaltır. | |
| Her model için veri türünü bir sözlük olarak `dtype` parametresine iletin. Varsayılan veri türünü ayarlamak için `default` anahtarını kullanın. Bir model sözlükte yer almıyorsa ve `default` belirtilmemişse, model tam hassasiyetle (`torch.float32`) yüklenir. | |
| ```py | |
| import torch | |
| from diffusers import QwenImagePipeline | |
| pipeline = QwenImagePipeline.from_pretrained( | |
| "Qwen/Qwen-Image", | |
| dtype={"transformer": torch.bfloat16, "default": torch.float16}, | |
| ) | |
| print(pipeline.transformer.dtype, pipeline.vae.dtype) | |
| ``` | |
| Tüm modelleri aynı veri türünde yüklüyorsanız bir sözlük kullanmanıza gerek yoktur. | |
| ```py | |
| import torch | |
| from diffusers import QwenImagePipeline | |
| pipeline = QwenImagePipeline.from_pretrained( | |
| "Qwen/Qwen-Image", dtype=torch.bfloat16 | |
| ) | |
| print(pipeline.transformer.dtype, pipeline.vae.dtype) | |
| ``` | |
| ## Cihaz yerleşimi | |
| `device_map` argümanı, bir hattı (pipeline) cihazlara yerleştirir. Çalışma zamanında Diffusers, `"balanced"`, `"cpu"` ve bulunduğunuz makine için hızlandırıcı dizgesini (genellikle `"cuda"`, `"mps"` veya `"xpu"`) kabul eder. | |
| | parametre | açıklama | | |
| |---|---| | |
| | accelerator dizesi | Hattı (pipeline) bu cihaza yerleştirir. Makinenizin desteklediği hızlandırıcıyı, örneğin `"cuda"`, `"mps"` veya `"xpu"` gibi, iletin. | | |
| | `"balanced"` | Spreads, pipeline bileşenlerini görünür GPU'lara dağıtır. Cihaz başına sınırlara ihtiyacınız olduğunda `max_memory` ile kullanın. | | |
| | `"cpu"` | Hattı CPU üzerine yerleştirir. | | |
| Her cihazda kullanılacak maksimum bellek miktarını ayarlamak için [from_pretrained()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.from_pretrained) içinde `max_memory` argümanını kullanın. Varsayılan olarak Diffusers, kullanılabilir maksimum miktarı kullanır. | |
| ```py | |
| import torch | |
| from diffusers import DiffusionPipeline | |
| max_memory = {0: "16GB", 1: "16GB"} | |
| pipeline = DiffusionPipeline.from_pretrained( | |
| "Qwen/Qwen-Image", | |
| dtype=torch.bfloat16, | |
| device_map="balanced", | |
| max_memory=max_memory, | |
| ) | |
| ``` | |
| `hf_device_map` özniteliği, `device_map`'e erişmenizi ve görüntülemenizi sağlar. | |
| ```py | |
| print(pipeline.hf_device_map) | |
| # {'transformer': 1, 'vae': 1, 'text_encoder': 0} | |
| ``` | |
| Bir `device_map` ayarını [reset_device_map()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.reset_device_map) yöntemiyle sıfırlayın. `.to()`, [enable_sequential_cpu_offload()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.enable_sequential_cpu_offload) ve [enable_model_cpu_offload()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.enable_model_cpu_offload) gibi yöntemleri kullanmak istiyorsanız bu işlem gereklidir. | |
| ```py | |
| pipeline.reset_device_map() | |
| ``` | |
| ## Paralel yükleme | |
| Büyük modeller, yüklenmelerini kolaylaştırmak için genellikle [parçalara](../optimization/memory#sharded-checkpoints) ayrılır. Diffusers, yükleme sürecini hızlandırmak için parçaların paralel olarak yüklenmesini destekler. | |
| Paralel shard yüklemeyi etkinleştirmek için `HF_ENABLE_PARALLEL_LOADING` değerini `"YES"` olarak ayarlayın. | |
| `device_map` argümanı, model boyutuna dayalı olarak büyük bir bellek dilimini önceden ayırmak için `"cuda"` olarak ayarlanmalıdır. Bu, bellek ayıracının ısınma sürecinin daha sonraki birçok küçük ayıracı çağrısını önlemesi sayesinde model yükleme süresini önemli ölçüde azaltır. | |
| ```py | |
| import os | |
| import torch | |
| from diffusers import DiffusionPipeline | |
| os.environ["HF_ENABLE_PARALLEL_LOADING"] = "YES" | |
| pipeline = DiffusionPipeline.from_pretrained( | |
| "Wan-AI/Wan2.2-I2V-A14B-Diffusers", dtype=torch.bfloat16, device_map="cuda" # or "mps", "xpu", "cpu" | |
| ) | |
| ``` | |
| ## Bir boru hattındaki modellerin değiştirilmesi | |
| [DiffusionPipeline](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline) esnektir ve başka modellerin veya zamanlayıcıların yüklenmesine olanak tanır. Üretim hızını veya kalitesini optimize etmek için farklı zamanlayıcılarla deney yapabilir ve modelleri daha yüksek performanslı olanlarla değiştirebilirsiniz. | |
| Aşağıdaki örnek daha kararlı bir VAE sürümünü kullanır. | |
| ```py | |
| import torch | |
| from diffusers import DiffusionPipeline, AutoModel | |
| vae = AutoModel.from_pretrained( | |
| "madebyollin/sdxl-vae-fp16-fix", dtype=torch.float16 | |
| ) | |
| pipeline = DiffusionPipeline.from_pretrained( | |
| "stabilityai/stable-diffusion-xl-base-1.0", | |
| vae=vae, | |
| dtype=torch.float16, | |
| device_map="cuda" # or "mps", "xpu", "cpu" | |
| ) | |
| ``` | |
| ## Birden çok boru hattında modelleri yeniden kullanma | |
| Aynı modeli kullanan birden çok pipeline ile çalışırken, [from_pipe()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.from_pipe) yöntemi modeli her seferinde yeniden yüklemek yerine yeniden kullanılmasını sağlar. Bu sayede bellek kullanımını artırmadan birden çok pipeline kullanabilirsiniz. | |
| Hafıza kullanımı, kaç tane boru hattı olduğundan bağımsız olarak, en yüksek hafıza gereksinimine sahip boru hattı tarafından belirlenir. | |
| Aşağıdaki örnek bir pipeline yükler ve ardından [perturbed-attention guidance (PAG)](../api/pipelines/pag) kullanarak üretim kalitesini iyileştirmek için [from_pipe()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.from_pipe) ile ikinci bir pipeline yükler. | |
| > [!WARNING] | |
| > [DiffusionPipeline](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline) PAG'i desteklemediği için [AutoPipelineForText2Image](/docs/diffusers/main/tr/api/pipelines/auto_pipeline#diffusers.AutoPipelineForText2Image) kullanın. Daha fazla bilgi için [AutoPipeline](../tutorials/autopipeline) belgelerine bakın. | |
| ```py | |
| import torch | |
| from diffusers import AutoPipelineForText2Image | |
| pipeline_sdxl = AutoPipelineForText2Image.from_pretrained( | |
| "stabilityai/stable-diffusion-xl-base-1.0", dtype=torch.float16, device_map="cuda" # or "mps", "xpu", "cpu" | |
| ) | |
| prompt = """ | |
| cinematic film still of a cat sipping a margarita in a pool in Palm Springs, California | |
| highly detailed, high budget hollywood movie, cinemascope, moody, epic, gorgeous, film grain | |
| """ | |
| image = pipeline_sdxl(prompt).images[0] | |
| print(f"Max memory reserved: {torch.cuda.max_memory_allocated() / 1024**3:.2f} GB") | |
| # Max memory reserved: 10.47 GB | |
| ``` | |
| PAG'i etkinleştirmek için ikinci pipeline'da `enable_pag=True` ayarlayın. İkinci pipeline, model ağırlıklarını birinci pipeline ile paylaştığı için aynı miktarda bellek kullanır. | |
| ```py | |
| pipeline = AutoPipelineForText2Image.from_pipe( | |
| pipeline_sdxl, enable_pag=True | |
| ) | |
| prompt = """ | |
| cinematic film still of a cat sipping a margarita in a pool in Palm Springs, California | |
| highly detailed, high budget hollywood movie, cinemascope, moody, epic, gorgeous, film grain | |
| """ | |
| image = pipeline(prompt).images[0] | |
| print(f"Max memory reserved: {torch.cuda.max_memory_allocated() / 1024**3:.2f} GB") | |
| # Max memory reserved: 10.47 GB | |
| ``` | |
| > [!WARNING] | |
| > [from_pipe()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.from_pipe) ile oluşturulan pipeline'lar aynı modelleri ve *state* durumunu paylaşır. Bir pipeline'da bir modelin durumunu değiştirmek, aynı modeli paylaşan diğer tüm pipeline'ları etkiler. | |
| Bazı yöntemler, [from_pipe()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.from_pipe) ile oluşturulan boru hatlarında doğru çalışmayabilir. Örneğin, [enable_model_cpu_offload()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.enable_model_cpu_offload) benzersiz bir model çalışma sırasına dayanır ve bu sıra yeni boru hattında farklılık gösterebilir. Doğru işlevselliği sağlamak için bu yöntemleri yeni boru hattına yeniden uygulayın. | |
| ## Sonraki adımlar | |
| Bir pipeline yüklendikten sonra genellikle gürültü azaltma zamanlamasını ayarlarsınız, ağırlık biçimlerini değiştirirsiniz veya adaptörler eklersiniz. | |
| - [Schedulers](./schedulers), gürültü azaltma algoritmasının değiştirilmesini ve yapılandırılmasını kapsar. | |
| - [Model formatları](./other-formats), GGUF, tek dosyalık checkpoint'ler ve diğer ağırlık yerleşimlerini kapsar. | |
| - [Bellek kullanımını azaltma](../optimization/memory), offloading ve diğer bellek araçlarını kapsar. | |
| - [LoRA](../tutorials/using_peft_for_inference), bir pipeline üzerinde adaptörlerin yüklenmesini kapsar. | |
| - [Eski kontrol noktaları](./legacy_checkpoints#safety-checker), eski Stable Diffusion kontrol noktaları için güvenlik denetleyicisini kapsar. | |
Xet Storage Details
- Size:
- 12.8 kB
- Xet hash:
- aff501a18e75434b56b145b53f904806c8897bb2668491720f396bfaf4dd2dbd
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.