用途:把新模型或 pipeline 端到端集成进 diffusers,并逐步做到与参考实现数值一致。
主要能力与流程:先收集信息——参考仓库(GitHub 链接或本地路径及安装依赖、下载 checkpoint、环境变量等步骤)、可运行的端到端推理脚本(先做基础工作流如 T2V,再确认 I2V、V2V 等并商定实现顺序)、以及标准还是模块化实现(默认模块化,Modular Diffusers 是新 pipeline 的首选,标准 DiffusionPipeline 仍支持但不再是默认)。确认计划后再实施。
集成清单:Transformer 模型需实现 from_pretrained、转换权重、与参考做 parity 测试、在相关 init.py 注册(懒加载)、写模型级测试;VAE 尽量复用现有 AutoencoderKL*;Scheduler 复用或新增;Pipeline 需实现、按需加 LoRA mixin、注册、写 pipeline 级测试;补文档并运行 make style 与 make quality。
文件结构:模型放 src/diffusers/models/transformers/transformer_<model>.py,自定义调度器放 schedulers/,LoRA mixin 加到 loaders/lora_pipeline.py,pipeline 放 pipelines/<model>/ 或 modular_pipelines/<model>/,测试放 tests/,文档更新 docs/source/en/_toctree.yml 及 api 页面。
权重转换:在 scripts/ 下写独立脚本(如 scripts/convert_<model>_to_diffusers.py),映射 state-dict 键名、实例化模型、save_pretrained 后再 from_pretrained 验证往返;所有权重走标准加载路径,不自定义 from_pretrained。注意 QKV 拆分、scale/shift 顺序、转置、交错 head 维度、bias 吸收等常见模式。
测试与限制:需 pipeline 级与模型级测试;parity 测试在 CPU/float32 下用 max_diff < 1e-3 严格容差,且不随 PR 发布(会导入参考仓库)。计算逻辑尽量贴近参考,不要重排运算或改数学。资料未提供具体模型、价格或平台信息。