Skip to content

Commit 2c8b907

Browse files
committed
Merge branch 'master' into chroma_radiance
2 parents c916a6b + 48e0a28 commit 2c8b907

File tree

1 file changed

+13
-3
lines changed

1 file changed

+13
-3
lines changed

stable-diffusion.cpp

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ class StableDiffusionGGML {
9595
std::shared_ptr<RNG> rng = std::make_shared<STDDefaultRNG>();
9696
int n_threads = -1;
9797
float scale_factor = 0.18215f;
98+
float shift_factor = 0.f;
9899

99100
std::shared_ptr<Conditioner> cond_stage_model;
100101
std::shared_ptr<FrozenCLIPVisionEmbedder> clip_vision; // for svd or wan2.1 i2v
@@ -325,9 +326,10 @@ class StableDiffusionGGML {
325326
scale_factor = 0.13025f;
326327
} else if (sd_version_is_sd3(version)) {
327328
scale_factor = 1.5305f;
329+
shift_factor = 0.0609f;
328330
} else if (sd_version_is_flux(version)) {
329331
scale_factor = 0.3611f;
330-
// TODO: shift_factor
332+
shift_factor = 0.1159f;
331333
} else if (sd_version_is_wan(version) || sd_version_is_qwen_image(version)) {
332334
scale_factor = 1.0f;
333335
}
@@ -1463,7 +1465,11 @@ class StableDiffusionGGML {
14631465
} else if (version == VERSION_CHROMA_RADIANCE) {
14641466
// pass
14651467
} else {
1466-
ggml_tensor_scale(latent, scale_factor);
1468+
ggml_tensor_iter(latent, [&](ggml_tensor* latent, int64_t i0, int64_t i1, int64_t i2, int64_t i3) {
1469+
float value = ggml_tensor_get_f32(latent, i0, i1, i2, i3);
1470+
value = (value - shift_factor) * scale_factor;
1471+
ggml_tensor_set_f32(latent, value, i0, i1, i2, i3);
1472+
});
14671473
}
14681474
}
14691475

@@ -1505,7 +1511,11 @@ class StableDiffusionGGML {
15051511
} else if (version == VERSION_CHROMA_RADIANCE) {
15061512
// pass
15071513
} else {
1508-
ggml_tensor_scale(latent, 1.0f / scale_factor);
1514+
ggml_tensor_iter(latent, [&](ggml_tensor* latent, int64_t i0, int64_t i1, int64_t i2, int64_t i3) {
1515+
float value = ggml_tensor_get_f32(latent, i0, i1, i2, i3);
1516+
value = (value / scale_factor) + shift_factor;
1517+
ggml_tensor_set_f32(latent, value, i0, i1, i2, i3);
1518+
});
15091519
}
15101520
}
15111521

0 commit comments

Comments
 (0)