diff --git a/ai_frame_image_server.py b/ai_frame_image_server.py index 083d11c..6777f24 100644 --- a/ai_frame_image_server.py +++ b/ai_frame_image_server.py @@ -41,11 +41,11 @@ def gallery() -> str: images = [] for f in os.listdir(image_folder): if f.lower().endswith(('png', 'jpg', 'jpeg', 'gif')): - path = os.path.join(image_folder, f) - prompt = get_prompt_from_png(path) # You’d define this function to read metadata - images.append({'filename': f, 'prompt': prompt}) - + path = os.path.join(image_folder, f) # Full path to the image + prompt = get_prompt_from_png(path) # Your method to extract the prompt + images.append({'filename': f, 'prompt': prompt, 'path': path}) # Add 'path' to the dictionary + images = sorted(images, key=lambda x: os.path.getmtime(x['path']), reverse=True) return render_template("gallery.html", images=images) diff --git a/lib.py b/lib.py index 8364cbe..2e277f4 100644 --- a/lib.py +++ b/lib.py @@ -274,7 +274,12 @@ def create_image(prompt: str | None = None) -> None: def get_prompt_from_png(path): try: with Image.open(path) as img: - meta = img.info.get("parameters").split("Negative")[0] # ComfyUI usually stores it here + try: + # Flux workflow + meta = img.info.get("parameters").split("Negative")[0] + except AttributeError: + # SDXL workflow + meta = json.loads(img.info["prompt"])['6']['inputs']['text'] return meta or "" except Exception as e: print(f"Error reading metadata from {path}: {e}")