Commit Graph
32 Commits
Author SHA1 Message Date
Dr.Lt.Data 11e2b0a4c4 Address wildcard cache review and integrate Main 2026-11-01 14:32:07 +09:00
Dr.Lt.Data e3dc3e1d7e Fix detection grouping in SAMDetectorSegmented 2026-11-01 14:13:48 +09:00
Dr.Lt.Data 2c9efb1741 Clamp mask values before contour detection
Clamp finite mask values to [0, 1] before uint8 contour conversion while
preserving input arithmetic dtype, batch handling and combined behavior.

Add CPU and native-workflow regression coverage for range boundaries,
tutorial mask behavior, widget serialization and fresh browser execution.
Document the isolated test environment and regression verification scope.
2026-11-01 12:39:49 +09:00
Dr.Lt.Data a19345d19e Validate original wildcard tutorials and real model outputs 2026-11-01 11:49:41 +09:00
Dr.Lt.Data ab07217d44 Isolate wildcard cache tests and reuse shared UI connections 2026-11-01 10:56:33 +09:00
Dr.Lt.Data 42a985b33e Test linked wildcard execution, cache reuse and Encode output parity 2026-11-01 10:35:23 +09:00
Dr.Lt.Data 51bc2f6e25 Preserve wildcard seeds while reusing static prompt caches 2026-11-01 09:30:03 +09:00
Dr.Lt.Data 27029fee22 Merge Main into Switch load fix 2026-11-01 08:37:47 +09:00
Dr.Lt.Data a940c8e049 Add Switch load regression coverage for PR #1252 2026-11-01 08:37:14 +09:00
Dr.Lt.Data 1ba4d745fc Integrate LoRA follow-up with current Main and trusted widget catalog 2026-11-01 04:03:12 +09:00
Dr.Lt.Data a80b1814b1 Merge #1219: Add generic LoRA wildcard source 2026-11-01 03:56:17 +09:00
Dr.Lt.Data d11890eecf Trim legacy SAM interaction tests 2026-11-01 03:22:13 +09:00
Dr.Lt.Data 85f76ea6ac Preserve legacy SAM selection after saving 2026-11-01 03:22:13 +09:00
Dr.Lt.Data fe338c5b09 Fix legacy SAM save and input handling 2026-11-01 03:22:13 +09:00
Dr.Lt.Data 011776c293 Fix legacy SAM compatibility after API import changes 2026-11-01 03:22:13 +09:00
Dr.Lt.Data 3d1b614f5d fix: retain core input validation and close LoRA regression test gaps 2026-11-01 03:19:39 +09:00
Dr.Lt.Data e862cbf0e4 Preserve legacy LoRA category aliases within configured root 2026-11-01 02:56:56 +09:00
Dr.Lt.Data 7a1b0659c4 Preserve automatic LoRA choices and prompt punctuation
Keep original automatic-mode candidates and empty selections, retain entry punctuation, and reject cross-drive paths without breaking category discovery.
2026-11-01 02:40:37 +09:00
Dr.Lt.Data 9961815cb3 Preserve saved LoRA labels and empty-category prompts 2026-11-01 02:19:49 +09:00
Dr.Lt.Data 215a71bcbb Preserve original LoRA behavior and verify real inference 2026-11-01 01:26:32 +09:00
Dr.Lt.Data 66c9f61c33 Preserve wildcard workflows after adding LoRA source 2026-11-01 00:58:12 +09:00
Tulio Vianna 0a4610f198 feat(wildcard): add generic LoraWildcardSource node with dynamic category scanning, example workflow and sample styles 2026-11-01 00:42:12 +09:00
Dr.Lt.Data 5e7d1cdb1a Remove legacy label-filter hook workflow fixture
Remove the obsolete-socket fixture and its two compatibility cases while retaining fresh hook execution and native reload checks in both restoration modes.

Validation: focused catalog and hook E2E tests pass (3 tests); all 14 remaining catalog tests collect successfully.
2026-10-31 23:22:02 +09:00
Dr.Lt.Data cf6eee3027 Refresh label-filter hook catalog after removing SEGS input
Recreate the hook through Chrome node search and native Export, preserving every expected widget name, order and value. Cover fresh and legacy hook execution with both native restoration modes.

Validation: all 16 catalog E2E tests passed on the identical source tree; native Export also normalizes MaskRectArea height from 356 to 358.
2026-10-31 23:15:51 +09:00
Dr.Lt.Data 7c1fd27f3f Fix Switch routing and preserve native workflow compatibility
Fix lazy Switch inputs, Inversed Switch fan-out, and valid ANY connections.
Use target input slots for output connection guards, preserve mask batches
and one-pixel dimensions during resizing, and restore label-filter defaults.
Keep existing widget names and order and remove noisy selection logging.

Add Chrome regression coverage for routing, execution results, and tutorial
workflows. Add a UI-created catalog of 197 registered nodes and 712 ordered
widget values to detect native workflow loading regressions.

Require Full Cache mode and trusted-baseline checks before catalog additions.
Verify candidate workflows and browser cleanup before publishing fixtures.
Document the widget compatibility, test setup, and catalog-extension rules.
2026-10-31 22:12:48 +09:00
Dr.Lt.Data cc015e3223 Fix Switch reconnection and add Chrome regression coverage
Restore a valid selection after reconnecting the last Switch input and remove
the redundant loading check after the early return.

Add Chrome regressions for workflow loading, routing, reconnection, legacy
Switch names, and image, mask, SEGS, conditioning, and regional-prompt combine
nodes. Wait for imported nodes to replace the previous graph, and check
non-default selections and fresh outputs after editing.

Keep the different-size mask batch test as a documented pre-existing failure;
its backend implementation is outside this change.
2026-10-30 02:03:15 +09:00
Dr.Lt.Data d59dc2f4c4 Fix configuration and wildcard loading, add Chrome UI tests
- Honor user settings when optional configuration keys are absent and
  report fallback to defaults.
- Share UTF-8/BOM decoding across wildcard loaders, retain logged
  Latin-1 fallback, and warn when expansion reaches its limit.
- Cover configuration and loader paths with isolated pytest regressions
  and enforce time limits for circular expansion.
- Exercise wildcard editing and Detailer workflows through Chrome,
  preserving original errors and traces when cleanup fails.
- Run API encoding checks against prepared test servers without
  changing configuration or managing server processes.
2026-10-30 00:11:42 +09:00
Tulio Vianna 53d44f78d4 feat(wildcard): add generic LoraWildcardSource node with dynamic category scanning, example workflow and sample styles 2026-06-20 15:23:59 -03:00
Dr.Lt.Data d74c1d0112 fix: cross-version compat for DifferentialDiffusion + E2E test harness
Resolves `AttributeError: 'DifferentialDiffusion' object has no attribute
'execute'` on older ComfyUI (<0.3.63) where the V3 schema migration has
not landed yet. The prior code called `.execute(model)[0]` directly,
breaking anyone still on the legacy `.apply(model)` API.

Introduce `modules/impact/utils.apply_differential_diffusion(model)`
which uses `hasattr` to pick the correct branch at runtime:
- `.execute` -> V3 classmethod (ComfyUI >= 0.3.63)
- `.apply`   -> legacy instance method (older)
- otherwise  -> AttributeError with upgrade guidance

Replace all 7 direct call sites (animatediff_nodes, core x2,
impact_pack x2, segs_nodes, segs_upscaler) with the helper. The
existing import guard in segs_upscaler is preserved; the helper's
deferred import means ImportError still propagates for very old
ComfyUI builds without `comfy_extras.nodes_differential_diffusion`.

Fixes GitHub issue #1177.

Also add an E2E test harness:
- docs/E2E_TEST_STRATEGY.md — isolated-launch workflow with
  --disable-all-custom-nodes + --whitelist-custom-nodes, Playwright
  smoke test, workflow execution via /prompt + /history + /view,
  verification criteria, operational notes.
- tests/e2e_dd_compat.py — reference test that runs SEGSDetailer
  with noise_mask_feather=20 on a real input image, asserting
  status==success and non-zero pixel delta between input and paste
  previews (proves the detailer loop and compat shim actually ran).
2026-04-20 02:01:32 +09:00
Dr.Lt.DataandClaude 9da76f839c fixed: Wildcard system bugs - pattern matching and config paths
- Fixed __*/pattern__ not matching wildcards at any directory depth
- Fixed config.py to handle quoted paths in impact-pack.ini
- Fixed empty line filtering in wildcards.py
- Added comprehensive test suite (86 tests) and documentation

Closes https://github.com/ltdrdata/ComfyUI-Impact-Pack/issues/1133

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 23:42:53 +09:00
Dr.Lt.Data 3d238589ed docs: Update wildcard system documentation 2025-11-18 09:01:50 +09:00
Dr.Lt.DataandClaude fd1b40bee5 feat: Progressive on-demand wildcard loading system
Implement memory-efficient progressive loading for large wildcard collections (10GB+).

Closes #1137

## Key Changes

- **LazyWildcardLoader**: On-demand loading proxy with thread-safe caching
- **Auto mode detection**: Full cache (<50MB) or on-demand (≥50MB), configurable via `wildcard_cache_limit_mb`
- **Performance**: Startup 20-60min → <1min, Memory 5-10GB → <100MB, Size calc <1sec
- **API**: `/impact/wildcards/list/loaded` - Progressive tracking endpoint
- **UI**: Real-time status (🔵 On-Demand / 🟢 Full Cache) with loaded count
- **Compatibility**: Backward compatible, all existing features work unchanged

## Implementation

- YAML pre-loaded (keys in content), TXT on-demand (path = key)
- Early termination size calculation, transitive wildcard support maintained
- 15 test files with comprehensive documentation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-18 01:57:24 +09:00