@@ -520,7 +520,7 @@ class StableDiffusionGGML {
520520 // check is_using_v_parameterization_for_sd2
521521 bool is_using_v_parameterization = false ;
522522 if (sd_version_is_sd2 (version)) {
523- if (is_using_v_parameterization_for_sd2 (ctx)) {
523+ if (is_using_v_parameterization_for_sd2 (ctx, sd_version_is_inpaint (version) )) {
524524 is_using_v_parameterization = true ;
525525 }
526526 } else if (version == VERSION_SVD) {
@@ -594,7 +594,7 @@ class StableDiffusionGGML {
594594 return true ;
595595 }
596596
597- bool is_using_v_parameterization_for_sd2 (ggml_context* work_ctx) {
597+ bool is_using_v_parameterization_for_sd2 (ggml_context* work_ctx, bool is_inpaint = false ) {
598598 struct ggml_tensor * x_t = ggml_new_tensor_4d (work_ctx, GGML_TYPE_F32, 8 , 8 , 4 , 1 );
599599 ggml_set_f32 (x_t , 0.5 );
600600 struct ggml_tensor * c = ggml_new_tensor_4d (work_ctx, GGML_TYPE_F32, 1024 , 2 , 1 , 1 );
@@ -603,7 +603,7 @@ class StableDiffusionGGML {
603603 struct ggml_tensor * timesteps = ggml_new_tensor_1d (work_ctx, GGML_TYPE_F32, 1 );
604604 ggml_set_f32 (timesteps, 999 );
605605
606- struct ggml_tensor * concat = ggml_new_tensor_4d (work_ctx, GGML_TYPE_F32, 8 , 8 , 5 , 1 );
606+ struct ggml_tensor * concat = is_inpaint ? ggml_new_tensor_4d (work_ctx, GGML_TYPE_F32, 8 , 8 , 5 , 1 ) : NULL ;
607607 ggml_set_f32 (timesteps, 0 );
608608
609609 int64_t t0 = ggml_time_ms ();
@@ -787,11 +787,11 @@ class StableDiffusionGGML {
787787 const std::vector<float >& sigmas,
788788 int start_merge_step,
789789 SDCondition id_cond,
790- std::vector<int > skip_layers = {},
791- float slg_scale = 0 ,
792- float skip_layer_start = 0.01 ,
793- float skip_layer_end = 0.2 ,
794- ggml_tensor* noise_mask = nullptr ) {
790+ std::vector<int > skip_layers = {},
791+ float slg_scale = 0 ,
792+ float skip_layer_start = 0.01 ,
793+ float skip_layer_end = 0.2 ,
794+ ggml_tensor* noise_mask = nullptr ) {
795795 struct ggml_init_params params;
796796 size_t data_size = ggml_row_size (init_latent->type , init_latent->ne [0 ]);
797797 for (int i = 1 ; i < 4 ; i++) {
0 commit comments