Diffusers documentation

Автоматические шаблоны docstring и параметров

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

Автоматические шаблоны docstring и параметров

У каждого ModularPipelineBlocks есть свойство doc, которое автоматически генерируется на основе его description, inputs, intermediate_outputs, expected_components и expected_configs. Система автоматической генерации docstring поддерживает их синхронизацию с фактическим интерфейсом блока. Шаблоны параметров обеспечивают стандартизированные описания для параметров, которые встречаются во многих конвейерах.

Автогенерация docstring

Блоки модульного конвейера комбинируются — их можно вложенно размещать, выстраивать в последовательности и свободно переставлять. Их строки документации следуют одному и тому же шаблону. Когда SequentialPipelineBlocks агрегирует входные и выходные данные своих подблоков, документация должна обновляться автоматически, без ручного переписывания.

Маркер # auto_docstring генерирует строки документации на основе свойств блока. Добавьте его над определением класса, чтобы пометить класс для автоматической генерации строки документации.

# auto_docstring
class FluxTextEncoderStep(SequentialPipelineBlocks):
    ...

Выполните следующую команду, чтобы сгенерировать и вставить docstrings.

python utils/modular_auto_docstring.py --fix_and_overwrite

Утилита читает свойство doc блока и вставляет его в качестве строки документации класса.

# 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.
        ...
    """

Вы также можете выполнить проверку без перезаписи или указать конкретный файл или каталог.

# 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/

Если у какого-либо помеченного класса отсутствует docstring, проверка завершается ошибкой и выводит список классов, требующих обновления.

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.

Шаблоны параметров

InputParam и OutputParam определяют входные и выходные параметры блока. Создавайте их напрямую или используйте .template() для стандартизированных определений распространённых параметров, таких как prompt, num_inference_steps или latents.

InputParam

InputParam описывает один вход блока.

ПолеТипОписание
namestrИмя параметра
type_hintAnyАннотация типа (например, str, torch.Tensor)
defaultAnyЗначение по умолчанию (если не задано, у параметра нет значения по умолчанию)
requiredboolЯвляется ли параметр обязательным
descriptionstrОписание в человекочитаемом формате
kwargs_typestrИмя группы для связанных параметров (например, "denoiser_input_fields")
metadatadictПроизвольная дополнительная информация

Создание InputParam напрямую

from diffusers.modular_pipelines import InputParam

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

Использование шаблона

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

Шаблоны автоматически задают name, type_hint, default, required и description. Переопределите любое поле или добавьте контекст с помощью параметра 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 описывает один выход из блока.

ПолеТипОписание
namestrИмя параметра
type_hintAnyАннотация типа
descriptionstrОписание в человекочитаемом формате
kwargs_typestrИмя группы для связанных параметров
metadatadictПроизвольная дополнительная информация

Создание OutputParam напрямую

from diffusers.modular_pipelines import OutputParam

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

Использование шаблона

OutputParam.template("latents")

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

Доступные шаблоны

INPUT_PARAM_TEMPLATES и OUTPUT_PARAM_TEMPLATES определены в modular_pipeline_utils.py. Они включают общие параметры, такие как prompt, image, num_inference_steps, latents, prompt_embeds и другие. Полный список доступных имён шаблонов см. в исходном коде.

Update on GitHub