Diffusers documentation

HiDreamImage

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

and get access to the augmented documentation experience

to get started

HiDreamImage

HiDream-I1 от HiDream.ai

Кэширование также может ускорить инференс за счёт хранения и повторного использования промежуточных результатов.

Доступные модели

Следующие модели доступны для конвейера HiDreamImagePipeline:

Название моделиОписание
HiDream-ai/HiDream-I1-Full-
HiDream-ai/HiDream-I1-Dev-
HiDream-ai/HiDream-I1-Fast-

HiDreamImagePipeline

класс diffusers.HiDreamImagePipeline

< >

( scheduler: FlowMatchEulerDiscreteSchedulervae: AutoencoderKLtext_encoder: CLIPTextModelWithProjectiontokenizer: CLIPTokenizertext_encoder_2: CLIPTextModelWithProjectiontokenizer_2: CLIPTokenizertext_encoder_3: T5EncoderModeltokenizer_3: T5Tokenizertext_encoder_4: LlamaForCausalLMtokenizer_4: TokenizersBackendtransformer: HiDreamImageTransformer2DModel )

__call__

< >

( 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[str] = ['latents']max_sequence_length: int = 128**kwargs ) → ~pipelines.hidream_image.HiDreamImagePipelineOutput or tuple

Параметры

  • prompt (str или list[str], необязательный) — Промпт или промпты для управления генерацией изображения. Если не задан, необходимо передать prompt_embeds вместо него.
  • prompt_2 (str or list[str], необязательный) — Промпт или промпты, которые будут переданы в tokenizer_2 и text_encoder_2. Если не задан, вместо него будет использоваться prompt.
  • prompt_3 (str or list[str], необязательный) — Промпт или промпты, которые будут переданы в tokenizer_3 и text_encoder_3. Если не задан, вместо него будет использоваться prompt.
  • prompt_4 (str or list[str], необязательный) — Промпт или промпты, которые будут переданы в tokenizer_4 и text_encoder_4. Если не задан, вместо него будет использован prompt.
  • height (int, необязательный, по умолчанию self.unet.config.sample_size * self.vae_scale_factor) — Высота генерируемого изображения в пикселях. По умолчанию установлено значение 1024 для достижения наилучших результатов.
  • width (int, необязательный, по умолчанию self.unet.config.sample_size * self.vae_scale_factor) — Ширина генерируемого изображения в пикселях. По умолчанию установлено значение 1024 для достижения наилучших результатов.
  • num_inference_steps (int, необязательный, по умолчанию 50) — Количество шагов денойзинга. Как правило, большее число шагов денойзинга приводит к изображению более высокого качества, но за счёт более медленного вывода.
  • sigmas (list[float], необязательный) — Пользовательские сигмы для процесса удаления шума в планировщиках, поддерживающих аргумент sigmas в их методе set_timesteps. Если не задано, будет использоваться поведение по умолчанию при передаче num_inference_steps.
  • guidance_scale (float, необязательный, по умолчанию 3,5) — Встроенный масштаб guidance включается при установке guidance_scale > 1. Более высокое значение guidance_scale поощряет модель генерировать изображения, более точно соответствующие prompt , в ущерб качеству изображения.

    Модели, полученные с помощью дистилляции guidance, аппроксимируют истинный classifer-free guidance для guidance_scale > 1. Подробнее см. в статье.

  • negative_prompt (str or list[str], необязательный) — Промпт или промпты, которые не должны направлять генерацию изображения. Если не задан, необходимо передать negative_prompt_embeds. Игнорируется, если не используется guidance (то есть игнорируется, если true_cfg_scale не больше 1).
  • negative_prompt_2 (str или list[str], необязательный) — Промпт или промпты, которые не должны направлять генерацию изображения, передаваемые в tokenizer_2 и text_encoder_2. Если не задан, во всех текстовых кодировщиках используется negative_prompt.
  • negative_prompt_3 (str или list[str], необязательный) — Промпт или промпты, которые не должны направлять генерацию изображения, передаваемые в tokenizer_3 и text_encoder_3. Если не задан, во всех текстовых кодировщиках используется negative_prompt.
  • negative_prompt_4 (str or list[str], необязательный) — Промпт или промпты, которые не должны направлять генерацию изображения, передаваемые в tokenizer_4 и text_encoder_4. Если не задан, во всех текстовых кодировщиках используется negative_prompt.
  • num_images_per_prompt (int, необязательный, по умолчанию 1) — Количество изображений, генерируемых для каждого промпта.
  • generator (torch.Generator или list[torch.Generator], необязательный) — Один или список генераторов torch для обеспечения детерминированности генерации.
  • latents (torch.FloatTensor, необязательный) — Предварительно сгенерированные зашумлённые латенты, выбранные из гауссова распределения, которые используются в качестве входных данных для генерации изображений. Позволяет корректировать один и тот же процесс генерации с помощью различных промптов. Если не заданы, тензор латентов будет сгенерирован путём выборки с использованием переданного случайного generator.
  • prompt_embeds_t5 (torch.FloatTensor, необязательный) — Предварительно сгенерированные текстовые эмбеддинги T5. Можно использовать для простой настройки текстовых входных данных, например, для взвешивания промпта. Если не передано, текстовые эмбеддинги будут сгенерированы из аргумента prompt.
  • prompt_embeds_llama3 (torch.FloatTensor, необязательный) — Предварительно сгенерированные текстовые эмбеддинги LLaMA3. Можно использовать для простой настройки текстовых входных данных, например, для взвешивания промпта. Если не задан, текстовые эмбеддинги будут сгенерированы из входного аргумента prompt.
  • negative_prompt_embeds_t5 (torch.FloatTensor, необязательный) — Предварительно сгенерированные отрицательные текстовые эмбеддинги T5. Можно использовать для простой настройки текстовых входных данных, например для взвешивания промпта. Если не передано, эмбеддинги будут сгенерированы из входного аргумента negative_prompt.
  • negative_prompt_embeds_llama3 (torch.FloatTensor, необязательный) — Предварительно сгенерированные отрицательные текстовые эмбеддинги LLaMA3. Можно использовать для простой настройки текстовых входных данных, например для взвешивания промпта. Если не передано, эмбеддинги будут сгенерированы из входного аргумента negative_prompt.
  • pooled_prompt_embeds (torch.FloatTensor, необязательный) — Предварительно сгенерированные пул-эмбеддинги текста. Можно использовать для простой настройки текстовых входных данных, например для взвешивания промпта. Если не предоставлено, пул-эмбеддинги текста будут сгенерированы из входного аргумента prompt.
  • negative_pooled_prompt_embeds (torch.FloatTensor, необязательный) — Предварительно сгенерированные отрицательные пул-эмбеддинги текста. Можно использовать для простой настройки текстовых входных данных, например для взвешивания промпта. Если не передан, пул-эмбеддинги negative_prompt_embeds будут сгенерированы из входного аргумента negative_prompt.
  • output_type (str, необязательный, по умолчанию "pil") — Формат вывода сгенерированного изображения. Выберите один из вариантов: PIL: PIL.Image.Image или np.array.
  • return_dict (bool, необязательный, по умолчанию True) — Определяет, следует ли возвращать ~pipelines.flux.FluxPipelineOutput вместо обычного кортежа.
  • attention_kwargs (dict, необязательный) — Словарь kwargs, который при указании передается в AttentionProcessor, определенный в self.processor в diffusers.models.attention_processor.
  • callback_on_step_end (Callable, необязательный) — Функция, вызываемая в конце каждого шага денойзинга во время инференса. Функция вызывается со следующими аргументами: callback_on_step_end(self: DiffusionPipeline, step: int, timestep: int, callback_kwargs: Dict). callback_kwargs будет содержать список всех тензоров, как указано в callback_on_step_end_tensor_inputs.
  • callback_on_step_end_tensor_inputs (list, необязательный) — Список тензорных входных данных для функции callback_on_step_end. Тензоры, указанные в списке, будут переданы в качестве аргумента callback_kwargs. Вы сможете включать только переменные, перечисленные в атрибуте ._callback_tensor_inputs вашего класса пайплайна.
  • max_sequence_length (int, по умолчанию 128) — максимальная длина последовательности, используемая с prompt.

Возвращает

~pipelines.hidream_image.HiDreamImagePipelineOutput или tuple

~pipelines.hidream_image.HiDreamImagePipelineOutput, если return_dict равно True, иначе tuple. При возврате кортежа первым элементом является список с сгенерированными изображениями.

Функция, вызываемая при обращении к конвейеру для генерации.

Примеры:

>>> 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

класс diffusers.pipelines.hidream_image.pipeline_output.HiDreamImagePipelineOutput

< >

( images: list[PIL.Image.Image] | numpy.ndarray )

Параметры

  • images (list[PIL.Image.Image] или np.ndarray) — список денойзированных изображений PIL длиной batch_size или массив numpy с формой (batch_size, height, width, num_channels). Изображения PIL или массив numpy представляют денойзированные изображения диффузионного конвейера.

Класс вывода для пайплайнов HiDreamImage.

Update on GitHub