From 29c30e8fcdada7e6115fab1421c5cad0cc5a3733 Mon Sep 17 00:00:00 2001 From: xxnuo <54252779+xxnuo@users.noreply.github.com> Date: Fri, 5 Dec 2025 15:13:37 +0800 Subject: [PATCH] feat: server add default_gen_params to override default args such as using default steps and cfg-scale for zimage: ./sd-server \ --color \ -v \ --diffusion-model ./model.gguf \ --vae ./ae.sft \ --llm ./llm.gguf \ --diffusion-fa \ --type q8_0 \ --cfg-scale 1.0 \ --steps 9 \ --listen-ip 0.0.0.0 \ --listen-port 3000 --- examples/server/main.cpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/examples/server/main.cpp b/examples/server/main.cpp index e2a2c2b16..268c19658 100644 --- a/examples/server/main.cpp +++ b/examples/server/main.cpp @@ -139,17 +139,19 @@ void print_usage(int argc, const char* argv[], const std::vector& op options_list[0].print(); std::cout << "\nContext Options:\n"; options_list[1].print(); + std::cout << "\nDefault Generation Options:\n"; + options_list[2].print(); } -void parse_args(int argc, const char** argv, SDSvrParams& svr_params, SDContextParams& ctx_params) { - std::vector options_vec = {svr_params.get_options(), ctx_params.get_options()}; +void parse_args(int argc, const char** argv, SDSvrParams& svr_params, SDContextParams& ctx_params, SDGenerationParams& default_gen_params) { + std::vector options_vec = {svr_params.get_options(), ctx_params.get_options(), default_gen_params.get_options()}; if (!parse_options(argc, argv, options_vec)) { print_usage(argc, argv, options_vec); exit(svr_params.normal_exit ? 0 : 1); } - if (!svr_params.process_and_check() || !ctx_params.process_and_check(IMG_GEN)) { + if (!svr_params.process_and_check() || !ctx_params.process_and_check(IMG_GEN) || !default_gen_params.process_and_check(IMG_GEN)) { print_usage(argc, argv, options_vec); exit(1); } @@ -258,7 +260,8 @@ void sd_log_cb(enum sd_log_level_t level, const char* log, void* data) { int main(int argc, const char** argv) { SDSvrParams svr_params; SDContextParams ctx_params; - parse_args(argc, argv, svr_params, ctx_params); + SDGenerationParams default_gen_params; + parse_args(argc, argv, svr_params, ctx_params, default_gen_params); sd_set_log_callback(sd_log_cb, (void*)&svr_params); @@ -266,6 +269,7 @@ int main(int argc, const char** argv) { printf("%s", sd_get_system_info()); printf("%s\n", svr_params.to_string().c_str()); printf("%s\n", ctx_params.to_string().c_str()); + printf("%s\n", default_gen_params.to_string().c_str()); } sd_ctx_params_t sd_ctx_params = ctx_params.to_sd_ctx_params_t(false, false, false); @@ -350,11 +354,11 @@ int main(int argc, const char** argv) { out["data"] = json::array(); out["output_format"] = output_format; - SDGenerationParams gen_params; - gen_params.prompt = prompt; - gen_params.width = width; - gen_params.height = height; - gen_params.batch_count = n; + SDGenerationParams gen_params = default_gen_params; + gen_params.prompt = prompt; + gen_params.width = width; + gen_params.height = height; + gen_params.batch_count = n; if (!sd_cpp_extra_args_str.empty() && !gen_params.from_json_str(sd_cpp_extra_args_str)) { res.status = 400;