553 Commits
Author SHA1 Message Date
Dariusz L 3a384a7412 Add LayerForge details and update links in README
Updated README to include LayerForge information and links.
2026-08-21 15:36:34 +02:00
Dariusz L 43dbb5bf7a Update README.md 2026-08-21 15:33:28 +02:00
Dariusz L a91c5f310f Update publish.yml 2026-08-20 22:21:19 +02:00
Dariusz L ff8b0a949d Update pyproject.toml v1.6.0 2026-08-20 21:47:48 +02:00
Dariusz L 74bb8d7806 Add workflow progress indicator to LayerForge canvas 2026-08-20 21:39:16 +02:00
Dariusz L fa514a97d1 frontend: improve fullscreen workflow controls, viewport interaction caching, and notification layering
- Add run-workflow button to the LayerForge fullscreen editor and route it
  through ComfyUI's native queue action when available.
- Switch fullscreen toolbar tooltips to the centralized tooltip manager.
- Generalize zoom-snapshot caching to viewport-snapshot caching so panning
  can reuse the composited scene bitmap; schedule pan viewport updates
  per display frame and clean up pending animations on teardown/blur.
- Preserve a stale processed-image fallback during transform/crop/wheel
  transitions and always show the blend-area effect when enabled.
- Raise toast notifications to z-index 2147483647 so they stay above the
  fullscreen editor and other application overlays.
2026-08-20 18:33:04 +02:00
Dariusz L f067838b2c perf: optimize blended image zoom rendering 2026-08-20 16:17:49 +02:00
Dariusz L 39f35dce2a perf: cache composited scene during zoom 2026-08-18 22:58:38 +02:00
Dariusz L d0f47336bc perf: blit only dirty drag regions 2026-08-18 22:37:53 +02:00
Dariusz L 4f79de8fb2 perf: redraw separate drag regions 2026-08-18 22:36:46 +02:00
Dariusz L 94156e8ff6 perf: prewarm drag previews 2026-08-18 22:35:25 +02:00
Dariusz L f99cedb441 perf: use screen-sized drag previews 2026-08-18 22:33:45 +02:00
Dariusz L 032a55d0c5 fix: clear drag overlay trails 2026-08-18 22:12:34 +02:00
Dariusz L 08b2255096 fix: preserve processed cache key format 2026-08-18 22:03:01 +02:00
Dariusz L 6aeb5e29b3 fix: isolate drag blend masks 2026-08-18 22:01:18 +02:00
Dariusz L c73dbc3fb3 perf: redraw only dirty drag regions 2026-08-18 21:59:35 +02:00
Dariusz L 137a883c3d perf: reduce opaque blend mask memory 2026-08-18 21:56:37 +02:00
Dariusz L 14e1c24ab0 perf: keep valid blend preview during rebuild 2026-08-18 21:53:46 +02:00
Dariusz L f7dce559d7 perf: preserve blend modes in drag cache 2026-08-18 21:46:01 +02:00
Dariusz L 7cca712bc3 perf: cache static layers during drag 2026-08-18 21:26:51 +02:00
Dariusz L 9afedaa964 perf: defer intermediate transform cache builds 2026-08-18 21:18:40 +02:00
Dariusz L efb9599645 perf: keep only latest processed layer cache 2026-08-18 21:16:49 +02:00
Dariusz L 3e0fe35d86 perf: reuse distance field masks 2026-08-18 21:14:33 +02:00
Dariusz L ce6543fd49 perf: defer blend cache builds during interaction 2026-08-18 21:00:40 +02:00
Dariusz L 4de1e0cb62 perf: cache cropped blend masks 2026-08-18 20:30:39 +02:00
Dariusz L 20261adb00 perf: deduplicate processed blend cache builds 2026-08-18 20:27:10 +02:00
Dariusz L 8e4ad0d173 perf: build blend cache after layer drag 2026-08-18 20:22:14 +02:00
Dariusz L 8ad680a3c5 perf: keep blend rendering cheap during layer drag 2026-08-18 20:20:41 +02:00
Dariusz L 4a0ee076e0 Optimize canvas interaction and rendering performance 2026-08-18 20:12:55 +02:00
Dariusz L 4aff92199c Add offline frontend and backend benchmarks 2026-08-15 02:01:06 +02:00
Dariusz L 527372b427 Bump upload-artifact to v6
Update the CI workflow to use actions/upload-artifact v6 instead of v4 for the Python coverage artifact upload. This keeps the workflow aligned with the current GitHub Actions runtime and avoids deprecated action versions.
2026-08-15 00:25:22 +02:00
Dariusz L e40395c91a Add route and matting integration tests; update coverage config and CI 2026-08-15 00:09:08 +02:00
Dariusz L 4e660353b9 Re-sync workflow overview selection when moving LayerForge into fullscreen 2026-08-14 23:43:58 +02:00
Dariusz L ad1277d964 sync LayerForge workflow overview with ComfyUI Vue properties panel
Replace the old 1s promise-based wait loops with a single cancelable
requestAnimationFrame sync path so opening the Workflow Overview no
longer races ComfyUI's Vue Nodes 2.0 properties panel.

Access the Vue/Pinia canvas store directly and refresh its selected items
after native selection mutations. Make selection clearing repeatable so
ComfyUI can restore the selection while mounting the panel without
leaving the LayerForge node highlighted, and explicitly sync the final
empty selection state to the properties panel.
2026-08-14 23:39:28 +02:00
Dariusz L 9f1e35aa2b Preserve ComfyUI selection across workflow overview toggle 2026-08-14 22:50:07 +02:00
Dariusz L 99b0b80f1d feat: hide canvas editor DOM widget in panel 2026-08-14 22:33:49 +02:00
Dariusz L cfe2a92f12 feat: add workflow overview toggle to canvas editor modal 2026-08-14 21:58:11 +02:00
Dariusz L 0e636ed99b feat: improve tooltip behavior with persistent and interactive modes
- Convert keyboard shortcuts help button to persistent click-toggle tooltip
- Add interactive, persistent, and onDismiss options to TooltipManager
- Dismiss persistent tooltips on outside pointerdown or Escape key
- Add delayed hide for interactive tooltips when leaving the target
- Update tooltip CSS for scrolling, interactive pointer-events, and text mode
2026-08-14 21:09:13 +02:00
Dariusz L 05c977f342 refactor: centralize tooltip handling into TooltipManager
Replace scattered inline tooltip implementations across canvas_view,
custom_shape_menu, layers_panel, batch_preview_manager, and notifications
with a single shared TooltipManager class.

- New src/utils/tooltip_manager.ts (and compiled js/utils/tooltip_manager.js)
  provides observeRoot/bindTooltips/setTooltip/showTooltip/hideTooltip API
- Migrate title attributes to data-tooltip and normalize via MutationObserver
- Rename tooltip CSS from .lf-painter-tooltip/.lf-layerforge-tooltip to
  .lf-global-tooltip and raise z-index to 1000001
- Remove duplicate matting-specific tooltip styles from canvas_view.css
- Update generated js/ outputs to match src/ changes
2026-08-14 20:16:26 +02:00
Dariusz L 3d860468ac Rewrite README for clarity and conciseness 2026-08-14 19:33:36 +02:00
Dariusz L 0237df9d19 Fix mask tool cursor feedback and update ComfyUI issue template link 2026-08-14 19:18:15 +02:00
Dariusz L 6d3ed9f458 fix: preserve mask brush cursor over image canvas 2026-08-14 19:14:42 +02:00
Dariusz L 7365503fcf refactor: remove stale local API documentation 2026-08-14 18:59:16 +02:00
Dariusz L aa499f8668 fix: improve mask editor panning and cursor behavior
- Resolve mouse button in mask mode so middle-click pans instead of
  inadvertently starting a mask draw, and cleanly end any active mask
  stroke before panning.
- Redraw the mask brush cursor during pan so the brush outline stays
  under the actual mouse position after the viewport transform changes.
- Reset interaction state on pointer up when leaving drawing modes so
  stale interaction state cannot persist across gestures.
- Set the canvas cursor to grabbing when panning begins.
2026-08-14 18:56:47 +02:00
Dariusz L f38402e107 feat: improve mask editor compatibility and state synchronization 2026-08-14 18:24:54 +02:00
Dariusz L 5ea337fb51 refactor: standardize frontend file naming 2026-08-14 16:56:46 +02:00
Dariusz L b5f09e88fb fix: restore python logger package exports 2026-08-14 16:41:19 +02:00
Dariusz L 34a7896fd9 refactor: remove compatibility facades 2026-08-14 16:38:16 +02:00
Dariusz L 84dd15aff5 refactor: remove legacy logger re-exports 2026-08-14 16:23:27 +02:00
Dariusz L fc4292ecb0 ci: enforce generated frontend and coverage 2026-08-14 15:56:31 +02:00