comfy-image-saver 插件 - 保姆级图文教程
1. 插件简介
插件地址: https://github.com/giriss/comfy-image-saver
这个插件就像一个超级智能的"图片管家"。你可以把它想象成一个既能保存图片,又能记录"制作过程"的神奇助手。当你用 ComfyUI 生成图片时,这个插件不仅能把图片保存下来,还能把你用了什么参数、什么模型、什么提示词等信息都"写"在图片里,就像给每张图片贴上一个详细的"制作标签"。
这个插件能给我们带来什么效果:
- 📝 图片信息记录员:把生成图片时用的所有参数都记录在图片文件里
- 🏷️ 智能标签贴纸:让图片自带"身份证",包含模型、种子、提示词等信息
- 📁 文件管理助手:可以自定义文件名和保存路径,让图片整理更有序
- 🔄 格式转换器:支持 PNG、JPEG、WebP 三种格式保存
- 🎯 参数选择器:提供各种便捷的参数选择工具
- 🌐 网站兼容器:保存的图片能被 Civitai、Prompthero 等网站自动识别参数
就像有一个贴心的秘书,不仅帮你保存工作成果,还详细记录每个工作步骤,让你随时能回顾和重现。
2. 如何安装
方法一:使用 ComfyUI Manager(推荐新手)
- 确保你已经安装了 ComfyUI Manager
- 在 ComfyUI Manager 中搜索 "Save Image with Generation Metadata"
- 点击安装即可
- 重启 ComfyUI
方法二:手动安装
- 打开插件地址:https://github.com/giriss/comfy-image-saver
- 点击绿色的 "Code" 按钮
- 选择 "Download ZIP"
- 解压下载的文件
- 把解压后的文件夹复制到
ComfyUI/custom_nodes/目录下 - 在插件文件夹中运行:
pip install -r requirements.txt - 重启 ComfyUI
方法三:Git 命令(适合有经验的用户)
cd ComfyUI/custom_nodes/
git clone https://github.com/giriss/comfy-image-saver.git
cd comfy-image-saver
pip install -r requirements.txt
3. 节点详细解析
3.1 Save Image w/Metadata 节点
这个节点是干嘛的?
这个节点就像一个"超级图片保存器"。它不仅能把你生成的图片保存到电脑里,还能把制作这张图片时用的所有"配方"(参数、模型、提示词等)都"写"进图片文件里。就像烘焙师不仅给你蛋糕,还把制作蛋糕的完整配方贴在盒子上一样。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| images | images | IMAGE类型 | 生成的图片 | 这是要保存的"图片原料",就像要装进盒子的蛋糕 | 输入的图像数据 | 连接图片生成节点的输出 |
| filename | filename | 字符串 | %time_%seed | 这是"文件名模板",决定保存的图片叫什么名字 | 文件名格式模板 | "%time_%seed"会生成"时间_种子值"的文件名 |
| path | path | 字符串 | 空 | 这是"保存位置",决定图片保存在哪个文件夹里 | 保存路径 | "my_images"会在输出文件夹下创建这个子文件夹 |
| extension | extension | 选择列表 | png | 这是"图片格式选择器",就像选择保存为什么类型的文件 | 图像文件格式 | png质量最好,jpeg文件最小,webp平衡两者 |
| steps | steps | 整数 | 20 | 这是"制作步数记录",记录生成图片用了多少步 | 采样步数 | 20步是常用值,会记录在图片信息里 |
| cfg | cfg | 浮点数 | 8.0 | 这是"听话程度记录",记录AI多严格按照提示词执行 | CFG引导强度 | 8.0是常用值,会保存在图片元数据中 |
| modelname | modelname | 选择列表 | 模型名称 | 这是"画师选择器",选择用哪个AI模型生成的 | 使用的检查点模型 | 选择你实际使用的模型名称 |
| sampler_name | sampler_name | 选择列表 | 采样器名 | 这是"画画方法记录",记录用什么方式生成图片 | 采样算法名称 | DPM++、Euler等,选择实际使用的 |
| scheduler | scheduler | 选择列表 | 调度器名 | 这是"时间安排记录",记录噪声如何逐步减少 | 噪声调度器 | normal、karras等,选择实际使用的 |
| positive | positive | 字符串 | unknown | 这是"正面描述记录",记录你想要什么效果 | 正向提示词 | 输入实际使用的正面提示词 |
| negative | negative | 字符串 | unknown | 这是"负面描述记录",记录你不想要什么效果 | 负向提示词 | 输入实际使用的负面提示词 |
| seed_value | seed_value | 整数 | 0 | 这是"随机种子记录",记录生成时的随机数 | 随机种子值 | 输入实际使用的种子值 |
| width | width | 整数 | 512 | 这是"图片宽度记录",记录图片有多宽 | 图像宽度像素 | 输入实际生成的图片宽度 |
| height | height | 整数 | 512 | 这是"图片高度记录",记录图片有多高 | 图像高度像素 | 输入实际生成的图片高度 |
| lossless_webp | lossless_webp | 布尔值 | True | 这是"WebP无损开关",决定WebP格式是否保持完美质量 | WebP无损压缩选项 | True保持最佳质量,False文件更小 |
| quality_jpeg_or_webp | quality_jpeg_or_webp | 整数 | 100 | 这是"图片质量调节器",就像调节照片清晰度 | JPEG/WebP质量等级 | 100是最高质量,50是中等质量 |
| counter | counter | 整数 | 0 | 这是"计数器",给文件名加上序号 | 文件计数器 | 用于批量保存时区分不同文件 |
| time_format | time_format | 字符串 | %Y-%m-%d-%H%M%S | 这是"时间格式模板",决定时间在文件名中的样子 | 时间格式字符串 | %Y年%m月%d日%H时%M分%S秒 |
3.2 Checkpoint Selector 节点
这个节点是干嘛的?
这个节点就像一个"AI画师选择器"。你可以把它想象成一个下拉菜单,里面列出了你电脑里所有可用的AI模型(就像不同风格的画师),你可以从中选择一个来使用。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| ckpt_name | ckpt_name | 选择列表 | 可用模型 | 这是"画师名册",从中选择一个AI画师来工作 | 检查点模型选择 | 选择你想使用的模型,如"sd_xl_base_1.0.safetensors" |
3.3 Sampler Selector 节点
这个节点是干嘛的?
这个节点就像一个"画画方法选择器"。你可以把它想象成选择用什么画笔或画法来创作,比如用油画笔还是水彩笔,每种方法画出来的效果都略有不同。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| sampler_name | sampler_name | 选择列表 | 采样器列表 | 这是"画法选择器",选择用什么方式来生成图片 | 采样算法选择 | 选择DPM++ 2M、Euler、DDIM等不同算法 |
3.4 Scheduler Selector 节点
这个节点是干嘛的?
这个节点就像一个"时间安排表选择器"。你可以把它想象成选择画画时的节奏,是快速完成还是慢慢精雕细琢,不同的安排会影响最终效果。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| scheduler | scheduler | 选择列表 | 调度器列表 | 这是"节奏选择器",选择生成过程的时间安排 | 噪声调度器选择 | 选择normal、karras、exponential等不同调度方式 |
3.5 Seed Generator 节点
这个节点是干嘛的?
这个节点就像一个"幸运数字生成器"。你可以把它想象成一个骰子,每次投掷都会产生一个数字,这个数字决定了AI生成图片时的随机性。相同的数字会产生相同的结果。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| seed | seed | 整数 | 0 | 这是"幸运数字",决定生成图片的随机效果 | 随机种子值 | 设置123456,每次用这个数字都会得到相同结果 |
3.6 String Literal 节点
这个节点是干嘛的?
这个节点就像一个"文字输入框"。你可以把它想象成一个记事本,你可以在里面写任何文字,然后把这些文字传递给其他节点使用,比如提示词、文件名等。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| string | string | 字符串 | 空 | 这是"文字输入区",可以写任何你想要的文字 | 字符串文本输入 | 输入"beautiful landscape"作为提示词 |
3.7 Width/Height Literal 节点
这个节点是干嘛的?
这个节点就像一个"尺寸设定器"。你可以把它想象成一个尺子,用来设定图片的宽度或高度,就像决定画布的大小一样。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| int | int | 整数 | 512 | 这是"尺寸数值",设定图片的宽度或高度像素 | 尺寸像素值 | 设置768表示768像素宽或高 |
3.8 Cfg Literal 节点
这个节点是干嘛的?
这个节点就像一个"听话程度调节器"。你可以把它想象成一个音量旋钮,数值越高,AI越严格按照你的描述来生成图片;数值越低,AI会更自由发挥。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| float | float | 浮点数 | 8.0 | 这是"听话程度数值",控制AI多严格按照提示词执行 | CFG引导强度值 | 8.0是中等听话,15.0是非常听话,3.0是比较自由 |
3.9 Int Literal 节点
这个节点是干嘛的?
这个节点就像一个"数字输入器"。你可以把它想象成一个计算器的数字键盘,用来输入各种需要用到的整数,比如步数、计数器等。
参数详解:
| 参数名 (UI显示) | 参数名 (代码里) | 参数值 | 建议值 | 通俗解释 (能干嘛的) | 专业解释 | 怎么用/举个例子 |
|---|---|---|---|---|---|---|
| int | int | 整数 | 0 | 这是"数字输入区",可以输入任何需要的整数 | 整数值输入 | 输入20表示20步,输入100表示100%质量 |
4. 使用技巧和建议
4.1 文件命名技巧
- 使用模板变量:
%time_%seed_%model会生成包含时间、种子和模型名的文件名 - 自定义格式:可以用
%date获取日期,%counter获取序号 - 避免特殊字符:文件名中避免使用
/\:*?"<>|等特殊字符
4.2 路径管理建议
- 分类保存:用不同的路径保存不同类型的图片,如
portraits、landscapes - 日期分组:使用
%date按日期创建文件夹 - 项目分组:为不同项目创建专门的文件夹
4.3 格式选择指南
- PNG格式:质量最好,支持透明,文件较大,适合最终作品
- JPEG格式:文件最小,适合快速预览和分享
- WebP格式:平衡质量和大小,现代浏览器支持好
4.4 元数据使用技巧
- 完整记录:尽量填写所有参数,方便后续重现
- 提示词整理:保持提示词简洁明了,避免过长
- 版本管理:通过计数器区分同一设置的不同版本
4.5 工作流程优化
- 模板设置:为常用的参数组合创建模板
- 批量处理:使用计数器进行批量生成和保存
- 备份重要设置:保存工作流程文件作为备份
5. 常见问题解答
Q1:为什么保存的图片没有元数据信息?
A: 可能的原因和解决方案:
- 检查是否选择了PNG格式(PNG格式元数据支持最好)
- 确认所有参数都正确填写了
- 检查提示词是否连接到了positive和negative输入
- 重启ComfyUI后重试
Q2:文件名模板不生效怎么办?
A: 检查方法:
- 确认模板语法正确,如
%time而不是%Time - 检查时间格式是否正确,默认格式是
%Y-%m-%d-%H%M%S - 确保种子值、模型名等参数都有正确输入
- 避免在文件名中使用系统禁用字符
Q3:保存路径创建失败怎么办?
A: 解决方法:
- 检查路径名是否包含非法字符
- 确认ComfyUI有写入权限
- 尝试使用相对路径而不是绝对路径
- 手动创建目标文件夹后再试
Q4:JPEG和WebP格式的元数据丢失?
A: 说明和解决:
- JPEG和WebP的元数据存储在EXIF中,某些软件可能不显示
- 使用专门的EXIF查看工具可以看到信息
- 如需最佳兼容性,建议使用PNG格式
- 确认quality参数设置合理(不要设置为0)
Q5:如何批量保存多张图片?
A: 操作方法:
- 使用counter参数自动编号
- 在filename中加入
%counter变量 - 如果输入多张图片,会自动添加序号后缀
- 可以结合时间戳确保文件名唯一
6. 实际应用场景
6.1 作品集管理
使用详细的元数据记录每张作品的创作参数,方便后续学习和改进。
6.2 参数实验
通过保存不同参数组合的结果,建立自己的参数库和经验总结。
6.3 客户项目
为不同客户的项目创建专门的保存路径,保持项目文件的整洁。
6.4 网站分享
生成的图片可以直接上传到Civitai、Prompthero等网站,参数会被自动识别。
6.5 学习研究
通过元数据记录,可以分析哪些参数组合产生了最佳效果。
7. 高级使用技巧
7.1 自动化工作流程
- 结合其他节点创建完全自动化的生成和保存流程
- 使用计数器实现批量处理
- 设置默认参数减少重复输入
7.2 文件组织策略
- 按模型分类:
%model/%date/%time_%seed - 按项目分类:
project_name/%date/%counter - 按风格分类:
style_type/%model_%seed
7.3 质量控制
- 为不同用途设置不同的质量参数
- 预览用低质量,最终输出用高质量
- 根据文件大小需求选择合适格式
7.4 元数据利用
- 使用元数据信息重现喜欢的效果
- 分析成功作品的参数规律
- 建立个人的参数数据库
总结: comfy-image-saver 插件是一个功能全面的图片保存和元数据管理工具,通过智能的参数记录和灵活的文件管理功能,让你的ComfyUI工作流程更加高效和有序。掌握这些节点的使用,能让你更好地管理和重现你的创作成果。
注意事项: 使用时要注意文件路径的权限问题,确保ComfyUI有足够的写入权限。对于重要作品,建议使用PNG格式以获得最佳的元数据保存效果。
推荐搭配: 这个插件与ComfyUI的基础节点配合使用效果最佳,特别是与KSampler、CheckpointLoader等核心节点的组合。