Diffusers documentation

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

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