Buckets:

mishig's picture
|
download
raw
34.2 kB
# Flux2
Flux.2 — это недавняя серия моделей генерации изображений от Black Forest Labs, предшественником которой была серия [Flux.1](./flux). Это совершенно новая модель с новой архитектурой, обученная с нуля!
Оригинальные контрольные точки модели Flux можно найти [здесь](https://huggingface.co/black-forest-labs). Исходный код для инференса доступен [здесь](https://github.com/black-forest-labs/flux2).
> [!TIP]
> Запуск Flux2 на потребительском оборудовании может быть довольно затратным. Однако вы можете применить набор оптимизаций, чтобы ускорить работу и снизить требования к памяти. Подробности изложены в [этом разделе](https://huggingface.co/blog/sd3#memory-optimizations-for-sd3). Кроме того, Flux может выиграть от квантования с точки зрения эффективности использования памяти, что, однако, приводит к увеличению задержки вывода. Подробнее см. в [этой статье](https://huggingface.co/blog/quanto-diffusers).
>
> [Кэширование](../../optimization/cache) также может ускорить инференс за счёт хранения и повторного использования промежуточных результатов.
## Увеличение разрешения подписей
Flux.2 потенциально способен генерировать более качественные результаты при использовании улучшенных промптов. Мы можем «апсэмплировать» входной промпт, задав аргумент `caption_upsample_temperature` в параметрах вызова пайплайна. [Официальная реализация](https://github.com/black-forest-labs/flux2/blob/5a5d316b1b42f6b59a8c9194b77c8256be848432/src/flux2/text_encoder.py#L140) рекомендует использовать значение 0.15.
## Flux2Pipeline[[diffusers.Flux2Pipeline]]
#### diffusers.Flux2Pipeline[[diffusers.Flux2Pipeline]]
```python
diffusers.Flux2Pipeline(scheduler: FlowMatchEulerDiscreteScheduler, vae: AutoencoderKLFlux2, text_encoder: Mistral3ForConditionalGeneration, tokenizer: AutoProcessor, transformer: Flux2Transformer2DModel)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/flux2/pipeline_flux2.py#L251)
**Параметры:**
transformer ([Flux2Transformer2DModel](/docs/diffusers/main/ru/api/models/flux2_transformer#diffusers.Flux2Transformer2DModel)) : архитектура условного Transformer (MMDiT) для удаления шума из закодированных латентов изображения.
scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/ru/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : планировщик, используемый в связке с `transformer` для удаления шума из закодированных латентов изображения.
vae (`AutoencoderKLFlux2`) : Модель вариационного автоэнкодера (VAE) для кодирования изображений в латентные представления и декодирования из них.
text_encoder (`Mistral3ForConditionalGeneration`) : [Mistral3ForConditionalGeneration](https://huggingface.co/docs/transformers/en/model_doc/mistral3#transformers.Mistral3ForConditionalGeneration)
tokenizer (`AutoProcessor`) : Токенизатор класса [PixtralProcessor](https://huggingface.co/docs/transformers/en/model_doc/pixtral#transformers.PixtralProcessor).
Пайплайн Flux2 для генерации изображений по тексту.
Справочная информация: [https://bfl.ai/blog/flux-2](https://bfl.ai/blog/flux-2)
#### __call__[[diffusers.Flux2Pipeline.__call__]]
```python
__call__(image: PIL.Image.Image | list[PIL.Image.Image] | None = None, prompt: str | list[str] = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 50, sigmas: list[float] | None = None, guidance_scale: float | None = 4.0, 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, 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], NoneType]] = None, callback_on_step_end_tensor_inputs: list[str] = ['latents'], max_sequence_length: int = 512, text_encoder_out_layers: tuple[int] = (10, 20, 30), caption_upsample_temperature: float = None)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/flux2/pipeline_flux2.py#L746)
**Параметры:**
image (`torch.Tensor`, `PIL.Image.Image`, `np.ndarray`, `list[torch.Tensor]`, `list[PIL.Image.Image]` или `list[np.ndarray]`) : `Image`, массив numpy или тензор, представляющие пакет изображений, который будет использоваться в качестве начальной точки. Для массивов numpy и тензоров pytorch ожидаемый диапазон значений составляет `[0, 1]`. Если передается тензор или список тензоров, ожидаемая форма должна быть `(B, C, H, W)` или `(C, H, W)`. Если передается массив numpy или список массивов, ожидаемая форма должна быть `(B, H, W, C)` или `(H, W, C)`. Также можно передавать латенты изображений в качестве `image`, но при прямой передаче латентов они не кодируются повторно.
prompt (`str` или `list[str]`, *необязательный*) : Промпт или промпты для управления генерацией изображения. Если не задан, необходимо передать `prompt_embeds` вместо него.
guidance_scale (`float`, *optional*, по умолчанию 1.0) : Встроенный масштаб руководства (embedded guidance scale) включается при установке `guidance_scale` > 1. Более высокое значение `guidance_scale` побуждает модель генерировать изображения, более точно соответствующие `prompt`, за счёт снижения качества изображения. Модели, дистиллированные по руководству (guidance-distilled), аппроксимируют истинное классификаторно-свободное руководство (classifier-free guidance) для `guidance_scale` > 1. Подробнее см. в [статье](https://huggingface.co/papers/2210.03142).
height (`int`, *optional*, по умолчанию self.unet.config.sample_size * self.vae_scale_factor) : Высота генерируемого изображения в пикселях. По умолчанию установлено значение 1024 для достижения наилучших результатов.
width (`int`, *optional*, по умолчанию self.unet.config.sample_size * self.vae_scale_factor) : Ширина генерируемого изображения в пикселях. По умолчанию установлено значение 1024 для достижения наилучших результатов.
num_inference_steps (`int`, *optional*, по умолчанию 50) : Количество шагов денойзинга. Как правило, большее число шагов денойзинга приводит к изображению более высокого качества, но за счёт более медленного вывода.
sigmas (`list[float]`, *optional*) : Пользовательские сигмы для процесса денойзинга в планировщиках, поддерживающих аргумент `sigmas` в методе `set_timesteps`. Если не задано, будет использовано поведение по умолчанию при передаче `num_inference_steps`.
num_images_per_prompt (`int`, *необязательный*, по умолчанию 1) : Количество изображений, генерируемых на один запрос.
generator (`torch.Generator` или `list[torch.Generator]`, *необязательный*) : Один или список [генераторов torch](https://pytorch.org/docs/stable/generated/torch.Generator.html) для обеспечения детерминированности генерации.
latents (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные зашумленные латенты, выбранные из гауссова распределения, которые используются в качестве входных данных для генерации изображений. Можно использовать, чтобы скорректировать одну и ту же генерацию с разными промптами. Если не предоставлены, тензор латентов будет сгенерирован путём выборки с использованием переданного случайного `generator`.
prompt_embeds (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, *например* для взвешивания промпта. Если не предоставлены, текстовые эмбеддинги будут сгенерированы из входного аргумента `prompt`.
output_type (`str`, *необязательный*, по умолчанию `"pil"`) : Формат вывода для генерируемого изображения. Выберите между [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` или `np.array`.
return_dict (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли `~pipelines.qwenimage.QwenImagePipelineOutput` вместо обычного кортежа.
attention_kwargs (`dict`, *необязательный*) : Словарь kwargs, который при указании передается в `AttentionProcessor`, определенный в `self.processor` в [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).
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` по умолчанию 512) : Максимальная длина последовательности, используемая с `prompt`.
text_encoder_out_layers (`tuple[int]`) : Индексы слоёв, используемые в `text_encoder` для получения финальных эмбеддингов промпта.
caption_upsample_temperature (`float`) : Если указано, мы будем пытаться выполнять апсемплинг подписей для потенциального улучшения результатов. Мы рекомендуем установить значение 0.15, если планируется выполнение апсемплинга подписей.
**Возвращает:** `~pipelines.flux2.Flux2PipelineOutput` или `tuple`
`~pipelines.flux2.Flux2PipelineOutput`, если `return_dict` равно True, иначе `tuple`. При возврате кортежа первым элементом является список с сгенерированными изображениями.
Функция, вызываемая при обращении к конвейеру для генерации.
Примеры:
```py
>>> import torch
>>> from diffusers import Flux2Pipeline
>>> pipe = Flux2Pipeline.from_pretrained("black-forest-labs/FLUX.2-dev", torch_dtype=torch.bfloat16)
>>> pipe.to("cuda")
>>> prompt = "A cat holding a sign that says hello world"
>>> # Depending on the variant being used, the pipeline call will slightly vary.
>>> # Refer to the pipeline documentation for more details.
>>> image = pipe(prompt, num_inference_steps=50, guidance_scale=2.5).images[0]
>>> image.save("flux.png")
```
## Flux2KleinPipeline[[diffusers.Flux2KleinPipeline]]
#### diffusers.Flux2KleinPipeline[[diffusers.Flux2KleinPipeline]]
```python
diffusers.Flux2KleinPipeline(scheduler: FlowMatchEulerDiscreteScheduler, vae: AutoencoderKLFlux2, text_encoder: Qwen3ForCausalLM, tokenizer: Qwen2Tokenizer, transformer: Flux2Transformer2DModel, is_distilled: bool = False)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/flux2/pipeline_flux2_klein.py#L155)
**Параметры:**
transformer ([Flux2Transformer2DModel](/docs/diffusers/main/ru/api/models/flux2_transformer#diffusers.Flux2Transformer2DModel)) : архитектура условного Transformer (MMDiT) для удаления шума из закодированных латентов изображения.
scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/ru/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : планировщик, используемый в связке с `transformer` для удаления шума из закодированных латентов изображения.
vae (`AutoencoderKLFlux2`) : Модель вариационного автоэнкодера (VAE) для кодирования изображений в латентные представления и декодирования из них.
text_encoder (`Qwen3ForCausalLM`) : [Qwen3ForCausalLM](https://huggingface.co/docs/transformers/en/model_doc/qwen3#transformers.Qwen3ForCausalLM)
tokenizer (`Qwen2TokenizerFast`) : Токенизатор класса [Qwen2TokenizerFast](https://huggingface.co/docs/transformers/en/model_doc/qwen2#transformers.Qwen2TokenizerFast).
Пайплайн Flux2 Klein для генерации изображений по тексту.
Ссылка: [https://bfl.ai/blog/flux2-klein-towards-interactive-visual-intelligence](https://bfl.ai/blog/flux2-klein-towards-interactive-visual-intelligence)
#### __call__[[diffusers.Flux2KleinPipeline.__call__]]
```python
__call__(image: list[PIL.Image.Image] | PIL.Image.Image | None = None, prompt: str | list[str] = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 50, sigmas: list[float] | None = None, guidance_scale: float = 4.0, 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, negative_prompt_embeds: str | list[str] | None = None, output_type: str = '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'], max_sequence_length: int = 512, text_encoder_out_layers: tuple[int] = (9, 18, 27))
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/flux2/pipeline_flux2_klein.py#L614)
**Параметры:**
image (`torch.Tensor`, `PIL.Image.Image`, `np.ndarray`, `List[torch.Tensor]`, `List[PIL.Image.Image]` или `List[np.ndarray]`) : `Image`, массив numpy или тензор, представляющие пакет изображений, который будет использоваться в качестве начальной точки. Для массивов numpy и тензоров pytorch ожидаемый диапазон значений составляет `[0, 1]`. Если передан тензор или список тензоров, ожидаемая форма должна быть `(B, C, H, W)` или `(C, H, W)`. Если передан массив numpy или список массивов, ожидаемая форма должна быть `(B, H, W, C)` или `(H, W, C)`. Также можно передавать латенты изображений в качестве `image`, но при прямой передаче латентов они не кодируются повторно.
prompt (`str` или `List[str]`, *необязательный*) : Промпт или промпты для управления генерацией изображения. Если не задан, необходимо передать `prompt_embeds` вместо него.
guidance_scale (`float`, *optional*, по умолчанию 4.0) : Масштаб руководства, как определено в [Classifier-Free Diffusion Guidance](https://huggingface.co/papers/2207.12598). `guidance_scale` определяется как `w` из уравнения 2. в [Imagen Paper](https://huggingface.co/papers/2205.11487). Масштаб руководства активируется при установке `guidance_scale > 1`. Более высокий масштаб руководства способствует генерации изображений, тесно связанных с текстовым `prompt`, обычно за счёт снижения качества изображения. Для пошагово дистиллированных моделей `guidance_scale` игнорируется.
height (`int`, *optional*, по умолчанию self.unet.config.sample_size * self.vae_scale_factor) : Высота генерируемого изображения в пикселях. По умолчанию установлено значение 1024 для достижения наилучших результатов.
width (`int`, *optional*, по умолчанию self.unet.config.sample_size * self.vae_scale_factor) : Ширина генерируемого изображения в пикселях. По умолчанию установлено значение 1024 для достижения наилучших результатов.
num_inference_steps (`int`, *optional*, по умолчанию 50) : Количество шагов денойзинга. Как правило, большее число шагов денойзинга приводит к изображению более высокого качества, но за счёт более медленного вывода.
sigmas (`List[float]`, *необязательный*) : Пользовательские сигмы для процесса денуазинга в планировщиках, поддерживающих аргумент `sigmas` в методе `set_timesteps`. Если не задано, будет использоваться поведение по умолчанию при передаче `num_inference_steps`.
num_images_per_prompt (`int`, *необязательный*, по умолчанию 1) : Количество изображений, генерируемых на один запрос.
generator (`torch.Generator` или `List[torch.Generator]`, *необязательный*) : Один или список [генераторов torch](https://pytorch.org/docs/stable/generated/torch.Generator.html) для обеспечения детерминированности генерации.
latents (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные зашумленные латенты, выбранные из гауссова распределения, которые используются в качестве входных данных для генерации изображений. Можно использовать, чтобы скорректировать одну и ту же генерацию с разными промптами. Если не предоставлены, тензор латентов будет сгенерирован путём выборки с использованием переданного случайного `generator`.
prompt_embeds (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные текстовые эмбеддинги. Можно использовать для простой настройки текстовых входных данных, *например* для взвешивания промпта. Если не предоставлены, текстовые эмбеддинги будут сгенерированы из входного аргумента `prompt`.
negative_prompt_embeds (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные отрицательные текстовые эмбеддинги. Обратите внимание, что в этом конвейере в качестве отрицательного промпта используется "". Если значение не указано, оно будет сгенерировано из "".
output_type (`str`, *необязательный*, по умолчанию `"pil"`) : Формат вывода для генерируемого изображения. Выберите между [PIL](https://pillow.readthedocs.io/en/stable/): `PIL.Image.Image` или `np.array`.
return_dict (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли `~pipelines.qwenimage.QwenImagePipelineOutput` вместо обычного кортежа.
attention_kwargs (`dict`, *необязательный*) : Словарь kwargs, который при указании передается в `AttentionProcessor`, определенный в `self.processor` в [diffusers.models.attention_processor](https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/attention_processor.py).
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` по умолчанию 512) : Максимальная длина последовательности, используемая с `prompt`.
text_encoder_out_layers (`tuple[int]`) : Индексы слоёв, используемые в `text_encoder` для получения финальных эмбеддингов промпта.
**Возвращает:** `~pipelines.flux2.Flux2PipelineOutput` или `tuple`
`~pipelines.flux2.Flux2PipelineOutput`, если `return_dict` равно True, иначе `tuple`. При возврате кортежа первым элементом является список с сгенерированными изображениями.
Функция, вызываемая при обращении к конвейеру для генерации.
Примеры:
```py
>>> import torch
>>> from diffusers import Flux2KleinPipeline
>>> pipe = Flux2KleinPipeline.from_pretrained(
... "black-forest-labs/FLUX.2-klein-base-9B", torch_dtype=torch.bfloat16
... )
>>> pipe.to("cuda")
>>> prompt = "A cat holding a sign that says hello world"
>>> # Depending on the variant being used, the pipeline call will slightly vary.
>>> # Refer to the pipeline documentation for more details.
>>> image = pipe(prompt, num_inference_steps=50, guidance_scale=4.0).images[0]
>>> image.save("flux2_output.png")
```
## Flux2KleinKVPipeline[[diffusers.Flux2KleinKVPipeline]]
#### diffusers.Flux2KleinKVPipeline[[diffusers.Flux2KleinKVPipeline]]
```python
diffusers.Flux2KleinKVPipeline(scheduler: FlowMatchEulerDiscreteScheduler, vae: AutoencoderKLFlux2, text_encoder: Qwen3ForCausalLM, tokenizer: Qwen2Tokenizer, transformer: Flux2Transformer2DModel, is_distilled: bool = True)
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/flux2/pipeline_flux2_klein_kv.py#L155)
**Параметры:**
transformer ([Flux2Transformer2DModel](/docs/diffusers/main/ru/api/models/flux2_transformer#diffusers.Flux2Transformer2DModel)) : архитектура условного Transformer (MMDiT) для удаления шума из закодированных латентов изображения.
scheduler ([FlowMatchEulerDiscreteScheduler](/docs/diffusers/main/ru/api/schedulers/flow_match_euler_discrete#diffusers.FlowMatchEulerDiscreteScheduler)) : планировщик, используемый в связке с `transformer` для удаления шума из закодированных латентов изображения.
vae (`AutoencoderKLFlux2`) : Модель вариационного автоэнкодера (VAE) для кодирования изображений в латентные представления и декодирования из них.
text_encoder (`Qwen3ForCausalLM`) : [Qwen3ForCausalLM](https://huggingface.co/docs/transformers/en/model_doc/qwen3#transformers.Qwen3ForCausalLM)
tokenizer (`Qwen2TokenizerFast`) : Токенизатор класса [Qwen2TokenizerFast](https://huggingface.co/docs/transformers/en/model_doc/qwen2#transformers.Qwen2TokenizerFast).
Пайплайн Flux2 Klein KV для генерации изображений по тексту с использованием KV-кэшированного условия на основе референсного изображения.
На первом шаге удаления шума токены опорного изображения включаются в прямой проход, а их проекции K/V внимания кэшируются. На последующих шагах кэшированные K/V переиспользуются без повторного вычисления, что обеспечивает более быстрый вывод при использовании опорных изображений.
Ссылка: [https://bfl.ai/blog/flux2-klein-towards-interactive-visual-intelligence](https://bfl.ai/blog/flux2-klein-towards-interactive-visual-intelligence)
#### __call__[[diffusers.Flux2KleinKVPipeline.__call__]]
```python
__call__(image: list[PIL.Image.Image] | PIL.Image.Image | None = None, prompt: str | list[str] = None, height: int | None = None, width: int | None = None, num_inference_steps: int = 4, 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, output_type: str = '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'], max_sequence_length: int = 512, text_encoder_out_layers: tuple[int] = (9, 18, 27))
```
[Источник](https://github.com/huggingface/diffusers/blob/main/src/diffusers/pipelines/flux2/pipeline_flux2_klein_kv.py#L610)
**Параметры:**
image (`PIL.Image.Image` или `List[PIL.Image.Image]`, *необязательный*) : Справочное изображение(я) для условного формирования. На первом шаге денойзинга токены справочных изображений включаются в прямой проход, а их значения внимания K/V кэшируются. На последующих шагах кэшированные K/V переиспользуются без повторного вычисления.
prompt (`str` или `List[str]`, *необязательный*) : Промпт или промпты для управления генерацией изображения.
height (`int`, *необязательный*) : Высота генерируемого изображения в пикселях.
width (`int`, *необязательный*) : Ширина сгенерированного изображения в пикселях.
num_inference_steps (`int`, *optional*, по умолчанию 4) : Количество шагов денойзинга.
sigmas (`List[float]`, *необязательный*) : Пользовательские сигмы для расписания денойзинга.
num_images_per_prompt (`int`, *необязательный*, по умолчанию 1) : Количество изображений, генерируемых на один запрос.
generator (`torch.Generator` или `List[torch.Generator]`, *необязательный*) : Генератор(ы) для детерминированной генерации.
latents (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные зашумленные латенты.
prompt_embeds (`torch.Tensor`, *необязательный*) : Предварительно сгенерированные текстовые эмбеддинги.
output_type (`str`, *необязательный*, по умолчанию `"pil"`) : Формат вывода: `"pil"` или `"np"`.
return_dict (`bool`, *необязательный*, по умолчанию `True`) : Возвращать ли `Flux2PipelineOutput` или обычный кортеж.
attention_kwargs (`dict`, *необязательный*) : Дополнительные аргументы, передаваемые в обработчики внимания.
callback_on_step_end (`Callable`, *необязательный*) : Функция обратного вызова, вызываемая в конце каждого шага удаления шума.
callback_on_step_end_tensor_inputs (`List`, *необязательный*) : тензорные входные данные для функции обратного вызова.
max_sequence_length (`int`, по умолчанию 512) : Максимальная длина последовательности для промпта.
text_encoder_out_layers (`tuple[int]`) : Индексы слоёв для извлечения скрытых состояний текстового кодировщика.
**Возвращает:**
`~pipelines.flux2.Flux2PipelineOutput` или `tuple`.
Функция, вызываемая при обращении к конвейеру для генерации.
Примеры:
```py
>>> import torch
>>> from PIL import Image
>>> from diffusers import Flux2KleinKVPipeline
>>> pipe = Flux2KleinKVPipeline.from_pretrained(
... "black-forest-labs/FLUX.2-klein-9b-kv", torch_dtype=torch.bfloat16
... )
>>> pipe.to("cuda")
>>> ref_image = Image.open("reference.png")
>>> image = pipe("A cat dressed like a wizard", image=ref_image, num_inference_steps=4).images[0]
>>> image.save("flux2_kv_output.png")
```

Xet Storage Details

Size:
34.2 kB
·
Xet hash:
9d62060843919edf57b7246bb1e79f28d5f833d8b845aa5d603c60e71ab64350

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.