Buckets:

mishig's picture
|
download
raw
23.6 kB
# Bria Fibo 2.0
Fibo 2.0, [Bria](https://huggingface.co/briaai) tarafından geliştirilen, yapılandırılmış JSON açıklamalarından görsel üreten 8,1B parametreli bir akış eşleştirme (flow-matching) transformer'dır. Metin kodlayıcısı [Qwen3-VL](https://huggingface.co/Qwen/Qwen3-VL-4B-Instruct)'dir: bir Perceiver, Qwen3-VL'nin gizli durumlarını özet (gist) jetonlarına sıkıştırır ve bu jetonlar görsel jetonlarıyla tek bir akışta birleşir; transformer'ın beş bloğu da kapılı çapraz dikkat (gated cross-attention) yoluyla Qwen3-VL'yi doğrudan okur.
İki kontrol noktası vardır:
- [`briaai/Fibo-2.0-dev`](https://huggingface.co/briaai/Fibo-2.0-dev), metinden görüntüye dönüştürme ve düzenleme için sınıflandırıcı-ücretsiz yönlendirmeye sahip tam model. Hattın varsayılanları, yönlendirme 5 ile 30 adım, bu kontrol noktası içindir.
- [`briaai/Fibo-2.0-edit-turbo`](https://huggingface.co/briaai/Fibo-2.0-edit-turbo), yönlendirme olmadan 4 adımda düzenleme için damıtılmış (`guidance_scale=1.0`).
Guidance açıkken, varsayılan negatif prompt, modelin eğitildiği null caption'dır: tüm değerleri boş bırakılmış yapılandırılmış caption.
## Üretiliyor
Fibo 2.0, yapılandırılmış JSON açıklamaları üzerinde eğitilmiştir ve serbest biçimli metinlerle iyi çalışmaz. Açıklamayı bir JSON dizgesi olarak iletin:
```py
import json
import torch
from diffusers import BriaFibo2Pipeline
pipe = BriaFibo2Pipeline.from_pretrained("briaai/Fibo-2.0-dev", dtype=torch.bfloat16).to("cuda")
caption = {
"short_description": "A red vintage bicycle leaning against a whitewashed wall on a narrow Mediterranean street.",
"objects": [
{
"description": "A red vintage bicycle with a wicker basket of lemons on its handlebars.",
"location": "center",
"relative_size": "large within frame",
}
],
"background_setting": "A whitewashed wall with a blue wooden door and potted red geraniums.",
"lighting": {"conditions": "bright morning sun", "direction": "from the right", "shadows": "long and crisp"},
"aesthetics": {"composition": "centered", "color_scheme": "red, white and blue", "mood_atmosphere": "calm"},
"photographic_characteristics": {"depth_of_field": "deep", "focus": "sharp on the bicycle", "camera_angle": "eye level"},
"style_medium": "photograph",
"context": "A travel photograph.",
"artistic_style": "realistic",
}
image = pipe(json.dumps(caption)).images[0]
image.save("bicycle.png")
```
Pipeline, eğitimde yapıldığı gibi başlığı temizler: boş değerleri ve hiçbir eğitim başlığında bulunmayan `aesthetic_score` ile `preference_score` alanlarını atar ve başlığı kompakt biçimde seri hale getirir. İki kısa form da eğitildi ve olduğu gibi korunur:
```py
# The caption's short description alone, as plain text
image = pipe("A red vintage bicycle leaning against a whitewashed wall on a narrow Mediterranean street.").images[0]
# Exactly a "short_description" and a "text_render" list. The list is kept even when it's empty, to say the image
# has no text
caption = {"short_description": "A bakery storefront at dawn with a painted sign.", "text_render": [{"text": "FRESH BREAD"}]}
image = pipe(json.dumps(caption)).images[0]
```
Serbest biçimli metni yapılandırılmış bir başlığa dönüştürmek için [Bria Fibo](https://huggingface.co/briaai/FIBO) sayfasındaki prompt-to-JSON modellerine bakın.
## Düzenleme
Aynı boru hattı görüntüleri düzenler. Görüntüyü `image` olarak ve düzenleme talimatını istem olarak iletin:
```py
import torch
from diffusers import BriaFibo2Pipeline
from diffusers.utils import load_image
pipe = BriaFibo2Pipeline.from_pretrained("briaai/Fibo-2.0-dev", dtype=torch.bfloat16).to("cuda")
image = load_image(
"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/yarn-art-pikachu.png"
)
edited = pipe("Make the background a snowy forest", image=image).images[0]
edited.save("pikachu_snow.png")
```
Daha hızlı düzenlemeler için turbo checkpoint'ini yükleyin ve guidance'ı kapatın:
```py
import torch
from diffusers import BriaFibo2Pipeline
from diffusers.utils import load_image
pipe = BriaFibo2Pipeline.from_pretrained("briaai/Fibo-2.0-edit-turbo", dtype=torch.bfloat16).to("cuda")
image = load_image(
"https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/yarn-art-pikachu.png"
)
edited = pipe("Make the background a snowy forest", image=image, num_inference_steps=4, guidance_scale=1.0).images[0]
edited.save("pikachu_snow.png")
```
Aşağıdaki örnekler, `pipe` ve `image` ile devam eder. Turbo checkpoint ile her çağrıya `num_inference_steps=4` ve `guidance_scale=1.0` parametrelerini iletin.
### Düzenleme istemi
İstem, Fibo 2.0'un düzenlemek için eğitildiği biçimlerden herhangi birinde, bir `"edit_instruction"` anahtarı ve sonucun açıklaması içeren bir JSON nesnesi de olabilir. Hattı, Fibo 2.0'un düzenlemek için eğitildiği isteme dönüştürür.
Tam bir açıklama: `"edit_instruction"` anahtarının yanı sıra, Bria'nın prompt-to-JSON modellerinin düzenlemeler için yazdığı anahtarlar. İş akışı, eğitim sırasında her açıklamadan kaldırılan boş değerleri ile `aesthetic_score` ve `preference_score` alanlarını atar.
```py
import json
prompt = {
"short_description": "A crocheted yellow Pikachu doll sitting in a snowy pine forest.",
"objects": [{"description": "A crocheted yellow Pikachu doll with red cheeks.", "location": "center"}],
"background_setting": "A snowy pine forest with falling snow.",
"edit_instruction": "Make the background a snowy forest",
}
edited = pipe(json.dumps(prompt), image=image).images[0]
```
Kısa bir açıklama: `"structured_caption"` anahtarı içindeki bir dize.
```py
prompt = {
"structured_caption": "A crocheted yellow Pikachu doll sitting in a snowy pine forest.",
"edit_instruction": "Make the background a snowy forest",
}
edited = pipe(json.dumps(prompt), image=image).images[0]
```
Kısa bir açıklama ve metni: tam olarak bir `"short_description"` ve bir `"text_render"` listesi. Liste boş olsa bile korunur; bu, Fibo 2.0'a sonucun metin içermediğini bildirir. Bir `"structured_caption"` anahtarı bu formu veya tam bir altyazıyı da barındırabilir.
```py
prompt = {
"short_description": "A crocheted yellow Pikachu doll holding a small wooden sign.",
"text_render": [{"text": "HELLO"}],
"edit_instruction": "Give the doll a small wooden sign that reads HELLO",
}
edited = pipe(json.dumps(prompt), image=image).images[0]
```
### Birkaç görsel
En fazla 5 görüntü birlikte düzenlenebilir; örneğin bir görüntüdeki nesne diğerine yerleştirilebilir. Talimat, bunlara sırasıyla `<image_1>`, `<image_2>` ve benzeri şekilde atıfta bulunur.
```py
cat = load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/cat.png")
edited = pipe("Put the cat from <image_2> next to the doll in <image_1>", image=[image, cat]).images[0]
```
### Çıkış boyutu
`height` ve `width` verilmediği sürece, sonuç, ilk görüntünün en-boy oranı için Fibo 2.0'ın eğitimde kullandığı boyutu, yaklaşık bir megapikseli alır. Tek bir görüntü, sonucun boyutuna kırpılır. Birden fazla görüntü, her biri kendi en-boy oranı için eğitim boyutuna kırpılır.
```py
edited = pipe("Make the background a snowy forest", image=image, width=1424, height=800).images[0]
```
### Maskeli düzenlemeler
`mask`, tek bir görüntünün yeniden oluşturulacak bölgesini, görüntünün boyutunda siyah zemin üzerine beyaz olarak işaretler. Fibo 2.0, o bölge gri tonuna çevrilmiş görüntülerle düzenlemeler üzerinde eğitilmiştir ve pipeline, görüntü kodlanmadan önce aynı şekilde gri tonuna çevirir: 128'de ikili hale getirilen maske üzerinden düz (128, 128, 128) gri.
```py
from PIL import Image, ImageDraw
mask = Image.new("L", image.size, 0)
ImageDraw.Draw(mask).rectangle((image.width // 2, 0, image.width, image.height // 2), fill=255)
edited = pipe("Add a red balloon floating in the sky", image=image, mask=mask).images[0]
```
## Görsellerdeki metin
Başlık, `text_render` girdilerinde metin istediğinde, Fibo 2.0, Qwen3-VL her metni kendi başına çizilmiş olarak gördüğünde onu genellikle daha iyi işler. İş akışı, eğitimde yapıldığı gibi bu görselleri varsayılan olarak çizer ve bunlar kapatılabilir. Yukarıdaki fırın gibi metin içeren bir başlık için:
```py
prompt = json.dumps(caption)
image = pipe(prompt, render_text_images=False).images[0]
```
Eğitim, Fibo 2.0'a bazı metin içeren açıklamalar için bu görselleri gösterirken diğerleri için göstermedi, bu nedenle her iki durumda da çalışır.
- `text` içeren her `text_render` girdisine bir görüntü atanır: metin tek satırda, beyaz zemin üzerinde siyah, Pillow'un yerleşik fontuyla 20 punto boyutunda. 256 karakterden uzun bir metin, 256 karakterlik satırlara bölünür.
- Yazı tipinde bulunmayan karakterler, bunlara sahip olan `fonts` listesinin ilk öğesiyle çizilir. Eğitimde Aileron, ardından DejaVu Sans kullanılmış olup bunlar [`briaai/Fibo-2.0-dev`](https://huggingface.co/briaai/Fibo-2.0-dev) deposundaki `fonts` klasöründe yer alır. `fonts` olmadan bu tür karakterler, Pillow'un yerleşik yazı tipi tarafından nasıl çiziliyorsa öyle çizilir ve pipeline bir uyarı verir.
- Pipeline, her girdiyi görseli için `image_tokens` alanıyla işaretler ve Qwen3-VL, düzenlenecek görsellerden sonra görselleri görür.
- Bir üretim, gürültü seviyesi `pipe.text_images_max_noise_level` (0.9) değerinin üzerindeyken ilk adımlarını, görseller olmadan başlık üzerinde çalıştırır. Bir düzenleme ise her adımda onları kullanır.
- Metin içermeyen bir başlık, tıpkı eğitim sırasında olduğu gibi kısa bir açıklama da görsel almaz.
Eğitimde kullanılan fontlarla çizmek için:
```py
from huggingface_hub import hf_hub_download
fonts = [
hf_hub_download("briaai/Fibo-2.0-dev", name, subfolder="fonts")
for name in ("Aileron-Regular.otf", "DejaVuSans.ttf")
]
image = pipe(prompt, fonts=fonts).images[0]
```
Görselleri kendiniz çizecekseniz, bunları `text_images` olarak, tek bir istem için sırasıyla, `text` içeren her `text_render` girdisi için birer adet olarak iletin. Bunlar, hattın kendi görsellerine göre önceliklidir. Eğitimden farklı şekilde çizilen görseller dağıtım dışıdır.
## Dikkat arka uçları
Transformer, diffusers'in herhangi bir [dikkat (attention) arka uçlarında](../../optimization/attention_backends) çalışır; örneğin H100 gibi Hopper GPU'larında FlashAttention-3:
```py
pipe.transformer.set_attention_backend("_flash_3_varlen_hub")
```
`_flash_3_hub` tek bir istek için de çalışır ancak maskeler kabul etmediğinden, farklı uzunluklarda bir istek grubunu çalıştıramaz (aşağıya bakın).
## Toplu İşleme
Tek bir çağrıda birden fazla prompt üretilebilir. Farklı uzunluklardaki promptlar doldurulur (padding) ve bu doldurma, her dikkat katmanında maskeleme ile dışlanır; bu nedenle böyle bir grup, maskeyi dikkate alan bir dikkat arka ucuna ihtiyaç duyar: varsayılan olan veya `flash_varlen` gibi bir varlen arka ucu. float32'de, bir grup ayrı çağrıların görüntülerini yeniden üretir; bfloat16'da ise dikkat çekirdekleri doldurulmuş ve doldurulmamış girdiler arasında farklılık gösterdiğinden, gruplanmış görüntüler ayrıntılı düzeyde tekil çağrılardan farklılık gösterebilir.
## BriaFibo2Pipeline[[diffusers.BriaFibo2Pipeline]]
#### diffusers.BriaFibo2Pipeline[[diffusers.BriaFibo2Pipeline]]
```python
diffusers.BriaFibo2Pipeline(transformer: BriaFibo2Transformer2DModel, scheduler: FlowMatchEulerDiscreteScheduler, vae: AutoencoderKLFlux2, text_encoder: Qwen3VLForConditionalGeneration, processor: Qwen3VLProcessor)
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/bria_fibo2/pipeline_bria_fibo2.py#L171)
**Parametreler:**
transformer ([BriaFibo2Transformer2DModel](/docs/diffusers/main/tr/api/models/transformer_bria_fibo2#diffusers.BriaFibo2Transformer2DModel)) : Görüntü latentlerini gürültüden arındıran transformer.
scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/tr/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : `transformer` ile birlikte latentleri gürültüden arındırmak için kullanılan zamanlayıcı.
vae (`AutoencoderKLFlux2`) : Görüntüleri latentlere ve geriye eşleyen varyasyonel oto-kodlayıcı.
text_encoder (`Qwen3VLForConditionalGeneration`) : Qwen3-VL. Gizli durumları, transformer'ı koşullandırır.
processor (`Qwen3VLProcessor`) : İstem ve düzenlenecek görüntüleri Qwen3-VL girdilerine dönüştürür.
Fibo 2.0 ile metinden görüntüye üretim ve görüntü düzenleme için Pipeline.
#### __call__[[diffusers.BriaFibo2Pipeline.__call__]]
```python
__call__(prompt: str | list[str] | None = None, image: PIL.Image.Image | list[PIL.Image.Image] | None = None, mask: PIL.Image.Image | None = None, text_images: list[PIL.Image.Image] | None = None, render_text_images: bool = True, fonts: list[str] | None = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 30, guidance_scale: float = 5.0, negative_prompt: str | list[str] | None = None, num_images_per_prompt: int = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_embeds_mask: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds_mask: typing.Optional[torch.Tensor] = None, output_type: str = 'pil', return_dict: bool = True, callback_on_step_end: typing.Optional[typing.Callable[[int, int, dict], NoneType]] = None, callback_on_step_end_tensor_inputs: list = ['latents'])
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/bria_fibo2/pipeline_bria_fibo2.py#L571)
**Parametreler:**
prompt (`str` veya `list[str]`, *isteğe bağlı*) : Görsel üretimi yönlendirmek için istem, genellikle yapılandırılmış bir JSON istemi; Fibo 2.0'un eğitimde kullandığı temizlenmiş açıklamalar gibi temizlenir: boş değerler ile `aesthetic_score` ve `preference_score` alanları atılır ve içerik sıkı biçimde seri hale getirilir. `image` ile birlikte, düzenleme talimatı veya bir `"edit_instruction"` anahtarı ile sonucun açıklamasını içeren bir JSON nesnesi: diğer anahtarları veya açıklamayı ya da kısa bir betimlemeyi içeren bir `"structured_caption"` anahtarı.
image (`PIL.Image.Image` veya `list[PIL.Image.Image]`, *isteğe bağlı*) : Düzenlenecek görüntü veya talimatın `<image_1>`, `<image_2>` vb. olarak atıfta bulunabileceği birlikte düzenlenecek en fazla 5 görüntü. `image` verilmediğinde, pipeline prompt'tan bir görüntü üretir.
mask (`PIL.Image.Image`, *isteğe bağlı*) : Tek bir görüntü düzenlenirken, `image` içinde yeniden oluşturulacak bölge; siyah zemin üzerinde beyaz. Eğitimde olduğu gibi, görüntü kodlanmadan önce, 128'de ikili hale getirilen maske aracılığıyla bölge gri tonlara çevrilir.
text_images (`list[PIL.Image.Image]`, *isteğe bağlı*) : Altyazının istediği metnin görüntüleri, `text` içeren her `text_render` girdisi için bir adet, sırasıyla: her girdinin metni, `render_text_images`'in çizdiği gibi kendi başına çizilir. Qwen3-VL bunları istemle birlikte görür; her biri altyazı girdisinde işaretlenir ve bu da Fibo 2.0'ın metni render etmesine yardımcı olur. `prompt`'un tek bir JSON altyazısı olarak verilmesini gerektirir ve `render_text_images`'e öncelik tanır. Bir üretim, gürültü seviyesi `text_images_max_noise_level` (0.9) üzerindeyken ilk adımlarını bunlar olmadan çalıştırır; bir düzenleme ise bunları her adımda kullanır.
render_text_images (`bool`, *isteğe bağlı*, varsayılan `True`) : Her açıklamanın `text_images` değerlerinin, Fibo 2.0'ın eğitim sırasında çizdiği şekilde çizilip çizilmeyeceğini belirtir: her metin tek satırda, beyaz zemin üzerine siyah, Pillow'un yerleşik fontunda 20 boyutunda ve bu fontun eksik karakterleri, bunlara sahip olan `fonts` listesinin ilkinde bulunur. Eğitimde olduğu gibi, metin içermeyen bir açıklama ve JSON açıklaması olmayan bir istem (örneğin kısa bir açıklama) görsel almaz.
fonts (`list[str]`, *isteğe bağlı*) : `text_images` içindeki, Pillow'un yerleşik fontunda bulunmayan karakterlerin çizileceği fontların sırasıyla yolları. Eğitim sırasında bu karakterler, `briaai/Fibo-2.0-dev` deposundaki `fonts` klasöründe yer alan Aileron ve ardından DejaVu Sans fontlarıyla çizildi. Bu fontlar sağlanmazsa, söz konusu karakterler Pillow'un yerleşik fontunun çizdiği şekilde görüntülenir.
height (`int`, *isteğe bağlı*) : Üretilen görüntünün piksel cinsinden yüksekliği. 16'ya bölünebilir olmalıdır. Varsayılan değer 1024'tür; düzenleme sırasında ise Fibo 2.0'ın ilk görüntünün en-boy oranı için eğitim gördüğü boyuta, yaklaşık bir megapiksele ayarlanır.
width (`int`, *isteğe bağlı*) : Üretilen görüntünün piksel cinsinden genişliği. 16'ya bölünebilir olmalıdır. Varsayılan değeri `height` ile aynıdır.
num_inference_steps (`int`, *isteğe bağlı*, varsayılan 30) : Gürültü azaltma adım sayısı.
guidance_scale (`float`, *isteğe bağlı*, varsayılan 5.0) : Classifier-free guidance ölçeği. 1'den büyük değerler, her adımda negatif promptu ikinci bir geçiş olarak çalıştırır ve 1.0 guidance'ı kapatır.
negative_prompt (`str` veya `list[str]`, *isteğe bağlı*) : Rehberlik açıkken uzak durulacak istem. Varsayılan olarak, Fibo 2.0'un eğitildiği boş başlık kullanılır: tüm değerleri boş olan yapılandırılmış başlık.
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ı*) : Deterministik üretim için başlangıç gürültüsünü çeken üreteç(ler).
latents (`torch.Tensor`, *isteğe bağlı*) : `(batch_size, 32, height // 8, width // 8)` biçiminde önceden oluşturulmuş başlangıç gürültüsü.
prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : `encode_prompt` tarafından önceden hesaplanmış metin gömümlemeleri, `prompt` yerine kullanılır.
prompt_embeds_mask (`torch.Tensor`, *isteğe bağlı*) : `prompt_embeds` ile birlikte `encode_prompt` tarafından döndürülen maske. Dolgu (padding) yapıldığında gereklidir.
negative_prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : `negative_prompt` yerine kullanılan, negatif prompt'un önceden hesaplanmış metin gömme değerleri.
negative_prompt_embeds_mask (`torch.Tensor`, *isteğe bağlı*) : `negative_prompt_embeds` ile birlikte `encode_prompt` tarafından döndürülen maske. Dolgu (padding) yapıldığında gereklidir.
output_type (`str`, *isteğe bağlı*, varsayılan `"pil"`) : Çıktı biçimi: `"pil"`, `"np"`, `"pt"` veya `"latent"`.
return_dict (`bool`, *isteğe bağlı*, varsayılan `True`) : Düz bir tuple yerine `BriaFibo2PipelineOutput` döndürülüp döndürülmemesi.
callback_on_step_end (`Callable`, *isteğe bağlı*) : `callback_on_step_end(self, step, timestep, callback_kwargs)` olarak her gürültü azaltma adımının sonunda çağrılan bir işlev.
callback_on_step_end_tensor_inputs (`list[str]`, *isteğe bağlı*, varsayılan `["latents"]`) : `callback_kwargs` içinde `callback_on_step_end`'e geçirilen tensörler.
**Dönüş:** `BriaFibo2PipelineOutput` veya `tuple`
oluşturulan görüntüler.
Üretim için pipeline çağrıldığında tetiklenen işlev.
Örnekler:
```py
>>> import json
>>> import torch
>>> from diffusers import BriaFibo2Pipeline
>>> from diffusers.utils import load_image
>>> # Fibo 2.0 reads structured JSON captions, serialized compactly the way it was trained
>>> caption = {
... "short_description": "A red bicycle leaning against a white brick wall on a sunny morning.",
... "objects": [{"description": "a red city bicycle with a wicker basket", "location": "center"}],
... "background_setting": "a white brick wall with a green door",
... "lighting": {"conditions": "bright morning sun", "direction": "from the right"},
... "style_medium": "photograph",
... }
>>> prompt = json.dumps(caption, separators=(",", ":"), ensure_ascii=False)
>>> # 30 steps with guidance 5, the defaults
>>> pipe = BriaFibo2Pipeline.from_pretrained("briaai/Fibo-2.0-dev", dtype=torch.bfloat16).to("cuda")
>>> image = pipe(prompt).images[0]
>>> image.save("fibo2.png")
>>> # editing: pass the image, and the instruction as the prompt
>>> image = load_image(
... "https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/yarn-art-pikachu.png"
... )
>>> edited = pipe("Make the background a snowy forest", image=image).images[0]
>>> edited.save("fibo2_edit.png")
```
#### encode_prompt[[diffusers.BriaFibo2Pipeline.encode_prompt]]
```python
encode_prompt(prompt: str | list[str], image: list[PIL.Image.Image] | None = None, device: typing.Optional[torch.device] = None, num_images_per_prompt: int = 1, prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_embeds_mask: typing.Optional[torch.Tensor] = None, text_images: list[PIL.Image.Image] | list[list[PIL.Image.Image]] | None = None)
```
[Kaynak](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/bria_fibo2/pipeline_bria_fibo2.py#L351)
**Parametreler:**
prompt (`str` veya `list[str]`) : Kodlanacak istem veya istemler. `image` ile birlikte, her istem bir düzenleme talimatıdır veya bir `"edit_instruction"` anahtarı ve sonucun başlığı içeren bir JSON nesnesidir: diğer anahtarları veya başlığı ya da kısa bir açıklamayı içeren bir `"structured_caption"` anahtarı. Bir üretim istemi, verildiği gibi kodlanır: `__call__` önce Fibo 2.0'ın eğitildiği biçimde bir JSON başlığı yerleştirir.
image (`list[PIL.Image.Image]`, *isteğe bağlı*) : Düzenlenecek görüntüler, Qwen3-VL'nin onları gördüğü haliyle. Her istem hepsini düzenler.
device (`torch.device`, *isteğe bağlı*) : Gömme (embeddings) verilerinin yerleştirileceği cihaz.
num_images_per_prompt (`int`, varsayılan 1) : Her istem için oluşturulacak görsel sayısı.
prompt_embeds (`torch.Tensor`, *isteğe bağlı*) : `prompt` yerine kullanılan, `(batch_size, 6, text_len, 7680)` biçiminde önceden hesaplanmış metin gömme değerleri.
prompt_embeds_mask (`torch.Tensor`, *isteğe bağlı*) : `prompt_embeds` içindeki gerçek tokenların Bool maskesi, şekli `(batch_size, text_len)`.
text_images (`list[PIL.Image.Image]` veya `list[list[PIL.Image.Image]]`, *isteğe bağlı*) : Başlığın metnine ait görüntüler, `text` içeren her `text_render` girdisi için sırasıyla birer adet veya her istem için bunların listesi. Her girdi, kendi görüntüsünün görme işaretçisini alır ve Qwen3-VL, düzenlenecek görüntülerden sonra görüntüleri görür.
**Dönüş:**
Metin gömlemleri ve maskeleri, ya da prompt dolgu yapılmadıysa `None`.

Xet Storage Details

Size:
23.6 kB
·
Xet hash:
5b14e667dca18ef62bd51464b613ddb90fb50c4365bcce187b268f851654f0fe

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.