Buckets:
| # Temel performans | |
| Diffusion, hesaplama açısından yoğun bir rastgele süreçtir. İstenen çıktıyı elde etmeden önce [DiffusionPipeline](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline)'i birkaç kez çalıştırmanız gerekebilir. Bu nedenle daha hızlı iterasyon yapabilmek için üretim hızını ve bellek kullanımını dikkatli bir şekilde dengelemek önemlidir, | |
| Bu kılavuz, [DiffusionPipeline](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline) kullanımı için bazı temel performans ipuçları önerir. Daha ayrıntılı performans kılavuzları için [Accelerate inference](./optimization/fp16) veya [Reduce memory usage](./optimization/memory) gibi Çıkarım Optimizasyonu bölümü belgelerine başvurun. | |
| ## Bellek kullanımı | |
| Kullanılan bellek miktarının azaltılması, dolaylı olarak üretimi hızlandırır ve bir modelin cihazda sığmasına yardımcı olabilir. | |
| [enable_model_cpu_offload()](/docs/diffusers/main/tr/api/pipelines/overview#diffusers.DiffusionPipeline.enable_model_cpu_offload) yöntemi, GPU belleği tasarruf etmek için model kullanılmadığında onu CPU'ya taşır. | |
| ```py | |
| import torch | |
| from diffusers import DiffusionPipeline | |
| pipeline = DiffusionPipeline.from_pretrained( | |
| "stabilityai/stable-diffusion-xl-base-1.0", | |
| dtype=torch.bfloat16, | |
| device_map="cuda" # or "mps", "xpu", "cpu" | |
| ) | |
| pipeline.enable_model_cpu_offload() | |
| 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 | |
| """ | |
| pipeline(prompt).images[0] | |
| print(f"Max memory reserved: {torch.cuda.max_memory_allocated() / 1024**3:.2f} GB") | |
| ``` | |
| ## Çıkarım hızı | |
| Gürültü azaltma, difüzyon sırasında en fazla hesaplama gücü gerektiren süreçtir. Bu süreci optimize eden yöntemler, çıkarım hızını artırır. Hızlanma için aşağıdaki yöntemleri deneyin. | |
| - Hattın bir GPU üzerine yerleştirilmesi için `device_map="cuda"` ekleyin. Bir modelin GPU gibi bir hızlandırıcı üzerine yerleştirilmesi, hesaplamaları paralel olarak gerçekleştirdiği için hızı artırır. | |
| - Yarım hassasiyette çalıştırmak için `dtype=torch.bfloat16` değerini ayarlayın. Veri türü hassasiyetini azaltmak, daha düşük hassasiyette hesaplamaların daha kısa sürede yapılabilmesi nedeniyle hızı artırır. | |
| ```py | |
| import torch | |
| import time | |
| from diffusers import DiffusionPipeline, DPMSolverMultistepScheduler | |
| pipeline = DiffusionPipeline.from_pretrained( | |
| "stabilityai/stable-diffusion-xl-base-1.0", | |
| dtype=torch.bfloat16, | |
| device_map="cuda | |
| ) | |
| ``` | |
| - [DPMSolverMultistepScheduler](/docs/diffusers/main/tr/api/schedulers/multistep_dpm_solver#diffusers.DPMSolverMultistepScheduler) gibi yalnızca ~20-25 adım gerektiren daha hızlı bir zamanlayıcı kullanın. | |
| - `num_inference_steps` değerini daha düşük bir değere ayarlayın. Çıkarım adım sayısını azaltmak, genel hesaplama sayısını azaltır. Ancak bu, daha düşük üretim kalitesine yol açabilir. | |
| ```py | |
| pipeline.scheduler = DPMSolverMultistepScheduler.from_config(pipeline.scheduler.config) | |
| 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 | |
| """ | |
| start_time = time.perf_counter() | |
| image = pipeline(prompt).images[0] | |
| end_time = time.perf_counter() | |
| print(f"Image generation took {end_time - start_time:.3f} seconds") | |
| ``` | |
| ## Üretim kalitesi | |
| Birçok modern difüzyon modeli, kutudan çıktığı gibi yüksek kaliteli görüntüler sunar. Ancak, aşağıdakileri deneyerek üretim kalitesini hâlâ iyileştirebilirsiniz. | |
| - Daha ayrıntılı ve betimleyici bir istem (prompt) deneyin. Görsel ortamı, konuyu, stili ve estetiği gibi ayrıntıları dahil edin. Düşük kalite veya bulanık gibi kelimeler kullanarak modeli istenmeyen özelliklerden uzaklaştırmak için negatif bir istem de yardımcı olabilir. | |
| ```py | |
| import torch | |
| from diffusers import DiffusionPipeline | |
| pipeline = DiffusionPipeline.from_pretrained( | |
| "stabilityai/stable-diffusion-xl-base-1.0", | |
| dtype=torch.bfloat16, | |
| 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 | |
| """ | |
| negative_prompt = "low quality, blurry, ugly, poor details" | |
| pipeline(prompt, negative_prompt=negative_prompt).images[0] | |
| ``` | |
| Daha iyi istemler oluşturmaya ilişkin ayrıntılar için [Prompt techniques](./using-diffusers/weighted_prompts) belgesine göz atın. | |
| - Üretim hızından ödün vererek kaliteyi artıran [HeunDiscreteScheduler](/docs/diffusers/main/tr/api/schedulers/heun#diffusers.HeunDiscreteScheduler) veya [LMSDiscreteScheduler](/docs/diffusers/main/tr/api/schedulers/lms_discrete#diffusers.LMSDiscreteScheduler) gibi farklı bir zamanlayıcı deneyin. | |
| ```py | |
| import torch | |
| from diffusers import DiffusionPipeline, HeunDiscreteScheduler | |
| pipeline = DiffusionPipeline.from_pretrained( | |
| "stabilityai/stable-diffusion-xl-base-1.0", | |
| dtype=torch.bfloat16, | |
| device_map="cuda" # or "mps", "xpu", "cpu" | |
| ) | |
| pipeline.scheduler = HeunDiscreteScheduler.from_config(pipeline.scheduler.config) | |
| 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 | |
| """ | |
| negative_prompt = "low quality, blurry, ugly, poor details" | |
| pipeline(prompt, negative_prompt=negative_prompt).images[0] | |
| ``` | |
| ## Sonraki adımlar | |
| Diffusers, [group-offloading](./optimization/memory#group-offloading) ve [regional compilation](./optimization/fp16#regional-compilation) gibi daha gelişmiş ve güçlü optimizasyonlar sunar. Performansı nasıl en üst düzeye çıkaracağınızı öğrenmek için Inference Optimization bölümüne göz atın. | |
Xet Storage Details
- Size:
- 6.19 kB
- Xet hash:
- 1672d98be2489b44cdf1c91769541423dd9d4667a9e24bb73362b7338ffadadb
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.