# Qwen-Image 2.1

Qwen-Image 2.1 кодирует промпт и любые условные изображения совместно с моделью Qwen3-VL, а затем выполняет денуазинг целевого изображения с помощью однопоточного блочно-каузального трансформера. См. [`QwenImage21Transformer2DModel`](../models/qwenimage21_transformer2d) для блочно-каузального внимания, процессоров внимания и `causal_condition`.

Значения по умолчанию соответствуют рекомендациям Qwen: 40 шагов и отсутствие guidance. Чтобы включить classifier-free guidance, передайте `negative_prompt` вместе с `true_cfg_scale > 1`; это удвоит объём вычислений на каждом шаге.

```python
import torch
from diffusers import QwenImage21Pipeline

pipe = QwenImage21Pipeline.from_pretrained("Qwen/Qwen-Image-2.1", dtype=torch.bfloat16).to("cuda")

# Text-to-image
image = pipe("A capybara wearing a wizard hat, oil painting").images[0]
image.save("t2i.png")

# Image-conditioned editing
edited = pipe("Move it to a snowy mountain top", image=image).images[0]
edited.save("edit.png")
```

## Несколько изображений условий

Передайте список в `image`, и каждый элемент станет отдельным блоком в объединённой последовательности: энкодер Qwen3-VL воспринимает их как визуальный контекст, а VAE добавляет их латентные токены. Блочное причинное внимание сохраняет двунаправленность внутри каждого блока, позволяя последующим блокам и целевому изображению обращать внимание на предыдущие, поэтому порядок, в котором вы их передаёте, определяет порядок, в котором модель их читает.

```python
edited = pipe("Put the flowers from the first image into the second scene", image=[flowers, scene]).images[0]
```

## Более быстрое внимание с flex_attention

По умолчанию `QwenImage21AttnProcessor` выполняет блок-каузальный prefill в виде одного вызова внимания на каждый сегмент префикса. Ему не нужна компиляция, и он работает в любой сборке PyTorch. `QwenImage21FlexAttnProcessor` выражает ту же маску в виде одного вызова `flex_attention`, что быстрее, когда модель **_скомпилирована_**.

> [!TIP]
> Скомпилируйте модель при переключении на flex-процессор. Нескомпилированный `flex_attention` материализует полную матрицу оценок внимания в fp32, что значительно медленнее и приводит к исчерпанию памяти при высоком разрешении.

```python
from diffusers.models.transformers.transformer_qwenimage21 import QwenImage21FlexAttnProcessor

pipe.transformer.set_attn_processor(QwenImage21FlexAttnProcessor())
pipe.transformer.compile()
```

## Загрузка контрольных точек в одном файле

```python
import torch
from diffusers import QwenImage21Pipeline, QwenImage21Transformer2DModel

transformer = QwenImage21Transformer2DModel.from_single_file(
    "https://huggingface.co/Comfy-Org/Qwen-Image-2.1/blob/main/diffusion_models/qwen_image_2.1_bf16.safetensors",
    dtype=torch.bfloat16,
)
pipe = QwenImage21Pipeline.from_pretrained("Qwen/Qwen-Image-2.1", transformer=transformer, dtype=torch.bfloat16).to(
    "cuda"
)
```

## Сигмы выборки

Авторы моделей могут настроить сетку выборки по умолчанию с помощью `sample_sigmas` в конфигурации пайплайна. При загрузке опубликованного чекпоинта его сетка и настройки планировщика по умолчанию восстанавливаются автоматически.

Чтобы экспериментировать с другой сеткой во время выполнения, передайте `sigmas` в вызов пайплайна:

```python
# Use the checkpoint's default sampling grid.
image = pipe(prompt).images[0]

# Override the default grid for this call.
image = pipe(prompt, sigmas=[1.0, 0.8, 0.5, 0.2]).images[0]
```

Приведённая выше пользовательская сетка иллюстрирует API; качество генерации зависит от контрольной точки и сетки. Списки сигм не включают конечную сигму, которую планировщик добавляет в конец. Явно заданные `sigmas` переопределяют настроенные `sample_sigmas`, и любой из этих списков определяет количество шагов вместо `num_inference_steps`. Если ни один из них не указан, конвейер использует `num_inference_steps` для генерации расписания. Планировщик применяет свою настроенную обработку к любой из сеток.

## Модульность

Qwen-Image 2.1 также доступен в виде [модульного конвейера](../../modular_diffusers/overview). Те же блоки выполняют генерацию изображений по тексту и условную генерацию по изображению: передайте `image`, чтобы задать условие по одному или нескольким изображениям. Настройка classifier-free guidance выполняется через компонент `guider`, а не через аргумент вызова `true_cfg_scale`, а префиксный KV-кэш включен по умолчанию (`use_kv_cache=False` отключает его).

```python
import torch
from diffusers import ClassifierFreeGuidance, ModularPipeline

pipe = ModularPipeline.from_pretrained("Qwen/Qwen-Image-2.1")
pipe.load_components(dtype=torch.bfloat16)
pipe.to("cuda")

image = pipe(prompt="A capybara wearing a wizard hat, oil painting").images[0]

# Turn classifier-free guidance on for an edit.
pipe.update_components(guider=ClassifierFreeGuidance(guidance_scale=4.0))
edited = pipe(prompt="Move it to a snowy mountain top", negative_prompt="blurry", image=image).images[0]
```

Турбо-чекпоинт соответствует собственным блокам ([QwenImage21TurboAutoBlocks](/docs/diffusers/v0.43.0/ru/api/pipelines/qwenimage21#diffusers.QwenImage21TurboAutoBlocks)): он работает без `guider`, не принимает `negative_prompt` и использует сетку сигм, поставляемую вместе с ним. `ModularPipeline.from_pretrained` выбирает турбо-блоки по записи `sample_sigmas` в конфигурации чекпоинта, поэтому ничего настраивать не нужно:

```python
import torch
from diffusers import ModularPipeline

pipe = ModularPipeline.from_pretrained("Qwen/Qwen-Image-2.1-Turbo")
pipe.load_components(dtype=torch.bfloat16)
pipe.to("cuda")

image = pipe(prompt="A capybara wearing a wizard hat, oil painting").images[0]
```

## QwenImage21Pipeline[[diffusers.QwenImage21Pipeline]]

#### diffusers.QwenImage21Pipeline[[diffusers.QwenImage21Pipeline]]

```python
diffusers.QwenImage21Pipeline(scheduler: FlowMatchEulerDiscreteScheduler, vae: AutoencoderKLQwenImage21, text_encoder: Qwen3VLForConditionalGeneration, processor: Qwen3VLProcessor, transformer: QwenImage21Transformer2DModel, sample_sigmas: list[float] | None = None)
```

[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/qwenimage21/pipeline_qwenimage21.py#L159)

**Параметры:**

scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/v0.43.0/ru/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : планировщик, используемый для удаления шума из закодированных латентов изображения.

vae ([AutoencoderKLQwenImage21](/docs/diffusers/v0.43.0/ru/api/models/autoencoderkl_qwenimage21#diffusers.AutoencoderKLQwenImage21)) : вариационный автоэнкодер, отображающий изображения в 64-канальное латентное пространство и обратно.

text_encoder (`Qwen3VLForConditionalGeneration`) : модель Qwen3-VL, формирующая совместные текстовые и изображенческие эмбеддинги.

processor (`Qwen3VLProcessor`) : Процессор, который формирует шаблон чата и токенизирует промпт и условные изображения.

transformer ([QwenImage21Transformer2DModel](/docs/diffusers/v0.43.0/ru/api/models/qwenimage21_transformer2d#diffusers.QwenImage21Transformer2DModel)) : Однопоточный блок-каузальный трансформер, выполняющий денойзинг латентов.

sample_sigmas (`list[float]`, *optional*) : Сигмы по умолчанию, настроенные автором модели, за исключением конечной сигмы. Их длина определяет количество шагов денойзинга. Чтобы экспериментировать с другой сеткой во время выполнения, передайте `sigmas` в `__call__`.

Генерация изображений по тексту и с условием на изображение с помощью Qwen-Image 2.1.

Изображения промпта и условия кодируются совместно моделью Qwen3-VL, поэтому изображение условия занимает слоты зрения, зарезервированные для него кодировщиком, а трансформер видит одну чередующуюся последовательность текста и изображений.

#### __call__[[diffusers.QwenImage21Pipeline.__call__]]

```python
__call__(prompt: str | list[str] = None, image: typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor], NoneType] = None, negative_prompt: str | list[str] = None, true_cfg_scale: float = 1.0, height: int | None = None, width: int | None = None, num_inference_steps: int = 40, sigmas: list[float] | None = None, num_images_per_prompt: int = 1, generator: typing.Union[torch.Generator, list[torch.Generator], NoneType] = None, latents: typing.Optional[torch.Tensor] = None, prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_embeds_mask: typing.Optional[torch.Tensor] = None, negative_prompt_embeds: typing.Optional[torch.Tensor] = None, negative_prompt_embeds_mask: typing.Optional[torch.Tensor] = None, output_type: str | None = 'pil', return_dict: bool = True, attention_kwargs: dict[str, typing.Any] | None = None, callback_on_step_end: typing.Optional[typing.Callable[[int, int, dict], NoneType]] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], output_resolution: int = 1024, use_kv_cache: bool = True)
```

[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/qwenimage21/pipeline_qwenimage21.py#L509)

**Параметры:**

prompt (`str` или `list[str]`, *необязательный*) : Промпт для управления генерацией изображения. Вместо этого передайте `prompt_embeds`, чтобы напрямую указать эмбеддинги.

image (`PipelineImageInput`, *необязательный*) : Одно или несколько изображений-условий, в формате PIL-изображения или массива numpy. Они кодируются текстовым энкодером как визуальный контекст и VAE в латентные токены, добавляемые перед шумом. Список представляет собой один набор изображений, общий для всех промптов в батче, а не один элемент на каждый промпт.

negative_prompt (`str` или `list[str]`, *необязательный*) : Промпт, который не должен направлять генерацию изображения. Игнорируется, если `true_cfg_scale` не больше 1.

true_cfg_scale (`float`, *optional*, по умолчанию 1.0) : Масштаб classifier-free guidance. Включается при `true_cfg_scale > 1` в сочетании с негативным промптом. Qwen-Image 2.1 предназначен для сэмплирования без guidance, поэтому значение по умолчанию равно 1.0.

height (`int`, *optional*) : Высота сгенерированного изображения в пикселях. Если не указано, вычисляется на основе соотношения сторон исходного изображения.

width (`int`, *optional*) : Ширина сгенерированного изображения в пикселях. Если не указано, вычисляется на основе соотношения сторон исходного изображения.

num_inference_steps (`int`, *optional*, по умолчанию 40) : Количество шагов денойзинга. Игнорируется, если используется `sigmas` или настроенный для пайплайна `sample_sigmas`; количество шагов определяется длиной этого расписания.

sigmas (`list[float]`, *optional*) : Сигмы сэмплирования, которые следует использовать в этом вызове, за исключением терминальной сигмы. Переопределяет настроенные в пайплайне `sample_sigmas` и определяет количество шагов денойзинга. Планировщик применяет к этим значениям свою настроенную обработку.

num_images_per_prompt (`int`, *необязательный*, по умолчанию 1) : Количество изображений, генерируемых на один запрос.

generator (`torch.Generator` или `list[torch.Generator]`, *необязательно*) : Генератор(ы) для обеспечения детерминированности генерации.

latents (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные зашумленные латенты.

prompt_embeds (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные текстовые эмбеддинги, которые пропускают кодирование промпта. Передавайте вместе с ними `prompt_embeds_mask`.

prompt_embeds_mask (`torch.Tensor`, *необязательный*) : Булева маска, отмечающая валидные позиции `prompt_embeds`.

negative_prompt_embeds (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные эмбеддинги отрицательного текста, используются вместо `negative_prompt`. Передавайте вместе с ними `negative_prompt_embeds_mask`.

negative_prompt_embeds_mask (`torch.Tensor`, *необязательный*) : Булева маска, отмечающая валидные позиции `negative_prompt_embeds`.

output_type (`str`, *необязательный*, по умолчанию `"pil"`) : Формат вывода, `"pil"`, `"np"`, `"pt"` или `"latent"`.

return_dict (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли `~pipelines.qwenimage.QwenImagePipelineOutput` вместо обычного кортежа.

attention_kwargs (`dict`, *необязательный*) : Передаётся в процессор внимания.

callback_on_step_end (`Callable`, *необязательный*) : Вызывается в конце каждого шага денойзинга.

callback_on_step_end_tensor_inputs (`list[str]`, *необязательный*, по умолчанию `["latents"]`) : Тензоры из цикла денойзинга, передаваемые в `callback_on_step_end`. Они должны быть перечислены в `_callback_tensor_inputs` пайплайна.

output_resolution (`int`, *optional*, по умолчанию 1024) : Целевая сторона, используемая для определения `height`/`width` и изменения размера условных изображений.

use_kv_cache (`bool`, *необязательный*, по умолчанию `True`) : Кэшировать ключи и значения для текста и условного изображения после первого шага. Это допустимо, так как `causal_condition` модулирует эти токены начиная с `t = 0`, что делает их активации независимыми от шага. Изменение этого параметра не воспроизводит то же самое изображение побитово в пониженной точности. Кэширование приводит к тому, что на шаге декодирования внимание обращается к последовательности с другой раскладкой, чем на шаге префилла, в результате чего тайлы формируются по-разному и попадают на разные значения округления; оба варианта совпадают с эталонным fp32-результатом с той же допустимой погрешностью. Различие в один ULP на первом блоке затем усиливается 32 блоками и каждым шагом сэмплера, поэтому оба режима дают равнозначно валидные, но визуально различимые выборки. Чтобы зафиксировать конкретную выборку, зафиксируйте значение этого флага.

**Возвращает:** `~pipelines.qwenimage.QwenImagePipelineOutput` или `tuple`

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

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

Примеры:
```py
>>> import torch
>>> from diffusers import QwenImage21Pipeline

>>> pipe = QwenImage21Pipeline.from_pretrained("Qwen/Qwen-Image-2.1", dtype=torch.bfloat16)
>>> pipe.to("cuda")
>>> prompt = "A capybara wearing a wizard hat, reading a book by candlelight, oil painting"
>>> image = pipe(prompt).images[0]
>>> image.save("qwenimage21.png")
```

#### encode_prompt[[diffusers.QwenImage21Pipeline.encode_prompt]]

```python
encode_prompt(prompt: str | list[str], image: list[typing.Union[PIL.Image.Image, numpy.ndarray, torch.Tensor, list[PIL.Image.Image], list[numpy.ndarray], list[torch.Tensor]]] | None = None, device: typing.Optional[torch.device] = None, num_images_per_prompt: int = 1, prompt_embeds: typing.Optional[torch.Tensor] = None, prompt_embeds_mask: typing.Optional[torch.Tensor] = None, image_pad_mask: typing.Optional[torch.Tensor] = None)
```

[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/qwenimage21/pipeline_qwenimage21.py#L339)

**Параметры:**

prompt (`str` или `list[str]`, *необязательный*) : Промпт для кодирования.

image (`list[PipelineImageInput]`, *необязательный*) : Изображения-условия для кодирования вместе с промптом.

device (`torch.device`) : Устройство Torch.

num_images_per_prompt (`int`) : Количество изображений, генерируемых на один запрос.

prompt_embeds (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные текстовые эмбеддинги. При указании пропускает кодирование.

## QwenImagePipelineOutput[[diffusers.pipelines.qwenimage.pipeline_output.QwenImagePipelineOutput]]

#### diffusers.pipelines.qwenimage.pipeline_output.QwenImagePipelineOutput[[diffusers.pipelines.qwenimage.pipeline_output.QwenImagePipelineOutput]]

```python
diffusers.pipelines.qwenimage.pipeline_output.QwenImagePipelineOutput(images: list[PIL.Image.Image] | numpy.ndarray)
```

[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/pipelines/qwenimage/pipeline_output.py#L10)

**Параметры:**

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

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

## QwenImage21ModularPipeline[[diffusers.QwenImage21ModularPipeline]]

#### diffusers.QwenImage21ModularPipeline[[diffusers.QwenImage21ModularPipeline]]

```python
diffusers.QwenImage21ModularPipeline(blocks: diffusers.modular_pipelines.modular_pipeline.ModularPipelineBlocks | None = None, pretrained_model_name_or_path: str | os.PathLike | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, modular_config_dict: dict[str, typing.Any] | None = None, config_dict: dict[str, typing.Any] | None = None, **kwargs)
```

[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/qwenimage21/modular_pipeline.py#L23)

Модульный ModularPipeline для Qwen-Image 2.1.

## QwenImage21AutoBlocks[[diffusers.QwenImage21AutoBlocks]]

#### diffusers.QwenImage21AutoBlocks[[diffusers.QwenImage21AutoBlocks]]

```python
diffusers.QwenImage21AutoBlocks()
```

[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/qwenimage21/modular_blocks_qwenimage21.py#L497)

Auto Модульный конвейер для генерации изображений по тексту и условной генерации на основе изображений с использованием Qwen-Image 2.1.
- для генерации изображений по тексту достаточно указать `prompt`
- для генерации с условием по изображению необходимо указать `prompt` и `image` (одно изображение или список)

Поддерживаемые рабочие процессы:
- `text2image`: требуется `prompt`
- `image_conditioned`: требуется `prompt`, `image`

Компоненты: image_processor (`VaeImageProcessor`) text_encoder (`Qwen3VLForConditionalGeneration`) processor (`Qwen3VLProcessor`) vae (`AutoencoderKLQwenImage21`) scheduler (`FlowMatchEulerDiscreteScheduler`) guider (`ClassifierFreeGuidance`) transformer (`QwenImage21Transformer2DModel`)

Входные данные: image (`Image | list`, *необязательный*): Справочное изображение или список изображений для процесса денойзинга. Может быть одним изображением или списком изображений. output_resolution (`int`, *необязательный*, по умолчанию 1024): Целевая длина стороны, используемая для определения размера вывода и изменения размера условных изображений. prompt (`str`): Промпт или промпты для управления генерацией изображения. negative_prompt (`str`, *необязательный*): Промпт или промпты, которые не должны направлять генерацию изображения. generator (`Generator`, *необязательный*): Генератор Torch для детерминированной генерации. num_images_per_prompt (`int`, *необязательный*, по умолчанию 1): Количество изображений для генерации на каждый промпт. height (`int`, *необязательный*): Высота сгенерированного изображения в пикселях. width (`int`, *необязательный*): Ширина сгенерированного изображения в пикселях. image_latents (`list`, *необязательный*): Нормализованные латенты каждого условного изображения. Могут быть сгенерированы на шаге vae_encoder. latents (`Tensor`): Предварительно сгенерированные зашумленные латенты для генерации изображения. num_inference_steps (`int`): Количество шагов денойзинга. sigmas (`list`, *необязательный*): Пользовательские сигмы для процесса денойзинга. use_kv_cache (`bool`, *необязательный*, по умолчанию True): Кэшировать ключи и значения текста и условных изображений после первого шага. Это допустимо, так как `causal_condition` модулирует эти токены начиная с `t = 0`, что делает их активации независимыми от шага. Переключение этого параметра не воспроизводит то же самое изображение побитово в режиме пониженной точности. attention_kwargs (`dict`, *необязательный*): Дополнительные аргументы для процессоров внимания. **denoiser_input_fields (`None`, *необязательный*): входные данные условной модели для денойзера: например, prompt_embeds, negative_prompt_embeds и т. д. output_type (`str`, *необязательный*, по умолчанию pil): Формат вывода: 'pil', 'np', 'pt'.

Вывод: изображения (`list`): сгенерированные изображения.

## QwenImage21TurboModularPipeline[[diffusers.QwenImage21TurboModularPipeline]]

#### diffusers.QwenImage21TurboModularPipeline[[diffusers.QwenImage21TurboModularPipeline]]

```python
diffusers.QwenImage21TurboModularPipeline(blocks: diffusers.modular_pipelines.modular_pipeline.ModularPipelineBlocks | None = None, pretrained_model_name_or_path: str | os.PathLike | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, modular_config_dict: dict[str, typing.Any] | None = None, config_dict: dict[str, typing.Any] | None = None, **kwargs)
```

[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/qwenimage21/modular_pipeline.py#L54)

ModularPipeline для Qwen-Image 2.1 Turbo — ускоренная контрольная точка, которая генерирует образы за несколько шагов без направляющего сигнала.

## QwenImage21TurboAutoBlocks[[diffusers.QwenImage21TurboAutoBlocks]]

#### diffusers.QwenImage21TurboAutoBlocks[[diffusers.QwenImage21TurboAutoBlocks]]

```python
diffusers.QwenImage21TurboAutoBlocks()
```

[Источник](https://github.com/huggingface/diffusers/blob/v0.43.0/src/diffusers/modular_pipelines/qwenimage21/modular_blocks_qwenimage21_turbo.py#L466)

Auto Модульный конвейер для генерации изображений по тексту и условной генерации на основе изображений с использованием Qwen-Image 2.1 Turbo, ускоренной контрольной точки, которая выполняет выборку из поставляемой сетки сигма за несколько шагов без направляющего сигнала.
- для генерации изображений по тексту достаточно указать `prompt`
- для генерации с условием по изображению необходимо указать `prompt` и `image` (одно изображение или список)

Поддерживаемые рабочие процессы:
- `text2image`: требуется `prompt`
- `image_conditioned`: требуется `prompt`, `image`

Компоненты: image_processor (`VaeImageProcessor`) text_encoder (`Qwen3VLForConditionalGeneration`) processor (`Qwen3VLProcessor`) vae (`AutoencoderKLQwenImage21`) scheduler (`FlowMatchEulerDiscreteScheduler`) transformer (`QwenImage21Transformer2DModel`)

Конфигурации: sample_sigmas (по умолчанию: None): сетка дискретизации, поставляемая с контрольной точкой, используется, если `sigmas` не передан.

Входные данные: image (`Image | list`, *необязательный*): Справочное изображение или список изображений для процесса денойзинга. Может быть одним изображением или списком изображений. output_resolution (`int`, *необязательный*, по умолчанию 1024): Целевая длина стороны, используемая для определения размера вывода и изменения размера условных изображений. prompt (`str`): Промпт или промпты для управления генерацией изображений. generator (`Generator`, *необязательный*): Генератор Torch для детерминированной генерации. num_images_per_prompt (`int`, *необязательный*, по умолчанию 1): Количество изображений, генерируемых на каждый промпт. height (`int`, *необязательный*): Высота сгенерированного изображения в пикселях. width (`int`, *необязательный*): Ширина сгенерированного изображения в пикселях. image_latents (`list`, *необязательный*): Нормализованные латенты каждого условного изображения. Могут быть сгенерированы на шаге vae_encoder. latents (`Tensor`): Предварительно сгенерированные зашумленные латенты для генерации изображений. num_inference_steps (`int`): Количество шагов денойзинга. sigmas (`list`, *необязательный*): Пользовательские сигмы для процесса денойзинга. use_kv_cache (`bool`, *необязательный*, по умолчанию True): Кэшировать ключи и значения текста и условных изображений после первого шага. Это допустимо, так как `causal_condition` модулирует эти токены начиная с `t = 0`, что делает их активации независимыми от шага. Переключение этого параметра не воспроизводит то же самое изображение побитово при пониженной точности. attention_kwargs (`dict`, *необязательный*): Дополнительные аргументы для процессоров внимания. **denoiser_input_fields (`None`, *необязательный*): входные данные условной модели для денойзера: например, prompt_embeds, negative_prompt_embeds и т. д. output_type (`str`, *необязательный*, по умолчанию pil): Формат вывода: 'pil', 'np', 'pt'.

Вывод: изображения (`list`): сгенерированные изображения.

