Commit Graph
115 Commits
Author SHA1 Message Date
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 0d72f37ac3 feat: weight range -10 to 10 (allow negative weights) 2026-03-03 11:02:43 -06:00
Immac b2941d093e feat: redesign StyleBlend/WeightStyle to use style_id; add SaveMix node
- StyleWeightNode: now takes style_id (not raw string) + weight,
  outputs style_entry JSON {style_id, weight} and a preview weighted_value string
- StyleBlendNode: takes style_entry JSON slots (Autogrow), carries style_id
  references so the blend can be saved as a mix; adds two combos:
    on_duplicate: Skip (keep first|last) / Sum weights / Average weights
    weight_mode:  As-is / Normalize (sum 1.0) / Normalize (max 1.0) / Equal weights
  outputs blend_json (array of {style_id,weight}) + assembled prompt string
- SaveMixNode (new): takes blend_json + name + mode combo (Create /
  Update by name); writes or overwrites a mix in style_mixer_data.json
2026-03-03 10:52:58 -06:00
Immac f5d00a29d2 chore: remove __pycache__ from tracking (already in .gitignore) 2026-03-03 10:43:29 -06:00
Immac 7dbf01a3d9 feat: migrate all nodes to V3 API, StyleBlendNode with io.Autogrow growing slots
- Replace NODE_CLASS_MAPPINGS/NODE_DISPLAY_NAME_MAPPINGS with
  ImmacStyleMixerExtension(ComfyExtension) + async comfy_entrypoint()
- Migrate all 6 nodes to io.ComfyNode + define_schema() + execute() classmethod
- Replace IS_CHANGED with fingerprint_inputs()
- Replace OUTPUT_NODE = True with is_output_node=True in Schema
- Replace forceInput with force_input=True on String.Input
- Replace display='slider' with display_mode='slider' on Float.Input
- StyleBlendNode: replace 8 fixed optional STRING slots with
  io.Autogrow.TemplatePrefix(prefix='style', min=1, max=16)
  for dynamically growing input slots (the primary motivation)
2026-03-03 10:30:53 -06:00
Immac 267d8d38f7 feat: add Weight Style and Style Blend nodes (style_value + float weight → mixed prompt) 2026-03-03 09:52:39 -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
Immac 213d82b365 feat: move backup/restore to ComfyUI Settings panel 2026-03-02 19:13:42 -06:00
Immac 4be8a73ca6 feat: backup/restore toolbar — download and upload JSON snapshot of styles+mixes 2026-03-02 19:07:33 -06:00
Immac 32a12197df fix: use loadedGraphNode hook to restore correct preview on workflow reload 2026-03-02 18:34:13 -06:00
Immac 6338025dd0 refactor: migrate style_pick_node to use shared _style_utils 2026-03-02 18:31:58 -06:00
Immac 7b31574e19 refactor: split Create/Modify Style into separate Create Style and Modify Style nodes 2026-03-02 18:31:27 -06:00
Immac cf3a63a71a fix: skip updating style value/prompt when input is empty 2026-03-02 18:16:26 -06:00
Immac d798263c87 chore: rename Style Create display name to Create/Modify Style 2026-03-02 16:37:27 -06:00
Immac 65671fe327 fix: style_id is forceInput (socket-only, no text widget) 2026-03-02 16:30:55 -06:00
Immac 14f6b2ba44 feat: optional style_id input on StyleCreate; lookup by ID first, update name if changed 2026-03-02 16:29:29 -06:00
Immac 6852a9e36d feat: Style Pick node with image preview widget 2026-03-02 16:26:20 -06:00
Immac 6d5c27deb6 fix: bust image cache via image_updated_at timestamp when StyleCreate overwrites a style image 2026-03-02 15:49:56 -06:00
Immac 81928dc288 fix: overwrite image file in place using existing filename (no orphaned files) 2026-03-02 15:45:58 -06:00
Immac dc5bf10449 fix: Create or Update now replaces image when example_image is connected 2026-03-02 15:41:50 -06:00
Immac c31758bca1 fix: set OUTPUT_NODE=True on StyleCreate so ComfyUI always executes it 2026-03-02 15:36:10 -06:00
Immac 9132ad0e52 feat: optional example_image input on StyleCreate node, saved to input/immac_style_mixer/styles/ 2026-03-02 15:33:45 -06:00
Immac 8deb382822 feat: add StyleCreate node (Create / Create or Skip / Create or Update / Overwrite) 2026-03-02 15:29:30 -06:00
Immac 5f429d303a fix: use dragend instead of canvas drop to create node (matches ComfyUI node library pattern) 2026-03-02 15:18:53 -06:00
Immac fa8b197c3b feat: drag mix card to canvas creates StyleMixImmacStyleMixer node 2026-03-02 15:12:15 -06:00
Immac 3ecaa149db feat: double-click current mix chip to toggle on/off 2026-03-02 15:03:46 -06:00
Immac 4aab45fe30 feat: remove button on current mix style chips 2026-03-02 13:32:11 -06:00
Immac f3c3d31820 feat: drag style cards onto mix cards or current mix to add them 2026-03-02 13:29:05 -06:00
Immac 9bd75a8730 feat: toggle add/remove from mix button on style cards 2026-03-02 12:42:31 -06:00
Immac a62ab11400 feat: add to current mix button on style cards 2026-03-02 12:40:05 -06:00