Files
るみなー先生 09e717ea00 仕様: 出力ディレクトリ処理とファイル連番の仕様書を追加し、関連するドキュメントを更新
機能: Windows形式のドライブ相対パスを拒否し、連番の予約処理を原子的に実装
テスト: 出力ディレクトリとファイル連番に関するユニットテストを追加
バージョン: 0.1.3に更新
2026-08-24 19:37:41 +09:00

5.2 KiB

v0.1.3 - Collision-safe output filenames

This patch release prevents JPEG overwrites when counters exceed four digits or multiple processes save to the same directory concurrently. It also rejects ambiguous Windows drive-relative output paths.

Fixed

  • Existing five-digit and longer counters are now detected, so image_10000.jpg is followed by image_10001.jpg instead of being overwritten.
  • Output filenames are reserved atomically. Concurrent saves that select the same candidate counter now retry with the next available number.
  • GraphicsMagick JPEG output is streamed directly into the exclusively reserved output file without creating an intermediate JPEG or PNG.
  • Incomplete reserved output files are removed when GraphicsMagick fails, times out, or cannot be executed.
  • Ambiguous Windows drive-relative paths such as C:foo, D:foo, and C: are rejected before a directory or image is created.

Path behavior

  • Normal relative paths such as foo continue to resolve below the standard ComfyUI output directory.
  • Fully qualified Windows paths such as D:\foo continue to be used as absolute paths.
  • To avoid environment-dependent save locations, drive-relative paths are no longer supported.

Documentation and tests

  • Added .spec/filename-counters.md for counter allocation and concurrent-save behavior.
  • Added .spec/output-directory.md for output path interpretation and validation.
  • Updated the English and Japanese documentation.
  • Added regression coverage for five-digit counters, atomic reservations, failed-output cleanup, and Windows path handling.

Compatibility

Existing workflows using normal relative paths or fully qualified absolute paths remain compatible. Workflows using Windows drive-relative paths must change C:foo to either foo for the ComfyUI output directory or C:\foo for an absolute path.

v0.1.2 - Reliable long JPEG comments

This patch release fixes intermittent JPEG save failures caused by passing long comments directly to GraphicsMagick as a command-line argument.

Fixed

  • JPEG comments are now passed through a temporary UTF-8 file instead of directly on the command line.
  • Long prompts no longer hit GraphicsMagick's per-argument length limit or the Windows command-line length limit.
  • Comments beginning with @ are no longer interpreted as arbitrary file references.
  • Temporary comment files are removed after successful saves and when GraphicsMagick raises an error or times out.
  • Operating-system execution errors now include the actual error instead of always reporting that GraphicsMagick is not installed.

Comment handling

  • Temporary comment files are written as UTF-8 without a BOM.
  • BOM characters, NUL characters, unsupported control characters, and invalid Unicode surrogates are removed before saving.
  • Tabs, line feeds, carriage returns, Japanese text, accented characters, and emoji are preserved.
  • The existing 65,000-byte JPEG comment limit remains in place, with truncation performed only at a valid UTF-8 character boundary.
  • No temporary file is created when the comment input is not connected, empty, or empty after normalization.
  • One temporary comment file is reused for every image in the same batch.

Notes

GraphicsMagick normalizes line endings read from a comment file to CRLF and appends a trailing CRLF. Line structure is preserved, but the stored comment is not guaranteed to be byte-for-byte identical to the input.

The agreed behavior and regression requirements are documented in .spec/comment-handling.md and covered by automated tests.

Documentation

  • Rebuilt README.md as the English documentation.
  • Rebuilt README.ja.md as the corresponding Japanese documentation.
  • Added language navigation links and synchronized both documents with the current implementation.
  • Corrected the project description and documentation URL in pyproject.toml.

Compatibility

Existing workflows remain compatible. The node inputs, outputs, directory behavior, filename behavior, JPEG settings, and previewless output behavior are unchanged.

v0.1.1 - Registry scan compatibility update

This release updates GraphicsMagick executable resolution and documentation to reduce Comfy Registry scanner warnings.

Changed

  • Removed GM_PATH support.
  • Removed GM_IMAGE_SAVER_TIMEOUT support.
  • GraphicsMagick is now resolved via shutil.which("gm").
  • The save timeout is now fixed at 300 seconds.
  • Updated error messages to avoid environment-variable-based executable configuration wording.
  • Updated README installation instructions.
  • Updated GraphicsMagick links in README.

Notes

GraphicsMagick must be installed separately.

Please make sure the gm command can be executed from the environment where ComfyUI is launched.

You can check it with:

gm version

After installing GraphicsMagick, restart ComfyUI.

Compatibility

Existing workflows should continue to work as before, except environments that depended on GM_PATH must now make gm available to the ComfyUI process directly.

The node behavior remains the same:

  • Direct ComfyUI IMAGE tensor to GraphicsMagick JPEG output
  • No intermediate PNG file
  • JPEG-only
  • Previewless output node
  • label input for checkpoint names or experiment labels
  • Directory pattern based output organization
  • Per-image progress bar updates