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

109 lines
5.2 KiB
Markdown

# 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:
```bash
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