8 Commits
Author SHA1 Message Date
limbicnation ba22db3be5 feat: audit fixes, validation, smoke tests, and conflict resolution
- Add Pydantic parameter validation (src/validation.py)
- Add structured logging with structlog fallback
- Add IS_CHANGED, OUTPUT_NODE, DESCRIPTION metadata to all nodes
- Add comprehensive smoke and unit tests
- Fix invert_mask double-application bug
- Fix create_fallback_processor()() double call
- Resolve merge conflicts in .gitignore, grabcut_nodes.py, nodes.py, requirements.txt
- Remove FLOYO_INTEGRATION_GUIDE.md, schemas.py (superseded)
- Update CI: Python 3.10-3.12, pytest smoke tests
2026-04-24 05:18:02 +02:00
limbicnation 84deeb20bf fix: wire up PR #15 validation/logging and add smoke tests
PR #15 shipped four NameError-class bugs that crash at call time but slip
past import-only CI: validate_node_params, log, _log_gpu_memory, and
invert_mask were referenced without being defined.

This commit:

- Adds schemas.py with Pydantic v2 NodeParams (ranges mirror INPUT_TYPES)
  and a dataclass fallback so minimal envs still validate.
- Adds a structlog-or-stdlib logging guard and _log_gpu_memory helper at
  the top of grabcut_nodes.py; the stdlib adapter preserves exc_info
  semantics.
- Exposes invert_mask on both AutoGrabCutRemover and GrabCutRefinement —
  INPUT_TYPES, function signature, and applied to the alpha channel in
  every success/fallback path.
- Fixes torch.stack shape mismatch in GrabCutRefinement.refine_mask: all
  branches now run through the same resize so batches can stack when
  output_size != ORIGINAL.
- Narrows the validation exception handler to (ValidationError,
  ValueError, TypeError).
- Adds OUTPUT_NODE, DESCRIPTION, and IS_CHANGED (deterministic sha256
  hash over scalar inputs) to all four node classes.
- Adds test_node_smoke.py with 9 tests that actually invoke each node's
  FUNCTION, plus parameter validation and regression tests for the
  invert_mask / resize-stack bugs.
- Wires pytest test_node_smoke.py into CI and drops continue-on-error
  from flake8 so real syntax/name errors now block.
- Fixes __init__.py relative imports so pytest can collect tests whose
  parent dir name isn't a valid Python identifier.
- Adds pydantic>=2.0 and structlog>=23.0 to requirements.txt.
2026-04-24 04:34:14 +02:00
limbicnation 6b86f14324 feat: audit fixes — OUTPUT_NODE, DESCRIPTION, IS_CHANGED, structlog guard, CI Python versions
- Add OUTPUT_NODE=True to all 5 node classes for ComfyUI execution triggers
- Add DESCRIPTION attributes for ComfyUI 0.19+ frontend info panel
- Add IS_CHANGED with deterministic hash for execution caching (H100 compute savings)
- Guard structlog import in grabcut_nodes.py with stdlib logging fallback
- Update CI Python matrix to 3.10-3.12 (drop EOL 3.8/3.9)
- Remove dead RGBA loop in GrabCutRefinement (redundant alpha multiply)
- Wire all Pydantic-validated params in AutoGrabCutRemover
2026-04-24 03:26:54 +02:00
limbicnation 21cc047d54 fix: install project deps before import test in publish workflow 2026-03-31 06:24:37 +02:00
limbicnation e64319c780 fix: align CI matrix to Python 3.10+, extract all Pydantic-validated params, remove alpha premultiply inconsistency 2026-03-31 06:02:15 +02:00
limbicnation d97f948d68 Fix GitHub Actions pipeline issues
- Update CI workflow with better dependency handling and validation
- Fix publish workflow token handling with fallback method
- Add missing scikit-learn dependency to requirements.txt
- Enhance error handling and validation steps
2025-05-26 05:02:27 +02:00
limbicnation d7162a1942 Add error handling and publish workflow 2025-05-23 02:03:45 +02:00
limbicnation 218fd597d0 Add GitHub CI workflow 2025-05-23 01:37:08 +02:00