Diffusers documentation

Krea 2

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[str] = ['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