12 Commits
Author SHA1 Message Date
rubz f695c67ff1 chore: tighten error handling and dedupe a magic string from the nitpick pass
- Narrow the ProgressBar import guard to ImportError only, with a comment explaining why it stays (the module is imported standalone by the test suite outside a live ComfyUI)
- Extract the CRAFTKIT_DIALOG_ERROR: sentinel into a shared constant instead of three separate literals, use str.removeprefix
- Note that .avif/.heic can also fail on re-encode (with output_format=keep_source), not just decode
2026-07-27 21:51:08 +02:00
rubz 50af1e743d fix: nitpick cleanups from code review (N-23 through N-32)
- os module imported properly instead of __import__("os")
- browse_folder distinguishes a real COM/dialog failure from a user cancel
- fix Marshal.PtrToStringUni + leak-safe cleanup in the folder-picker COM call
- lock browse_folder so two concurrent clicks can't open two dialogs
- drop redundant int(round()) in SmartResolutionMultiplier
- unify "CraftKit —" docstring prefix across nodes
- comment OUTPUT_NODE=True on the status-label nodes so it isn't "cleaned up" later
- add .jfif/.avif/.heic to SmartBatchResize's supported extensions, document non-recursive scanning
- add a progress bar to SmartBatchResize (degrades gracefully outside a live ComfyUI)
- add readme/requires-python and a dependency-rationale comment to pyproject.toml
2026-07-27 21:40:18 +02:00
rubz c6f6914488 fix: batch collapse, memory blowup, resize rounding, and 8 more Should-Fix issues from code review
- Reject use_original_name=False + use_counter=False (all files collapsed to one output name)
- Add preview_limit to cap in-memory preview tensors (was holding entire batch as float32)
- Recover from per-file failures instead of aborting the whole batch
- Fix _calc_new_size overshoot past longest_side and off-by-one truncation
- Add upscale_if_smaller to SmartBatchResize to match SmartResize
- Clip pixel values before uint8 cast (was wrapping on overflow)
- Support CUDA tensors and RGBA/grayscale images in SmartResize
- Handle empty batches; derive width/height from the actual output tensor
- Require POST + loopback/origin check on the browse_folder endpoint (CSRF)
- Add subprocess timeout to the folder picker dialog
- Isolate the browse_folder route registration so import failures don't take down all nodes
- Validate folder_custom against path traversal and self-overwrite
- Replace IS_CHANGED=NaN with a folder-listing hash so unrelated graph runs can still cache
2026-07-27 18:42:54 +02:00
rubz c0609cfc85 add Smart Profile Switch, fix folder picker, README overhaul, v1.0.2
- rename Smart Category Config → Smart Profile Switch 🧩 (code, JS, locales, demo workflow)
- add banner.svg and embed it at the top of README
- replace fragile OpenFileDialog folder-browse hack with native IFileDialog/FOS_PICKFOLDERS picker — fixes wrong-folder bug on single-click select
- flip Smart Resize's upscale_if_smaller default to true — node now resizes to target by default, as the name implies
- add width/height source tooltip to Smart Resolution Multiplier's image input
- fix stale widgets_values in smart_batch_resize_demo.json (10 fields → 13 after prefix/counter fields were added)
- full README rewrite: correct inputs/defaults/outputs for all 5 nodes, new Smart Profile Switch section, Example workflows section, expanded "Why these nodes?"
- add new example workflow (seedvr2_smartresize_demo.json), updated screenshots
- add assets/*.ai to .gitignore
- bump version to 1.0.2
2026-07-01 12:33:32 +02:00
rubz 9bf268bf1b Add Browse folder button + longest_side presets to Smart Batch Resize
- Browse folder button: native Windows folder picker via PowerShell
  (TopMost owner form + OpenFileDialog for modern Explorer view)
- longest_side preset chips (512/768/1024/1536) drawn on canvas,
  active preset highlighted
- Reorder inputs into logical groups (input → resize → naming → folder → options)
- README: describe Smart Batch Resize disk-save / filename-preservation behaviour
2026-06-29 22:02:37 +02:00
rubz 32c8c85bd5 fixed dreadme images en renaming 2026-03-23 01:11:42 +01:00
rubz 6a47c67c25 rebranded en updated prompt controler 2026-03-22 23:06:30 +01:00
rubz dd70f0b118 4 nodes 2026-03-22 00:29:53 +01:00
rubz c8ce133fad commit 2026-03-22 00:29:25 +01:00
rubz 2421ffd343 updated init correct 2026-03-22 00:26:05 +01:00
rubz addba92a81 added a node: smart_batch_controller.py 2026-03-22 00:18:46 +01:00
rubz aa2e2bd16c uploaded SmartResize nodes 2026-03-03 12:13:32 +01:00