109 Commits
Author SHA1 Message Date
CoCo c2d0c07fcc fix version uptick 2026-03-16 06:13:53 -07:00
CoCo cd58f86bd1 fix: code cleanup of widgets helpers and fallbacks 2026-03-16 06:12:22 -07:00
CoCo c6fb2638ce feat: start frame and frame step widgets added to saver 2026-03-16 05:44:28 -07:00
CoCo 462c7587e7 feature version uptick 2026-03-14 21:52:21 -07:00
CoCo 2ad3aaf5dc added token system to saver, feature uptick 2026-03-14 21:51:10 -07:00
CoCo cf148b66f4 updates to .gitignore and catching the readme up to everything that has changed 2026-03-14 13:20:29 -07:00
CoCoandClaude Opus 4.6 5cbdafc6d0 feat: fix file browser double-prompt, add test assets and workflows
Replace STRING widget with fresh COCO.PATH widget object to prevent
LiteGraph default "Value" prompt from appearing alongside custom file
browser. Bump version to 0.8.0. Simplify .gitignore and move dev
files to dev/. Add test images and example workflow for release.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 16:04:42 +00:00
CoCoandClaude Opus 4.6 7f0f8b37f2 feat: add dynamic file browser for load/save nodes
Server-side /cocotools/browse API endpoint returns directory listings
with extension filtering. JS modal file browser injects browse buttons
on ImageLoader, LoadExr, LoadExrSequence, and SaverNode path widgets.
Zero changes to node INPUT_TYPES — fully backward compatible.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 16:48:55 +00:00
CoCoandClaude Opus 4.6 93ed47a52b chore: bump version to 0.7.0
Update pyproject.toml version from 0.5.0 to 0.7.0 to reflect actual
semver history since 0.4.2.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 17:52:35 +00:00
CoCoandClaude Opus 4.6 43084fbea2 feat: add interactive click-to-matte preview with zebra stripe overlay
Adds a clickable Canvas2D preview widget to CryptomatteLayer that displays
the connected beauty pass, maps mouse clicks to pixel coordinates for matte
generation, and overlays a diagonal zebra stripe pattern on selected pixels.

- Add preview_image optional IMAGE input and OUTPUT_NODE for UI data
- Create js/cryptomatte.js with click handler, crosshair, and hover coords
- Fix image output to always produce valid [1,H,W,3] IMAGE tensors
- Search all cryptomatte ranks and ID channels for hash matching
- Extract layer name resolution into _resolve_layer_name method

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-05 05:17:09 +00:00
CoCoandClaude Opus 4.6 6ae233b980 feat: add click-to-matte functionality to CryptomatteLayer node
- Add optional x_coord/y_coord inputs for pixel selection
- Sample cryptomatte float32 hash at clicked position
- Generate binary mask matching all pixels with same object ID
- Add JS click handler to map preview clicks to pixel coordinates
- Existing functionality preserved when coords are -1 (default)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 22:09:34 +00:00
CoCoandClaude Opus 4.6 62b62d2a96 chore: add ruff config and fix 573 linting issues
- Add ruff configuration to pyproject.toml (py310, 120 char lines)
- Fix trailing whitespace (W291/W293), modernize type annotations (UP006/UP045)
- Remove unused imports (F401), simplify dict iteration (SIM118)
- Use f-string conversion flags (RUF010), modernize exception aliases (UP024)
- Replace try/except pass with contextlib.suppress (SIM105)
- Prefix unused variables with underscore (F841/RUF059)
- Convert lambdas to def statements (E731)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 22:06:33 +00:00
CoCoandClaude Opus 4.6 d6ebae7b2f fix: low-severity Python fixes P8-P11
P8: preserve original layer name in fuzzy-match debug logs
P9: preserve negative values in ACES colorspaces
P10: use actual channel count in reshape_from_processing
P11: add max version counter (9999) to get_unique_filepath

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 21:59:41 +00:00
CoCo 92a18e37ae Merge branch 'worktree-agent-a59e0e12' into dev/0.5.0 2026-03-04 21:57:05 +00:00
CoCoandClaude Opus 4.6 5c4f4d8b2b fix: low-severity JS fixes — nullish coalescing, bounds guard, remove console noise, dead code
J5: histogram clip stats nullish coalescing
J6: vectorscope Math.min for coord array bounds
J7: vectorscope point_count nullish coalescing
J8: remove console.log/warn calls from load_exr_layer_by_name
J10: remove dead onWidgetChange override

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 21:56:58 +00:00
CoCo 3fe7f8c59b Merge branch 'worktree-agent-a1f37369' into dev/0.5.0 2026-03-04 21:55:28 +00:00
CoCoandClaude Opus 4.6 d9f9fb58a3 fix: PIL I-mode int32 scaling and alpha normalization preservation
P3: normalize int32 PIL I-mode values by dtype max instead of raw passthrough
P4: clamp alpha to [0,1] instead of min-max stretching

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 21:55:24 +00:00
CoCoandClaude Opus 4.6 0da483f59b fix: guard against None rgb_tensor and uninitialized channel_groups in EXR processing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 21:55:12 +00:00
CoCoandClaude Opus 4.6 f159fe313c feat: add bit depth estimation to histogram node
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 21:53:48 +00:00
CoCoandClaude Opus 4.6 bf2dd95070 fix: JS guards for empty histogram bins, missing vectorscope coords, unknown widget types, and stale node refs
J1: histogram.js - guard against empty counts array
J2: vectorscope.js - guard against missing coordinate arrays
J3: saver.js - guard unknown widget types, safe widget identification
J4: load_exr_layer_by_name.js - store nodeId only, re-resolve from graph

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 21:53:45 +00:00
CoCoandClaude Opus 4.6 24586f6769 fix: use proper BT.709 OETF for Rec.709 transfer function
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 21:53:11 +00:00
CoCoandClaude Opus 4.6 9e2529d1d1 fix: use proper BT.709 OETF for Rec.709 transfer function
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 21:51:41 +00:00
CoCoandClaude Opus 4.6 9a76a4e432 fix: correct sequence batch ordering when early frames are missing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 21:50:35 +00:00
CoCoandClaude Opus 4.6 59d63cd57f fix: correct sequence batch ordering when early frames are missing
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 21:50:05 +00:00
CoCoandClaude Opus 4.6 4c3dce1ae9 merge: fix P1 - add missing I;16B/I;16L PIL modes to bit depth detection
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 21:49:53 +00:00
CoCoandClaude Opus 4.6 dbb89bce57 fix: add missing I;16B/I;16L PIL modes to bit depth detection
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 21:49:35 +00:00
CoCoandClaude Opus 4.6 5138e511ac fix: downgrade verbose logging from INFO to DEBUG across all nodes
Step-by-step processing details were flooding the console during normal
ComfyUI operation. Demote ~45 info-level logs to debug, consolidate
multi-line error blocks, and remove redundant duplicate messages. Only
one clean summary line per major node operation remains at INFO level.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 01:24:53 +00:00
CoCoandClaude Opus 4.6 e9283636f9 fix: preserve 16/32-bit precision in ImageLoader PIL path
PIL's convert("RGB") silently truncates to 8-bit, destroying precision
for high bit depth TIFFs and PNGs. Bypass it for I;16/I/F modes by
reading directly into numpy and normalizing per detected bit depth.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-04 01:16:15 +00:00
CoCoandClaude Opus 4.6 81e13382b5 fix: address code review — channel guard, var→const, batch_size
Add channels < 3 guard matching histogram pattern.
Replace all var declarations with const/let for consistency.
Add batch_size to image_info for parity with histogram node.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 03:54:21 +00:00
CoCoandClaude Opus 4.6 cf7b05760d feat: add vectorscope Canvas2D frontend with overlays and toggles
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 03:50:38 +00:00
CoCo 1643e6b77c feat: register VectorscopeNode in node mappings 2026-03-02 03:48:29 +00:00
CoCoandClaude Opus 4.6 b62151f64c feat: add vectorscope V3 node with YCbCr/HSV/CIE xy color models
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-02 03:47:15 +00:00
CoCoandClaude Opus 4.6 9c49cf9905 fix: report original channel count in histogram image_info
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 16:04:12 +00:00
CoCoandClaude Opus 4.6 4fe38eebd7 fix: extend histogram fill to right canvas edge at low bin counts
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 15:59:21 +00:00
CoCoandClaude Opus 4.6 da87f4d682 feat: add histogram Canvas2D frontend widget
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 15:55:50 +00:00
CoCo a786b9b727 feat: register histogram node in node mappings 2026-03-01 15:53:32 +00:00
CoCoandClaude Opus 4.6 dd7d5524de fix: add error handling and fix dead code in histogram node
- Wrap execute body in try/except with error logging
- Handle < 3 channel edge case by repeating channels
- Remove dead-code guard on bins assignment

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 15:52:46 +00:00
CoCoandClaude Opus 4.6 a929a3cee5 feat: add V3 histogram node backend
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-01 15:48:15 +00:00
CoCo 61300a7dd6 Merge branch 'fix/pyproject' into dev/0.5.0 2026-02-20 16:39:44 +00:00
CoCo 4b88bd3a11 Merge branch 'fix/code-quality' into dev/0.5.0 2026-02-20 16:39:44 +00:00
CoCo abdf618686 Merge branch 'fix/layer-node' into dev/0.5.0 2026-02-20 16:39:44 +00:00
CoCo 09b5bcaac1 Merge branch 'fix/sequence-utils' into dev/0.5.0 2026-02-20 16:39:44 +00:00
CoCo 953bb5a775 Merge branch 'fix/exr-utils' into dev/0.5.0 2026-02-20 16:39:44 +00:00
CoCo 4aeca9c962 Merge branch 'fix/image-loader' into dev/0.5.0 2026-02-20 16:39:44 +00:00
CoCo a657915052 Merge branch 'fix/saver' into dev/0.5.0 2026-02-20 16:39:44 +00:00
CoCo 5a8643c2c2 Merge branch 'fix/colorspace' into dev/0.5.0 2026-02-20 16:39:44 +00:00
CoCo 1bb1a38549 Merge branch 'fix/js-extensions' into dev/0.5.0 2026-02-20 16:39:44 +00:00
CoCoandClaude Opus 4.6 02359318d3 Fix image loader bit depth detection and normalization
Detect bit depth from original image mode before RGB conversion.
Fix double-normalization when normalize=True.
Preserve constant images instead of zeroing them.
Fix alpha mask tensor shape to match ComfyUI MASK type [B,H,W].

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 15:13:15 +00:00
CoCoandClaude Opus 4.6 a2790e049a Fix sequence pattern handling for frame numbers and detection
Only replace #### placeholders, not arbitrary digits in filenames.
Require 2+ consecutive # in filename portion for sequence detection.
Support variable-width frame patterns (###, ####, #####).
Prefer last numeric sequence for frame number extraction.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 15:10:57 +00:00
CoCoandClaude Opus 4.6 07fa7250c2 Fix layer node return types from list to tuple
ComfyUI expects tuple returns matching RETURN_TYPES.
Clean up commented-out registration code.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 15:09:54 +00:00