Buckets:
| # AuraFlow | |
| AuraFlow, [Stable Diffusion 3](../pipelines/stable_diffusion/stable_diffusion_3)'ten ilham alınmıştır ve Apache 2.0 lisansı ile gelen, bugüne kadarki en büyük metinden görüntüye üretim modelidir. Bu model, [GenEval](https://github.com/djghosh13/geneval) benchmark'ında son derece başarılı sonuçlar elde etmektedir. | |
| Fal ekibi tarafından geliştirilmiştir ve hakkında daha fazla ayrıntı [bu blog yazısında](https://blog.fal.ai/auraflow/) bulunabilir. | |
| > [!TIP] | |
| > AuraFlow, tüketici donanım cihazlarında çalıştırıldığında oldukça pahalıya mal olabilir. Ancak, daha hızlı ve bellek dostu bir şekilde çalıştırması için bir dizi optimizasyon uygulayabilirsiniz. Daha fazla ayrıntı için [bu bölümü](https://huggingface.co/blog/sd3#memory-optimizations-for-sd3) inceleyin. | |
| ## Kantizasyon | |
| Kantizasyon, model ağırlıklarını daha düşük hassasiyetli bir veri türünde saklayarak çok büyük modellerin bellek gereksinimlerini azaltmaya yardımcı olur. Ancak kantizasyonun video kalitesi üzerindeki etkisi, video modeline göre değişebilir. | |
| Desteklenen kuantizasyon arka uçları ve kullanım durumunu destekleyen bir kuantizasyon arka ucunu seçme hakkında daha fazla bilgi edinmek için [Quantization](../../quantization/overview) genel bakışına başvurun. Aşağıdaki örnek, bitsandbytes ile çıkarım için kuantize edilmiş bir [AuraFlowPipeline](/docs/diffusers/main/tr/api/pipelines/aura_flow#diffusers.AuraFlowPipeline) yüklemenin nasıl yapılacağını göstermektedir. | |
| ```py | |
| import torch | |
| from diffusers import BitsAndBytesConfig as DiffusersBitsAndBytesConfig, AuraFlowTransformer2DModel, AuraFlowPipeline | |
| from transformers import BitsAndBytesConfig as BitsAndBytesConfig, T5EncoderModel | |
| quant_config = BitsAndBytesConfig(load_in_8bit=True) | |
| text_encoder_8bit = T5EncoderModel.from_pretrained( | |
| "fal/AuraFlow", | |
| subfolder="text_encoder", | |
| quantization_config=quant_config, | |
| dtype=torch.float16, | |
| ) | |
| quant_config = DiffusersBitsAndBytesConfig(load_in_8bit=True) | |
| transformer_8bit = AuraFlowTransformer2DModel.from_pretrained( | |
| "fal/AuraFlow", | |
| subfolder="transformer", | |
| quantization_config=quant_config, | |
| dtype=torch.float16, | |
| ) | |
| pipeline = AuraFlowPipeline.from_pretrained( | |
| "fal/AuraFlow", | |
| text_encoder=text_encoder_8bit, | |
| transformer=transformer_8bit, | |
| dtype=torch.float16, | |
| device_map="balanced", | |
| ) | |
| prompt = "a tiny astronaut hatching from an egg on the moon" | |
| image = pipeline(prompt).images[0] | |
| image.save("auraflow.png") | |
| ``` | |
| [GGUF checkpoint](https://huggingface.co/docs/diffusers/quantization/gguf) dosyalarının yüklenmesi de desteklenir: | |
| ```py | |
| import torch | |
| from diffusers import ( | |
| AuraFlowPipeline, | |
| GGUFQuantizationConfig, | |
| AuraFlowTransformer2DModel, | |
| ) | |
| transformer = AuraFlowTransformer2DModel.from_single_file( | |
| "https://huggingface.co/city96/AuraFlow-v0.3-gguf/blob/main/aura_flow_0.3-Q2_K.gguf", | |
| quantization_config=GGUFQuantizationConfig(compute_dtype=torch.bfloat16), | |
| dtype=torch.bfloat16, | |
| ) | |
| pipeline = AuraFlowPipeline.from_pretrained( | |
| "fal/AuraFlow-v0.3", | |
| transformer=transformer, | |
| dtype=torch.bfloat16, | |
| ) | |
| prompt = "a cute pony in a field of flowers" | |
| image = pipeline(prompt).images[0] | |
| image.save("auraflow.png") | |
| ``` | |
| ## `torch.compile()` desteği | |
| AuraFlow, farklı çözünürlüklerde bile çıkarım gecikmesini hızlandırmak için `torch.compile()` ile derlenebilir. Öncelikle [buradaki](https://pytorch.org/) talimatları izleyerek PyTorch nightly sürümünü yükleyin. Aşağıdaki kod parçası, bunu etkinleştirmek için gereken değişiklikleri göstermektedir: | |
| ```diff | |
| + torch.fx.experimental._config.use_duck_shape = False | |
| + pipeline.transformer = torch.compile( | |
| pipeline.transformer, fullgraph=True, dynamic=True | |
| ) | |
| ``` | |
| `use_duck_shape`'in `False` olarak belirlenmesi, derleyicinin aynı olan giriş boyutlarını temsil etmek için aynı sembolik değişkeni kullanıp kullanmaması gerektiğini belirtir. Daha fazla ayrıntı için [bu yorumu](https://github.com/huggingface/diffusers/pull/11327#discussion_r2047659790) inceleyin. | |
| Bu, %100 (düşük çözünürlüklerde) ile %30 (1536x1536 çözünürlükte) arasında hız iyileştirmeleri sağlar. | |
| Yukarıdaki işlemin farklı çözünürlüklerde ([PR](https://github.com/huggingface/diffusers/pull/11297/)) çalışması için [AuraFlowTransformer2DModel](/docs/diffusers/main/tr/api/models/aura_flow_transformer2d#diffusers.AuraFlowTransformer2DModel) sınıfını yeniden yazmamıza yardımcı olan [AstraliteHeart](https://github.com/huggingface/diffusers/pull/11297/)’a teşekkürler. | |
| ## AuraFlowPipeline[[diffusers.AuraFlowPipeline]] | |
| #### diffusers.AuraFlowPipeline[[diffusers.AuraFlowPipeline]] | |
| ```python | |
| diffusers.AuraFlowPipeline(tokenizer: T5Tokenizer, text_encoder: UMT5EncoderModel, vae: AutoencoderKL, transformer: AuraFlowTransformer2DModel, scheduler: FlowMatchEulerDiscreteScheduler) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/aura_flow/pipeline_aura_flow.py#L123) | |
| **Parametreler:** | |
| tokenizer (`T5TokenizerFast`) : [T5Tokenizer](https://huggingface.co/docs/transformers/model_doc/t5#transformers.T5Tokenizer) sınıfının tokenizer'ı. | |
| text_encoder (`T5EncoderModel`) : Donmuş metin kodlayıcı. AuraFlow, [T5](https://huggingface.co/docs/transformers/model_doc/t5#transformers.T5EncoderModel)'i, özellikle de [EleutherAI/pile-t5-xl](https://huggingface.co/EleutherAI/pile-t5-xl) varyantını kullanır. | |
| vae ([AutoencoderKL](/docs/diffusers/main/tr/api/models/autoencoderkl#diffusers.AutoencoderKL)) : Görüntüleri gizil (latent) temsillere kodlamak ve bu temsillerden görüntülere çözmek için kullanılan Varyasyonel Oto-Kodlayıcı (VAE) Modeli. | |
| transformer ([AuraFlowTransformer2DModel](/docs/diffusers/main/tr/api/models/aura_flow_transformer2d#diffusers.AuraFlowTransformer2DModel)) : Kodlanmış görüntü latentlerini gürültüden arındırmak için kullanılan Koşullu Transformer (MMDiT ve DiT) mimarisi. | |
| scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/tr/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : Kodlanmış görüntü latentlerini gürültüden arındırmak için `transformer` ile birlikte kullanılacak bir zamanlayıcı. | |
| #### __call__[[diffusers.AuraFlowPipeline.__call__]] | |
| ```python | |
| __call__(prompt: str | list[str] = None, negative_prompt: str | list[str] = None, num_inference_steps: int = 50, sigmas: list = None, guidance_scale: float = 3.5, num_images_per_prompt: int | None = 1, height: int | None = 1024, width: int | None = 1024, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_attention_mask: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_attention_mask: typing.Optional[torch.Tensor] = None, max_sequence_length: int = 256, output_type: str | None = 'pil', return_dict: bool = True, attention_kwargs: dict[str, typing.Any] | None = None, callback_on_step_end: typing.Union[typing.Callable[[int, int], NoneType], diffusers.callbacks.PipelineCallback, diffusers.callbacks.MultiPipelineCallbacks, NoneType] = None, callback_on_step_end_tensor_inputs: list = ['latents']) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/aura_flow/pipeline_aura_flow.py#L428) | |
| **Parametreler:** | |
| prompt (`str` veya `list[str]`, *isteğe bağlı*) : Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmamışsa, bunun yerine `prompt_embeds` geçirilmelidir. | |
| negative_prompt (`str` veya `list[str]`, *isteğe bağlı*) : Görsel üretimi yönlendirmemek için kullanılan istem veya istemler. Tanımlanmazsa, bunun yerine `negative_prompt_embeds` parametresinin geçirilmesi gerekir. Yönlendirme kullanılmadığında (yani `guidance_scale` değeri `1`'den küçükse) yok sayılır. | |
| height (`int`, *isteğe bağlı*, varsayılan olarak self.transformer.config.sample_size * self.vae_scale_factor) : Üretilen görüntünün piksel cinsinden yüksekliği. En iyi sonuçlar için varsayılan olarak 1024 olarak ayarlanır. | |
| width (`int`, *isteğe bağlı*, varsayılan olarak self.transformer.config.sample_size * self.vae_scale_factor) : Üretilen görüntünün piksel cinsinden genişliği. En iyi sonuçlar için varsayılan olarak 1024 olarak ayarlanır. | |
| num_inference_steps (`int`, *isteğe bağlı*, varsayılan 50) : Gürültü azaltma adım sayısı. Daha fazla gürültü azaltma adımı genellikle daha yavaş çıkarım pahasına daha yüksek kaliteli bir görüntüye yol açar. | |
| sigmas (`list[float]`, *isteğe bağlı*) : Zamanlayıcının zaman adımı aralığı stratejisini geçersiz kılmak için kullanılan özel sigmalar. `sigmas` geçirilirse, `num_inference_steps` ve `timesteps` `None` olmalıdır. | |
| guidance_scale (`float`, *isteğe bağlı*, varsayılan 5.0) : [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598)'de tanımlandığı gibi yönlendirme ölçeği. `guidance_scale`, [Imagen Paper](https://huggingface.co/papers/2205.11487)'deki 2. denklemindeki `w` olarak tanımlanır. Yönlendirme ölçeği, `guidance_scale > 1` olarak ayarlanarak etkinleştirilir. Daha yüksek yönlendirme ölçeği, genellikle daha düşük görüntü kalitesi pahasına, `prompt` ile yakından ilişkili görüntülerin üretilmesini teşvik eder. | |
| num_images_per_prompt (`int`, *isteğe bağlı*, varsayılan 1) : Her istem için üretilecek görsel sayısı. | |
| generator (`torch.Generator` veya `list[torch.Generator]`, *isteğe bağlı*) : Üretimi deterministik hale getirmek için bir veya [torch üreteci(leri)](https://pytorch.org/docs/stable/generated/torch.Generator.html) listesi. | |
| latents (`torch.FloatTensor`, *isteğe bağlı*) : Görsel üretimi için girdi olarak kullanılacak, Gauss dağılımından örneklenmiş önceden oluşturulmuş gürültülü latensler. Farklı istemlerle aynı üretimi ayarlamak için kullanılabilir. Sağlanmazsa, sağlanan rastgele `generator` kullanılarak örneklemeye dayalı bir latens tensörü oluşturulur. | |
| prompt_embeds (`torch.FloatTensor`, *isteğe bağlı*) : Ön oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, metin gömme değerleri `prompt` girdi argümanından oluşturulur. | |
| prompt_attention_mask (`torch.Tensor`, *isteğe bağlı*) : Metin gömme (embedding) için önceden oluşturulmuş dikkat maskesi (attention mask). | |
| negative_prompt_embeds (`torch.FloatTensor`, *isteğe bağlı*) : Önceden oluşturulmuş negatif metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, negative_prompt_embeds, `negative_prompt` girdi argümanından oluşturulur. | |
| negative_prompt_attention_mask (`torch.Tensor`, *isteğe bağlı*) : Negatif metin gömme vektörleri için önceden oluşturulmuş dikkat maskesi. | |
| output_type (`str`, *isteğe bağlı*, varsayılan `"pil"`) : Üretilen görüntünün çıktı biçimi. [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` veya `np.array` arasında seçim yapın. | |
| return_dict (`bool`, *isteğe bağlı*, varsayılan `True`) : Düz bir tuple yerine `~pipelines.stable_diffusion_xl.StableDiffusionXLPipelineOutput` döndürülecek mi? | |
| attention_kwargs (`dict`, *isteğe bağlı*) : Belirtilirse, [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py) içinde `self.processor` altında tanımlanan `AttentionProcessor`'a iletilen bir kwargs sözlüğü. | |
| callback_on_step_end (`Callable`, *isteğe bağlı*) : Çıkarım sırasında her gürültü azaltma adımının sonunda çağrılan bir işlev. İşlev aşağıdaki argümanlarla çağrılır: `callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict)`. `callback_kwargs`, `callback_on_step_end_tensor_inputs` tarafından belirtilen tüm tensörlerin listesini içerir. | |
| callback_on_step_end_tensor_inputs (`list`, *isteğe bağlı*) : `callback_on_step_end` işlevi için girdi tensörlerinin listesi. Listede belirtilen tensörler, `callback_kwargs` argümanı olarak geçirilir. Yalnızca pipeline sınıfınızın `._callback_tensor_inputs` özniteliğinde listelenen değişkenleri dahil edebilirsiniz. | |
| max_sequence_length (`int` varsayılan olarak 256'dir) : `prompt` ile kullanılacak maksimum dizi uzunluğu. | |
| **Dönüş:** [ImagePipelineOutput](/docs/diffusers/main/tr/api/pipelines/consistency_models#diffusers.ImagePipelineOutput) veya `tuple` | |
| `return_dict` `True` ise [ImagePipelineOutput](/docs/diffusers/main/tr/api/pipelines/consistency_models#diffusers.ImagePipelineOutput) döndürülür, aksi halde ilk öğesi üretilen görüntülerin listesini içeren bir `tuple` döndürülür. | |
| Üretim için pipeline çağrıldığında tetiklenen işlev. | |
| Örnekler: | |
| ```py | |
| >>> import torch | |
| >>> from diffusers import AuraFlowPipeline | |
| >>> pipe = AuraFlowPipeline.from_pretrained("fal/AuraFlow", torch_dtype=torch.float16) | |
| >>> pipe = pipe.to("cuda") | |
| >>> prompt = "A cat holding a sign that says hello world" | |
| >>> image = pipe(prompt).images[0] | |
| >>> image.save("aura_flow.png") | |
| ``` | |
| #### encode_prompt[[diffusers.AuraFlowPipeline.encode_prompt]] | |
| ```python | |
| encode_prompt(prompt: str | list[str], negative_prompt: str | list[str] = None, do_classifier_free_guidance: bool = True, num_images_per_prompt: int = 1, device: typing.Optional[torch.device] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_attention_mask: typing.Optional[torch.Tensor] = None, negative_prompt_attention_mask: typing.Optional[torch.Tensor] = None, max_sequence_length: int = 256, lora_scale: float | None = None) | |
| ``` | |
| [Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/aura_flow/pipeline_aura_flow.py#L232) | |
| **Parametreler:** | |
| prompt (`str` veya `list[str]`, *isteğe bağlı*) : kodlanacak istem | |
| negative_prompt (`str` veya `list[str]`, *isteğe bağlı*) : Görsel üretimi yönlendirmemek için kullanılan istem. Tanımlanmadıysa bunun yerine `negative_prompt_embeds` parametresinin geçirilmesi gerekir. Yönlendirme kullanılmadığında (yani `guidance_scale` değeri `1`'den küçükse) yok sayılır. | |
| do_classifier_free_guidance (`bool`, *isteğe bağlı*, varsayılan `True`) : sınıflandırıcı serbest yönlendirmenin (classifier free guidance) kullanılıp kullanılmayacağı | |
| num_images_per_prompt (`int`, *isteğe bağlı*, varsayılan 1) : her istem için oluşturulacak görsel sayısı | |
| device : (`torch.device`, *isteğe bağlı*): Sonuç olarak elde edilen gömme vektörlerinin yerleştirileceği torch cihazı | |
| prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Ön oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, *ör.* istem ağırlıklandırması. Sağlanmazsa, metin gömme değerleri `prompt` girdi argümanından oluşturulur. | |
| prompt_attention_mask (`torch.Tensor`, *isteğe bağlı*) : Metin gömme (embedding) için önceden oluşturulmuş dikkat maskesi (attention mask). | |
| negative_prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : Önceden oluşturulmuş negatif metin gömme değerleri. | |
| negative_prompt_attention_mask (`torch.Tensor`, *isteğe bağlı*) : Negatif metin gömme vektörleri için önceden oluşturulmuş dikkat maskesi. | |
| max_sequence_length (`int`, varsayılan 256) : İstem için kullanılacak maksimum dizi uzunluğu. | |
| lora_scale (`float`, *isteğe bağlı*) : LoRA katmanları yüklendiyse, metin kodlayıcısının tüm LoRA katmanlarına uygulanacak bir lora ölçeği. | |
| İsteği metin kodlayıcı gizli durumlarına kodlar. | |
Xet Storage Details
- Size:
- 16 kB
- Xet hash:
- 0c1efc0da886d5965adfc41acb0a5ebdfcc1cae4432abcaf584305b897112d36
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.