stable-diffusion
                                
                                
                                
                                    stable-diffusion copied to clipboard
                            
                            
                            
                        Store prompts/parameters in EXIF
It would be cool to (optionally) embed the information in each file's EXIF metadata needed to reproduce it. Having the seed and the prompt in the filename/folder is nice, but it's not always enough information, and if your --n_samples is larger than 1, then the prompt is no longer part of the filename, so individual files have even less metadata.

Here's what it might look like. Other advantages:
- No more worrying about whether the filename is valid if there are special characters in the prompt
 - Photo services can more easily index keywords that appear in EXIF, rather than hoping that they correctly extract keywords from the filename
 - If a photo-management app needs to rename or move the file, no valuable data is lost.
 
Here is a Python snippet that works for PNG:
from libxmp import XMPFiles, consts, XMPMeta
import time
xmpfile = XMPFiles(file_path="PNG-metadata-test.png", open_forupdate=True)
xmp = xmpfile.get_xmp()
if xmp is None:
  xmp = XMPMeta()
xmp.append_array_item(consts.XMP_NS_DC, 'description', 'the time is %s' % time.asctime(), {'prop_array_is_ordered':True, 'prop_value_is_array':True})
xmpfile.put_xmp(xmp)
xmpfile.close_file()
On my Ubuntu Cinnamon system, this works as expected. Note that I needed to install libxml (pip install python-xmp-toolkit)
Please take a look at 50d0f0eab52fda64b002092dd7525855c2b59d2d. It mostly does what I had in mind. Outstanding issues are listed in the commit message. Another issue I just thought of is that JSON might be a better format than str(argparse), because it's just as human-readable, but it's more machine-readable.
Anyway, this definitely scratches my own itch for now. If anyone else finds it useful, I'll be happy to turn it into a PR.

Hi, sorry for the late reply, and thanks for adding this amazing feature; I will merge the commits as soon as possible. Thanks again!
Please wait until I submit a PR, as I don't think the current implementation's quality is high enough. The problem is that installation of a certain required library is difficult, and I don't want you to incur a support load for anyone who runs into trouble.
This is good to review. It works for both txt2img and img2txt, and JPEG and PNG file formats. It introduces no platform-specific dependencies. I've manually tested on Debian.