Diffusers documentation
Proveniente de DiffusionPipeline
Comenzar
Inferencia
Uso de pipelines de difusión
Adaptadores y personalización
Optimizar y escalar
Rendimiento básico
Velocidad y memoria
Inferencia distribuida
Cuantización
Aceleración específica del hardware
Métodos de la comunidad
Diffusers modulares
ResumenIntroducciónProveniente de DiffusionPipelineEstadosModularPipelineBlocksSequentialPipelineBlocksLoopSequentialPipelineBlocksAutoPipelineBlocksModularPipelineGuíasComponentsManagerPlantillas de docstring y parámetros automáticasCreación de bloques personalizadosUso de bloques personalizados con Mellon
Entrenar y ajustar
Recursos
Contribuir
API
Proveniente de DiffusionPipeline
Si estás familiarizado con DiffusionPipeline y trabajas por primera vez con un ModularPipeline, hay algunas cosas que funcionan de manera diferente. Se enumeran aquí para que las tengas en cuenta antes de pasar por el quickstart.
- La carga es perezosa y flexible. from_pretrained() construye el pipeline a partir del
modular_model_index.jsondel repositorio sin cargar ningún peso. load_components() los carga a continuación, y no tiene que ser todo de una vez: por defecto carga todo, pero puedes cargar solo los componentes que nombres connames, o el conjunto que necesita un flujo de trabajo conworkflow. update_components() te permite reutilizar un componente que ya tienes, o uno que difiere de la especificación del repositorio. Consulta Carga de componentes y Actualización de componentes. - ModularPipeline lee un índice diferente,
modular_model_index.json, pero también funciona con un repositorio que solo tiene unmodel_index.json, siempre que el modelo tenga un pipeline modular. Lo contrario no es cierto: DiffusionPipeline y las clasesAutoPipelineno funcionan con un repositorio que solo tiene unmodular_model_index.json. - Una llamada devuelve el estado del pipeline, que también contiene los valores intermedios (
prompt_embeds,latents, …). Solicita lo que necesites con el argumentooutput,output="images"ooutput=["images", "latents"], o lee un atributo del estado, como en el quickstart. Consulta States. - La guía sin clasificador se admite en el componente
guider, no como argumento de llamada deguidance_scale:pipe.update_components(guider=ClassifierFreeGuidance(guidance_scale=5.0)). Consulte la guía de guiders. - No existe
callback_on_step_end; sin embargo, puedes insertar un bloque en el bucle de desruido para usar tus funciones de callback existentes. Consulta Pipelines modulares en la guía de callbacks. - El pipeline es un grafo de bloques que puedes modificar (eliminar, insertar, reemplazar) antes de construirlo con init_pipeline();
pipe.blocksdevuelve una copia, por lo que edita los bloques primero. Consulta Componer nuevos flujos de trabajo. - El offloading lo gestiona un ComponentsManager, que puede atender varios pipelines que comparten componentes. Consulte la guía de ComponentsManager.