From 9ce72e7071db00ec52e17dcbce53df96d8fc1a8b Mon Sep 17 00:00:00 2001 From: somebody Date: Mon, 19 Dec 2022 20:18:41 -0600 Subject: [PATCH 1/3] Fix crash when manually generating images --- aiserver.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/aiserver.py b/aiserver.py index adcd4162..28a8a480 100644 --- a/aiserver.py +++ b/aiserver.py @@ -9572,6 +9572,8 @@ def generate_story_image( # This function is a wrapper around generate_image() that integrates the # result with the story (read: puts it in the corner of the screen). + log_data = log_data or {} + if not display_prompt: display_prompt = prompt koboldai_vars.picture_prompt = display_prompt From 8d113bf0aa83abecc28e1f9d530c113171d51be6 Mon Sep 17 00:00:00 2001 From: somebody Date: Mon, 19 Dec 2022 20:22:33 -0600 Subject: [PATCH 2/3] Handle no action id --- aiserver.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/aiserver.py b/aiserver.py index 28a8a480..f0c22d7f 100644 --- a/aiserver.py +++ b/aiserver.py @@ -9598,7 +9598,10 @@ def generate_story_image( log_image_generation(prompt, display_prompt, file_name, generation_type, log_data) #let's also add this data to the action so we know where the latest picture is at logger.info("setting picture filename") - koboldai_vars.actions.set_picture(int(log_data['actionId']), file_name, prompt) + try: + koboldai_vars.actions.set_picture(int(log_data['actionId']), file_name, prompt) + except KeyError: + pass logger.debug("Time to Generate Image {}".format(time.time()-start_time)) From 149ec6b49daa1b13b776a240a006acadd2ccac50 Mon Sep 17 00:00:00 2001 From: somebody Date: Mon, 19 Dec 2022 20:27:31 -0600 Subject: [PATCH 3/3] Gracefully report back if horde bans anonymous generation --- aiserver.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/aiserver.py b/aiserver.py index f0c22d7f..0bef47fd 100644 --- a/aiserver.py +++ b/aiserver.py @@ -9694,6 +9694,14 @@ def text2img_horde(prompt: str) -> Optional[Image.Image]: id_req = requests.post("https://stablehorde.net/api/v2/generate/async", json=final_submit_dict, headers=cluster_headers) if not id_req.ok: + if id_req.status_code == 403: + show_error_notification( + "Stable Horde failure", + "Stable Horde is currently not accepting anonymous requuests. " \ + "Try again in a few minutes or register for priority access at https://stablehorde.net", + do_log=True + ) + return None logger.error(f"HTTP {id_req.status_code}, expected OK-ish") logger.error(id_req.text) logger.error(f"Response headers: {id_req.headers}")