Diffusers documentation
HiDreamImage
HiDreamImage
HiDream-I1 от HiDream.ai
Кэширование также может ускорить инференс за счёт хранения и повторного использования промежуточных результатов.
Доступные модели
Следующие модели доступны для конвейера HiDreamImagePipeline:
| Название модели | Описание |
|---|---|
HiDream-ai/HiDream-I1-Full | - |
HiDream-ai/HiDream-I1-Dev | - |
HiDream-ai/HiDream-I1-Fast | - |
HiDreamImagePipeline
класс 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[str] = ['latents']max_sequence_length: int = 128**kwargs ) → ~pipelines.hidream_image.HiDreamImagePipelineOutput or tuple
Параметры
- prompt (
strилиlist[str], необязательный) — Промпт или промпты для управления генерацией изображения. Если не задан, необходимо передатьprompt_embedsвместо него. - prompt_2 (
strorlist[str], необязательный) — Промпт или промпты, которые будут переданы вtokenizer_2иtext_encoder_2. Если не задан, вместо него будет использоватьсяprompt. - prompt_3 (
strorlist[str], необязательный) — Промпт или промпты, которые будут переданы вtokenizer_3иtext_encoder_3. Если не задан, вместо него будет использоватьсяprompt. - prompt_4 (
strorlist[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 (
strorlist[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 (
strorlist[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
< source >( images: list[PIL.Image.Image] | numpy.ndarray )
Класс вывода для пайплайнов HiDreamImage.