piexif

















This is a subproject of the
It helps you extract metadata from images in any format supported by the
SD Prompt Reader and saves the images with
additional metadata to ensure compatibility with metadata detection on websites such as Civitai.
Usage •
| | PNG | JPEG | WEBP | TXT* |
|—————————————————————————————-|:—:|:—-:|:—-:|:—-:|
| A1111’s webUI | ✅ | ✅ | ✅ | ✅ |
| Easy Diffusion | ✅ | ✅ | ✅ | |
| StableSwarmUI* | ✅ | ✅ | | |
| StableSwarmUI (prior to 0.5.8-alpha)* | ✅ | ✅ | | |
| Fooocus-MRE* | ✅ | ✅ | | |
| NovelAI (stealth pnginfo) | ✅ | | ✅ | |
| NovelAI (legacy) | ✅ | | | |
| InvokeAI | ✅ | | | |
| InvokeAI (prior to 2.3.5-post.2) | ✅ | | | |
| InvokeAI (prior to 1.15) | ✅ | | | |
| ComfyUI* | ✅ | | | |
| Draw Things | ✅ | | | |
| Naifu(4chan) | ✅ | | | |
See SD Prompt Reader for details
[!NOTE]
While ZIP package is available, it is strongly recommended not to use it for installation.
Search for SD Prompt Reader in the ComfyUI Manager and install it.
Please make sure to install the submodules along with the main repository.
cd to the custom_node folder“`shell
git clone –recursive https://github.com/receyuki/comfyui-prompt-reader-node.git
“`
“`shell
cd comfyui-prompt-reader-node
pip install -r requirements.txt
“`
When updating, don’t forget to include the submodules along with the main repository.
git pull --recurse-submodules
Prompt Reader Node works exactly the same as theIt uses the Image Data Reader from the
allowing it to support the same formats and receive updates along with the
[!IMPORTANT]
Due to custom nodes and complex workflows potentially causing issues with SD Prompt Reader’s ability
to read image metadata correctly, it is recommended to embed the
Prompt SaverNode within the workflow
to ensure maximum compatibility.
More Information
parameter_indexhires-fix or refiner,you will need to modify the parameter_index to select the parameters you need
the text_g will be combined with text_l into a single prompt
Batch Loader node. When using the Batch Loader node for bulk reading,the preview image will not update, and the text box will only display the metadata of the last image.
settings to the Parameter Extractor node.MODEL_NAMEMODEL_NAME is a special output that matches the model name in the metadata with the existing models on the serveraccording to the following priority:
e.g. sd_xl_base.safetensors will be matched with SDXL\sd_xl_base.safetensors, and vice versa.
e.g. sd_xl_base will be matched with SDXL\sd_xl_base.safetensors, and vice versa.
Prompt Saver Node and the Parameter Generator Node are designed to be used together.Prompt Saver Node will write additional metadata in the A1111 format to the output imagesto be compatible with any tools that support the A1111 format,
including SD Prompt Reader and Civitai.
to read image metadata correctly, it’s recommended to embed this node within the workflow
to ensure maximum compatibility.
[!TIP]
Since it’s not possible to directly extract metadata from
KSampler, it’s necessary to
use the
Parameter GeneratorNode to generate parameters and simultaneously output them to
the
Prompt SaverNode andKSamplerNode.
More Information
e.g. file.png, file_1.png, file_2.png.
calculate_hash is enabled, the node will compute the hash values of checkpoint, VAE, Lora,and embedding/Textual Inversion, and write them into the metadata. After the server restarts, or a new checkpoint,
VAE, Lora, or embedding/Textual Inversion is loaded, the first image generation may take a longer time for hash calculation.
The hash value will be stored in temporary storage without the need for repeated calculation,
until the server is restarted.
resource_hash is enabled, the resource hashes will be written into the metadata to support auto-detectionon Civitai. This function will only run when calculate_hash is enabled.
Lora Loader Node or the Lora Selector Node.The hash value of the embedding/Textual Inversion will be automatically detected from the prompt.
save_metadata_filesave_metadata_file is turned on, the metadata will be saved as a TXT file with the same namealongside the image.
date_format & time_formatdate_format and time_format, please refer tostrftime.org or www.strfti.me.
filename & path%counter cannot be used for path, it can only be used for filename. This %counter is slightly differentfrom the %counter in the built-in Saver node, it will count all image files in the path.
filename and path.| | |
|————|————|
| %seed | %date |
| %steps | %time |
| %cfg | %counter |
| %model | %extension |
| %sampler | %quality |
| %scheduler | |
KSampler, it’s necessary touse the Parameter Generator Node to generate parameters and simultaneously output them to both
the Prompt Saver Node and KSampler Node.
[!TIP]
The
Parameter GeneratorNode can also be used as a control panel for complex ComfyUI workflows, just like the AP workflow.
More Information
model_version and aspect_ratio are used only for calculating the optimal resolution of the selectedmodel version under the chosen aspect ratio. The calculation method is based on the
Stability AI development documentation
and the StableSwarmUI source code (developed by Stability AI).
refiner_startrefiner_start refers to the proportion of steps completed when the refiner starts running,i.e., the proportion of base steps to total steps. This is used to calculate the start_at_step (REFINER_START_STEP)
required by the refiner KSampler under the selected step ratio.
Batch Loader Node is specifically designed for the Prompt Reader Node to batch-read image files in a directoryand cannot be used with other custom nodes.
More Information
IMAGE output of the Batch Loader Node to the image input ofthe Prompt Reader Node.
pathpath supports relative paths such as ./input/ or absolute paths like C:/Users/receyuki/Pictures.\ and / are acceptable.path,in which case the image_load_limit and start_index will not function.
Parameter Extractor Node is an extension of the Prompt Reader Node, designed to retrieve the valuesof all parameters in the settings (including those parameters that the Prompt Reader Node cannot output).
e.g. Hires upscaler
More Information
SETTINGS of the Prompt Reader Node to the settings of the Parameter Extractor Node.After the first run, the parameter list will be loaded.
text_g and text_l separately, SDXL users need to usethe Prompt Merger Node to combine text_g and text_l into a single prompt.
model_name, sampler_name, and scheduler are special typesthat cannot be directly used by some other nodes,
You can use the Type Converter Node to convert them into STRING type.
Lora Loader Node and Lora Selector Node are used to write Lora data into metadata and support auto-detectionon Civitai.
More Information
Lora Loader Node, or connect the LORA_NAME output of the Lora Selector Nodeto the lora_name input of other lora loaders (built-in or custom), and link the NEXT_LORA output to the lora_name
input of the Prompt Saver Node. Both of these nodes have the same function, please choose according to your needs.
Lora Loader Node or Lora Selector Node head to tailthrough last_lora and NEXT_LORA, and connect the NEXT_LORA at the end of the Lora chain to the lora_name input
of the Prompt Saver Node.
Simple Example
Lora Example
Hires-fix Example
SDXL Example