Buckets:

mishig's picture
|
download
raw
27.1 kB
#
# Licenciado sob a Apache License, Versão 2.0 (a "Licença");
# você não pode usar este arquivo, exceto em conformidade com a Licença.
# Você pode obter uma cópia da Licença em
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# A menos que exigido pela lei aplicável ou acordado por escrito, o software
# distribuído sob a Licença é distribuído em uma base "COMO ESTÁ",
# SEM GARANTIAS OU CONDIÇÕES DE QUALQUER TIPO, expressas ou implícitas.
# Consulte a Licença para o idioma específico que rege as permissões e
# limitações sob a Licença. -->
# FLUX 3 Image Klein
FLUX 3 Image Klein é um modelo de geração de imagens de 5,6B da Black Forest Labs: um único transformer ([Flux3Transformer2DModel](/docs/diffusers/main/pt/api/models/flux3_transformer#diffusers.Flux3Transformer2DModel)) gera imagens a partir de um prompt de texto, sozinho ou junto com uma ou mais imagens de referência. A condicionamento de texto vem do Qwen3-VL, e as imagens usam o autoencoder empacotado FLUX.2 (`AutoencoderKLFlux2`).
FLUX 3 Image Klein é distribuído como um [pipeline modular](../../modular_diffusers/overview). Comece com uma geração de imagem a partir de texto:
```python
import torch
from diffusers import ModularPipeline
pipe = ModularPipeline.from_pretrained("black-forest-labs/flux-3-image-klein-base")
pipe.load_components(dtype={"vae": torch.float32, "default": torch.bfloat16})
pipe.to("cuda")
image = pipe(
prompt="A red fox in a snow-covered forest clearing at golden hour",
generator=torch.Generator().manual_seed(0),
output="images",
)[0]
image.save("fox.png")
```
`prompt` é a única entrada obrigatória: o pipeline carrega as configurações de amostragem recomendadas (50 etapas, escala de orientação 3.5, deslocamento do agendador 6.93) e gera imagens de 1024 x 1024 por padrão. Ele aceita um prompt por chamada; use `num_images_per_prompt` para várias imagens do mesmo prompt.
Como você pode ver no exemplo acima, o carregamento e a execução diferem um pouco de um `DiffusionPipeline`. O carregamento é preguiçoso: [from_pretrained()](/docs/diffusers/main/pt/api/modular_diffusers/pipeline#diffusers.ModularPipeline.from_pretrained) apenas constrói o pipeline, e você chama [load_components()](/docs/diffusers/main/pt/api/modular_diffusers/pipeline#diffusers.ModularPipeline.load_components) para carregar os pesos. Uma chamada retorna o estado do pipeline, e você solicita o que precisa com `output`: `output="images"` aqui, ou `output=["images", "prompt"]` para também obter a legenda que o prompt upsampler escreveu.
> [!TIP]
> Se você está trabalhando com `ModularPipeline` pela primeira vez, leia o [quickstart](../../modular_diffusers/quickstart) e [Vindo do DiffusionPipeline](../../modular_diffusers/coming_from_diffusion_pipeline) se você conhece os pipelines padrão. Além do carregamento e das saídas, algumas outras coisas diferem: [guidance](#guidance-scale), [callbacks](#per-step-callbacks) e [offloading](#memory).
## Ampliação de prompt
O prompt importa: o FLUX 3 Image Klein aceita legendas completas de cena que descrevem o sujeito, a composição, a iluminação e a atmosfera, e não `prompt` curtos; uma solicitação enviada como digitada gera uma saída genérica. É por isso que o pipeline executa o upsampler de prompt primeiro em todas as solicitações, tanto para texto-para-imagem quanto para edição. Trata-se de um modelo separado de 9B da Black Forest Labs ([black-forest-labs/flux-3-image-klein-pup](https://huggingface.co/black-forest-labs/flux-3-image-klein-pup)) que expande `prompt` para uma legenda assim antes do codificador de texto, e um prompt curto é tudo o que é necessário.
O prompt upsampler transforma uma solicitação curta, junto com as imagens de referência durante a edição, na legenda completa da cena que o modelo recebe: meio e estilo, cena, iluminação e câmera, cada sujeito com suas cores, materiais e posição no quadro. Um único modelo cobre texto-para-imagem, edição com imagens de referência e layout com caixas. A legenda que ele escreveu retorna como a saída `prompt`. No exemplo acima, solicite-a junto com as imagens para ver o que o modelo de imagem recebeu:
```python
out = pipe(
prompt="A red fox in a snow-covered forest clearing at golden hour",
generator=torch.Generator().manual_seed(0),
output=["images", "prompt"],
)
print(out["prompt"])
```
```
Full-color outdoor wildlife photograph taken from a low eye-level perspective in a snow-covered forest clearing at golden hour. In the center foreground, a red fox stands in profile facing left, its body turned toward the viewer and its head raised as it looks across the clearing. The fox has dense rust-red winter fur, a white throat and chest, black lower legs, pointed ears with dark tips, and a long bushy tail ending in white. ...
```
A legenda completa tem cerca de 240 palavras; `max_new_tokens` limita seu comprimento (3584 por padrão).
Você pode imprimir o `doc` da etapa para ver o que ela recebe e o que ela grava:
```python
print(pipe.blocks.sub_blocks["prompt_upsampler"].doc)
```
```
Inputs:
prompt (`str`):
The edit instruction to expand into the full caption (one per call).
image (`Image | list`, *optional*):
The reference image(s) of the edit, at most 10; the same ones the pipeline receives.
boxes (`list`, *optional*):
Layout boxes, each {'id', 'desc', 'from', 'src_bbox', 'tgt_bbox'} with the boxes as [y_min, x_min, y_max, x_max] in
0-1: ...
max_new_tokens (`int`, *optional*, defaults to 3584):
The most tokens the upsampler may generate for the caption.
Outputs:
prompt (`str`):
The full caption, replacing the request.
```
Assim como os outros blocos do pipeline, o bloco `prompt_upsampler` também é executado de forma independente. A maneira recomendada é removê-lo dos blocos: o bloco removido se torna um upsampler autônomo, e os blocos restantes formam um pipeline que recebe a legenda expandida como `prompt`:
```python
blocks = ModularPipeline.from_pretrained("black-forest-labs/flux-3-image-klein-base").blocks
pup_block = blocks.sub_blocks.pop("prompt_upsampler")
pup = pup_block.init_pipeline("black-forest-labs/flux-3-image-klein-base")
pup.load_components(dtype=torch.bfloat16)
pup.to("cuda")
caption = pup(prompt="A red fox in a snow-covered forest clearing at golden hour", output="prompt")
pipe = blocks.init_pipeline("black-forest-labs/flux-3-image-klein-base")
pipe.load_components(dtype={"vae": torch.float32, "default": torch.bfloat16})
pipe.to("cuda")
image = pipe(prompt=caption, generator=torch.Generator().manual_seed(0), output="images")[0]
```
Dessa forma, ele pode ser servido como um estágio separado, em sua própria GPU ou atrás de seu próprio endpoint, e uma interface pode exibir a legenda que ele escreveu e permitir que o usuário a edite antes de gerar. Qualquer outro LLM pode substituir o upsampler, com os mesmos system prompts: forneça `system_prompts["t2i"]` do repositório do upsampler (ou `"i2i"`, com as referências primeiro na mensagem do usuário) como o system prompt e a solicitação como a mensagem do usuário, e passe a legenda que ele retorna como `prompt` para `pipe`.
## Imagem para imagem
Passe uma ou mais imagens de referência com `image`. Uma única referência é mantida inteira: ela é redimensionada apenas acima de 4 megapixels, preenchida até a grade de 16 pixels e a geração usa seu tamanho por padrão, de modo que a edição retorna no tamanho da entrada. Várias referências são ajustadas individualmente para menos de 1 megapixel e recortadas para a grade, e a geração usa o tamanho da primeira por padrão. Um `height`/`width` específico substitui o padrão. Descreva a imagem *alvo* como uma legenda completa da referência com sua edição incorporada, em vez de uma instrução de uma linha, ou deixe que o [prompt upsampler](#prompt-upsampling) a escreva a partir da instrução e das referências:
```python
night = pipe(
prompt="the same scene at night under a full moon",
image=image,
generator=torch.Generator().manual_seed(0),
output=["images", "prompt"],
)
```
Com várias referências, refira-se a elas como a primeira imagem, a segunda imagem, ... na ordem em que são passadas para `image`; a legenda as nomeia como `<ref_image_0>`, `<ref_image_1>`, ... para o modelo de imagem:
```python
combined = pipe(
prompt="the fox from the first image sitting on the wooden bench from the second image",
image=[image, bench],
height=768,
width=1360,
output="images",
)[0]
```
Pass `height` e/ou `width` para substituir o tamanho derivado.
## Controle de layout
Para posicionar o conteúdo explicitamente, passe `boxes`: para cada elemento, um `id`, uma `desc` curta e um `bbox` de `[y_min, x_min, y_max, x_max]` em 0-1 (origem no canto superior esquerdo), para que seja independente do tamanho da saída. O upsampler escreve a legenda ao redor deles, citando cada elemento como `<id>`, e anexa a tabela de boxes, mantendo os seus exatamente:
```python
boxes = [
{"id": "balloon_1", "desc": "a red and yellow striped hot-air balloon", "bbox": [0.08, 0.06, 0.48, 0.38]},
{"id": "balloon_2", "desc": "a small blue hot-air balloon", "bbox": [0.20, 0.62, 0.42, 0.80]},
]
out = pipe(prompt="hot-air balloons over a green valley at sunrise", boxes=boxes, output=["images", "prompt"])
```
Ao editar, uma caixa nomeia sua origem com `from`: `"target"` com um `tgt_bbox` adiciona um novo elemento ali, `"ref_image_0"` com um `src_bbox` e um `tgt_bbox` move um elemento daquela referência (caixas iguais o mantêm no lugar):
```python
boxes = [{"id": "cactus", "desc": "a small potted cactus", "from": "target", "src_bbox": None, "tgt_bbox": [0.55, 0.62, 0.85, 0.85]}]
out = pipe(prompt="add a small potted cactus in the marked spot", image=mug, boxes=boxes, output=["images", "prompt"])
boxes = [{"id": "knight", "desc": "the knight figure", "from": "ref_image_0", "src_bbox": [0.50, 0.15, 0.85, 0.35], "tgt_bbox": [0.19, 0.06, 0.54, 0.26]}]
out = pipe(prompt="move the knight up and to the left, keep the rest unchanged", image=knight, boxes=boxes, output=["images", "prompt"])
```
A legenda que o modelo de imagem lê tem os elementos marcados com `<id>` no texto e a tabela anexada como JSON, com as caixas em um canvas de 0 a 1000; imprima a saída de `prompt` para vê-la. Uma legenda escrita manualmente nesse formato vai para o pipeline sem a etapa, como em [Prompt upsampling](#prompt-upsampling).
## Escala de orientação
O pipeline aplica a orientação sem classificador por meio de seu componente `guider` e não aceita um argumento `guidance_scale` no momento da chamada. O guider padrão é [ClassifierFreeGuidance](/docs/diffusers/main/pt/api/modular_diffusers/guiders#diffusers.ClassifierFreeGuidance) com `guidance_scale=3.5`, a configuração recomendada para ambos os fluxos de trabalho. Para alterá-lo, crie uma cópia atualizada do guider:
```python
pipe.guider = pipe.guider.new(guidance_scale=5.0)
```
Consulte o [guia de guias](../../using-diffusers/guiders) para alternar para um método de orientação diferente.
## Modelo destilado por etapa
O checkpoint destilado por etapas gera em 16 passos sem classifier-free guidance. Seu transformer é um mapa de fluxo: em cada passo, ele recebe o timestep atual e aquele para o qual o passo salta. Ele é carregado como o modelo base (o `modular_model_index.json` do repositório resolve para [Flux3DistilledModularPipeline](/docs/diffusers/main/pt/api/pipelines/flux3#diffusers.Flux3DistilledModularPipeline) e [Flux3DistilledAutoBlocks](/docs/diffusers/main/pt/api/pipelines/flux3#diffusers.Flux3DistilledAutoBlocks)); o pipeline não possui `guider` e não aceita `negative_prompt`:
```python
pipe = ModularPipeline.from_pretrained("black-forest-labs/flux-3-image-klein")
pipe.load_components(dtype=torch.bfloat16)
pipe.to("cuda")
image = pipe(prompt=prompt, generator=torch.Generator().manual_seed(0), output="images")[0]
```
Ele atende aos mesmos dois fluxos de trabalho que o modelo base. `num_inference_steps` tem o valor padrão de 16; o modelo é treinado para 4 a 16 etapas.
## Geração reproduzível
Um `generator` fixa o ruído que o pipeline sorteia (veja [Reprodutibilidade](../../using-diffusers/reusing_seeds)). Para reutilizar um ruído sorteado em outro lugar, passe-o como `latents` com a forma `(batch_size, 128, height // 16, width // 16)`. Por exemplo, a [implementação da BFL](https://github.com/black-forest-labs/flux-3-image-klein) sorteia seu ruído como tokens de imagem na CPU e o converte para bf16; isso reproduz sua amostra para uma semente dada:
```python
height, width = 1024, 1024
h, w = height // 16, width // 16
noise = torch.randn((h * w, 128), generator=torch.Generator().manual_seed(0)).to(torch.bfloat16)
latents = noise.T.reshape(1, 128, h, w)
image = pipe(prompt=prompt, latents=latents, height=height, width=width, output="images")[0]
```
## Fluxos de trabalho
O pipeline atende a dois fluxos de trabalho, `text2image` e `image_conditioned`; o que é executado é selecionado pelas entradas (`image` seleciona image-to-image). [from_pretrained()](/docs/diffusers/main/pt/api/modular_diffusers/pipeline#diffusers.ModularPipeline.from_pretrained) também pode construir um pipeline para um fluxo de trabalho com o argumento `workflow`, que então espera e carrega apenas os componentes necessários para esse fluxo de trabalho:
```python
from diffusers.modular_pipelines import Flux3AutoBlocks
print(Flux3AutoBlocks().available_workflows)
# ["text2image", "image_conditioned"]
t2i = ModularPipeline.from_pretrained("black-forest-labs/flux-3-image-klein-base", workflow="text2image")
print(t2i.blocks.doc)
```
## Callbacks por etapa
Para usar uma função de callback existente, insira um bloco no loop de desruidificação. O [guia de callbacks](../../using-diffusers/callback#modular-pipelines) tem um exemplo simples com o bloco `CallbackOnStepEnd` e o auxiliar `walk_denoise_loops`:
```python
blocks = Flux3AutoBlocks() # or Flux3DistilledAutoBlocks
for loop in walk_denoise_loops(blocks):
loop.sub_blocks["callback"] = CallbackOnStepEnd()
pipe = blocks.init_pipeline("black-forest-labs/flux-3-image-klein-base")
image = pipe(prompt=caption, callback_on_step_end=my_callback, output="images")[0]
```
Para interromper precocemente, lance uma exceção a partir do callback; não existe a flag `interrupt`.
## Memória
Carregar tudo em bf16 consome cerca de 39 GB de pesos: o transformer tem 5,5B parâmetros, o codificador de texto Qwen3-VL-4B tem 4B e o [prompt upsampler](#prompt-upsampling) tem 9B (cerca de 19 GB por si só), com o VAE de imagem em fp32. Um pipeline construído sem a etapa de upsampler (veja lá) carrega cerca de 20 GB. Para GPUs com menos memória, habilite o offloading de componentes; o gerenciador move os componentes entre a CPU e a GPU conforme cada etapa os necessita, incluindo o upsampler:
```python
from diffusers import ComponentsManager, ModularPipeline
manager = ComponentsManager()
pipe = ModularPipeline.from_pretrained("black-forest-labs/flux-3-image-klein-base", components_manager=manager)
pipe.load_components(dtype={"vae": torch.float32, "default": torch.bfloat16})
manager.enable_auto_cpu_offload(device="cuda")
```
## Carregamento de arquivo único
[Flux3Transformer2DModel](/docs/diffusers/main/pt/api/models/flux3_transformer#diffusers.Flux3Transformer2DModel) carrega o transformer diretamente de um pacote de modelo da Black Forest Labs com [from_single_file()](/docs/diffusers/main/pt/api/loaders/single_file#diffusers.loaders.FromOriginalModelMixin.from_single_file). O pacote `config.json` não é lido; passe a configuração do diffusers com `config` e `subfolder`.
```python
import torch
from diffusers import Flux3Transformer2DModel, ModularPipeline
transformer = Flux3Transformer2DModel.from_single_file(
"https://huggingface.co/black-forest-labs/flux-3-image-klein-base/blob/main/model.safetensors",
config="black-forest-labs/flux-3-image-klein-base",
subfolder="transformer",
dtype=torch.bfloat16,
)
pipe = ModularPipeline.from_pretrained("black-forest-labs/flux-3-image-klein-base")
pipe.load_components(dtype={"vae": torch.float32, "default": torch.bfloat16})
pipe.update_components(transformer=transformer)
pipe.to("cuda")
```
Carregue primeiro os outros componentes pelo nome: [load_components()](/docs/diffusers/main/pt/api/modular_diffusers/pipeline#diffusers.ModularPipeline.load_components) sem `names` também carregaria o transformer do repositório do pipeline.
O carregamento dos checkpoints de arquivo único FP8r e NVFP4 também é suportado. Ambos são carregados por meio da mesma chamada com um [BFLQuantizationConfig](/docs/diffusers/main/pt/api/quantization#diffusers.BFLQuantizationConfig). Consulte o [guia de quantização BFL](../../quantization/bfl) para os requisitos de kernel de cada esquema.
```python
from diffusers import BFLQuantizationConfig
transformer = Flux3Transformer2DModel.from_single_file(
"https://huggingface.co/black-forest-labs/flux-3-image-klein-base/blob/main/variants/nvfp4/model.safetensors",
config="black-forest-labs/flux-3-image-klein-base",
subfolder="transformer",
quantization_config=BFLQuantizationConfig(compute_dtype=torch.bfloat16),
dtype=torch.bfloat16,
)
```
Ao carregar os checkpoints destilados por etapa, precisamos de seus configs (`flow_map=True`):
```python
transformer = Flux3Transformer2DModel.from_single_file(
"https://huggingface.co/black-forest-labs/flux-3-image-klein/blob/main/variants/nvfp4/model.safetensors",
config="black-forest-labs/flux-3-image-klein",
subfolder="transformer",
quantization_config=BFLQuantizationConfig(compute_dtype=torch.bfloat16),
dtype=torch.bfloat16,
)
```
## Flux3ModularPipeline[[diffusers.Flux3ModularPipeline]]
#### diffusers.Flux3ModularPipeline[[diffusers.Flux3ModularPipeline]]
```python
diffusers.Flux3ModularPipeline(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)
```
[Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/flux3/modular_pipeline.py#L24)
Uma ModularPipeline para FLUX.3.
## Flux3AutoBlocks[[diffusers.Flux3AutoBlocks]]
#### diffusers.Flux3AutoBlocks[[diffusers.Flux3AutoBlocks]]
```python
diffusers.Flux3AutoBlocks()
```
[Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/flux3/modular_blocks_flux3.py#L339)
Auto blocks que executam a geração de texto para imagem e imagem para imagem usando FLUX.3. O `prompt` passa primeiro pelo prompt upsampler; remova a etapa `prompt_upsampler` para codificá-lo como fornecido.
Fluxos de trabalho suportados:
- `text2image`: requer `prompt`
- `image_conditioned`: requer `prompt`, `image`
Componentes: prompt_upsampler (`Qwen3_5ForConditionalGeneration`): o prompt upsampler. prompt_upsampler_processor (`AutoProcessor`): seu processador. text_encoder (`Qwen3VLForConditionalGeneration`) tokenizer (`AutoProcessor`) image_processor (`Flux3ImageProcessor`) vae (`AutoencoderKLFlux2`) transformer (`Flux3Transformer2DModel`) scheduler (`FlowMatchEulerDiscreteScheduler`) guider (`ClassifierFreeGuidance`)
Inputs: prompt (`str`): A instrução de edição para expandir na legenda completa (uma por chamada). image (`Image | list`, *opcional*): A(s) imagem(ns) de referência da edição, no máximo 10; as mesmas que o pipeline recebe. boxes (`list`, *opcional*): Caixas de layout, cada uma {'id', 'desc', 'from', 'src_bbox', 'tgt_bbox'} com as caixas como [y_min, x_min, y_max, x_max] em 0-1: 'from': 'target' com `tgt_bbox` adiciona um elemento ali, 'from': 'ref_image_0', ... com `src_bbox` e `tgt_bbox` move um de uma imagem de referência. max_new_tokens (`int`, *opcional*, padrão 3584): O número máximo de tokens que o upsampler pode gerar para a legenda. negative_prompt (`str`, *opcional*): O prompt que não deve guiar a geração max_sequence_length (`int`, *opcional*, padrão 8192): Número máximo de tokens do prompt; prompts mais longos são truncados. text_encoder_out_layers (`tuple`, *opcional*, padrão (4, 8, 12, 16, 20, 24, 28, 32)): Índices das camadas ocultas do text-encoder cujos estados são empilhados para formar os text embeddings num_images_per_prompt (`int`, *opcional*, padrão 1): O número de imagens a gerar por prompt. image_cond_latents (`list`, *opcional*): Latents empacotados normalizados das imagens de referência, um tensor de forma (B, C, height_i//16, width_i//16) por imagem height (`int`, *opcional*, padrão None ou 1024, dependendo do workflow): A altura em pixels da imagem gerada; padrão para a própria altura da primeira imagem de referência width (`int`, *opcional*, padrão None ou 1024, dependendo do workflow): A largura em pixels da imagem gerada; padrão para a própria largura da primeira imagem de referência reference_crop (`list | NoneType`, *opcional*): Por referência, a caixa da referência dentro do seu canvas com padding ou None, da etapa de preprocess latents (`Tensor`): Latents ruidosos pré-gerados para a geração de imagem. generator (`Generator`, *opcional*): Gerador Torch para geração determinística. num_inference_steps (`int`): O número de etapas de remoção de ruído. timesteps (`Tensor`): Timesteps para o processo de remoção de ruído. (sobrepõe `num_inference_steps` quando fornecido) sigmas (`list`, *opcional*): Sigmas personalizados para o processo de remoção de ruído. (sobrepõe `num_inference_steps` quando fornecido) **denoiser_input_fields (`None`, *opcional*): entradas condicionais do modelo para o denoiser: por exemplo, prompt_embeds, negative_prompt_embeds, etc. attention_kwargs (`dict`, *opcional*): Kwargs adicionais para os processadores de atenção. output_type (`str`, *opcional*, padrão pil): Formato de saída: 'pil', 'np', 'pt'.
Saídas: imagens (`list`): Imagens geradas. latents (`Tensor`): Latentes dessonificados.
## Flux3DistilledAutoBlocks[[diffusers.Flux3DistilledAutoBlocks]]
#### diffusers.Flux3DistilledAutoBlocks[[diffusers.Flux3DistilledAutoBlocks]]
```python
diffusers.Flux3DistilledAutoBlocks()
```
[Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/flux3/modular_blocks_flux3_distilled.py#L258)
Auto blocks que executam a geração de texto para imagem e imagem para imagem usando o modelo FLUX.3 destilado por etapas (16 etapas, sem classifier-free guidance). O `prompt` passa primeiro pelo prompt upsampler; remova a etapa `prompt_upsampler` para codificá-lo como fornecido.
Fluxos de trabalho suportados:
- `text2image`: requer `prompt`
- `image_conditioned`: requer `prompt`, `image`
Componentes: prompt_upsampler (`Qwen3_5ForConditionalGeneration`): O prompt upsampler. prompt_upsampler_processor (`AutoProcessor`): Seu processador. text_encoder (`Qwen3VLForConditionalGeneration`) tokenizer (`AutoProcessor`) image_processor (`Flux3ImageProcessor`) vae (`AutoencoderKLFlux2`) transformer (`Flux3Transformer2DModel`) scheduler (`FlowMatchEulerDiscreteScheduler`)
Inputs: prompt (`str`): A instrução de edição para expandir na legenda completa (uma por chamada). image (`Image | list`, *opcional*): A(s) imagem(ns) de referência da edição, no máximo 10; as mesmas que o pipeline recebe. boxes (`list`, *opcional*): Caixas de layout, cada uma {'id', 'desc', 'from', 'src_bbox', 'tgt_bbox'} com as caixas como [y_min, x_min, y_max, x_max] em 0-1: 'from': 'target' com `tgt_bbox` adiciona um elemento lá, 'from': 'ref_image_0', ... com `src_bbox` e `tgt_bbox` move um de uma imagem de referência. max_new_tokens (`int`, *opcional*, padrão 3584): O número máximo de tokens que o upsampler pode gerar para a legenda. max_sequence_length (`int`, *opcional*, padrão 8192): Número máximo de tokens do prompt; prompts mais longos são truncados. text_encoder_out_layers (`tuple`, *opcional*, padrão (4, 8, 12, 16, 20, 24, 28, 32)): Índices das camadas ocultas do text-encoder cujos estados são empilhados para formar os text embeddings num_images_per_prompt (`int`, *opcional*, padrão 1): O número de imagens a gerar por prompt. image_cond_latents (`list`, *opcional*): Latents empacotados normalizados das imagens de referência, um tensor de forma (B, C, height_i//16, width_i//16) por imagem height (`int`, *opcional*, padrão None ou 1024, dependendo do workflow): A altura em pixels da imagem gerada; padrão para a própria altura da primeira imagem de referência width (`int`, *opcional*, padrão None ou 1024, dependendo do workflow): A largura em pixels da imagem gerada; padrão para a própria largura da primeira imagem de referência reference_crop (`list | NoneType`, *opcional*): Por referência, a caixa da referência dentro do seu canvas com padding ou None, da etapa de preprocess latents (`Tensor`): Latents ruidosos pré-gerados para a geração de imagem. generator (`Generator`, *opcional*): Gerador Torch para geração determinística. num_inference_steps (`int`): O número de etapas de remoção de ruído. timesteps (`Tensor`): Timesteps para o processo de remoção de ruído. (sobrepõe `num_inference_steps` quando fornecido) sigmas (`list`, *opcional*): Sigmas personalizados para o processo de remoção de ruído. (sobrepõe `num_inference_steps` quando fornecido) **denoiser_input_fields (`None`, *opcional*): entradas condicionais do modelo para o denoiser: por exemplo, prompt_embeds, negative_prompt_embeds, etc. output_type (`str`, *opcional*, padrão pil): Formato de saída: 'pil', 'np', 'pt'.
Saídas: imagens (`list`): Imagens geradas. latents (`Tensor`): Latentes dessonificados.
## Flux3DistilledModularPipeline[[diffusers.Flux3DistilledModularPipeline]]
#### diffusers.Flux3DistilledModularPipeline[[diffusers.Flux3DistilledModularPipeline]]
```python
diffusers.Flux3DistilledModularPipeline(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)
```
[Fonte](https://github.com/huggingface/diffusers/blob/main/src/diffusers/modular_pipelines/flux3/modular_pipeline.py#L52)
Uma ModularPipeline para o modelo FLUX.3 com destilação de etapas (16 etapas, sem classifier-free guidance).

Xet Storage Details

Size:
27.1 kB
·
Xet hash:
7f7d4d6dc391bac1c283bcd0564fcce0f5d76bb5a08874b12bf0a30e6abb2e43

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