Diffusers documentation
HiDreamImage
HiDreamImage
HiDream.ai tarafından HiDream-I1
Önbelleğe alma, ara çıktıları depolayıp yeniden kullanarak çıkarımı hızlandırabilir.
Mevcut modeller
HiDreamImagePipeline hattı için aşağıdaki modeller kullanılabilir:
| Model adı | Açıklama |
|---|---|
HiDream-ai/HiDream-I1-Full | - |
HiDream-ai/HiDream-I1-Dev | - |
HiDream-ai/HiDream-I1-Fast | - |
HiDreamImagePipeline
sınıf diffusers.HiDreamImagePipeline
< source >( scheduler: FlowMatchEulerDiscreteSchedulervae: AutoencoderKLtext_encoder: CLIPTextModelWithProjectiontokenizer: CLIPTokenizertext_encoder_2: CLIPTextModelWithProjectiontokenizer_2: CLIPTokenizertext_encoder_3: T5EncoderModeltokenizer_3: T5Tokenizertext_encoder_4: LlamaForCausalLMtokenizer_4: TokenizersBackendtransformer: HiDreamImageTransformer2DModel )
__call__
< source >( prompt: str | list[str] = Noneprompt_2: str | list[str] | None = Noneprompt_3: str | list[str] | None = Noneprompt_4: str | list[str] | None = Noneheight: int | None = Nonewidth: int | None = Nonenum_inference_steps: int = 50sigmas: list[float] | None = Noneguidance_scale: float = 5.0negative_prompt: str | list[str] | None = Nonenegative_prompt_2: str | list[str] | None = Nonenegative_prompt_3: str | list[str] | None = Nonenegative_prompt_4: str | list[str] | None = Nonenum_images_per_prompt: int | None = 1generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = Nonelatents: typing.Optional[torch.FloatTensor] = Noneprompt_embeds_t5: typing.Optional[torch.FloatTensor] = Noneprompt_embeds_llama3: typing.Optional[torch.FloatTensor] = Nonenegative_prompt_embeds_t5: typing.Optional[torch.FloatTensor] = Nonenegative_prompt_embeds_llama3: typing.Optional[torch.FloatTensor] = Nonepooled_prompt_embeds: typing.Optional[torch.FloatTensor] = Nonenegative_pooled_prompt_embeds: typing.Optional[torch.FloatTensor] = Noneoutput_type: str | None = 'pil'return_dict: bool = Trueattention_kwargs: dict[str, typing.Any] | None = Nonecallback_on_step_end: typing.Optional[typing.Callable[[int, int], NoneType]] = Nonecallback_on_step_end_tensor_inputs: list = ['latents']max_sequence_length: int = 128**kwargs ) → ~pipelines.hidream_image.HiDreamImagePipelineOutput or tuple
Parametreler
- prompt (
strveyalist[str], isteğe bağlı) — Görsel üretimi yönlendirmek için istem veya istemler. Tanımlanmadıysa bunun yerineprompt_embedsgeçirilmelidir. - prompt_2 (
strveyalist[str], isteğe bağlı) —tokenizer_2vetext_encoder_2'e gönderilecek istem veya istemler. Tanımlanmamışsa bunun yerinepromptkullanılır. - prompt_3 (
strveyalist[str], isteğe bağlı) —tokenizer_3vetext_encoder_3'e gönderilecek istem veya istemler. Tanımlanmamışsa bunun yerinepromptkullanılır. - prompt_4 (
strveyalist[str], isteğe bağlı) —tokenizer_4vetext_encoder_4'e gönderilecek istem veya istemler. Tanımlanmamışsa bunun yerinepromptkullanılır. - height (
int, isteğe bağlı, varsayılan: self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan 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: self.unet.config.sample_size * self.vae_scale_factor) — Oluşturulan 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_timestepsyöntemlerindesigmasargümanını destekleyen zamanlayıcılarla gürültü azaltma sürecinde kullanılacak özel sigmalar. Tanımlanmamışsa,num_inference_stepsgeçirildiğinde varsayılan davranış kullanılır. - guidance_scale (
float, isteğe bağlı, varsayılan olarak 3.5) — Gömülü yönlendirme ölçeğiguidance_scale> 1. daha yüksekguidance_scaledeğerleri, modelinpromptile daha uyumlu görseller üretmesini teşvik eder, ancak görsel kalitesinin düşmesi pahasına.Guidance-distilled modeller,
guidance_scale> 1 için gerçek classifer-free guidance'ı yaklaşık olarak sağlar. Daha fazla bilgi için makaleye bakın. - negative_prompt (
strveyalist[str], isteğe bağlı) — Görsel üretimini yönlendirmemesi istenen istem veya istemler. Tanımlanmazsa, bunun yerinenegative_prompt_embedsgeçirilmelidir. Yönlendirme kullanılmadığında yok sayılır (yanitrue_cfg_scale,1'den büyük değilse yok sayılır). - negative_prompt_2 (
strveyalist[str], isteğe bağlı) — Görsel üretimini yönlendirmemek içintokenizer_2vetext_encoder_2'ye gönderilecek istem veya istemler. Tanımlanmamışsa, tüm metin kodlayıcılardanegative_promptkullanılır. - negative_prompt_3 (
strveyalist[str], isteğe bağlı) —tokenizer_3vetext_encoder_3'e gönderilecek, görsel üretimi yönlendirmeyecek istem veya istemler. Tanımlanmamışsa, tüm metin kodlayıcılardanegative_promptkullanılır. - negative_prompt_4 (
strveyalist[str], isteğe bağlı) — Görsel üretimini yönlendirmemek içintokenizer_4vetext_encoder_4gönderilecek istem veya istemler. Tanımlanmamışsa, tüm metin kodlayıcılardanegative_promptkullanılır. - num_images_per_prompt (
int, isteğe bağlı, 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 torch üreteci listesi. - latents (
torch.FloatTensor, isteğe bağlı) — Gaussian dağılımdan örneklenmiş, gürültülü ve önceden oluşturulmuş latents; görsel üretimi için girdi olarak kullanılabilir. Farklı istemlerle aynı üretimi ince ayar yapmak için kullanılabilir. Sağlanmazsa, sağlanan rastgelegeneratorkullanılarak örneklemeye dayalı bir latents tensörü oluşturulur. - prompt_embeds_t5 (
torch.FloatTensor, isteğe bağlı) — Önceden oluşturulmuş T5 metin gömümlemeleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. prompt ağırlıklandırması. Sağlanmazsa, metin gömümlemeleripromptgirdi argümanından oluşturulur. - prompt_embeds_llama3 (
torch.FloatTensor, isteğe bağlı) — Önceden oluşturulmuş LLaMA3 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ğerleripromptgirdi argümanından oluşturulur. - negative_prompt_embeds_t5 (
torch.FloatTensor, isteğe bağlı) — Önceden oluşturulmuş negatif T5 metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. istem ağırlıklandırması. Sağlanmazsa, gömme değerlerinegative_promptgirdi argümanından oluşturulur. - negative_prompt_embeds_llama3 (
torch.FloatTensor, isteğe bağlı) — Önceden oluşturulmuş negatif LLaMA3 metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. istem ağırlıklandırması. Sağlanmazsa, gömme değerlerinegative_promptgirdi argümanından oluşturulur. - pooled_prompt_embeds (
torch.FloatTensor, isteğe bağlı) — Önceden oluşturulmuş havuzlanmış metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. istem ağırlıklandırması. Sağlanmazsa, havuzlanmış metin gömme değerleripromptgirdi argümanından oluşturulur. - negative_pooled_prompt_embeds (
torch.FloatTensor, isteğe bağlı) — Önceden oluşturulmuş negatif havuzlanmış metin gömme değerleri. Metin girdilerini kolayca ayarlamak için kullanılabilir, ör. istem ağırlıklandırması. Sağlanmazsa, havuzlanmış negative_prompt_embeds,negative_promptgirdi argümanından oluşturulur. - output_type (
str, isteğe bağlı, varsayılan"pil") — Görsel oluşturma çıktısının biçimi. Şunlardan birini seçin: PIL:PIL.Image.Imageveyanp.array. - return_dict (
bool, isteğe bağlı, varsayılanTrue) — Düz bir tuple yerine~pipelines.flux.FluxPipelineOutputdöndürülüp döndürülmemesi. - attention_kwargs (
dict, isteğe bağlı) — Belirtilirse, diffusers.models.attention_processor içindekiself.processoraltında tanımlananAttentionProcessor'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_inputstarafından belirtilen tüm tensörlerin listesini içerir. - callback_on_step_end_tensor_inputs (
list, isteğe bağlı) —callback_on_step_endişlevi için girdi tensörlerinin listesi. Listede belirtilen tensörler,callback_kwargsargümanı olarak geçirilir. Yalnızca pipeline sınıfınızın._callback_tensor_inputsözniteliğinde listelenen değişkenleri dahil edebilirsiniz. - max_sequence_length (
int, varsayılan 128) —promptile kullanılacak maksimum dizi uzunluğu.
Dönüş değeri
~pipelines.hidream_image.HiDreamImagePipelineOutput veya tuple
return_dict True ise ~pipelines.hidream_image.HiDreamImagePipelineOutput, aksi halde bir tuple. Bir tuple döndürüldüğünde, ilk öğe üretilen görüntülerin listesidir.
Üretim için pipeline çağrıldığında tetiklenen işlev.
Örnekler:
>>> import torch
>>> from transformers import AutoTokenizer, LlamaForCausalLM
>>> from diffusers import HiDreamImagePipeline
>>> tokenizer_4 = AutoTokenizer.from_pretrained("meta-llama/Meta-Llama-3.1-8B-Instruct")
>>> text_encoder_4 = LlamaForCausalLM.from_pretrained(
... "meta-llama/Meta-Llama-3.1-8B-Instruct",
... output_hidden_states=True,
... output_attentions=True,
... torch_dtype=torch.bfloat16,
... )
>>> pipe = HiDreamImagePipeline.from_pretrained(
... "HiDream-ai/HiDream-I1-Full",
... tokenizer_4=tokenizer_4,
... text_encoder_4=text_encoder_4,
... torch_dtype=torch.bfloat16,
... )
>>> pipe.enable_model_cpu_offload()
>>> image = pipe(
... 'A cat holding a sign that says "Hi-Dreams.ai".',
... height=1024,
... width=1024,
... guidance_scale=5.0,
... num_inference_steps=50,
... generator=torch.Generator("cuda").manual_seed(0),
... ).images[0]
>>> image.save("output.png")HiDreamImagePipelineOutput
sınıf diffusers.pipelines.hidream_image.pipeline_output.HiDreamImagePipelineOutput
< source >( images: list[PIL.Image.Image] | numpy.ndarray )
Parametreler
HiDreamImage pipeline'leri için çıktı sınıfı.