5 Commits
Author SHA1 Message Date
IsulionandClaude Opus 5.5 96553dee1c feat: v6.1.0 — Censored Part & Prompt Vault nodes, selector RNG, hardening
New nodes:
- Isulion Censored Part: blur/pixelate/black bar/noise over a mask and/or
  a percent rectangle; accepts 2D/3D/4D masks and fails closed (blacks the
  item out) instead of passing an uncensored image through
- Prompt Vault Save/Load: named prompt library stored in ComfyUI's user
  directory (outside the checkout, so updates never conflict), seeded from
  prompt_vault.example.json; Load re-runs when the vault changes

Refactor:
- SimpleSelectorNode base: ~20 selector nodes use an instance RNG instead
  of reseeding the global random module (same seed => same output)
- Theme handlers declare DISPLAY_NAME; theme package auto-discovers modules
- __init__ imports node classes directly

Fixes:
- net_utils: re-validate every redirect hop, unwrap IPv4-mapped IPv6,
  block NAT64 and all non-global addresses (SSRF)
- Multiple Prompt Generator: no duplicate prompts for themes listed in two
  categories; 6 themes missing from every category are now reachable
- Shutdown node: parameter renamed to match its "any" input (TypeError)
- ConfigManager: deterministic (sorted) merge order, warns on key
  collisions; drop stale space_colony copy from tropical_paradise_config
- Mega Prompt V3: seed honored again with randomize=disable

Breaking: Civitai api_key widget removed (use CIVITAI_API_TOKEN), absolute
paths refused by Load Images, Negative Prompt pools de-duplicated (shorter
"strict" output), Dynamic Random theme order is now alphabetical.

Tooling: pytest suite (51 tests), GitHub CI (compileall, pytest, ruff),
ruff config, uv.lock.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-20 18:35:56 +02:00
Isulion fc903d4acf refactor!: v6.0.0 — seeding, sandbox FS, decorator registry, security
Breaking changes:
- Same seeds now yield different prompts than 5.x (reproducibility fixed)
- Civitai Trending: removed broken 'model' filter widget
- Shutdown node is a no-op unless ISULION_ENABLE_SHUTDOWN=1

Highlights:
- Seeding: all 109 theme handlers share the seeded ConfigManager PRNG
  (284 global random.* call sites migrated); same seed => same prompt
- Theme registry rewritten with @register_theme decorators; removed
  HANDLER_CLASS_NAMES_MAP, star-imports and globals() lookups
- Shared ThemeRegistry singleton: INPUT_TYPES no longer re-reads ~100
  JSON files per call (2.6ms -> 0.003ms cached)
- load_images_node: paths sandboxed to ComfyUI input dir, deterministic
  sha1 IS_CHANGED, PIL context managers, no bare excepts
- Overlay node: full batch support, base channel count preserved
  (RGB in -> RGB out), pass-through on internal errors
- QR node: vectorized module drawing (np.kron), logging instead of prints
- New net_utils.safe_download: http(s)-only scheme + 20MB cap for URL
  fetching nodes (SSRF/decompression-bomb hardening)
- Removed unused soft_empty_cache() calls, dead code (culinary_handler,
  IsulionCategorySelector, orphan Core_Nodes/config dir, dead js ext),
  invalid WEB_DIRECTORY; fixed display-name mappings
- s300 handler: fixed call to non-existent config method (latent crash)
- Added MIT LICENSE and requirements.txt (requests)
2026-08-22 15:16:55 +02:00
Isulion 0fd506b15f Fix Multiple Prompt Generator + Factorisations 2026-07-30 23:39:45 +02:00
Isulion 6984be6704 New QRCode node 2025-04-21 19:08:13 +02:00
Isulion 502b6803d2 Update Historical monuments 2025-01-06 00:34:34 +01:00