113 Commits
Author SHA1 Message Date
Immac 8e8fb60935 version 0.2.0:
Add AlertModal and ConfirmModal components for user notifications
- Implemented AlertModal for displaying simple alerts with a title and message.
- Implemented ConfirmModal for user confirmations with customizable confirm and cancel buttons.
- Both modals feature a dark overlay and responsive design for better user experience.
2026-03-09 22:40:46 -06:00
Immac 1b1f16d4a3 refactor: replace emoji with ComfyUI icon font classes in import/export buttons 2026-03-09 21:28:10 -06:00
Immac f1b90e424b feat: add import/export toolbar with conflict resolution to Style Mixer panel 2026-03-09 21:24:34 -06:00
Immac f8f4633785 feat: single-item ZIP export/import with per-item collision prompts
Frontend (client-side):
- Add JSZip dependency for ZIP creation/parsing
- StyleCard: export style as ZIP with image in images/styles/
- MixCard: export mix as ZIP with referenced styles + all images
- main.tsx: client-side ZIP parsing for small mix imports
  - Detect name collisions with existing library
  - Prompt user per conflicting item (OK=replace, Cancel=rename)
  - Rewrite JSON client-side before upload

Backend (complementary/alternative):
- Add import_mode (replace/merge) and duplicate_policy (rename/replace/skip)
- _merge_data(): comprehensive merge with ID remapping, conflict resolution
- _apply_import(): orchestrates import with validation and summary
- POST /api/data: accepts import params, returns detailed summary
- POST /api/restore.zip: accepts mode/policy query params, uses merge logic
- Summary includes: added/conflicted styles and mixes (max 10 each)
2026-03-09 20:54:42 -06:00
Immac 4566c70035 feat: add optional negative prompts to styles and mixes 2026-03-05 09:59:46 -06:00
Immac f5f4e050c9 refactor: rename Style Pick \u2192 Pick Style, Style Blend \u2192 Blend Style (verb-first node names) 2026-03-04 23:52:50 -06:00
Immac 5a21c43acc feat: skip zero-weight styles from prompt mix instead of including (value:0.00) 2026-03-04 20:40:20 -06:00
Immac a50d06ee8b feat: re-fetch panel data on execution_success so sidebar images update automatically 2026-03-04 09:12:09 -06:00
Immac dc4104a488 fix: import api directly from /scripts/api.js, listen on execution_success for preview refresh 2026-03-04 09:06:28 -06:00
Immac 402ad238ee feat: auto-refresh node previews when image-writing nodes execute 2026-03-04 08:56:40 -06:00
Immac 2f6a697830 feat: Save Mix adds optional example_image + id inputs; Style Mix → Pick Mix with mix_id output 2026-03-04 08:45:39 -06:00
Immac fdedf7fc04 chore: remove diagnostic logs, simplify to single setDirtyCanvas (no rAF retry needed) 2026-03-04 08:25:37 -06:00
Immac 830c19ea3a fix: import app directly from /scripts/app.js instead of polling window.app (root cause of timeout) 2026-03-04 08:14:58 -06:00
Immac 809e6dad48 fix: import app directly from /scripts/app.js instead of polling window.app (root cause of timeout) 2026-03-04 08:13:16 -06:00
Immac 9f3787dafe fix: import app directly from /scripts/app.js instead of polling window.app (timeout root cause) 2026-03-04 08:12:42 -06:00
Immac acc25c5717 debug: add diagnostic logs for preview blank-on-reload 2026-03-04 08:05:50 -06:00
Immac 44fed83de9 fix: dual-path dirty + rAF retry after image load to guarantee canvas redraw 2026-03-04 08:01:34 -06:00
Immac 7214bdcb49 fix: use getMinHeight/getHeight callbacks + node.onResize for DOM widget sizing 2026-03-04 07:53:56 -06:00
Immac 435c9d7724 debug: revert onAfterGraphConfigured, add console.log to trace reload failure 2026-03-04 07:47:18 -06:00
Immac c490b11205 fix: use onAfterGraphConfigured for preview restore (fires after all widget values applied) 2026-03-04 07:42:22 -06:00
Immac b9e8b274ce fix: align node preview with ComfyUI pattern (rAF + node.graph.setDirtyCanvas) 2026-03-04 07:38:40 -06:00
Immac 8436718ca6 fix: replace broken waitForCanvasReady with scheduleCanvasDirty (10 rAF frames) 2026-03-04 07:32:57 -06:00
Immac c2475566db fix: replace 500ms timeout with rAF-based waitForCanvasReady (LiteGraph frame counter) 2026-03-04 07:23:55 -06:00
Immac 9c3cbf2351 fix: delay node preview 500ms on reload so canvas loop is ready, double setDirtyCanvas 2026-03-04 07:19:26 -06:00
Immac c828b6195a fix: node previews blank on page reload (stale closure + race condition) 2026-03-04 07:12:35 -06:00
Immac 003811cd87 feat: object-fit contain (padded) for all card and mix thumbnails 2026-03-03 11:30:04 -06:00
Immac bac0580877 fix: only refresh node combos on mix/style create or delete, never on weight changes 2026-03-03 11:18:48 -06:00
Immac 2cde2b2e2d fix: drag clamped 0-1, text input allows -10 to 10 (separate dragMin/dragMax) 2026-03-03 11:06:38 -06:00
Immac daf2aec27b fix: align weight range -10/10/0.01 across BarInput defaults, MixCard and StyleMixerPanel 2026-03-03 11:04:07 -06:00
Immac 3ca72a6a00 fix: skip refreshComboInNodes when adding/removing styles from a mix 2026-03-03 09:27:54 -06:00
Immac 9293233e4f fix: use elementFromPoint to skip node creation when dropped on panel (not canvas) 2026-03-02 23:40:03 -06:00
Immac c71aa4ddd2 fix: move style card drag to dedicated handle (⠿ icon) so card content is interactive 2026-03-02 22:23:21 -06:00
Immac d12bba871b fix: move mix card drag to dedicated handle (⠿ icon) so weights can be dragged freely 2026-03-02 22:22:07 -06:00
Immac 2fde80ee8d fix: stop mousedown propagation in BarInput to prevent card drag 2026-03-02 22:19:52 -06:00
Immac fbc9d7ea42 fix: prevent card drag when interacting with BarInput weight slider 2026-03-02 22:17:13 -06:00
Immac afe9973d1b fix: horizontal scroll on Current Mix (not Mixes); Mixes wraps 2026-03-02 22:13:01 -06:00
Immac b661da0201 fix: silent weight/enabled changes skip refreshComboInNodes 2026-03-02 22:10:33 -06:00
Immac 27664a7b5a fix: enabled/disabled toggle in current mix also silent 2026-03-02 22:10:13 -06:00
Immac 59b3801c48 fix: weight changes do not trigger pending-refresh badge 2026-03-02 22:08:25 -06:00
Immac 2d3d317ece fix: weight changes do not trigger pending-refresh badge 2026-03-02 22:04:27 -06:00
Immac 5fc9d5d56f feat: mixes section scrolls horizontally when cards overflow 2026-03-02 21:55:46 -06:00
Immac 3b8f7bcbd9 fix: restore visible drag ghost for style and mix cards 2026-03-02 21:44:15 -06:00
Immac dc83cd73b3 fix: use onDragEnd pattern for style-to-canvas drop (ComfyUI intercepts drop event) 2026-03-02 21:36:55 -06:00
Immac 2ccf5d6ca8 fix: attach canvas drop listener to document (avoids setup timing issue) 2026-03-02 21:32:34 -06:00
Immac 3cd2a6c2e0 feat: drag style card onto canvas creates a StylePickImmacStyleMixer node 2026-03-02 21:28:46 -06:00
Immac 39fa99a9de fix: style refresh badge, empty→first update, image_updated_at cache-bust, loadedGraphNode placeholder upgrade 2026-03-02 20:16:16 -06:00
Immac cdaf2a2040 fix: show real server error on ZIP restore failure (not JSON parse error) 2026-03-02 19:52:27 -06:00
Immac 944ce29f26 feat: unified restore auto-detects JSON vs ZIP, ZIP restore extracts images server-side 2026-03-02 19:48:52 -06:00
Immac 08781c0260 feat: download ZIP with images via server-side endpoint 2026-03-02 19:45:41 -06:00
Immac 0789a8683a fix: register backup/restore via settings[] in registerExtension (not deprecated addSetting) 2026-03-02 19:41:47 -06:00