Diffusers documentation
HiDreamImage
HiDreamImage
HiDream-I1 da HiDream.ai
Caching também pode acelerar a inferência ao armazenar e reutilizar saídas intermediárias.
Modelos disponíveis
Os seguintes modelos estão disponíveis para o pipeline HiDreamImagePipeline:
| Nome do modelo | Descrição |
|---|---|
HiDream-ai/HiDream-I1-Full | - |
HiDream-ai/HiDream-I1-Dev | - |
HiDream-ai/HiDream-I1-Fast | - |
HiDreamImagePipeline
classe 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
Parâmetros
- prompt (
stroulist[str], opcional) — O prompt ou os prompts para orientar a geração da imagem. Se não for definido, é necessário passarprompt_embedsem vez disso. - prompt_2 (
stroulist[str], opcional) — O prompt ou os prompts a serem enviados paratokenizer_2etext_encoder_2. Se não definido,promptserá usado no lugar. - prompt_3 (
stroulist[str], opcional) — O prompt ou os prompts a serem enviados paratokenizer_3etext_encoder_3. Se não definido,promptserá usado no lugar. - prompt_4 (
stroulist[str], opcional) — O prompt ou os prompts a serem enviados paratokenizer_4etext_encoder_4. Se não definido,promptserá usado no lugar. - height (
int, opcional, padrão é self.unet.config.sample_size * self.vae_scale_factor) — A altura em pixels da imagem gerada. Isso é definido como 1024 por padrão para os melhores resultados. - width (
int, opcional, padrão é self.unet.config.sample_size * self.vae_scale_factor) — A largura em pixels da imagem gerada. O padrão é 1024 para os melhores resultados. - num_inference_steps (
int, opcional, padrão 50) — O número de etapas de desruidamento. Mais etapas de desruidamento geralmente resultam em uma imagem de maior qualidade, à custa de uma inferência mais lenta. - sigmas (
list[float], opcional) — Sigmas personalizados para usar no processo de desruidamento com agendadores que suportam um argumentosigmasem seu métodoset_timesteps. Se não definido, o comportamento padrão quandonum_inference_stepsé passado será usado. - guidance_scale (
float, opcional, padrão 3,5) — A escala de orientação incorporada é ativada ao definirguidance_scale> 1. Valores maiores deguidance_scaleincentivam o modelo a gerar imagens mais alinhadas com opromptem detrimento de uma menor qualidade de imagem.Modelos destilados por orientação aproximam a orientação livre de classe verdadeira para
guidance_scale> 1. Consulte o artigo para saber mais. - negative_prompt (
stroulist[str], opcional) — O prompt ou os prompts que não devem orientar a geração da imagem. Se não for definido, é necessário passarnegative_prompt_embedsem vez disso. Ignorado quando não se usa orientação (ou seja, ignorado setrue_cfg_scalenão for maior que1). - negative_prompt_2 (
stroulist[str], opcional) — O prompt ou os prompts que não devem orientar a geração da imagem a serem enviados paratokenizer_2etext_encoder_2. Se não definido,negative_prompté usado em todos os text-encoders. - negative_prompt_3 (
stroulist[str], opcional) — O prompt ou os prompts que não devem orientar a geração da imagem a serem enviados paratokenizer_3etext_encoder_3. Se não definido,negative_prompté usado em todos os text-encoders. - negative_prompt_4 (
stroulist[str], opcional) — O prompt ou os prompts que não devem orientar a geração da imagem a serem enviados paratokenizer_4etext_encoder_4. Se não definido,negative_prompté usado em todos os text-encoders. - num_images_per_prompt (
int, opcional, padrão 1) — O número de imagens a serem geradas por prompt. - generator (
torch.Generatoroulist[torch.Generator], opcional) — Um ou uma lista de geradores do torch para tornar a geração determinística. - latents (
torch.FloatTensor, opcional) — Latentes ruidosos pré-gerados, amostrados de uma distribuição gaussiana, a serem usados como entradas para a geração de imagens. Pode ser usado para ajustar a mesma geração com diferentes prompts. Se não for fornecido, um tensor de latentes será gerado por amostragem usando ogeneratoraleatório fornecido. - prompt_embeds_t5 (
torch.FloatTensor, opcional) — Incorporações de texto T5 pré-geradas. Podem ser usadas para ajustar facilmente as entradas de texto, por exemplo, ponderação de prompts. Se não forem fornecidas, as incorporações de texto serão geradas a partir do argumento de entradaprompt. - prompt_embeds_llama3 (
torch.FloatTensor, opcional) — Incorporações de texto LLaMA3 pré-geradas. Podem ser usadas para ajustar facilmente as entradas de texto, por exemplo, ponderação de prompts. Se não fornecidas, as incorporações de texto serão geradas a partir do argumento de entradaprompt. - negative_prompt_embeds_t5 (
torch.FloatTensor, opcional) — Incorporações de texto T5 negativas pré-geradas. Pode ser usado para ajustar facilmente as entradas de texto, por exemplo, ponderação de prompts. Se não for fornecido, as incorporações serão geradas a partir do argumento de entradanegative_prompt. - negative_prompt_embeds_llama3 (
torch.FloatTensor, opcional) — Embeddings de texto negativos pré-gerados do LLaMA3. Podem ser usados para ajustar facilmente as entradas de texto, por exemplo, ponderação de prompts. Se não forem fornecidos, os embeddings serão gerados a partir do argumento de entradanegative_prompt. - pooled_prompt_embeds (
torch.FloatTensor, opcional) — Embeddings de texto agrupados pré-gerados. Podem ser usados para ajustar facilmente as entradas de texto, por exemplo, ponderação de prompts. Se não fornecidos, os embeddings de texto agrupados serão gerados a partir do argumento de entradaprompt. - negative_pooled_prompt_embeds (
torch.FloatTensor, opcional) — Embeddings de texto negativo pré-gerados. Pode ser usado para ajustar facilmente as entradas de texto, por exemplo, ponderação de prompt. Se não for fornecido, os pooled negative_prompt_embeds serão gerados a partir do argumento de entradanegative_prompt. - output_type (
str, opcional, padrão"pil") — O formato de saída da imagem gerada. Escolha entre PIL:PIL.Image.Imageounp.array. - return_dict (
bool, opcional, padrãoTrue) — Se deve ou não retornar um~pipelines.flux.FluxPipelineOutputem vez de uma tupla simples. - attention_kwargs (
dict, opcional) — Um dicionário de kwargs que, se especificado, é passado aoAttentionProcessorconforme definido emself.processorem diffusers.models.attention_processor. - callback_on_step_end (
Callable, opcional) — Uma função que é chamada no final de cada etapa de desruidamento durante a inferência. A função é chamada com os seguintes argumentos:callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict).callback_kwargsincluirá uma lista de todos os tensores, conforme especificado porcallback_on_step_end_tensor_inputs. - callback_on_step_end_tensor_inputs (
list, opcional) — A lista de entradas de tensor para a funçãocallback_on_step_end. Os tensores especificados na lista serão passados como argumentocallback_kwargs. Você só poderá incluir variáveis listadas no atributo._callback_tensor_inputsda sua classe de pipeline. - max_sequence_length (
intpadrão 128) — Comprimento máximo da sequência a ser usado com oprompt.
Retorna
~pipelines.hidream_image.HiDreamImagePipelineOutput ou tuple
~pipelines.hidream_image.HiDreamImagePipelineOutput se return_dict for True, caso contrário, uma tuple. Ao retornar uma tupla, o primeiro elemento é uma lista com as imagens geradas.
Função invocada ao chamar o pipeline para geração.
Exemplos:
>>> 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
classe diffusers.pipelines.hidream_image.pipeline_output.HiDreamImagePipelineOutput
< source >( images: list[PIL.Image.Image] | numpy.ndarray )
Classe de saída para os pipelines do HiDreamImage.