文章目录
- 解决TensorRT加速推理SDXL出现黑图问题
-
- [1. fp16](#1. fp16)
- [2. 更换vae](#2. 更换vae)
解决TensorRT加速推理SDXL出现黑图问题
一般产生黑图,仅需要修改下面两个问题即可解决。
1. fp16
将pipeline中的fp16修改为fp32。
在使用稳定扩散(Stable Diffusion)生成图片时,选择不同的数据类型可以影响生成的结果。在这种情况下,从fp16
(半精度浮点数)切换到fp32
(单精度浮点数)解决了问题,通常意味着精度的不同可能导致了生成的结果差异。
-
fp16
(半精度):它使用更短的位数来表示浮点数,因此可以表示的数值范围相对较小,精度较低。这可以导致数值不稳定性和溢出问题,尤其是在涉及大范围数值计算时。 -
fp32
(单精度):它使用更多的位数,可以表示更广范围的数值并提供更高的精度。在计算中,fp32
通常更可靠,尤其是在大规模深度学习模型中,因为它可以减少数值稳定性问题。
生成黑图的问题可能与fp16
的数值范围和精度不足有关,导致计算过程中的数值溢出或不稳定性。当使用fp32
时,数值稳定性更高,能够处理较大的数值范围。
2. 更换vae
在TensorRT进行编译的时候,会首先找到torch models,将torch models的vae_decoder的配置文件和权重修改为https://huggingface.co/madebyollin/sdxl-vae-fp16-fix
时,完美解决问题。