dailenson / One-DM

Official Code for ECCV 2024 paper — One-Shot Diffusion Mimicker for Handwritten Text Generation
MIT License
298 stars 28 forks source link

关于train_ddim的一些疑问 #24

Closed xjia666 closed 2 hours ago

xjia666 commented 1 week ago

作者您好!非常感谢您的工作,冒昧向您询问一些代码的细节: https://github.com/dailenson/One-DM/blob/ca01eb13e7766eea3e349b2f369ea6f18707e5a5/models/diffusion.py#L70C9-L70C19

  1. 在train_ddim中最后返回的 x 是经过5次采样的这样是为了获得更准确的x_start吗?
  2. 这样和直接使用x_start = (x - (1 - alpha_hat).sqrt()*predicted_noise) / (alpha_hat.sqrt()) 得到的结果相差会很大嘛
  3. 如果模型直接预测x0而不是噪声是否还需要这样多次采样 期待您的回复~
dailenson commented 3 days ago

您好~关于第一个问题,是的,我们发现经过5步采样的x_start已经可以得到正确的内容了。第二个问题,你这里的公式只是一步采样的结果,5步采样肯定比一步采样结果好。第三个问题,无论是预测x0或者噪声,多步采样都比单步采样好。

xjia666 commented 2 hours ago

好的,我明白了,感谢