9 Commits
Author SHA1 Message Date
limbicnation 21e60efe3c refactor(v1): deduplicate face_output_format sanitization in execute()
Remove redundant fallback block — combo sanitization already handles
face_output_format validation earlier in the method.
2026-04-22 04:03:02 +02:00
limbicnation c322a27dfa fix(validation): instance_id type + combo field validation for legacy workflows
- Change instance_id from INT to STRING in INPUT_TYPES to prevent
  ComfyUI pre-execution validation failures (v2.1.2).
- Expand VALIDATE_INPUTS to handle required combo fields (aspect_ratio,
  output_mode, classifier_type) so legacy workflows with misaligned
  positional widgets_values don't crash (v2.1.3).
- Add defensive combo sanitization in v1 and v3 execute methods.
- Fix nested list syntax in combo definitions [[...]] -> [...].

Files: README.md, face_detection_node.py, pyproject.toml
2026-04-22 03:50:48 +02:00
limbicnation 5cffd4c3dd fix: instance_id accepts STRING input (v2.1.2)
Legacy workflows pass instance_id="default" (string) from old v1 nodes.
ComfyUI runs validate_inputs BEFORE execute(), so the in-node _coerce_int
fallback never fires — the workflow errors before reaching our handler.

Change schema input type from INT to STRING in both FaceDetectionNode (v3)
and FaceDetectionNodeV1 (fallback). instance_id is only used as a dict key
(f"{instance_id}"), never arithmetic, so the narrowing is safe.

- v3 schema: IntegerInput → StringInput
- v1 schema: ("INT", ...) → ("STRING", ...)
- Remove instance_id from _INT_DEFAULTS and VALIDATE_INPUTS INT loop
- Simplify coercion to str(instance_id) if not None else "0"
- Bump version 2.1.1 → 2.1.2
2026-04-20 19:08:36 +02:00
limbicnation 7478ee732c fix: temporal_smoothing input validation crash on legacy workflows (v2.1.1)
- Move temporal_smoothing, output_height, instance_id from required to
  optional in INPUT_TYPES to prevent ComfyUI framework-level int()
  coercion crash when legacy workflows pass string 'default' (from
  classifier_type) into INT slots via positional widgets_values mapping
- Add _coerce_int() helper for safe string-to-int conversion with
  fallback to defaults, applied defensively in v1 and v3 execute methods
- Enhance VALIDATE_INPUTS to intercept and validate all optional INT
  inputs with graceful type coercion
- Update README to reflect v2.x features (temporal smoothing, aspect
  ratios, auto-padding, batch processing, changelog)
- Bump version 2.1.0 → 2.1.1
2026-04-20 08:07:31 +02:00
limbicnation 1069f6324d fix: code review fixes - enumerate bug, dead params, output type, unused imports
- Fix .index() on numpy arrays in v3 individual face loop -> enumerate()
- Remove dead classifier_type param from detect_faces() (cascade already selected via CascadeCache)
- Change v1 RETURN_TYPES for face_metadata from IMAGE to FLOAT (is [B,6] bbox data, not image)
- Improve v3 face_metadata tooltip: NOT an image warning
- Remove unused import torch.nn.functional as F
- Remove unused import StringInput
- Replace _tensor_to_numpy() with _get_batch_dims() - removed dead img_np return
2026-04-20 06:45:32 +02:00
limbicnation 9e5f034807 feat: FaceDetectionNode v2.1.0 — backward compat, all_faces fix, validation
Fixes:
- Restore optional face_output_format param (strip/individual)
  Invalid values (e.g. 'lbp') gracefully fallback to 'strip' with warning
  Fixes 'Value not in list' validation error from stale v1.x workflows
- Restore optional padding param (legacy px-based, auto-converts to ratio)
- Fix all_faces mode: detect_faces() now returns ALL faces, not just largest
- Add VALIDATE_INPUTS to v1 wrapper for early invalid-value catching
- Set OUTPUT_NODE=True on both v3 schema and v1 class
- Fix _lock ClassVar type annotation syntax
- Add _resolve_face_output_format() for centralized format validation
- Proper strip/individual output handling in all_faces mode

Packaging:
- pyproject.toml: version 1.1.2 → 2.1.0, updated description and deps
- Removed Pillow and torchvision (no longer used)
- Bumped torch requirement to >=2.0.0
- Updated registry metadata (comfyui-manager-entry.json, node_list.json)
2026-04-20 06:20:38 +02:00
gero a312ecf044 feat(face-detection): add individual face output with improvements
- Add face_output_format parameter with strip and individual options
  - Extract duplicate processing logic into shared _process_individual_faces() method
  - Document 512px size limitation and parameter interaction behavior
  - Clarify that face_output_format only applies with output_mode=all_faces
  - Support outputting multiple faces as separate batch items [N,H,W,C]
  - Maintain backward compatibility with default strip format
  - Update both ComfyUI v3 and v1/v2 implementations with robust fallbacks
2025-07-22 05:17:46 +02:00
gero 09395f2983 feat(face-detection): add individual face output format option
- Add face_output_format parameter with strip and individual options
  - Support outputting multiple faces as separate batch items [N,H,W,C]
  - Maintain backward compatibility with default strip format
  - Update both ComfyUI v3 and v1/v2 implementations
  - Update documentation with new parameter details
2025-07-22 05:01:05 +02:00
limbicnation c4da9265fe feat: add face detection node with ComfyUI Manager support
This follows conventional commits with:
  - Type: feat (new feature)
  - Subject: Imperative, concise description of the main addition
  - Length: 47 characters (under 50 limit)
2025-06-23 03:32:46 +02:00