Diffusers documentation
Krea 2
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=8ile 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
< source >( 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=Truedeğ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'inQwen3VLModel'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ınhidden_statesdemetindeki (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_layersgirişine sahip olmalıdır. - is_distilled (
bool, isteğe bağlı, varsayılanFalse) — Transformer'ın az adımlı damıtılmış (TDM/turbo) kontrol noktası olup olmadığını belirtir.Trueise sabit zaman adımı kaymasımu=1.15kullanılır; aksi haldemugö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__
< source >( 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 (
strveyalist[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysaprompt_embedsparametresinin geçirilmesi gerekir. - negative_prompt (
strveyalist[str], isteğe bağlı) — Görsel üretimini yönlendirmemesi istenen istem veya istemler.guidance_scale <= 0olduğ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ılanlinspace(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 veguidance_scale > 0olduğunda yönlendirme etkinleştirilir (bu,1 + guidance_scaleölçeğine sahip standart CFG formülasyonuna eşittir). Devre dışı bırakmak için0.0olarak 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.Generatorveyalist[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ğerleripromptüzerinden üretilir. - prompt_embeds_mask (
torch.Tensor, isteğe bağlı) —prompt_embedsiçin Boole maskesi;prompt_embedsiletildiğinde zorunludur. - negative_prompt_embeds (
torch.Tensor, isteğe bağlı) — Önceden oluşturulmuş negatif metin gömüleri;prompt_embedsile aynı yerleşime sahiptir. - negative_prompt_embeds_mask (
torch.Tensor, isteğe bağlı) —negative_prompt_embedsiçin Boole maskesi;negative_prompt_embedsiletildiğ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ılanTrue) — 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 sonundacallback_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_endiş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çindekiself.processoraltında tanımlananAttentionProcessor'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
< source >( 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 (
strveyalist[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ğerleripromptgirdi 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_embedsiletildiğ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.
( 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.
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
< source >( images: list[PIL.Image.Image] | numpy.ndarray )
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
< source >( 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
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:promptgerektirir
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
< source >( 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
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:promptgerektirir
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.