Buckets:
Pipeline
ModularPipeline[[diffusers.ModularPipeline]]
diffusers.ModularPipeline[[diffusers.ModularPipeline]]
diffusers.ModularPipeline(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)
Parámetros:
blocks : ModularPipelineBlocks, los bloques que se usarán en el pipeline
Clase base para todos los pipelines modulares.
from_pretrained[[diffusers.ModularPipeline.from_pretrained]]
from_pretrained(pretrained_model_name_or_path: str | os.PathLike | None, trust_remote_code: bool | None = None, components_manager: diffusers.modular_pipelines.components_manager.ComponentsManager | None = None, collection: str | None = None, workflow: str | None = None, **kwargs)
Parámetros:
pretrained_model_name_or_path (str o os.PathLike, opcional) : Ruta a una configuración de pipeline preentrenada. Primero intentará cargar la configuración desde modular_model_index.json y, si no es posible, usará model_index.json para mantener la compatibilidad con repositorios estándar no modulares. Si pretrained_model_name_or_path no contiene ninguna configuración de pipeline, se establecerá en None durante la inicialización.
trust_remote_code (bool, opcional) : Si se debe confiar en el código remoto al cargar el pipeline. Debe establecerse en True si se desea crear bloques de pipeline basados en el código personalizado de pretrained_model_name_or_path
components_manager (ComponentsManager, opcional) : Instancia de ComponentsManager para gestionar múltiples componentes en diferentes pipelines y aplicar estrategias de offloading.
collection (str, opcional) --` Nombre de la colección para organizar los componentes en el ComponentsManager.
workflow (str, opcional) : Nombre de un flujo de trabajo declarado por los bloques de la pipeline. Si se proporciona, los bloques se recortan a los bloques de ejecución de ese flujo de trabajo, de modo que la pipeline solo espera — y load_components() solo carga — los componentes que utiliza ese flujo de trabajo.
Carga un ModularPipeline desde un repositorio de Hugging Face Hub.
get_component_spec[[diffusers.ModularPipeline.get_component_spec]]
get_component_spec(name: str)
Devuelve:
- una copia del objeto ComponentSpec para el nombre de componente dado
load_components[[diffusers.ModularPipeline.load_components]]
load_components(names: list[str] | str | None = None, workflow: str | None = None, **kwargs)
Parámetros:
names : lista de nombres de componentes a cargar. Si es None, se cargarán todos los componentes con default_creation_method == "from_pretrained". Si se proporciona como una lista o una cadena, se cargarán solo los componentes especificados.
workflow : nombre de un flujo de trabajo declarado por los bloques de pipeline. Si se proporciona, solo se cargan los componentes que utilizan los bloques de ejecución de ese flujo de trabajo. No se puede combinar con names.
- **kwargs : kwargs adicionales que se pasarán a
from_pretrained(). Puede ser: - un único valor que se aplicará a todos los componentes que se carguen, p. ej. dtype=torch.bfloat16 - un diccionario, p. ej. dtype={"unet": torch.bfloat16, "default": torch.float32} - si se pasa un campo de carga diferente en kwargs, puede sobrescribir potencialmente ComponentSpec, p. ej.pretrained_model_name_or_path,variant,revision, etc. - si se pasa un campo de carga diferente en kwargs, puede sobrescribir potencialmente ComponentSpec, p. ej.pretrained_model_name_or_path,variant,revision, etc.
Cargar los componentes seleccionados desde las especificaciones.
register_components[[diffusers.ModularPipeline.register_components]]
register_components(**kwargs)
Parámetros:
- **kwargs : Argumentos de palabra clave donde las claves son nombres de componentes y los valores son objetos de componentes. Por ejemplo, register_components(unet=unet_model, text_encoder=encoder_model)
Registre los componentes con sus especificaciones correspondientes.
Este método se encarga de:
- Establece los objetos de los componentes como atributos del cargador (p. ej., self.unet = unet)
- Actualiza el diccionario de configuración, que se guardará como
modular_model_index.jsondurantesave_pretrained(solo para componentes de from_pretrained) - Añade componentes al gestor de componentes si está adjunto (solo para componentes de from_pretrained)
Este método se llama cuando:
- Los componentes se inicializan primero en init:
- los componentes de from_pretrained no se cargan durante init, por lo que se registran como None;
- los componentes no from_pretrained se crean durante init y se registran como el propio objeto
- Los componentes se actualizan con el método
update_components(): por ejemplo, loader.update_components(unet=unet) o loader.update_components(guider=guider_spec) - (from_pretrained) Los componentes se cargan con el método
load_components(): por ejemplo, loader.load_components(names=["unet"]) o loader.load_components() para cargar todos los componentes predeterminados
Notas:
- Al registrar None para un componente, se establece el atributo en None, pero se siguen sincronizando las especificaciones con el diccionario de configuración, que se guardará como
modular_model_index.jsondurantesave_pretrained - component_specs are updated to match the new component outside of this method, e.g. in
update_components()method
save_pretrained[[diffusers.ModularPipeline.save_pretrained]]
save_pretrained(save_directory: str | os.PathLike, safe_serialization: bool = True, variant: str | None = None, max_shard_size: int | str | None = None, push_to_hub: bool = False, **kwargs)
Parámetros:
save_directory (str o os.PathLike) : Directorio donde se guardará el pipeline. Se creará si no existe.
safe_serialization (bool, opcional, por defecto True) : Si se guarda el modelo usando safetensors o de la forma tradicional de PyTorch con pickle.
variant (str, opcional) : Si se especifica, los pesos se guardan en el formato pytorch_model.<variant>.bin.
max_shard_size (int o str, por defecto None) : El tamaño máximo de un checkpoint antes de ser fragmentado. Los fragmentos del checkpoint tendrán cada uno un tamaño inferior a este valor. Si se expresa como una cadena, debe consistir en dígitos seguidos de una unidad (como "5GB"). Si se expresa como un entero, la unidad es bytes.
push_to_hub (bool, opcional, por defecto False) : Si se debe subir el pipeline al Hugging Face model hub después de guardarlo.
- **kwargs : Argumentos de palabra clave adicionales: -
overwrite_modular_index(bool, opcional, valor predeterminadoTrue): Si se debe actualizarmodular_model_index.jsonpara que la especificación de carga de cada componente guardado apunte al destino:repo_idal publicar en el Hub, o de lo contrariosave_directory. Los componentes que no se cargan no se guardan y siempre conservan sus especificaciones de carga registradas. PasaFalsepara conservar también las especificaciones registradas de los componentes que se están guardando (p. ej., para un índice que hace referencia deliberadamente a otros repositorios); los componentes sin un identificador de carga (como los modelos personalizados agregados conupdate_components) se reescriben de todos modos, ya que no tienen una fuente registrada. -repo_id(str, opcional): El identificador del repositorio al que se publicará el pipeline. El valor predeterminado es el último componente desave_directory. -commit_message(str, opcional): Mensaje de commit para la operación de publicación en el Hub. -private(bool, opcional): Si el repositorio debe ser privado. -create_pr(bool, opcional, valor predeterminadoFalse): Si se debe crear una solicitud de extracción (pull request) en lugar de publicar directamente. -token(str, opcional): El token de Hugging Face que se usará para la autenticación.
Guarde el pipeline y todos sus componentes en un directorio para que pueda recargarse mediante el método de clase from_pretrained().
a[[diffusers.ModularPipeline.to]]
to(*args, **kwargs)
Parámetros:
dtype (torch.dtype, opcional) : Devuelve un pipeline con el dtype especificado
device (torch.Device, opcional) : Devuelve un pipeline con el device especificado
silence_dtype_warnings (str, opcional, por defecto False) : Si se omiten las advertencias cuando el dtype objetivo no es compatible con el device objetivo.
Devuelve: DiffusionPipeline
El pipeline se convirtió al dtype y/o dtype especificado.
Realiza la conversión de dtype y/o device de Pipeline. Se infieren un torch.dtype y un torch.device a partir de los argumentos de self.to(*args, **kwargs).
> Si el pipeline ya tiene el torch.dtype y el torch.device correctos, se devuelve tal cual. En caso contrario, > el pipeline devuelto es una copia de self con el torch.dtype y el torch.device deseados.
Estas son las formas de llamar a to:
to(dtype, silence_dtype_warnings=False) → DiffusionPipelinepara devolver un pipeline con eldtypeespecificadoto(device, silence_dtype_warnings=False) → DiffusionPipelinepara devolver un pipeline con eldeviceespecificadoto(device=None, dtype=None, silence_dtype_warnings=False) → DiffusionPipelinepara devolver un pipeline con eldevicey eldtypeespecificados
unload_components[[diffusers.ModularPipeline.unload_components]]
unload_components(names: list[str] | str)
Parámetros:
names : nombre del componente o lista de nombres de componentes para descargar.
Descargue los componentes seleccionados, liberando su memoria.
El atributo component se restablece a None y, si hay un ComponentsManager adjunto, el componente se elimina de él. La especificación del componente no se modifica, por lo que el componente puede volver a cargarse más adelante con load_components().
update_components[[diffusers.ModularPipeline.update_components]]
update_components(**kwargs)
Parámetros:
- **kwargs : Objetos de componentes o valores de configuración para actualizar: - Objetos de componentes: Los modelos cargados con
AutoModel.from_pretrained()oComponentSpec.load()se etiquetan automáticamente con información de carga. Los objetos ConfigMixin sin pesos (p. ej., programadores, guías) se pueden pasar directamente. - Valores de configuración: Valores simples para actualizar la configuración (p. ej.,requires_safety_checker=False)
Actualice los componentes y los valores y especificaciones de la configuración después de que se haya instanciado el pipeline.
Este método le permite:
- Reemplace los componentes existentes por nuevos (por ejemplo, actualizando
self.unetoself.text_encoder) - Actualizar los valores de configuración (p. ej., cambiar la bandera
self.requires_safety_checker)
Además de actualizar los componentes y los valores de configuración como atributos de la pipeline, el método también actualiza:
- las especificaciones correspondientes en
_component_specsy_config_specs - el diccionario
config, que se guardará comomodular_model_index.jsondurantesave_pretrained
Ejemplos:
# Update pre-trained model
pipeline.update_components(unet=new_unet_model, text_encoder=new_text_encoder)
# Update configuration values
pipeline.update_components(requires_safety_checker=False)
Notas:
- Los componentes cargados con
AutoModel.from_pretrained()oComponentSpec.load()tendrán loading specs conservados para la serialización. Los componentes personalizados o cargados localmente sin referencias al Hub tendrán sus entradas enmodular_model_index.jsonactualizadas automáticamente durantesave_pretrained(). - Los objetos ConfigMixin sin pesos (p. ej., programadores, guías) se pueden pasar directamente.
Xet Storage Details
- Size:
- 14.2 kB
- Xet hash:
- 69e2ed699a3bc16e050a7f82fa9e48f6012c85d58f7e87030b99c5c2d9c1adb5
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.