Buckets:
Ovis-Image
Ovis-Image, yüksek kaliteli metin işleme için özellikle optimize edilmiş, sıkı hesaplama kısıtlamaları altında verimli bir şekilde çalışacak şekilde tasarlanmış 7B metinden görüntüye modelidir.
Alibaba Group'tan Guo-Hua Wang, Liangfu Cao, Tianyu Cui, Minghao Fu, Xiaohao Chen, Pengxin Zhan, Jianshan Zhao, Lan Li, Bowen Fu, Jiaqi Liu, Qing-Guo Chen tarafından hazırlanan Ovis-Image Technical Report.
Makalenin özeti şudur:
Ovis-Image'ı tanıtıyoruz; yüksek kaliteli metin işleme için özellikle optimize edilmiş, sıkı hesaplama kısıtları altında verimli bir şekilde çalışacak şekilde tasarlanmış 7B metinden görüntüye model. Önceki Ovis-U1 çerçevemizin üzerine inşa edilen Ovis-Image, difüzyon tabanlı bir görsel çözücü ile daha güçlü Ovis 2.5 çok modlu omurgasını birleştiriyor; büyük ölçekli ön eğitimi, dikkatle ayarlanmış eğitim sonrası iyileştirmelerle birleştiren metin odaklı bir eğitim hattı kullanıyor. Kompakt mimarisine rağmen Ovis-Image, Qwen-Image gibi çok daha büyük açık modellerle eşdeğer metin işleme performansı elde ediyor ve Seedream ile GPT4o gibi kapalı kaynak sistemlere yaklaşıyor. Önemli olan, modelin orta düzey belleğe sahip tek bir üst düzey GPU üzerinde dağıtılabilir kalması ve bu sayede sınır düzey metin işleme ile pratik dağıtım arasındaki farkı kapatmasıdır. Sonuçlarımız, aşırı boyutlu veya mülkiyetli modellere başvurmadan güvenilir iki dilli metin işleme elde etmek için güçlü bir çok modlu omurganın, dikkatle tasarlanmış metin odaklı bir eğitim tarifiyle birleştirilmesinin yeterli olduğunu göstermektedir.
Vurgular:
- 7B ölçeğinde güçlü metin renderleme: Ovis-Image, metin renderleme kalitesi Qwen-Image gibi çok daha büyük 20B sınıfı sistemlerle karşılaştırılabilir ve metin ağırlıklı senaryolarda GPT4o gibi önde gelen kapalı kaynak modellerle rekabet edebilirken, yaygın olarak erişilebilir donanımlarda çalışacak kadar küçük olan 7B metinden görüntüye bir modeldir.
- Metin ağırlıklı, yerleşime duyarlı istemlerde yüksek sadakat: Model, dil içeriği ile oluşturulan tipografi arasında sıkı bir hizalama gerektiren istemlerde (ör. afişler, pankartlar, logolar, UI maketleri, infografikler) üstün performans gösterir; çeşitli yazı tipleri, boyutlar ve en-boy oranlarında okunabilir, doğru yazılmış ve anlamsal olarak tutarlı metinler üretirken genel görsel kaliteden ödün vermez.
- Etkinlik ve dağıtılabilirlik: 7B parametre bütçesi ve sadeleştirilmiş mimarisi sayesinde Ovis-Image, orta düzey belleğe sahip tek bir üst düzey GPU üzerinde çalışabilir, düşük gecikmeli etkileşimli kullanımı destekler ve toplu üretim sunumuna ölçeklenebilir; böylece on milyarlarca parametreli modellerin uygulanabilir olmadığı uygulamalarda neredeyse sınır düzeyinde metin işleme yeteneğini sunar.
Bu pipeline, Ovis-Image Team tarafından katkıda bulunmuştur. Orijinal kod tabanı burada bulunabilir.
Mevcut modeller:
| Model | Önerilen dtype |
|---|---|
AIDC-AI/Ovis-Image-7B |
torch.bfloat16 |
Daha fazla bilgi için bu koleksiyona başvurun.
OvisImagePipeline[[diffusers.OvisImagePipeline]]
diffusers.OvisImagePipeline[[diffusers.OvisImagePipeline]]
diffusers.OvisImagePipeline(scheduler: FlowMatchEulerDiscreteScheduler, vae: AutoencoderKL, text_encoder: Qwen3Model, tokenizer: Qwen2Tokenizer, transformer: OvisImageTransformer2DModel)
Parametreler:
transformer (OvisImageTransformer2DModel) : Kodlanmış görüntü latentlerini gürültüden arındırmak için kullanılan Koşullu Transformer (MMDiT) mimarisi.
scheduler (FlowMatchEulerDiscreteScheduler) : Kodlanmış görüntü latentlerini gürültüden arındırmak için transformer ile birlikte kullanılacak bir zamanlayıcı.
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 (Qwen3Model) : Qwen3Model sınıfının metin kodlayıcısı.
tokenizer (Qwen2TokenizerFast) : Qwen2TokenizerFast sınıfının tokenizer'ı.
Metinden görüntüye üretim için Ovis-Image hattı.
Referans: https://github.com/AIDC-AI/Ovis-Image
call[[diffusers.OvisImagePipeline.call]]
__call__(prompt: str | list[str] = None, negative_prompt: str | list[str] = '', guidance_scale: float = 5.0, height: int | None = None, width: int | None = None, num_inference_steps: int = 50, sigmas: list[float] | None = None, num_images_per_prompt: int | None = 1, 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, output_type: str | None = 'pil', return_dict: bool = True, joint_attention_kwargs: dict[str, typing.Any] | None = None, callback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = None, callback_on_step_end_tensor_inputs: list = ['latents'], max_sequence_length: int = 256)
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 büyük olmadığında) yok sayılır.
guidance_scale (float, isteğe bağlı, varsayılan 1.0) : guidance_scale > 1 olduğunda ve negative_prompt sağlandığında True, sınıflandırıcıdan bağımsız yönlendirme (yönlendirme ölçeği) etkinleştirilir.
height (int, isteğe bağlı, varsayılan olarak self.unet.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.unet.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ı) : set_timesteps metodunda sigmas argümanını destekleyen zamanlayıcılarla gürültü azaltma süreci için kullanılacak özel sigmalar. Tanımlanmamışsa, num_inference_steps geçirildiğinde varsayılan davranış kullanılacaktır.
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) 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.
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.flux.FluxPipelineOutput döndürülecek mi?
joint_attention_kwargs (dict, isteğe bağlı) : Belirtilirse, diffusers.models.attention_processor 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, optional) : The list of tensor inputs for the callback_on_step_end function. The tensors specified in the list will be passed as callback_kwargs argument. You will only be able to include variables listed in the ._callback_tensor_inputs attribute of your pipeline class.
max_sequence_length (int varsayılanı 512) : prompt ile kullanılacak maksimum dizi uzunluğu.
Dönüş: OvisImagePipelineOutput veya tuple
return_dict True ise OvisImagePipelineOutput, 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 OvisImagePipeline
>>> pipe = OvisImagePipeline.from_pretrained("AIDC-AI/Ovis-Image-7B", torch_dtype=torch.bfloat16)
>>> pipe.to("cuda")
>>> prompt = 'A creative 3D artistic render where the text "OVIS-IMAGE" is written in a bold, expressive handwritten brush style using thick, wet oil paint. The paint is a mix of vibrant rainbow colors (red, blue, yellow) swirling together like toothpaste or impasto art. You can see the ridges of the brush bristles and the glossy, wet texture of the paint. The background is a clean artist's canvas. Dynamic lighting creates soft shadows behind the floating paint strokes. Colorful, expressive, tactile texture, 4k detail.'
>>> image = pipe(prompt, negative_prompt="", num_inference_steps=50, guidance_scale=5.0).images[0]
>>> image.save("ovis_image.png")
encode_prompt[[diffusers.OvisImagePipeline.encode_prompt]]
encode_prompt(prompt: str | list[str], negative_prompt: str | list[str] | None = None, do_classifier_free_guidance: bool = True, device: typing.Optional[torch.device] = None, num_images_per_prompt: int = 1, max_sequence_length: int = 256, prompt_embeds: typing.Optional[torch.FloatTensor] = None, negative_prompt_embeds: typing.Optional[torch.FloatTensor] = 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. Yalnızca do_classifier_free_guidance True olduğunda kullanılır. Tanımlanmamışsa boş bir dize kullanılır.
do_classifier_free_guidance (bool, isteğe bağlı, varsayılan True) : Sınıflandırıcı-ücretsiz yönlendirme için negative_prompt'un da kodlanıp kodlanmayacağını belirtir.
device : (torch.device): torch cihazı
num_images_per_prompt (int) : her istem için oluşturulacak görsel sayısı
max_sequence_length (int, isteğe bağlı, varsayılan 256) : prompt için kullanılacak maksimum dizi uzunluğu.
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. Sağlanmazsa, negative_prompt üzerinden oluşturulurlar.
OvisImagePipelineOutput[[diffusers.pipelines.ovis_image.OvisImagePipelineOutput]]
diffusers.pipelines.ovis_image.OvisImagePipelineOutput[[diffusers.pipelines.ovis_image.OvisImagePipelineOutput]]
diffusers.pipelines.ovis_image.OvisImagePipelineOutput(images: list)
Parametreler:
images (list[PIL.Image.Image] veya np.ndarray) : Uzunluğu batch_size olan gürültüsü azaltılmış PIL görselleri listesi veya (batch_size, height, width, num_channels) biçiminde bir numpy dizisi. PIL görselleri veya numpy dizisi, difüzyon hattının gürültüsü azaltılmış görsellerini temsil eder.
Ovis-Image pipeline'leri için çıktı sınıfı.
Xet Storage Details
- Size:
- 14.8 kB
- Xet hash:
- 12846837dd62fe5f242ca8e7c5f6e7eb269b563619cc41e689152b789006515b
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.
