扩散模型中的用户引导生成可以通过将用户输入集成到采样过程中、通过条件化修改模型的行为或调整去噪过程中的中间输出来实现。 这通常涉及设计界面或控制机制,允许用户在特定阶段影响模型的预测。 例如,用户可以提供草图、文本提示或空间约束来引导模型生成所需的输出。 关键是平衡用户输入与模型的生成能力,确保在应用引导的同时又不会过度限制创造力。
一种常见的方法是条件扩散,其中用户输入被编码为额外的模型输入。 例如,在 Stable Diffusion 等文本到图像模型中,文本嵌入在每个去噪步骤中都与潜在表示连接在一起。 开发人员可以通过添加自定义条件信号来扩展此功能,例如分割掩码或边缘图。 例如,ControlNet 创建了扩散模型权重的可训练副本,使其能够处理辅助输入(例如草图)以及原始潜在空间。 在训练期间,模型学习将这些输入与目标输出对齐,从而在推理期间实现实时指导。 这需要修改采样循环以在每个步骤中合并用户的输入,通常通过交叉注意力层或串联来实现。
另一种方法涉及交互式采样,用户可以在生成过程中调整中间输出。 例如,开发人员可以构建一个工具,让用户可以在采样过程中修改潜在空间或梯度。 诸如“指导尺度”调整(其中参数控制条件化的强度)之类的技术可以作为可调节的滑块公开。 修复模型通过允许用户屏蔽区域并为特定区域提供文本提示来展示这一点。 实施此操作需要修改扩散过程以接受部分更新(例如,冻结未屏蔽区域)并迭代地重新注入用户反馈。 像 Diffusers 这样的库为这些用例提供 API,让开发人员可以连接到去噪步骤以应用自定义逻辑。 挑战包括维护用户编辑与模型预测之间的一致性,这通常需要在训练期间仔细平衡损失项或正则化。