Stable Diffusion XL网络结构-超详细原创

强烈推荐先看本人的这篇

Stable Diffusion1.5网络结构-超详细原创-CSDN博客

1 Unet

1.1 详细整体结构

Stable Diffusion XL网络结构-超详细原创_第1张图片

1.2 缩小版整体结构

以生成图像1024x1024为例,与SD1.5的3个CrossAttnDownBlock2D和CrossAttnUpBlock2D相比,SDXL只有2个,但SDXL的CrossAttnDownBlock2D模块有了更多的Transformer模块,且只进行了两次下采样,具体的往下看

Stable Diffusion XL网络结构-超详细原创_第2张图片

1.2.1 DownBlock2D

1.2.1.1 ResBolck2D

和SD1.5不一样的是,多了time_id这个输入,表示origin_size, target_size,以及裁剪坐标,比如图中的time_id=[[1024, 1024, 0, 0, 1024, 1024],[1024, 1024, 0, 0, 1024, 1024]]

有一半是负向提示词,以[1024, 1024, 0, 0, 1024, 1024],为例,两个[1024, 1024]表示origin_size, target_size,[0, 0]是裁剪坐标,这是SDXL在训练的时候用了一些trick,把原始输入图像和目标图像的大小,以及裁剪坐标也作为条件参与训练

Stable Diffusion XL网络结构-超详细原创_第3张图片

Downsample2D通过步长为2的卷积进行下采样

Stable Diffusion XL网络结构-超详细原创_第4张图片

 

1.2.2 CrossAttnDownBlock2D

CrossAttnDownBlock2D_1

CrossAttnDownBlock2D_1表示第一个CrossAttnDownBlock2D,它的Transformer2DModel有两个BasicTransformerBlock,而SD1.5的Transformer2DModel只有一个BasicTransformerBlock

Stable Diffusion XL网络结构-超详细原创_第5张图片

CrossAttnDownBlock2D_2

CrossAttnDownBlock2D_2表示第2个CrossAttnDownBlock2D,它的Transformer2DModel有10个BasicTransformerBlock

Stable Diffusion XL网络结构-超详细原创_第6张图片

 1.2.3 UnetMidBlock2DCrossAttn

其中的Transformer2DModel有10个BasicTransformerBlock

Stable Diffusion XL网络结构-超详细原创_第7张图片

 1.2.4 CrossAttnUpBlock2D

CrossAttnUpBlock2D_2

CrossAttnUpBlock2D_2表示第2个CrossAttnUpBlock2D,它的Transformer2DModel有10个BasicTransformerBlock,UpSample2D和SD1.5结构一致

Stable Diffusion XL网络结构-超详细原创_第8张图片

CrossAttnUpBlock2D_1

CrossAttnUpBlock2D_1表示第21个CrossAttnUpBlock2D,它的Transformer2DModel有2个BasicTransformerBlock

Stable Diffusion XL网络结构-超详细原创_第9张图片

未完待续

2 CLIP

你可能感兴趣的:(stable,diffusion)