Diffusers documentation

Modelos de docstring e parâmetros automáticos

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

and get access to the augmented documentation experience

to get started

Modelos de docstring e parâmetros automáticos

Cada ModularPipelineBlocks possui uma propriedade doc gerada automaticamente a partir de seus description, inputs, intermediate_outputs, expected_components e expected_configs. O sistema de docstring automático mantém as docstrings sincronizadas com a interface real do bloco. Os modelos de parâmetros fornecem descrições padronizadas para parâmetros que aparecem em muitos pipelines.

Docstring automática

Os blocos de pipeline modulares são composáveis — você pode aninhá-los, encadeá-los em sequências e reorganizá-los livremente. As docstrings deles seguem o mesmo padrão. Quando um SequentialPipelineBlocks agrega entradas e saídas de seus subblocos, a documentação deve ser atualizada automaticamente, sem reescritas manuais.

O marcador # auto_docstring gera docstrings a partir das propriedades do bloco. Adicione-o acima de uma definição de classe para marcar a classe para geração automática de docstring.

# auto_docstring
class FluxTextEncoderStep(SequentialPipelineBlocks):
    ...

Execute o seguinte comando para gerar e inserir os docstrings.

python utils/modular_auto_docstring.py --fix_and_overwrite

O utilitário lê a propriedade doc do bloco e a insere como a docstring da classe.

# auto_docstring
class FluxTextEncoderStep(SequentialPipelineBlocks):
    """
    Text input processing step that standardizes text embeddings for the pipeline.

    Inputs:
        prompt_embeds (`torch.Tensor`) *required*:
            text embeddings used to guide the image generation.
        ...

    Outputs:
        prompt_embeds (`torch.Tensor`):
            text embeddings used to guide the image generation.
        ...
    """

Você também pode verificar sem sobrescrever, ou direcionar a um arquivo ou diretório específico.

# Check that all marked classes have up-to-date docstrings
python utils/modular_auto_docstring.py

# Check a specific file or directory
python utils/modular_auto_docstring.py src/diffusers/modular_pipelines/flux/

Se alguma classe marcada estiver sem docstring, a verificação falha e lista as classes que precisam de atualização.

Found the following # auto_docstring markers that need docstrings:
- src/diffusers/modular_pipelines/flux/encoders.py: FluxTextEncoderStep at line 42

Run `python utils/modular_auto_docstring.py --fix_and_overwrite` to fix them.

Modelos de parâmetros

InputParam e OutputParam definem as entradas e saídas de um bloco. Crie-os diretamente ou use .template() para definições padronizadas de parâmetros comuns, como prompt, num_inference_steps ou latents.

InputParam

InputParam descreve uma única entrada de um bloco.

CampoTipoDescrição
namestrNome do parâmetro
type_hintAnyAnotação de tipo (por exemplo, str, torch.Tensor)
defaultAnyValor padrão (se não definido, o parâmetro não possui valor padrão)
requiredboolSe o parâmetro é obrigatório
descriptionstrDescrição legível por humanos
kwargs_typestrNome do grupo para parâmetros relacionados (por exemplo, "denoiser_input_fields")
metadatadictInformações adicionais arbitrárias

Criando InputParam diretamente

from diffusers.modular_pipelines import InputParam

InputParam(
    name="guidance_scale",
    type_hint=float,
    default=7.5,
    description="Scale for classifier-free guidance.",
)

Usando um modelo

InputParam.template("prompt")
# Equivalent to:
# InputParam(name="prompt", type_hint=str, required=True,
#            description="The prompt or prompts to guide image generation.")

Os templates definem automaticamente name, type_hint, default, required e description. Substitua qualquer campo ou adicione contexto com o parâmetro note.

# Override the default value
InputParam.template("num_inference_steps", default=28)

# Add a note to the description
InputParam.template("prompt_embeds", note="batch-expanded")
# description becomes: "text embeddings used to guide the image generation. ... (batch-expanded)"

OutputParam

OutputParam descreve uma única saída de um bloco.

CampoTipoDescrição
namestrNome do parâmetro
type_hintAnyAnotação de tipo
descriptionstrDescrição legível por humanos
kwargs_typestrNome do grupo para parâmetros relacionados
metadatadictInformações adicionais arbitrárias

Criando OutputParam diretamente

from diffusers.modular_pipelines import OutputParam

OutputParam(name="image_latents", type_hint=torch.Tensor, description="Encoded image latents.")

Usando um modelo

OutputParam.template("latents")

# Add a note to the description
OutputParam.template("prompt_embeds", note="batch-expanded")

Modelos disponíveis

INPUT_PARAM_TEMPLATES e OUTPUT_PARAM_TEMPLATES são definidos em modular_pipeline_utils.py. Eles incluem parâmetros comuns como prompt, image, num_inference_steps, latents, prompt_embeds, entre outros. Consulte o código-fonte para a lista completa de nomes de templates disponíveis.

Update on GitHub