feat: remaining H100 audit fixes — invert_mask, bbox_tensor [B,6], float edge_blur, tests/
Steps completed (per abstract-painting-kitten.md):
1. FIX edge_blur_amount float truncation: int→float in MaskParams + removed int() casts
2. Wire invert_mask: INPUT_TYPES, method signatures, Pydantic validation, alpha inversion
applied in both AutoGrabCutRemover and GrabCutRefinement success paths
3. Add [B,6] bbox_metadata tensor output to AutoGrabCutRemover RETURN_TYPES
4. nodes.py: @torch.no_grad() on remove_background + batch_remove_background;
all .float()→.to(dtype=torch.float32)
5. Structured tests/ suite: conftest.py, test_grabcut_processor.py,
test_grabcut_nodes.py, test_nodes.py, test_validation.py
Verification:
- 48/48 new tests pass
- 6/6 original test_grabcut.py tests pass
- 4/4 node import test pass
- 0 flake8 E9/F63/F7/F82 errors
- edge_blur_amount=1.7 correctly stores as float (not truncated to 1)
BREAKING: AutoGrabCutRemover RETURN_TYPES changed from 5→6 (bbox_tensor added)