Skip to content

Commit ed41e75

Browse files
committed
Fix non inpaint sd2
1 parent a9e7ee6 commit ed41e75

File tree

1 file changed

+8
-8
lines changed

1 file changed

+8
-8
lines changed

stable-diffusion.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)