一个独立的简易 AI 图片 prompt 查看器,用于在不依赖 webui 的情况下提取由 Stable Diffusion 生成图片内包含的 prompt
功能 • 支持格式 • 下载 • 使用方式 • 命令行 • ComfyUI Node • 常见问题 • Credits
Tip
SD Prompt Reader 现在可作为 ComfyUI 节点使用。查看 ComfyUI Prompt Reader Node 了解更多信息。
- 支持 macOS、 Windows 和 Linux
- 提供图形界面和命令行两种交互方式
- 简单的拖放交互
- 复制 prompt 到剪贴板
- 去除图片中的 prompt
- 导出 prompt 到 txt 文件
- 编辑或导入 prompt 到图片
- 竖排显示以及根据字母排序
- 检测生成工具
- 支持多种格式
- 支持系统深色和浅色模式
PNG | JPEG | WEBP | TXT* | |
---|---|---|---|---|
A1111's webUI | ✅ | ✅ | ✅ | ✅ |
Easy Diffusion | ✅ | ✅ | ✅ | |
StableSwarmUI* | ✅ | ✅ | ||
StableSwarmUI (0.5.8-alpha 之前的版本)* | ✅ | ✅ | ||
Fooocus-MRE* | ✅ | ✅ | ||
NovelAI (stealth pnginfo) | ✅ | ✅ | ||
NovelAI (旧版) | ✅ | |||
InvokeAI | ✅ | |||
InvokeAI (2.3.5-post.2 之前的版本) | ✅ | |||
InvokeAI (1.15 之前的版本) | ✅ | |||
ComfyUI* | ✅ | |||
Draw Things | ✅ | |||
Naifu(4chan) | ✅ |
* 见格式限制.
Note
如果你使用的工具或格式不在这个列表中, 请帮助我支持你的格式: 将你的工具生成的原始图片文件上传到 issues, 谢谢.
Tip
对于 ComfyUI 用户,SD Prompt Reader 现在可作为 ComfyUI 节点使用。 ComfyUI Prompt Reader Node 是本项目的一个子项目,建议在你的工作流程中嵌入其中的 Prompt Saver node 以确保最大的兼容性。
从 GitHub Releases 下载可执行文件
从 GitHub Releases 下载可执行文件
你也可以通过 Homebrew cask 安装 SD Prompt Reader.
brew install --no-quarantine receyuki/sd-prompt-reader/sd-prompt-reader
使用 --no-quarantine
参数是因为目前 SD Prompt Reader 并未签名, 具体原因请查看这里
我很确定 Linux 用户可以在没有可执行文件的情况下搞明白怎么用
- 最低Python版本要求: 3.10
- 确保你的 Python 中安装了 tkinter 包.
如果没有,请使用软件包管理器安装 python3-tk 包.
e.g.sudo apt-get install python3-tk
(基于 Debian 的发行版)
你可以选择使用 pip 进行安装或者手动运行
pip install sd-prompt-reader
or
pipx install sd-prompt-reader
在终端内输入 sd-prompt-reader
来启动图形界面.
在终端内输入 sd-prompt-reader-cli
来使用命令行.
- Clone repo
或者直接下载 repo 为 zip 格式.
git clone https://github.com/receyuki/stable-diffusion-prompt-reader.git
- CD 到文件夹并安装依赖
cd stable-diffusion-prompt-reader pip install -r requirements.txt
- Run
python -m sd_prompt_reader.app
- 打开可执行文件 (.exe 或 .app) 并将图片拖入窗口.
或
- 右键图片选择使用 SD Prompt Reader 作为打开方式
或
- 直接将图片拖入可执行文件 (.exe 或 .app).
- 点击 "Clear" 将在原图像文件旁生成一个后缀为"_data_removed"的图像文件.
- 要保存到另一个位置, 点击展开的箭头并点击 "select directory".
- 要覆盖原始图像文件, 点击展开的箭头并点击 "overwrite the original image".
Note
编辑后的图片将以 A1111 格式进行写入, 这意味着任何格式的图片在编辑后都将变为 A1111 格式.
- 点击 "Edit" 进入编辑模式
- 直接在文本框中编辑 prompt, 或者导入 txt 格式的prompt数据.
- 点击 "Save" 将在原图像文件旁生成一个后缀为 "_edited" 的编辑后图像文件.
- 要保存到另一个位置, 点击展开的箭头并点击 "select directory".
- 要覆盖原始图像文件, 点击展开的箭头并点击 "overwrite the original image".
将图片 prompt 和设置复制为可被 Prompts from file or textbox 读取的格式 支持以下参数:
设置 | 参数 |
---|---|
Seed | --seed |
Variation seed strength | --subseed_strength |
Seed resize from | --seed_resize_from_h |
Seed resize from | --seed_resize_from_w |
Sampler | --sampler_name |
Steps | --steps |
CFG scale | --cfg_scale |
Size | --width |
Size | --height |
Face restoration | --restore_faces |
Note
SDXL 流程不支持编辑,如有需要请去除图片中的 prompt 后再进行编辑
如果图片中 workflow 包含多组 SDXL 的 prompt,
也就是 Clip G(text_g), Clip L(text_l) 和 Refiner 时,
SD Prompt Reader 会切换到如下图所示的多组 prompt 显示模式.
多组 prompt 显示模式有两种界面供你选择,你可以通过按钮来进行切换.
可用于读取、修改和清除图像的元数据的命令行工具
SD Prompt Reader CLI.exe
将作为一个独立的可执行文件放置在压缩包中.
例示:
"SD Prompt Reader CLI.exe" -i example.png
可执行文件位于 SD Prompt Reader.app/Contents/MacOS/SD Prompt Reader
.
例示:
/Applications/SD\ Prompt\ Reader.app/Contents/MacOS/SD\ Prompt\ Reader -i example.png
示例:
sd-prompt-reader-cli -i example.png
- 读取模式:通过
-r
或--read
标志激活. - 写入模式:通过
-w
或--write
标志激活. - 清除模式:通过
-c
或--clear
标志激活.
-i
,--input-path
: 输入图像文件的路径或包含图像文件的目录, 必需参数.-o
,--output-path
: 处理后文件保存的输出文件或目录路径.-l
,--log-level
: 指定日志的详细级别(如 DEBUG、INFO、WARN、ERROR).
-f
,--format-type
: 指定输出元数据的格式,选择为 "TXT" 或 "JSON". 默认格式为 "TXT"
-m
,--metadata
: 提供用于写入的元数据文件.-p
,--positive
: 提供用于写入的正面prompt.-n
,--negative
: 提供用于写入的负面prompt串.-s
,--setting
: 提供用于写入的设置信息.
- 如果未指定输出路径, 修改后的图像会保存在当前目录中, 并在原始文件名后加上后缀.
- 如需覆盖源文件, 请将输出路径设置为与输入路径相同.
- 写入模式仅支持对单个图像进行修改.
- 从图像中读取元数据.
- 用法:
sd-prompt-reader-cli [-r] -i <input_path> [--format-type <format>] [-o <output_path>]
- 示例:
sd-prompt-reader-cli -i example.png
sd-prompt-reader-cli -i example.png -o metadata.txt
sd-prompt-reader-cli -r -i example.png -f TXT -o output_folder/
sd-prompt-reader-cli -r -i input_folder/ -f JSON -o output_folder/
- 将元数据写入图像.
- 用法:
sd-prompt-reader-cli -w -i <input_path> -m <metadata_path> [-o <output_path>]
- 示例:
sd-prompt-reader-cli -w -i example.png -m new_metadata.txt
sd-prompt-reader-cli -w -i example.png -m new_metadata.txt -o output.png
sd-prompt-reader-cli -w -i example.png -m new_metadata.json -o output_folder/
- 从图像中删除所有元数据.
- 用法:
sd-prompt-reader-cli -c -i <input_path> [-o <output_path>]
- 示例:
sd-prompt-reader-cli -c -i example.png
sd-prompt-reader-cli -c -i example.png -o output.png
sd-prompt-reader-cli -c -i example.png -o output_folder/
sd-prompt-reader-cli -c -i input_folder/ -o output_folder/
- txt 文件仅能在编辑模式下导入.
- 仅支持 A1111 格式的 txt 文件. 你可以使用 A1111 webui 生成的txt文件, 或使用 SD prompt reader 从 A1111 生成的图片中导出 txt.
Important
StableSwarmUI 依然处于 Alpha 测试状态,其格式未来可能会发生改变, 我将会持续跟进 StableSwarmUI 未来的更新.
Important
当流程过于复杂或者使用自定义节点时,SD Prompt Reader 有很大概率无法正确显示元数据。这是由于 ComfyUI 并不储存元数据,而是储存完整的流程。 SD Prompt Reader 仅能处理基础的工作流程. 建议在你的工作流程中嵌入 ComfyUI Prompt Reader Node 中的 Prompt Saver node 以确保最大的兼容性.
- 如果设置框中有多组数据(seed, steps, CFG, etc.),这意味着流程中有多个 KSampler 节点
- 由于 ComfyUI 的特性, workflow 中的所有节点和流程都存储在图像中, 包括没有被使用的. 并且一个流程可以有多个分支,多个输入和输出. (e.g. 在一个流程中同时生成原图和 hires. fix 后的图像) SD Prompt Reader 会遍历所有的流程和分支,并显示拥有完整的输入和输出的最长分支.
- ComfyUI SDXL 流程
默认设置下, Easy Diffusion 不会将 prompt 写入图片. 请更改设置中的 Metadata format 为 embed 来写入 prompt 到图片中.
由于原版的 Fooocus 并不支持将 metadata 写入图片文件, SD Prompt Reader 仅支持由 Fooocus MoonRide Edition 生成的图片.
Warning
错误的病毒警报是由我使用的打包工具 pyinstaller 造成的, 这对 pyinstaller 用户是一个常见的问题. 我花费了许多时间来解决 Windows Defender 的错误警报, 但我没法对每个杀毒软件单独解决问题. 因此, 你可以选择相信 Windows Defender 或者使用 Linux 用户的使用说明来使用 app.
Important
这是一个使用非 appstore 的未签名软件时常见的 macOS 问题, 开发者需要付给苹果每年 $99 来避免这个问题. 你可以在设置中隐私与安全性的安全性中选择允许任何来源, 但这可能造成危险. 我推荐的方式是移除 quarantine attributes.
-
在应用程序中打开终端.
-
输入以下命令并按回车.
xattr -r -d com.apple.quarantine app的路径
比如:
xattr -r -d com.apple.quarantine /Applications/SD\ Prompt\ Reader.app
如果你仍然担心安全性可以选择使用 Linux 用户的使用说明来使用 app.
- 图像批处理功能
- 多图像/文件夹模式
- 用户设置
- Inspired by Stable Diffusion web UI
- App icon generated using Stable Diffusion with IconsMI
- Special thanks to Azusachan for providing SD server
- The NovelAI stealth pnginfo parser is based on the official metadata extraction script of NovelAI