Fix output selection logic

This commit is contained in:
City
2024-01-05 15:17:03 +01:00
parent 2f76d241a9
commit 64c8d6db64
3 changed files with 12 additions and 4 deletions
+9 -1
View File
@@ -7,6 +7,14 @@ from PIL import Image
POLLING = 0.5
def get_job_output(inputs, outputs):
output_id = list(outputs.keys())[-1] # fallback to last
for i,d in inputs.items():
if d.get("final_output") and i in outputs.keys():
output_id = i
break
return outputs[output_id].get("images", [])
def wait_for_job(remote_url, job_id):
fail = 0
while fail <= 3:
@@ -25,7 +33,7 @@ def wait_for_job(remote_url, job_id):
if d["prompt"][3].get("job_id") == job_id:
# this needs to be less jank
if len(d["outputs"].keys()) > 0:
return d["outputs"][list(d["outputs"].keys())[-1]].get("images")
return get_job_output(d["prompt"][2], d["outputs"])
else:
return []
# todo: check if it's actually in the queue to avoid waiting forever