From 77ef18222ea8417c3fc08d02da62124276e24674 Mon Sep 17 00:00:00 2001 From: Wagner Bruna Date: Tue, 30 Sep 2025 19:35:18 -0300 Subject: [PATCH 1/2] refactor: deal with default img-cfg-scale at the library level So library users won't need to duplicate that code. --- examples/cli/main.cpp | 7 ------- stable-diffusion.cpp | 10 ++++++++-- 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/examples/cli/main.cpp b/examples/cli/main.cpp index b2316386..8aea3557 100644 --- a/examples/cli/main.cpp +++ b/examples/cli/main.cpp @@ -894,13 +894,6 @@ void parse_args(int argc, const char** argv, SDParams& params) { } } - if (!isfinite(params.sample_params.guidance.img_cfg)) { - params.sample_params.guidance.img_cfg = params.sample_params.guidance.txt_cfg; - } - - if (!isfinite(params.high_noise_sample_params.guidance.img_cfg)) { - params.high_noise_sample_params.guidance.img_cfg = params.high_noise_sample_params.guidance.txt_cfg; - } } static std::string sd_basename(const std::string& path) { diff --git a/stable-diffusion.cpp b/stable-diffusion.cpp index 08a42802..7929ca47 100644 --- a/stable-diffusion.cpp +++ b/stable-diffusion.cpp @@ -1071,7 +1071,7 @@ class StableDiffusionGGML { std::vector skip_layers(guidance.slg.layers, guidance.slg.layers + guidance.slg.layer_count); float cfg_scale = guidance.txt_cfg; - float img_cfg_scale = guidance.img_cfg; + float img_cfg_scale = isfinite(guidance.img_cfg) ? guidance.img_cfg : guidance.txt_cfg; float slg_scale = guidance.slg.scale; if (img_cfg_scale != cfg_scale && !sd_version_is_inpaint_or_unet_edit(version)) { @@ -1775,7 +1775,9 @@ char* sd_sample_params_to_str(const sd_sample_params_t* sample_params) { "eta: %.2f, " "shifted_timestep: %d)", sample_params->guidance.txt_cfg, - sample_params->guidance.img_cfg, + isfinite(sample_params->guidance.img_cfg) + ? sample_params->guidance.img_cfg + : sample_params->guidance.txt_cfg, sample_params->guidance.distilled_guidance, sample_params->guidance.slg.layer_count, sample_params->guidance.slg.layer_start, @@ -1936,6 +1938,10 @@ sd_image_t* generate_image_internal(sd_ctx_t* sd_ctx, seed = rand(); } + if (!isfinite(guidance.img_cfg)) { + guidance.img_cfg = guidance.txt_cfg; + } + // for (auto v : sigmas) { // std::cout << v << " "; // } From ef57e41e82430419c447cd3a7371ad719b858b41 Mon Sep 17 00:00:00 2001 From: leejet Date: Sun, 12 Oct 2025 23:16:20 +0800 Subject: [PATCH 2/2] format code --- examples/cli/main.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/cli/main.cpp b/examples/cli/main.cpp index 8aea3557..7ee14cf1 100644 --- a/examples/cli/main.cpp +++ b/examples/cli/main.cpp @@ -893,7 +893,6 @@ void parse_args(int argc, const char** argv, SDParams& params) { params.output_path = "output.gguf"; } } - } static std::string sd_basename(const std::string& path) {