Commit Graph
8 Commits
Author SHA1 Message Date
Dr.Lt.Data dd55d294a4 Add deterministic wildcard loading regression coverage
Require a good file after a broken file in the #1209 regression, independent
of filesystem traversal order. Check that the warning names the file and
parser error.

Exercise wildcard_load in eager and on-demand modes for built-in and custom
folders, including malformed YAML, binary data, read failures and empty YAML.
Verify normal wildcard expansion and preserve direct and lazy loader errors.

The scan-aborting mutation fails both regression cases; all 98 standalone
checks pass with the original PR implementation. This follow-up changes tests
only and is intended to be applied after #1209 is merged.
2026-10-31 21:28:41 +09:00
EnragedAntelope 8ce3c99b4c fix(wildcards): skip and name a bad wildcard file instead of aborting the scan
- read_wildcard_dict wraps each file in try/except and logs a warning with the file path and error
- per-file body moved to _read_wildcard_file; empty YAML files are skipped in eager mode as in on-demand mode
- test: a malformed YAML is skipped and named while good txt/yaml files still load (eager and on-demand)
2026-10-30 23:50:08 -04: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
Dr.Lt.Data 429d0159ad docs(tests): drop dev-only debug note and dead .claude/ path from e2e test docstring 2026-04-20 02:06:44 +09: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.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