Diffusers documentation

Proveniente de DiffusionPipeline

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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.json del 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 con names, o el conjunto que necesita un flujo de trabajo con workflow. 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 un model_index.json, siempre que el modelo tenga un pipeline modular. Lo contrario no es cierto: DiffusionPipeline y las clases AutoPipeline no funcionan con un repositorio que solo tiene un modular_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 argumento output, output="images" o output=["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 de guidance_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.blocks devuelve 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.
Update on GitHub