44 Commits
Author SHA1 Message Date
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 2ad3aaf5dc added token system to saver, feature uptick 2026-03-14 21:51:10 -07: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
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 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 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 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 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 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 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
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 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
CoCoandClaude Opus 4.6 5315094b83 Code quality: fix WEB_DIRECTORY, clean dead code, fix bare excepts
Use relative path for WEB_DIRECTORY.
Remove commented-out registration code from modules.
Replace bare except with specific exception types.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 15:09:19 +00:00
CoCoandClaude Opus 4.6 3e4e117851 Fix colorspace gamma swap and conversion bugs
Swap incorrectly reversed eotf_sRGB/eotf_inverse_sRGB calls.
Fix operator precedence in conditional checks.
Move colorspace config to class-level constants.
Use BT.1886 transfer function for Rec.2020.
Clean up bare excepts and dead code.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 15:09:09 +00:00
CoCoandClaude Opus 4.6 07c2eb0143 Fix saver HDR clipping, bit depth defaults, and cleanup
Preserve full float range for EXR output instead of clipping to [0,1].
Let OIIO handle float16 conversion for half-float EXR.
Fix EXR bit_depth fallback from 16 to 32 (closes #10).
Use deterministic grayscale sampling.
Remove non-functional dynamic widget metadata.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 15:08:42 +00:00
CoCoandClaude Opus 4.6 1c54512104 Add smart IS_CHANGED caching to ColorspaceNode and ZNormalizeNode
Replace always-execute NaN returns with content-aware fingerprinting
based on tensor properties, node parameters, and sampled pixel values.
Remove unused workflow JSON.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 14:56:54 +00:00
Conor-Collins 653c2d382e silencing more logging info 2025-09-30 14:01:47 -07:00
Conor-Collins 0c1a786e33 silenced some logging to reduce the clutter in logs 2025-09-30 13:56:01 -07:00
Conor-Collins c93c3f12b8 Fully featured sequences load just like the single exr images now. Separated sequence loader into its own node due to js complexity. Adjusted all layers to use comfy caching logic method 2025-07-25 15:29:40 -07:00
Conor-Collins 53a13cb010 changed exr sequence to work with start and end frames, made node mappings more consistent across project 2025-07-25 09:36:28 -07:00
Conor-Collins 7ce9d4b7d1 wip files - batch sequence processing work 2025-07-22 16:41:44 -07:00
Conor-Collins 05d42e9427 added debugging controls 2025-07-20 11:29:56 -07:00
Conor-Collins 526e2cf4a6 refactor of load and save nodes, previews added to nodes, skeleton for sequences put in place as well 2025-07-20 10:56:28 -07:00
Conor-Collins acfc08c239 Completely rewrote the saver node to address a few bugs and clean up the code 2025-06-17 15:17:52 -07:00
Conor-Collins 1384fd5ab3 Colorspace transformations added 2025-05-21 17:18:33 -07:00
Conor-Collins db9f4c0959 Update to depth processing, reformatting of project name in the .toml 2025-05-14 13:39:52 -07:00
Conor-Collins 76ea6caefd adress some language in the function names and documentation 2025-05-13 13:37:14 -07:00
Conor-Collins 2c660ba936 initial upload 2025-04-21 05:10:10 -07:00