Diffusers documentation

Krea 2

You are viewing main version, which requires installation from source. If you'd like regular pip install, checkout the latest stable version (v0.42.1).
Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Krea 2

Krea 2 (K2), gruplu sorgu dikkati (grouped-query attention) içeren tek akışlı bir MMDiT etrafında inşa edilmiş, akış eşleştirmeli (flow-matching) metinden görüntüye bir modeldir. Koşullandırmayı (conditioning) bir Qwen3-VL metin kodlayıcı sağlar: son gizli durum (hidden state) yerine, her token için on iki decoder katmanından gizli durumlar alınır ve bunlar, transformer içinde küçük bir metin füzyon aşamasıyla birleştirilir. Görüntüler, Qwen-Image VAE ile çözümlenir.

İki checkpoint yayınlanmıştır; aynı mimariyi paylaşır ancak farklı önerilen örnekleyici ayarlarına sahiptir:

  • Temel (orta eğitim) — sınıflandırıcıdan bağımsız yönlendirme ile tam örnekleyiciyi kullanın: num_inference_steps=28, guidance_scale=4.5.
  • TDM (damıtılmış) — az adımlı örneklemeye damıtılmış, num_inference_steps=8 ile ve yönlendirme devre dışı bırakılarak çalıştırılır (guidance_scale=0.0).

guidance_scale, Krea 2 sözleşmesini izler: hız, cond + guidance_scale * (cond - uncond) olarak hesaplanır ve guidance_scale > 0 olduğunda yönlendirme etkinleştirilir (bu, 1 + guidance_scale ölçeğine sahip standart CFG formülasyonuna eşittir).

Metinden görüntüye

import torch
from diffusers import Krea2Pipeline

# Load from a local directory produced by the Krea 2 conversion (no hub repo yet).
pipe = Krea2Pipeline.from_pretrained("krea/Krea-2-Raw", dtype=torch.bfloat16)
pipe.to("cuda")  # or "mps", "xpu", "cpu"

prompt = "a fox in the snow"
image = pipe(
    prompt,
    height=1024,
    width=1024,
    num_inference_steps=28,
    guidance_scale=4.5,
    generator=torch.Generator("cuda").manual_seed(0),
).images[0]
image.save("krea2.png")

Ayrıca Krea2 Turbo kullanımı için bir örnek sunuyoruz:

import torch
from diffusers import Krea2Pipeline

pipe = Krea2Pipeline.from_pretrained("krea/Krea-2-Turbo", dtype=torch.bfloat16)
pipe.to("cuda")  # or "mps", "xpu", "cpu"

image = pipe(
    "a fox in the snow",
    height=1024,
    width=1024,
    num_inference_steps=8,
    guidance_scale=0.0,
    generator=torch.Generator("cuda").manual_seed(0),
).images[0]
image.save("krea2_turbo.png")

Tek dosyalık denetim noktalarını yükleme

import torch
from diffusers import Krea2Pipeline, Krea2Transformer2DModel

transformer = Krea2Transformer2DModel.from_single_file(
    "https://huggingface.co/krea/Krea-2-Turbo/blob/main/turbo.safetensors", dtype=torch.bfloat16
)
pipe = Krea2Pipeline.from_pretrained("krea/Krea-2-Turbo", transformer=transformer, dtype=torch.bfloat16).to("cuda")

Krea2Pipeline

sınıf diffusers.Krea2Pipeline

< >

( scheduler: FlowMatchEulerDiscreteSchedulervae: AutoencoderKLQwenImagetext_encoder: Qwen3VLModeltokenizer: AutoTokenizertransformer: Krea2Transformer2DModeltext_encoder_select_layers: tuple[int, ...] | list[int] | None = Noneis_distilled: bool = Falsepatch_size: int = 2 )

Parametreler

  • scheduler (FlowMatchEulerDiscreteScheduler) — Euler akış eşleştirme zamanlayıcısı. Krea 2 sigma zamanlaması, çözünürlük farkında üstel zaman kaymasıdır; bu nedenle zamanlayıcı yapılandırmasının use_dynamic_shifting=True değerini Krea 2 kaydırma parametreleriyle (base_shift=0.5, max_shift=1.15, base_image_seq_len=256, max_image_seq_len=6400) birlikte ayarlaması beklenir.
  • vae (AutoencoderKLQwenImage) — Gizli temsilleri (latents) görüntülere çözmek için kullanılan Qwen-Image varyasyonel oto-kodlayıcı (f8, 16 gizli kanal).
  • text_encoder (PreTrainedModel) — Bir Qwen3-VL modeli (ör. Qwen/Qwen3-VL-4B-Instruct'in Qwen3VLModel'i). Pipeline, son gizli durum yerine birkaç decoder katmanından alınan gizli durum yığınınu tüketir.
  • tokenizer (AutoTokenizer) — Metin kodlayıcıyla eşleştirilen belirteç ayrıştırıcı.
  • transformer (Krea2Transformer2DModel) — Akış eşleştirme hızını tahmin eden Krea 2 tek akışlı MMDiT.
  • text_encoder_select_layers (tuple[int, ...], isteğe bağlı) — Metin kodlayıcısının hidden_states demetindeki (0, gömme çıktısıdır) durumları, transformer'ın metin koşullandırması olarak token başına yığılan indeksler. transformer.config.num_text_layers girişine sahip olmalıdır.
  • is_distilled (bool, isteğe bağlı, varsayılan False) — Transformer'ın az adımlı damıtılmış (TDM/turbo) kontrol noktası olup olmadığını belirtir. True ise sabit zaman adımı kayması mu=1.15 kullanılır; aksi halde mu görüntü çözünürlüğünden hesaplanır.
  • patch_size (int, isteğe bağlı, varsayılan 2) — Transformer'a girmeden önce latentlerin paketlendiği kare yamaların kenar uzunluğu. Etkin piksel-bağlama indirgeme çarpanı vae_scale_factor * patch_size'tür.

Metinden görüntüye üretim için Krea 2 hattı.

__call__

< >

( prompt: str | list[str] | None = Nonenegative_prompt: str | list[str] | None = Noneheight: int = 1024width: int = 1024num_inference_steps: int = 28sigmas: list[float] | None = Noneguidance_scale: float = 4.5num_images_per_prompt: int = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.Tensor] = Noneprompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_mask: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds: typing.Optional[torch.Tensor] = Nonenegative_prompt_embeds_mask: typing.Optional[torch.Tensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Truecallback_on_step_end: typing.Optional[typing.Callable[[int, int, dict], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']attention_kwargs: dict[str, typing.Any] | None = Nonemax_sequence_length: int = 512 ) → Krea2PipelineOutput or tuple

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 üretimini yönlendirmemesi istenen istem veya istemler. guidance_scale <= 0 olduğunda yok sayılır; yönlendirme etkin olduğunda varsayılan olarak boş bir istem kullanılır.
  • height (int, varsayılan 1024) — Oluşturulan görüntünün piksel cinsinden yüksekliği. Gerekirse 16'nın katına yuvarlanır.
  • width (int, varsayılan 1024) — Oluşturulan görüntünün piksel cinsinden genişliği. Gerekirse 16'nın katına yuvarlanır.
  • num_inference_steps (int, varsayılan 28) — Gürültü azaltma adım sayısı. Taban (midtrain) checkpoint için 28, az adımlı damıtılmış (TDM) checkpoint için 8 kullanın.
  • sigmas (list[float], isteğe bağlı) — Zamanlayıcı için özel sigmalar. Tanımlanmamışsa, varsayılan linspace(1.0, 1/num_inference_steps, num_inference_steps) ızgarası kullanılır (çözünürlük duyarlı kaydırma, zamanlayıcının içinde uygulanır).
  • guidance_scale (float, varsayılan 4.5) — Krea 2 sözleşmesine uygun olarak sınıflandırıcı-özgür yönlendirme ölçeği: hız, cond + guidance_scale * (cond - uncond) olarak hesaplanır ve guidance_scale > 0 olduğunda yönlendirme etkinleştirilir (bu, 1 + guidance_scale ölçeğine sahip standart CFG formülasyonuna eşittir). Devre dışı bırakmak için 0.0 olarak ayarlayın (ör. TDM kontrol noktası için).
  • num_images_per_prompt (int, varsayılan 1) — Her istem için oluşturulacak görsel sayısı.
  • generator (torch.Generator veya list[torch.Generator], isteğe bağlı) — Üretimi deterministik hale getirmek için bir veya daha fazla torch üreteci.
  • latents (torch.Tensor, isteğe bağlı) — Gaussian dağılımdan örneklenmiş, görüntü üretimi için girdi olarak kullanılacak, paketli formda (batch_size, image_seq_len, in_channels) önceden oluşturulmuş gürültülü latensler.
  • prompt_embeds (torch.Tensor, isteğe bağlı) — (batch_size, text_seq_len, num_text_layers, text_hidden_dim) biçiminde önceden oluşturulmuş metin gömme değerleri. Sağlanmazsa, gömme değerleri prompt üzerinden üretilir.
  • prompt_embeds_mask (torch.Tensor, isteğe bağlı) — prompt_embeds için Boole maskesi; prompt_embeds iletildiğinde zorunludur.
  • negative_prompt_embeds (torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif metin gömüleri; prompt_embeds ile aynı yerleşime sahiptir.
  • negative_prompt_embeds_mask (torch.Tensor, isteğe bağlı) — negative_prompt_embeds için Boole maskesi; negative_prompt_embeds iletildiğinde zorunludur.
  • output_type (str, isteğe bağlı, varsayılan "pil") — Oluşturulan görüntünün çıktı biçimi. "pil", "np", "pt" veya "latent" arasında seçim yapın.
  • return_dict (bool, isteğe bağlı, varsayılan True) — Düz bir tuple yerine Krea2PipelineOutput döndürülüp döndürülmemesi.
  • callback_on_step_end (Callable, isteğe bağlı) — Her gürültü azaltma adımının sonunda callback_on_step_end(self, step, timestep, callback_kwargs) ile çağrılan bir işlev.
  • callback_on_step_end_tensor_inputs (list[str], isteğe bağlı, varsayılan ["latents"]) — callback_on_step_end işlevi için girdi tensörlerinin listesi. ._callback_tensor_inputs'in bir alt kümesi olmalıdır.
  • attention_kwargs (dict, isteğe bağlı) — Belirtilirse, diffusers.models.attention_processor içindeki self.processor altında tanımlanan AttentionProcessor'a iletilen bir kwargs sözlüğü.
  • max_sequence_length (int, varsayılan 512) — Dönüştürücü tarafından tüketilen sabit metin dizisi uzunluğu; istekler buna göre dolgu yapılır veya kırpılır.

Dönüş değeri

Krea2PipelineOutput veya tuple

return_dict True ise Krea2PipelineOutput, değilse üretilen görüntülerin listesini içeren ilk öğeye sahip bir tuple.

Üretim için pipeline çağrıldığında tetiklenen işlev.

Örnekler:

>>> import torch
>>> from diffusers import Krea2Pipeline

>>> # Load from a local directory produced by the Krea 2 conversion (no hub repo yet).
>>> pipe = Krea2Pipeline.from_pretrained("path/to/krea2-diffusers", torch_dtype=torch.bfloat16)
>>> pipe.to("cuda")
>>> prompt = "a fox in the snow"
>>> # Base (midtrain) checkpoint defaults. For the few-step distilled (TDM) checkpoint use
>>> # `num_inference_steps=8, guidance_scale=0.0` instead.
>>> image = pipe(prompt, num_inference_steps=28, guidance_scale=4.5).images[0]
>>> image.save("krea2.png")

encode_prompt

< >

( prompt: str | list[str]device: typing.Optional[torch.device] = Nonenum_images_per_prompt: int = 1prompt_embeds: typing.Optional[torch.Tensor] = Noneprompt_embeds_mask: typing.Optional[torch.Tensor] = Nonemax_sequence_length: int = 512 )

Parametreler

  • prompt (str veya list[str], isteğe bağlı) — kodlanacak prompt
  • device — (torch.device): torch cihazı
  • num_images_per_prompt (int) — her prompt için oluşturulacak görsel sayısı
  • prompt_embeds (torch.Tensor, isteğe bağlı) — (batch_size, text_seq_len, num_text_layers, text_hidden_dim) biçiminde önceden oluşturulmuş metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırma. Sağlanmazsa, metin gömme değerleri prompt girdi argümanından oluşturulur.
  • prompt_embeds_mask (torch.Tensor, isteğe bağlı) — Geçerli metin belirteçlerini işaretleyen, (batch_size, text_seq_len) biçiminde önceden oluşturulmuş mantıksal (boolean) maske. prompt_embeds iletildiğinde zorunludur.
  • max_sequence_length (int, varsayılan 512) — Dönüştürücü tarafından tüketilen sabit metin dizisi uzunluğu; istekler buna göre dolgu yapılır veya kırpılır.

get_text_hidden_states

< >

( prompt: str | list[str]max_sequence_length: int = 512device: typing.Optional[torch.device] = None )

prompt’u sabit uzunluklu Krea 2 yerleşimine göre belirteçlere ayırın ve seçilen kodlayıcı gizli durumlarını alın.

(hidden_states, attention_mask) biçiminde, (batch_size, text_seq_len, num_text_layers, text_hidden_dim) ve (batch_size, text_seq_len) (bool) boyutlarında bir demet döndürür.

prepare_position_ids

< >

( text_seq_len: intgrid_height: intgrid_width: intdevice: device )

Birleşik dizi için (text_seq_len + grid_height * grid_width, 3) boyutlu döner koordinatları oluşturun: metin jetonları orijinde yer alırken, görüntü jetonları (0, h, w) gizli ızgara koordinatlarını taşır.

Krea2PipelineOutput

sınıf diffusers.pipelines.krea2.Krea2PipelineOutput

< >

( 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örüntülerinin listesi veya (batch_size, height, width, num_channels) biçiminde bir numpy dizisi.

Krea 2 hattı için çıktı sınıfı.

Modüler

Krea 2 ayrıca modüler bir pipeline olarak da kullanılabilir. Classifier-free guidance, guidance_scale çağrı argümanı yerine guider bileşeni üzerinden yapılandırılır. Krea 2, use_original_formulation=True parametresiyle ClassifierFreeGuidance olan cond-anchored CFG kullanır.

import torch
from diffusers import ClassifierFreeGuidance, ModularPipeline

pipe = ModularPipeline.from_pretrained("krea/Krea-2-Raw")
pipe.load_components(dtype=torch.bfloat16)
pipe.to("cuda")  # or "mps", "xpu", "cpu"


image = pipe(
    prompt="a fox in the snow",
    height=1024,
    width=1024,
    num_inference_steps=28,
    generator=torch.Generator("cuda").manual_seed(0),
).images[0]
image.save("krea2.png")

Ayrıca Krea2 Turbo kullanımı için bir örnek sunuyoruz. Distilled checkpoint, kendi blok setine (Krea2TurboAutoBlocks) eşlenir: rehberlik olmadan (no guider) çalışır, negatif prompt almaz ve birkaç adımda örnekler. ModularPipeline.from_pretrained, checkpoint’in is_distilled yapılandırmasından turbo bloklarını otomatik olarak seçer, bu nedenle rehberlik yapılandırmasına gerek yoktur:

import torch
from diffusers import ModularPipeline

pipe = ModularPipeline.from_pretrained("krea/Krea-2-Turbo")
pipe.load_components(dtype=torch.bfloat16)
pipe.to("cuda")  # or "mps", "xpu", "cpu"

image = pipe(
    prompt="a fox in the snow",
    height=1024,
    width=1024,
    num_inference_steps=8,
    generator=torch.Generator("cuda").manual_seed(0),
).images[0]
image.save("krea2_turbo.png")

Krea2ModularPipeline

sınıf diffusers.Krea2ModularPipeline

< >

( blocks: diffusers.modular_pipelines.modular_pipeline.ModularPipelineBlocks | None = Nonepretrained_model_name_or_path: str | os.PathLike | None = Nonecomponents_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = Nonecollection: str | None = Noneworkflow: str | None = Nonemodular_config_dict: dict[str, typing.Any] | None = Noneconfig_dict: dict[str, typing.Any] | None = None**kwargs )

Krea 2 için bir ModularPipeline.

Krea2AutoBlocks

sınıf diffusers.Krea2AutoBlocks

< >

( )

Krea 2 kullanılarak metinden görüntüye üretim için otomatik modüler pipeline: metni kodla -> çekirdek gürültü azaltma (simetrik CFG) -> çöz.

Desteklenen iş akışları:

  • text2image: prompt gerektirir

Bileşenler: text_encoder (Qwen3VLModel): Qwen3-VL metin kodlayıcısı. tokenizer (AutoTokenizer): Metin kodlayıcıyla eşleştirilen belirteçleştirici. guider (ClassifierFreeGuidance) transformer (Krea2Transformer2DModel) scheduler (FlowMatchEulerDiscreteScheduler) vae (AutoencoderKLQwenImage) image_processor (VaeImageProcessor)

Girdiler: prompt (str): Görsel üretimi yönlendirmek için istem veya istemler. negative_prompt (str, isteğe bağlı): CFG için negatif istem(ler). max_sequence_length (int, isteğe bağlı, varsayılan 512): İstem kodlaması için maksimum dizi uzunluğu. num_images_per_prompt (int, isteğe bağlı, varsayılan 1): İstem başına üretilecek görsel sayısı. latents (Tensor, isteğe bağlı): Görsel üretimi için önceden oluşturulmuş gürültülü latensler. height (int, isteğe bağlı, varsayılan 1024): Üretilen görselin piksel cinsinden yüksekliği. width (int, isteğe bağlı, varsayılan 1024): Üretilen görselin piksel cinsinden genişliği. generator (Generator, isteğe bağlı): Belirleyici üretim için Torch üreteci. num_inference_steps (int, isteğe bağlı, varsayılan 28): Gürültü azaltma adım sayısı. sigmas (list, isteğe bağlı): Özel sigma zamanlaması (varsayılan olarak doğrusal bir rampa). attention_kwargs (dict, isteğe bağlı): Dikkat işlemcileri için ek kwargs. output_type (str, isteğe bağlı, varsayılan pil): Çıktı biçimi: ‘pil’, ‘np’, ‘pt’.

Çıktılar: images (list): Oluşturulan görüntüler.

Krea2TurboModularPipeline

sınıf diffusers.Krea2TurboModularPipeline

< >

( blocks: diffusers.modular_pipelines.modular_pipeline.ModularPipelineBlocks | None = Nonepretrained_model_name_or_path: str | os.PathLike | None = Nonecomponents_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = Nonecollection: str | None = Noneworkflow: str | None = Nonemodular_config_dict: dict[str, typing.Any] | None = Noneconfig_dict: dict[str, typing.Any] | None = None**kwargs )

Distilled Krea 2 turbo (TDM) checkpoint için bir ModularPipeline. Sınıflandırıcı-ücretsiz yönlendirme olmadan çalıştığı için negatif istem almaz ve yönlendiricisi yoktur.

Krea2TurboAutoBlocks

sınıf diffusers.Krea2TurboAutoBlocks

< >

( )

Distilled Krea 2 turbo checkpoint kullanılarak metinden görüntüye üretim için Auto Modular pipeline: metni kodla -> çekirdek gürültüden arındır (yönlendirmesiz) -> çöz.

Desteklenen iş akışları:

  • text2image: prompt gerektirir

Bileşenler: text_encoder (Qwen3VLModel): Qwen3-VL metin kodlayıcısı. tokenizer (AutoTokenizer): Metin kodlayıcıyla eşleştirilen belirteçleştirici. transformer (Krea2Transformer2DModel) scheduler (FlowMatchEulerDiscreteScheduler) vae (AutoencoderKLQwenImage) image_processor (VaeImageProcessor)

Girdiler: prompt (str): Görsel üretimi yönlendirmek için istem veya istemler. max_sequence_length (int, isteğe bağlı, varsayılan 512): İstem kodlaması için maksimum dizi uzunluğu. num_images_per_prompt (int, isteğe bağlı, varsayılan 1): İstem başına üretilecek görsel sayısı. latents (Tensor, isteğe bağlı): Görsel üretimi için önceden oluşturulmuş gürültülü latensler. height (int, isteğe bağlı, varsayılan 1024): Üretilen görselin piksel cinsinden yüksekliği. width (int, isteğe bağlı, varsayılan 1024): Üretilen görselin piksel cinsinden genişliği. generator (Generator, isteğe bağlı): Belirleyici üretim için Torch üreteci. num_inference_steps (int, isteğe bağlı, varsayılan 8): Gürültü azaltma adım sayısı. sigmas (list, isteğe bağlı): Özel sigma zamanlaması (varsayılan olarak doğrusal bir rampa kullanılır). attention_kwargs (dict, isteğe bağlı): Dikkat işlemcileri için ek kwargs. output_type (str, isteğe bağlı, varsayılan pil): Çıktı biçimi: ‘pil’, ‘np’, ‘pt’.

Çıktılar: images (list): Oluşturulan görüntüler.

Update on GitHub