#!/usr/bin/env python
"""This script reads the "Invoke" Stable Diffusion prompt embedded in files generated by invoke.py"""

import sys
from PIL import Image, PngImagePlugin

if len(sys.argv) < 2:
    print("Usage: file2prompt.py <file1.png> <file2.png> <file3.png>...")
    print(
        "This script opens up the indicated invoke.py-generated PNG file(s) and prints out the prompt used to generate them."
    )
    exit(-1)

filenames = sys.argv[1:]
for f in filenames:
    try:
        im = Image.open(f)
        try:
            prompt = im.text["Dream"]
        except KeyError:
            prompt = ""
        print(f"{f}: {prompt}")
    except FileNotFoundError:
        sys.stderr.write(f"{f} not found\n")
        continue
    except PermissionError:
        sys.stderr.write(f"{f} could not be opened due to inadequate permissions\n")
        continue