Buckets:
Apache Lisansı, 2.0 Sürümü ("Lisans") altında lisanslanmıştır;
bu dosyayı, Lisansa uygun olarak kullanabilirsiniz.
Lisansın bir kopyasını şu adresten edinebilirsiniz
http://www.apache.org/licenses/LICENSE-2.0
Uygulanabilir yasa gerektirmedikçe veya yazılı olarak anlaşılmadıkça, yazılım
Lisans kapsamında dağıtılan, "OLDUĞU GİBİ" esasına göre dağıtılır,
HİÇBİR TÜR AÇIK VEYA ZIMMİ GARANTİ VEYA ŞART İÇERMEZ.
İzinleri ve
Lisans kapsamındaki kısıtlamalar.
-->
CogView3Plus
Tsinghua University & ZhipuAI'den Wendi Zheng, Jiayan Teng, Zhuoyi Yang, Weihan Wang, Jidong Chen, Xiaotao Gu, Yuxiao Dong, Ming Ding, Jie Tang tarafından CogView3: Finer and Faster Text-to-Image Generation via Relay Diffusion
Makalenin özeti şudur:
Metinden görüntüye üretim sistemlerindeki son gelişmeler büyük ölçüde difüzyon modelleri tarafından yönlendirilmektedir. Ancak tek aşamalı metinden görüntüye difüzyon modelleri, hesaplama verimliliği ve görüntü detaylarının iyileştirilmesi açısından hâlâ zorluklarla karşı karşıyadır. Bu sorunu ele almak için, metinden görüntüye difüzyonun performansını artıran yenilikçi bir kademeli çerçeve olan CogView3'ü öneriyoruz. CogView3, metinden görüntüye üretim alanında röle difüzyonunu uygulayan ilk modeldir; görevi önce düşük çözünürlüklü görüntüler oluşturarak ve ardından röle tabanlı süper çözünürlük uygulayarak gerçekleştirir. Bu metodoloji yalnızca rekabetçi metinden görüntüye çıktıları üretmekle kalmaz, aynı zamanda hem eğitim hem de çıkarım maliyetlerini büyük ölçüde azaltır. Deneysel sonuçlarımız, CogView3'ün insan değerlendirmelerinde, mevcut en ileri düzey açık kaynak metinden görüntüye difüzyon modeli olan SDXL'i %77,0 oranında geride bıraktığını, tüm bunları yalnızca yaklaşık 1/2'si kadar çıkarım süresi gerektirerek başardığını göstermektedir. CogView3'ün damıtılmış varyantı, SDXL'in yalnızca 1/10'u kadar çıkarım süresi kullanarak benzer bir performans elde etmektedir.
Scheduler'lar kılavuzunu inceleyerek scheduler hızı ve kalitesi arasındaki ödünleşimi nasıl keşfedebileceğinizi öğrenin ve aynı bileşenleri birden fazla pipeline'a nasıl verimli bir şekilde yükleyebileceğinizi öğrenmek için pipeline'lar arasında bileşenleri yeniden kullanma bölümüne göz atın.
Bu pipeline zRzRzRzRzRzRzR tarafından katkı sağlanmıştır. Orijinal kod tabanı burada bulunabilir. Orijinal ağırlıklar hf.co/THUDM altında bulunabilir.
CogView3PlusPipeline[[diffusers.CogView3PlusPipeline]]
diffusers.CogView3PlusPipeline[[diffusers.CogView3PlusPipeline]]
diffusers.CogView3PlusPipeline(tokenizer: T5Tokenizer, text_encoder: T5EncoderModel, vae: AutoencoderKL, transformer: CogView3PlusTransformer2DModel, scheduler: diffusers.schedulers.scheduling_ddim_cogvideox.CogVideoXDDIMScheduler | diffusers.schedulers.scheduling_dpm_cogvideox.CogVideoXDPMScheduler)
Parametreler:
vae (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.
text_encoder (T5EncoderModel) : Donmuş metin kodlayıcı. CogView3Plus T5 kullanır; özellikle t5-v1_1-xxl varyantı.
tokenizer (T5Tokenizer) : T5Tokenizer sınıfının tokenizer'ı.
transformer (CogView3PlusTransformer2DModel) : Kodlanmış görüntü latentlerini gürültüden arındırmak için metin koşullu bir CogView3PlusTransformer2DModel.
scheduler (SchedulerMixin) : Kodlanmış görüntü latentlerini gürültüden arındırmak için transformer ile birlikte kullanılacak bir zamanlayıcı.
CogView3Plus kullanılarak metinden görüntüye üretim hattı.
Bu model DiffusionPipeline sınıfından devralır. Kütüphanenin tüm pipeline'lar için uyguladığı genel yöntemler (indirme veya kaydetme, belirli bir cihazda çalıştırma vb.) için üst sınıf belgelendirmesine bakın.
call[[diffusers.CogView3PlusPipeline.call]]
__call__(prompt: str | list[str] | None = None, negative_prompt: str | list[str] | None = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 50, timesteps: list[int] | None = None, guidance_scale: float = 5.0, num_images_per_prompt: int = 1, eta: float = 0.0, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.FloatTensor] = None, prompt_embeds: typing.Optional[torch.FloatTensor] = None, negative_prompt_embeds: typing.Optional[torch.FloatTensor] = None, original_size: tuple[int, int] | None = None, crops_coords_top_left: tuple = (0, 0), output_type: str = 'pil', return_dict: bool = True, 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'], max_sequence_length: int = 224)
Parametreler:
prompt (str veya list[str], isteğe bağlı) : Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysa prompt_embeds parametresinin geçirilmesi gerekir.
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. Verilmezse 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. Belirtilmezse 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.
timesteps (list[int], isteğe bağlı) : set_timesteps metodunda timesteps argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel zaman adımları. Tanımlanmamışsa, num_inference_steps geçirildiğinde varsayılan davranış kullanılacaktır. Azalan sırada olmalıdır.
guidance_scale (float, isteğe bağlı, varsayılan 5.0) : Classifier-Free Diffusion Guidance'de tanımlandığı üzere yönlendirme ölçeği. guidance_scale, Imagen Paper'daki 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 oluşturulacak görsel sayısı.
eta (float, isteğe bağlı, varsayılan 0.0) : DDIM makalesindeki eta (η) parametresine karşılık gelir. Yalnızca DDIMScheduler için geçerlidir ve diğer zamanlayıcılarda yok sayılır.
generator (torch.Generator veya list[torch.Generator], isteğe bağlı) : Üretimi deterministik hale getirmek için bir veya torch üreteci(leri) 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.
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.
original_size (tuple[int], isteğe bağlı, varsayılan (1024, 1024)) : original_size, target_size ile aynı değilse görüntü, küçültülmüş veya büyütülmüş gibi görünecektir. Belirtilmediği takdirde original_size varsayılan olarak (height, width) değerini alır. https://huggingface.co/papers/2307.01952 adresindeki makalenin 2.2 bölümünde açıklandığı üzere SDXL'in mikro-konumlama (micro-conditioning) bileşenidir.
crops_coords_top_left (tuple[int], isteğe bağlı, varsayılan (0, 0)) : crops_coords_top_left, crops_coords_top_left konumundan aşağıya doğru "kırpılmış" gibi görünen bir görüntü oluşturmak için kullanılabilir. Genellikle iyi merkezlenmiş, uygun görüntüler crops_coords_top_left değerini (0, 0) olarak ayarlayarak elde edilir. https://huggingface.co/papers/2307.01952 adresindeki 2.2 bölümünde açıklanan SDXL mikro-konumlama (micro-conditioning) bileşenidir.
output_type (str, isteğe bağlı, varsayılan "pil") : Üretilen görüntünün çıktı biçimi. PIL: 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?
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 224) : Kodlanmış istemdeki maksimum dizi uzunluğu. Diğer değerlere ayarlanabilir ancak daha kötü sonuçlara yol açabilir.
Dönüş: CogView3PipelineOutput veya tuple
return_dict True ise CogView3PipelineOutput, aksi halde tuple. Tuple döndürüldüğünde, ilk öğe üretilen görsellerin listesidir.
Üretim için pipeline çağrıldığında tetiklenen işlev.
Örnekler:
>>> import torch
>>> from diffusers import CogView3PlusPipeline
>>> pipe = CogView3PlusPipeline.from_pretrained("THUDM/CogView3-Plus-3B", torch_dtype=torch.bfloat16)
>>> pipe.to("cuda")
>>> prompt = "A photo of an astronaut riding a horse on mars"
>>> image = pipe(prompt).images[0]
>>> image.save("output.png")
encode_prompt[[diffusers.CogView3PlusPipeline.encode_prompt]]
encode_prompt(prompt: str | list[str], negative_prompt: str | list[str] | None = None, do_classifier_free_guidance: bool = True, num_images_per_prompt: int = 1, prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, max_sequence_length: int = 224, device: typing.Optional[torch.device] = None, dtype: typing.Optional[torch.dtype] = None)
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 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.
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şturulması gereken görsel sayısı. Sonuç 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.
negative_prompt_embeds (torch.Tensor, isteğe bağlı) : Ön 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.
max_sequence_length (int, varsayılan 224) : Kodlanmış istemdeki maksimum dizi uzunluğu. Diğer değerlere ayarlanabilir ancak daha kötü sonuçlara yol açabilir.
device : (torch.device, isteğe bağlı): torch cihazı
dtype : (torch.dtype, isteğe bağlı): torch dtype
İsteği metin kodlayıcı gizli durumlarına kodlar.
CogView3PipelineOutput[[diffusers.pipelines.cogview3.pipeline_output.CogView3PipelineOutput]]
diffusers.pipelines.cogview3.pipeline_output.CogView3PipelineOutput[[diffusers.pipelines.cogview3.pipeline_output.CogView3PipelineOutput]]
diffusers.pipelines.cogview3.pipeline_output.CogView3PipelineOutput(images: list[PIL.Image.Image] | numpy.ndarray)
Parametreler:
images (list[PIL.Image.Image] veya np.ndarray) : batch_size uzunluğunda gürültüsü azaltılmış PIL görselleri listesi veya (batch_size, height, width, num_channels) biçiminde numpy dizisi. PIL görselleri veya numpy dizisi, difüzyon hattının gürültüsü azaltılmış görsellerini temsil eder.
CogView3 pipeline'leri için çıktı sınıfı.
Xet Storage Details
- Size:
- 16.3 kB
- Xet hash:
- 065a43fbb9411dfd1fc32cc7db5d9945bef36f8bcefef27f5d46d87ba48ac52a
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.