Stable Diffusion webui 源码调试(二)
个人模型主页:LibLibai
stable-diffusion-webui 版本:v1.4.1
内容更新随机,看心情调试代码~
分析StableDiffusionProcessingTxt2Img类中的sample函数
Sampler
/work/stable-diffusion-webui/modules/sd_samplers_kdiffusion.py
这个Sampler就是真正去执行生成 latent空间的图像了。
sample函数,接收了生图时需要的全部参数
可以看到初始latent图像就是 前面生成的随机图像x
最后就是self.launch_sampling函数的封装,进入到sample_euler_ancestral函数,生图,latent空间中的生图细节就在这个函数里面了。
这里我们用了euler采样器,换其他采样器同理。
这个函数返回x, 就是latent空间的图像,出去之后,调用decode部分的网络,就得到我们所看到的图像。
不执行数据增强的情况下,直接返回 latent空间的图像。
回到process_images_inner函数(/work/stable-diffusion-webui/modules/processing.py)
可以看到samples_ddim(latent空间的图像)经过decode_first_stage函数处理后,得到x,就是下图。
先整理到这里。