@@ -1112,6 +1112,7 @@ def intermediates_inputs(self) -> List[str]:
1112
1112
"mask" , # inpainting
1113
1113
"masked_image_latents" , # inpainting
1114
1114
"noise" , # inpainting
1115
+ "image_latents" , # inpainting
1115
1116
]
1116
1117
1117
1118
@property
@@ -2028,25 +2029,24 @@ class StableDiffusionXLAutoVaeEncoderStep(AutoPipelineBlocks):
2028
2029
block_trigger_inputs = ["mask_image" , "image" ]
2029
2030
2030
2031
2031
- class StableDiffusionXLAutoSetTimestepsStep (AutoPipelineBlocks ):
2032
- block_classes = [StableDiffusionXLImg2ImgSetTimestepsStep , StableDiffusionXLSetTimestepsStep ]
2033
- block_names = ["img2img" , "text2img" ]
2034
- block_trigger_inputs = ["image" , None ]
2032
+ class StableDiffusionXLBeforeDenoiseStep (SequentialPipelineBlocks ):
2033
+ block_classes = [StableDiffusionXLInputStep , StableDiffusionXLSetTimestepsStep , StableDiffusionXLPrepareLatentsStep , StableDiffusionXLPrepareAdditionalConditioningStep ]
2034
+ block_names = ["input" , "set_timesteps" , "prepare_latents" , "prepare_add_cond" ]
2035
2035
2036
+ class StableDiffusionXLImg2ImgBeforeDenoiseStep (SequentialPipelineBlocks ):
2037
+ block_classes = [StableDiffusionXLInputStep , StableDiffusionXLImg2ImgSetTimestepsStep , StableDiffusionXLImg2ImgPrepareLatentsStep , StableDiffusionXLImg2ImgPrepareAdditionalConditioningStep ]
2038
+ block_names = ["input" , "set_timesteps" , "prepare_latents" , "prepare_add_cond" ]
2036
2039
2037
- class StableDiffusionXLAutoPrepareLatentsStep (AutoPipelineBlocks ):
2038
- block_classes = [StableDiffusionXLInpaintPrepareLatentsStep , StableDiffusionXLImg2ImgPrepareLatentsStep , StableDiffusionXLPrepareLatentsStep ]
2039
- block_names = ["inpaint" ,"img2img" , "text2img" ]
2040
- block_trigger_inputs = ["mask_image" , "image" , None ]
2040
+ class StableDiffusionXLInpaintBeforeDenoiseStep (SequentialPipelineBlocks ):
2041
+ block_classes = [StableDiffusionXLInputStep , StableDiffusionXLImg2ImgSetTimestepsStep , StableDiffusionXLInpaintPrepareLatentsStep , StableDiffusionXLImg2ImgPrepareAdditionalConditioningStep ]
2042
+ block_names = ["input" , "set_timesteps" , "prepare_latents" , "prepare_add_cond" ]
2041
2043
2042
2044
2043
- class StableDiffusionXLAutoPrepareAdditionalConditioningStep (AutoPipelineBlocks ):
2044
- block_classes = [
2045
- StableDiffusionXLImg2ImgPrepareAdditionalConditioningStep ,
2046
- StableDiffusionXLPrepareAdditionalConditioningStep ,
2047
- ]
2048
- block_names = ["img2img" , "text2img" ]
2049
- block_trigger_inputs = ["image" , None ]
2045
+ class StableDiffusionXLAutoBeforeDenoiseStep (AutoPipelineBlocks ):
2046
+ block_classes = [StableDiffusionXLInpaintBeforeDenoiseStep , StableDiffusionXLImg2ImgBeforeDenoiseStep , StableDiffusionXLBeforeDenoiseStep ]
2047
+ block_names = ["inpaint" , "img2img" , "text2img" ]
2048
+ block_trigger_inputs = ["mask" , "image_latents" , None ]
2049
+
2050
2050
2051
2051
2052
2052
class StableDiffusionXLAutoDenoiseStep (AutoPipelineBlocks ):
@@ -2064,10 +2064,10 @@ class StableDiffusionXLAutoDecodeStep(AutoPipelineBlocks):
2064
2064
TEXT2IMAGE_BLOCKS = OrderedDict ([
2065
2065
("text_encoder" , StableDiffusionXLTextEncoderStep ),
2066
2066
("input" , StableDiffusionXLInputStep ),
2067
- ("set_timesteps" , StableDiffusionXLAutoSetTimestepsStep ),
2068
- ("prepare_latents" , StableDiffusionXLAutoPrepareLatentsStep ),
2069
- ("prepare_add_cond" , StableDiffusionXLAutoPrepareAdditionalConditioningStep ),
2070
- ("denoise" , StableDiffusionXLAutoDenoiseStep ),
2067
+ ("set_timesteps" , StableDiffusionXLSetTimestepsStep ),
2068
+ ("prepare_latents" , StableDiffusionXLPrepareLatentsStep ),
2069
+ ("prepare_add_cond" , StableDiffusionXLPrepareAdditionalConditioningStep ),
2070
+ ("denoise" , StableDiffusionXLDenoiseStep ),
2071
2071
("decode" , StableDiffusionXLDecodeStep )
2072
2072
])
2073
2073
@@ -2099,11 +2099,8 @@ class StableDiffusionXLAutoDecodeStep(AutoPipelineBlocks):
2099
2099
2100
2100
AUTO_BLOCKS = OrderedDict ([
2101
2101
("text_encoder" , StableDiffusionXLTextEncoderStep ),
2102
- ("input" , StableDiffusionXLInputStep ),
2103
2102
("image_encoder" , StableDiffusionXLAutoVaeEncoderStep ),
2104
- ("set_timesteps" , StableDiffusionXLAutoSetTimestepsStep ),
2105
- ("prepare_latents" , StableDiffusionXLAutoPrepareLatentsStep ),
2106
- ("prepare_add_cond" , StableDiffusionXLAutoPrepareAdditionalConditioningStep ),
2103
+ ("before_denoise" , StableDiffusionXLAutoBeforeDenoiseStep ),
2107
2104
("denoise" , StableDiffusionXLAutoDenoiseStep ),
2108
2105
("decode" , StableDiffusionXLAutoDecodeStep )
2109
2106
])
@@ -2138,11 +2135,18 @@ def vae_scale_factor(self):
2138
2135
vae_scale_factor = 2 ** (len (self .vae .config .block_out_channels ) - 1 )
2139
2136
return vae_scale_factor
2140
2137
2138
+ @property
2139
+ def num_channels_unet (self ):
2140
+ num_channels_unet = 4
2141
+ if hasattr (self , "unet" ) and self .unet is not None :
2142
+ num_channels_unet = self .unet .config .in_channels
2143
+ return num_channels_unet
2144
+
2141
2145
@property
2142
2146
def num_channels_latents (self ):
2143
2147
num_channels_latents = 4
2144
- if hasattr (self , "unet " ) and self .unet is not None :
2145
- num_channels_latents = self .unet .config .in_channels
2148
+ if hasattr (self , "vae " ) and self .vae is not None :
2149
+ num_channels_latents = self .vae .config .latent_channels
2146
2150
return num_channels_latents
2147
2151
2148
2152
# Copied from diffusers.pipelines.stable_diffusion_xl.pipeline_stable_diffusion_xl.StableDiffusionXLPipeline._get_add_time_ids
0 commit comments