Diffusers documentation
Автоматические шаблоны docstring и параметров
Автоматические шаблоны 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 описывает один вход блока.
| Поле | Тип | Описание |
|---|---|---|
name | str | Имя параметра |
type_hint | Any | Аннотация типа (например, str, torch.Tensor) |
default | Any | Значение по умолчанию (если не задано, у параметра нет значения по умолчанию) |
required | bool | Является ли параметр обязательным |
description | str | Описание в человекочитаемом формате |
kwargs_type | str | Имя группы для связанных параметров (например, "denoiser_input_fields") |
metadata | dict | Произвольная дополнительная информация |
Создание 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 описывает один выход из блока.
| Поле | Тип | Описание |
|---|---|---|
name | str | Имя параметра |
type_hint | Any | Аннотация типа |
description | str | Описание в человекочитаемом формате |
kwargs_type | str | Имя группы для связанных параметров |
metadata | dict | Произвольная дополнительная информация |
Создание 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 и другие. Полный список доступных имён шаблонов см. в исходном коде.