--- title: "Self-Conditioning" created: 2026-05-13 updated: 2026-05-13 type: concept tags: [diffusion, conditioning, iterative-generation] sources: - https://arxiv.org/abs/2605.10938 --- # Self-Conditioning Self-conditioning 是一种不需要外部条件信号的扩散模型条件化技术:将模型自身的**中间预测**作为下一步的条件输入。 ## 机制 ### 训练 以 50% 概率执行双次前向 pass: 1. **第一次 pass**:`x̂' = net_θ(z_t, ∅, t)` — 无条件的初步预测 2. **第二次 pass**:`x̂ = net_θ(z_t | x̂', t)` — 以 x̂' 为条件 另 50% 概率执行标准无条件前向 pass:`x̂ = net_θ(z_t, ∅, t)`。 在 ELF 中,条件通过 concatenation `[z_t, x̂']` 注入网络。 ### 推理 推理时无需额外前向 pass:每一步的条件来自**上一步的预测**,形成自回归式的迭代细化: ``` step 0: z_0 ~ N(0,I), condition = 0 step i: x̂_i = net(z_i | x̂_{i-1}, t_i), z_{i+1} = z_i + dt·v̂_i ``` ## 在 ELF 中的角色 Self-conditioning 为 [[classifier-free-guidance-language|CFG]] 提供条件信号 c = x̂': ``` v_cfg = ω · v(z_t | x̂') + (1-ω) · v(z_t | ∅) ``` 这使得 ELF 可以在无条件生成任务中(无 class label / prompt)使用 CFG。 ## 与自回归的区别 - **自回归**:条件信号是之前生成的 token - **Self-conditioning**:条件信号是之前时间步对**完整序列**的预测嵌入——提供了全局上下文信息 ## 相关概念 - [[classifier-free-guidance-language]] — 使用 self-conditioning 作为条件信号 - [[embedded-language-flows]] — 使用此技术的模型 - [[x-prediction-parameterization]] — self-conditioning 预测的是 x̂(干净嵌入)