Diffusers documentation
来自 DiffusionPipeline
快速入门
推理
使用扩散流水线
适配器与个性化
优化与扩展
模块化 Diffusers
概述快速入门来自 DiffusionPipeline状态ModularPipelineBlocksSequentialPipelineBlocksLoopSequentialPipelineBlocksAutoPipelineBlocksModularPipeline引导者ComponentsManager自动文档字符串和参数模板构建自定义块使用 Mellon 搭配自定义块
训练与微调
资源
贡献
API
来自 DiffusionPipeline
如果您熟悉 DiffusionPipeline,并且是第一次使用 ModularPipeline,那么有一些地方的工作方式有所不同。以下列出了这些差异,以便您在开始 快速入门 之前心中有数。
- 加载是惰性的且灵活的。 from_pretrained() 根据仓库中的
modular_model_index.json构建 pipeline,而不会加载任何权重。随后,load_components() 负责加载这些组件,且无需一次性全部加载:默认情况下它会加载所有组件,但你可以通过names仅加载指定的组件,或通过workflow加载某个工作流所需的组件集合。update_components() 允许你复用已有的组件,或使用与仓库规范不同的组件。请参阅 加载组件 和 更新组件。 - ModularPipeline 读取的是另一个索引文件
modular_model_index.json,但只要模型具有模块化流水线,它同样适用于仅包含model_index.json的仓库。反之则不成立:DiffusionPipeline 和AutoPipeline类无法处理仅包含modular_model_index.json的仓库。 - 调用会返回 pipeline 状态,其中也包含中间值(
prompt_embeds、latents等)。使用output参数指定所需内容,例如output="images"或output=["images", "latents"],或者像 快速入门 中那样读取状态的属性。参见 States。 guider组件支持 Classifier-free guidance,而非guidance_scale调用参数:pipe.update_components(guider=ClassifierFreeGuidance(guidance_scale=5.0))。请参阅 guiders 指南。- 没有
callback_on_step_end;不过,你可以在去噪循环中插入一个代码块,以使用现有的回调函数。请参阅回调指南中的 模块化流水线。 - 该流水线是一个由块组成的图,您可以在使用 init_pipeline() 构建之前对其进行修改(弹出、插入、替换);
pipe.blocks返回的是副本,因此请先编辑块。参见 组合新的工作流。 - 卸载由 ComponentsManager 处理,它可以为共享组件的多个流水线提供服务。请参阅 ComponentsManager 指南。