Skip to content

Commit c329eab

Browse files
committed
server: cli args update
1 parent b50e8d5 commit c329eab

File tree

1 file changed

+24
-20
lines changed

1 file changed

+24
-20
lines changed

examples/server/main.cpp

Lines changed: 24 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,7 @@ struct SDParams {
107107
std::string input_id_images_path;
108108

109109
std::vector<int> skip_layers = {7, 8, 9};
110-
float slg_scale = 2.5;
110+
float slg_scale = 0.;
111111
float skip_layer_start = 0.01;
112112
float skip_layer_end = 0.2;
113113

@@ -138,6 +138,7 @@ void print_params(SDParams params) {
138138
printf(" negative_prompt: %s\n", params.negative_prompt.c_str());
139139
printf(" min_cfg: %.2f\n", params.min_cfg);
140140
printf(" cfg_scale: %.2f\n", params.cfg_scale);
141+
printf(" slg_scale: %.2f\n", params.slg_scale);
141142
printf(" guidance: %.2f\n", params.guidance);
142143
printf(" clip_skip: %d\n", params.clip_skip);
143144
printf(" width: %d\n", params.width);
@@ -174,11 +175,12 @@ void print_usage(int argc, const char* argv[]) {
174175
printf(" -p, --prompt [PROMPT] the prompt to render\n");
175176
printf(" -n, --negative-prompt PROMPT the negative prompt (default: \"\")\n");
176177
printf(" --cfg-scale SCALE unconditional guidance scale: (default: 7.0)\n");
177-
printf(" --slg enable skip layer guidance (CFG variant)\n");
178-
printf(" --skip_layers LAYERS Layers to skip for skip layer CFG (requires --slg): (default: [7,8,9])\n");
179-
printf(" --slg-scale SCALE skip layer guidance scale (requires --slg): (default: 2.5)\n");
180-
printf(" --skip_layer_start START skip layer enabling point (* steps) (requires --slg): (default: 0.01)\n");
181-
printf(" --skip_layer_end END skip layer enabling point (* steps) (requires --slg): (default: 0.2)\n");
178+
printf(" --slg-scale SCALE skip layer guidance (SLG) scale, only for DiT models: (default: 0)\n");
179+
printf(" 0 means disabled, a value of 2.5 is nice for sd3.5 medium\n");
180+
printf(" --skip_layers LAYERS Layers to skip for SLG steps: (default: [7,8,9])\n");
181+
printf(" --skip_layer_start START SLG enabling point: (default: 0.01)\n");
182+
printf(" --skip_layer_end END SLG disabling point: (default: 0.2)\n");
183+
printf(" SLG will be enabled at step int([STEPS]*[START]) and disabled at int([STEPS]*[END])\n");
182184
printf(" --strength STRENGTH strength for noising/unnoising (default: 0.75)\n");
183185
printf(" --style-ratio STYLE-RATIO strength for keeping input identity (default: 20%%)\n");
184186
printf(" --control-strength STRENGTH strength to apply Control Net (default: 0.9)\n");
@@ -205,7 +207,6 @@ void print_usage(int argc, const char* argv[]) {
205207

206208
void parse_args(int argc, const char** argv, SDParams& params) {
207209
bool invalid_arg = false;
208-
bool cfg_skip = false;
209210
std::string arg;
210211
for (int i = 1; i < argc; i++) {
211212
arg = argv[i];
@@ -431,8 +432,12 @@ void parse_args(int argc, const char** argv, SDParams& params) {
431432
params.verbose = true;
432433
} else if (arg == "--color") {
433434
params.color = true;
434-
} else if (arg == "--slg") {
435-
cfg_skip = true;
435+
} else if (arg == "--slg-scale") {
436+
if (++i >= argc) {
437+
invalid_arg = true;
438+
break;
439+
}
440+
params.slg_scale = std::stof(argv[i]);
436441
} else if (arg == "--skip-layers") {
437442
if (++i >= argc) {
438443
invalid_arg = true;
@@ -470,12 +475,6 @@ void parse_args(int argc, const char** argv, SDParams& params) {
470475
if (invalid_arg) {
471476
break;
472477
}
473-
} else if (arg == "--slg-scale") {
474-
if (++i >= argc) {
475-
invalid_arg = true;
476-
break;
477-
}
478-
params.slg_scale = std::stof(argv[i]);
479478
} else if (arg == "--skip-layer-start") {
480479
if (++i >= argc) {
481480
invalid_arg = true;
@@ -515,11 +514,6 @@ void parse_args(int argc, const char** argv, SDParams& params) {
515514
params.n_threads = get_num_physical_cores();
516515
}
517516

518-
if (!cfg_skip) {
519-
// set skip_layers to empty
520-
params.skip_layers.clear();
521-
}
522-
523517
if (params.mode != CONVERT && params.mode != IMG2VID && params.prompt.length() == 0) {
524518
fprintf(stderr, "error: the following arguments are required: prompt\n");
525519
print_usage(argc, argv);
@@ -595,6 +589,16 @@ std::string get_image_params(SDParams params, int64_t seed) {
595589
}
596590
parameter_string += "Steps: " + std::to_string(params.sample_steps) + ", ";
597591
parameter_string += "CFG scale: " + std::to_string(params.cfg_scale) + ", ";
592+
if (params.slg_scale != 0 && params.skip_layers.size() != 0) {
593+
parameter_string += "SLG scale: " + std::to_string(params.cfg_scale) + ", ";
594+
parameter_string += "Skip layers: [";
595+
for (const auto& layer : params.skip_layers) {
596+
parameter_string += std::to_string(layer) + ", ";
597+
}
598+
parameter_string += "], ";
599+
parameter_string += "Skip layer start: " + std::to_string(params.skip_layer_start) + ", ";
600+
parameter_string += "Skip layer end: " + std::to_string(params.skip_layer_end) + ", ";
601+
}
598602
parameter_string += "Guidance: " + std::to_string(params.guidance) + ", ";
599603
parameter_string += "Seed: " + std::to_string(seed) + ", ";
600604
parameter_string += "Size: " + std::to_string(params.width) + "x" + std::to_string(params.height) + ", ";

0 commit comments

Comments
 (0)