Skip to content

Commit aa68b87

Browse files
authored
refactor: deal with default img-cfg-scale at the library level (#869)
1 parent 5b261b9 commit aa68b87

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

examples/cli/main.cpp

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -906,14 +906,6 @@ void parse_args(int argc, const char** argv, SDParams& params) {
906906
params.output_path = "output.gguf";
907907
}
908908
}
909-
910-
if (!isfinite(params.sample_params.guidance.img_cfg)) {
911-
params.sample_params.guidance.img_cfg = params.sample_params.guidance.txt_cfg;
912-
}
913-
914-
if (!isfinite(params.high_noise_sample_params.guidance.img_cfg)) {
915-
params.high_noise_sample_params.guidance.img_cfg = params.high_noise_sample_params.guidance.txt_cfg;
916-
}
917909
}
918910

919911
static std::string sd_basename(const std::string& path) {

stable-diffusion.cpp

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1071,7 +1071,7 @@ class StableDiffusionGGML {
10711071
std::vector<int> skip_layers(guidance.slg.layers, guidance.slg.layers + guidance.slg.layer_count);
10721072

10731073
float cfg_scale = guidance.txt_cfg;
1074-
float img_cfg_scale = guidance.img_cfg;
1074+
float img_cfg_scale = isfinite(guidance.img_cfg) ? guidance.img_cfg : guidance.txt_cfg;
10751075
float slg_scale = guidance.slg.scale;
10761076

10771077
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) {
17751775
"eta: %.2f, "
17761776
"shifted_timestep: %d)",
17771777
sample_params->guidance.txt_cfg,
1778-
sample_params->guidance.img_cfg,
1778+
isfinite(sample_params->guidance.img_cfg)
1779+
? sample_params->guidance.img_cfg
1780+
: sample_params->guidance.txt_cfg,
17791781
sample_params->guidance.distilled_guidance,
17801782
sample_params->guidance.slg.layer_count,
17811783
sample_params->guidance.slg.layer_start,
@@ -1936,6 +1938,10 @@ sd_image_t* generate_image_internal(sd_ctx_t* sd_ctx,
19361938
seed = rand();
19371939
}
19381940

1941+
if (!isfinite(guidance.img_cfg)) {
1942+
guidance.img_cfg = guidance.txt_cfg;
1943+
}
1944+
19391945
// for (auto v : sigmas) {
19401946
// std::cout << v << " ";
19411947
// }

0 commit comments

Comments
 (0)