diff --git a/expose.cpp b/expose.cpp index 8b5b83810..b6327afd7 100644 --- a/expose.cpp +++ b/expose.cpp @@ -251,6 +251,10 @@ extern "C" int get_total_gens() { return total_gens; } + int get_total_img_gens() + { + return total_img_gens; + } int get_last_stop_reason() { return (int)last_stop_reason; } diff --git a/expose.h b/expose.h index 6eb3a179f..e4047941d 100644 --- a/expose.h +++ b/expose.h @@ -142,4 +142,5 @@ extern float last_process_time; extern int last_token_count; extern int last_seed; extern int total_gens; +extern int total_img_gens; extern stop_reason last_stop_reason; diff --git a/koboldcpp.py b/koboldcpp.py index 03fac42e1..9d117a3fa 100644 --- a/koboldcpp.py +++ b/koboldcpp.py @@ -636,6 +636,7 @@ preloaded_story = None sslvalid = False nocertify = False start_time = time.time() +last_req_time = time.time() class ServerRequestHandler(http.server.SimpleHTTPRequestHandler): sys_version = "" @@ -1047,14 +1048,17 @@ Enter Prompt:
response_body = (json.dumps({"result":"KoboldCpp","version":KcppVersion, "protected":has_password ,"txt2img":has_txt2img,"vision":has_vision}).encode()) elif self.path.endswith(('/api/extra/perf')): + global last_req_time, start_time lastp = handle.get_last_process_time() laste = handle.get_last_eval_time() lastc = handle.get_last_token_count() totalgens = handle.get_total_gens() + totalimggens = handle.get_total_img_gens() stopreason = handle.get_last_stop_reason() lastseed = handle.get_last_seed() uptime = time.time() - start_time - response_body = (json.dumps({"last_process":lastp,"last_eval":laste,"last_token_count":lastc, "last_seed":lastseed, "total_gens":totalgens, "stop_reason":stopreason, "queue":requestsinqueue, "idle":(0 if modelbusy.locked() else 1), "hordeexitcounter":exitcounter, "uptime":uptime}).encode()) + idletime = time.time() - last_req_time + response_body = (json.dumps({"last_process":lastp,"last_eval":laste,"last_token_count":lastc, "last_seed":lastseed, "total_gens":totalgens, "stop_reason":stopreason, "total_img_gens":totalimggens, "queue":requestsinqueue, "idle":(0 if modelbusy.locked() else 1), "hordeexitcounter":exitcounter, "uptime":uptime, "idletime":idletime}).encode()) elif self.path.endswith('/api/extra/generate/check'): if not self.secure_endpoint(): @@ -1249,6 +1253,8 @@ Enter Prompt:
is_txt2img = True if is_txt2img or api_format > 0: + global last_req_time + last_req_time = time.time() if not is_txt2img and api_format<5: if not self.secure_endpoint(): diff --git a/otherarch/sdcpp/sdtype_adapter.cpp b/otherarch/sdcpp/sdtype_adapter.cpp index a1b42b2b8..948c8e3fa 100644 --- a/otherarch/sdcpp/sdtype_adapter.cpp +++ b/otherarch/sdcpp/sdtype_adapter.cpp @@ -111,6 +111,9 @@ struct SDParams { int upscale_repeats = 1; }; +//shared +int total_img_gens = 0; + //global static vars for SD static SDParams * sd_params = nullptr; static sd_ctx_t * sd_ctx = nullptr; @@ -388,5 +391,6 @@ sd_generation_outputs sdtype_generate(const sd_generation_inputs inputs) free(results); output.data = recent_data.c_str(); output.status = 1; + total_img_gens += 1; return output; }