Extensions/ComfyUI-SaveImageDPI
ComfyUI Extension

ComfyUI-SaveImageDPI

Save images as PNG/JPEG/TIFF/PSD with DPI metadata and filename tokens (%model%, %seed%)

By mzkmkgm22-sudo·Created about a month ago·Updated about a month ago· 0
mzkmkgm22-sudo/ComfyUI-SaveImageDPI
Nodes
On cloudLocal install
Stars0
Updatedabout a month ago
Readme

ComfyUI-SaveImageDPI

Save images as PNG / JPEG / TIFF / PSD with proper DPI metadata — plus %model% / %seed% filename tokens. Designed for print workflows (e.g. submitting 350dpi files to a print shop) without a round trip through Photoshop.

日本語READMEは下にあります

Features

  • 4 output formats: PNG, JPEG (quality setting), TIFF (LZW lossless), PSD (flat, 8-bit RGB)
  • DPI metadata written correctly for every format (default 72, up to 1200)
  • Filename tokens: %model%, %seed% anywhere in filename_prefix (plus ComfyUI's built-in %date:yyyyMMdd% etc.), subfolders supported
  • Clean sequence numbers: prefix_00001.png — like the stock Save Image node but without the trailing underscore
  • Workflow embedding in PNG (stock-compatible, respects --disable-metadata)

Why PSD DPI is written twice

Readers disagree on where a PSD's resolution lives:

| Location | Read by | |---|---| | ResolutionInfo (image resource 1005, per PSD spec) | Photoshop, Clip Studio Paint, psd-tools | | EXIF X/YResolution (image resource 1058) | macOS ImageIO (Preview, Quick Look, sips) — it ignores 1005 entirely |

This node writes both, so the file shows the correct DPI everywhere. (Verified empirically on macOS 2026-07: a PSD carrying only a spec-perfect 1005 resource is reported as 72dpi by sips, while adding 1058 fixes it.)

Install

cd ComfyUI/custom_nodes
git clone https://github.com/mzkmkgm22-sudo/ComfyUI-SaveImageDPI
pip install -r ComfyUI-SaveImageDPI/requirements.txt   # psd-tools

psd-tools is only needed for PSD output; PNG/JPEG/TIFF work without it.

Node: Save Image (DPI)

| Input | Type | Default | Notes | |---|---|---|---| | images | IMAGE | — | batch → sequential files | | filename_prefix | STRING | ComfyUI | tokens + subfolders, e.g. art/%model%_%seed% | | format | choice | png | png / jpg / tiff / psd | | dpi | INT | 72 | 1–1200 | | model_name | STRING | "" | feeds %model% (path/extension stripped) | | seed | INT | 0 | feeds %seed% | | quality | INT | 90 | JPEG only | | embed_workflow | BOOL | true | PNG only |

Example: filename_prefix = "print/%model%_%seed%" with anima_baseV10.safetensors and seed 123456 → output/print/anima_baseV10_123456_00001.psd

Tests

python tests/test_save_image_dpi.py   # or pytest — no ComfyUI required

License

MIT


<a name="日本語"></a>

日本語

PNG / JPEG / TIFF / PSD を正しい DPIメタデータ付きで保存するカスタムノードです。%model% / %seed% ファイル名トークンにも対応。印刷入稿(350dpi指定など)のためのPhotoshop往復をなくすことを目的としています。

機能

  • 4形式対応: PNG、JPEG(quality指定可)、TIFF(LZW可逆圧縮)、PSD(フラット・8bit RGB)
  • 全形式でDPIメタデータを正しく書き込み(既定72、最大1200)
  • ファイル名トークン: filename_prefix 内の任意の位置で %model% %seed%(ComfyUI標準の %date:yyyyMMdd% 等も併用可)、サブフォルダ対応
  • 連番がきれい: prefix_00001.png — 公式Save Imageの末尾アンダースコアを削除した形式
  • PNGへのワークフロー埋め込み(公式互換、--disable-metadata 尊重)

PSDのDPIを2箇所に書く理由

PSDの解像度情報は、読むソフトによって参照場所が異なります:

| 格納場所 | 読むソフト | |---|---| | ResolutionInfo(イメージリソース 1005、PSD仕様の正規位置) | Photoshop、クリスタ、psd-tools | | EXIF X/YResolution(イメージリソース 1058) | macOS ImageIO(プレビュー、Quick Look、sips)— 1005を完全に無視します |

本ノードは両方に書き込むため、どの環境で開いても正しいDPIが表示されます。(2026-07にmacOSで実測: 仕様通りの1005だけを持つPSDはsipsで72dpi扱いになり、1058を追加すると直る)

インストール

cd ComfyUI/custom_nodes
git clone https://github.com/mzkmkgm22-sudo/ComfyUI-SaveImageDPI
pip install -r ComfyUI-SaveImageDPI/requirements.txt   # psd-tools

psd-tools はPSD出力時のみ必要です(PNG/JPEG/TIFFだけなら不要)。

入力

| 入力 | 型 | 既定値 | 備考 | |---|---|---|---| | images | IMAGE | — | バッチは連番で複数ファイルに | | filename_prefix | STRING | ComfyUI | トークン・サブフォルダ可(例 art/%model%_%seed%) | | format | 選択式 | png | png / jpg / tiff / psd | | dpi | INT | 72 | 1〜1200 | | model_name | STRING | "" | %model% に入る(パス・拡張子は自動除去) | | seed | INT | 0 | %seed% に入る | | quality | INT | 90 | JPEG時のみ | | embed_workflow | BOOL | true | PNG時のみ |

例: filename_prefix = "print/%model%_%seed%"、モデル名 anima_baseV10.safetensors、seed 123456 → output/print/anima_baseV10_123456_00001.psd

ライセンス

MIT