Commit Graph
17 Commits
Author SHA1 Message Date
Mehdi Chaid 0de72d4bae fix: hover buttons overlap grid item sides and options dropdown not clickable (closes #128)
- Add 4px inset padding to hover button overlay so buttons stay within
  grid item bounds when node size increases
- Raise triangle button z-index from 2 to 4 (above hover buttons at 3)
  so it remains clickable when hover buttons are visible
2026-05-13 16:16:51 -04:00
Mehdi Chaid 84c304dbb2 feat: add bypassed state toggle to Flake Type ribbon
- Clicking the ribbon toggles a flake between active and bypassed states
- Bypassed flakes show greyed out appearance with a red strikethrough line
- Bypassed ribbon is dimmed with click-to-activate tooltip
- Backend (FlakeStack.execute) skips bypassed flakes during processing
- Bypassed state stored as 'bypassed' field in flakes_json entries
- Works in both FlakeStack and FlakeCombo grid items

Closes #121
2026-05-13 12:40:15 -04:00
Mehdi Chaid 6aa6b3d4aa feat: use same SVG icons as Model Preset for Flake Stack grid buttons (#109) 2026-05-13 10:25:39 -04:00
Mehdi Chaid 1cbe049c0e feat: configurable output base path + flake path for flakes (#91)
Mirror the model-preset base-path support on the flake side:

Backend:
- save_flake() now accepts base_root_index, output_path, and old_name,
  using the same semantics as save_preset(). Renames/moves migrate the
  YAML and its cover image.
- /flakes/save now passes those through to save_flake.

Frontend:
- Base Path dropdown + Output Path text field on the flake create AND
  edit overlays (populated from /flakes/roots?type=flakes).
- Path prefill from display name + flake type only fires in create
  mode; edit mode seeds from the existing flake name and treats it
  as user-edited.
- Save call now uses /flakes/save with base_root_index/output_path/
  old_name, and flake-stack.js updates the entry's name if the saved
  canonical name differs (i.e. the flake was moved).
2026-05-12 16:13:45 -04:00
Mehdi Chaid 3cfa7320b2 feat: drag-and-drop reorder on full flake card; remove side handle (#89)
Set draggable on the whole grid item and remove the 3px vertical bar
on the left. Buttons inside the card cancel the drag so clicks on
Replace/Edit/Remove still work, and double-click-to-edit remains
intact (the browser only kicks off a drag after meaningful pointer
movement).
2026-05-12 15:51:35 -04:00
Mehdi Chaid 181637caea feat: Replace/Edit/Remove hover buttons on Flake Stack grid items (#88)
Mirror the Flake Model Preset hover-button pattern: each non-default
flake card shows three centered buttons on hover (Replace, Edit,
Remove). Removes the static top-right ✕. Double-click-to-edit is
preserved; the override (💾) badge stays pinned top-right when the
entry has unsaved in-memory changes. Replace opens the existing load
picker and swaps the entry in place.
2026-05-12 15:50:53 -04:00
Mehdi Chaid babfffc2f1 refactor: rename flake field 'options' to 'variants' (#93)
- YAML: write 'variants:' going forward; reads still accept 'options:'
  as a legacy alias and migrate it on next save.
- Flake.variants dataclass field renamed; entry payload now reads
  'variant' for the per-stack override (legacy 'option' still works).
- UI: button labels (+ variant group), field selector label (Variants),
  empty-state text, alert wording all updated.
- /flakes/meta returns both 'variants' and 'options' keys for one
  transitional release.
- README updated to reflect the new key.
2026-05-12 15:47:24 -04:00
Mehdi Chaid 92fa2ca5cb fix: always render the Flake Type ribbon on grid items (#90)
The ribbon was conditional on entry.flake_type being populated, but
loaded/created entries never copied flake_type from the YAML, so the
ribbon vanished after the modal closed. Always render the ribbon for
non-default entries, defaulting to Other when no type is set, and
populate entry.flake_type when loading/creating/saving.
2026-05-12 15:42:37 -04:00
Mehdi Chaid c330ae3ab2 fix: reset grid-item overrides when a flake's defaults change (#98)
After Edit Flake saves, sync the entry's lora strength overrides to the
new defaults and prune option-group overrides that no longer exist.
Previously the override array kept a stale 0.9 strength after the
default moved to 0.7, masking the new default with no UI indication.
2026-05-12 15:39:39 -04:00
Mehdi Chaid 023a112623 fix: invalidate FlakeStack cache when an entry is edited inline (#94)
Saving an edit updated the flake YAML on disk but flakes_json (the
node input) was unchanged for already-loaded entries, so ComfyUI
reused the cached FlakeStack output and the next generation still
saw the old values. Stamp _edited_at on each save so the JSON differs
and the node re-executes (which then re-reads from disk).
2026-05-12 15:35:16 -04:00
Mehdi Chaid cba952df7c fix(ui): preset buttons, default flake fields, cover image, grid names, family preselect, flake type tags, path prefill, add-field scroll (#75-#82) 2026-05-07 19:52:00 -04:00
Mehdi Chaid fed99d81da fix(ui): revert preset/flakes UI, keep native family widget 2026-05-06 17:14:06 -04:00
Mehdi Chaid 2ff14658bb fix(ui): use native family widget, remove gaps, preserve dimensions 2026-05-06 16:57:49 -04:00
Mehdi Chaid 834b6429da fix(ui): scale family dropdown options with canvas zoom 2026-05-06 15:49:25 -04:00
Mehdi Chaid c0b8ed68b9 fix(family-dropdown): enlarge and stop click propagation (#67)
The Family dropdown was too small to comfortably click on the Flake
Stack node and clicks were leaking to the LiteGraph canvas on the
Flake Model Preset node, where they triggered the underlying preset
combo. Increase font size, padding, and min-height across all four
widgets, and stop mousedown/click propagation so the canvas no longer
intercepts dropdown opens.

Also introduce a shared FAMILY_FOLDERS / familyFolder helper in utils
to be used by upcoming path-aware features.
2026-05-05 16:19:43 -04:00
Mehdi Chaid 8754e7556c feat: add model family selection with flakes and presets filtering (#62) 2026-05-04 15:42:33 -04:00
Mehdi Chaid 6ab581f040 refactor: split flake_stack.js into focused modules
Decomposes the ~3800-line flake_stack.js monolith into maintainable
modules:

- api.js        – all server API calls
- utils.js      – DOM helpers, sliders, inputs, drag indicators
- modal.js      – overlay modal infrastructure
- flake-modal.js – flake create/edit modal
- preset-modal.js – preset create/edit modal + preset option refresh
- pickers.js    – file browser, flake picker, preset picker
- widgets/      – per-node widget setups
  - flake-stack.js
  - flake-combo.js
  - flake-model-preset.js
  - flake-model-combo.js
- queue.js      – frontend combination queueing logic
- flake_stack.js – entry point, imports everything and registers extension

Fixes #59
2026-05-01 15:06:12 -04:00