Commit Graph

163 Commits

Author SHA1 Message Date
Dariusz L
4a9dc3219b Update release.yml 2025-06-29 00:06:47 +02:00
Dariusz L
5e7b6778c0 Add GitHub Actions workflow for automated releases
Introduces a release workflow that triggers on pushes to main. The workflow extracts the version from pyproject.toml, ensures unique version tags, and creates a GitHub release using softprops/action-gh-release.
v1.2.4
2025-06-29 00:04:49 +02:00
Dariusz L
a2d133f4fe Update README.md 2025-06-28 23:46:54 +02:00
Dariusz L
3a8bca593c Update README.md 2025-06-28 23:34:16 +02:00
Dariusz L
bcb4153ddc Update README.md 2025-06-28 23:23:36 +02:00
Dariusz L
2ed6b9ea1a Update README.md 2025-06-28 23:22:23 +02:00
Dariusz L
8f5298cb69 Update README.md 2025-06-28 23:18:15 +02:00
Dariusz L
e088e6a04e Update README.md 2025-06-28 22:51:54 +02:00
Dariusz L
cf52b99ba6 Update README.md 2025-06-28 22:48:24 +02:00
Dariusz L
fc5e856a09 Update README.md 2025-06-28 22:20:30 +02:00
Dariusz L
38c81fe498 Bump version to 1.2.4
Update the project version in pyproject.toml from 1.2.3 to 1.2.4.
2025-06-28 20:26:04 +02:00
Dariusz L
f6a491e83b Adjust text background height and padding in CanvasRenderer
Refines the calculation of text background height and vertical padding for multi-line text rendering, ensuring more consistent spacing and alignment.
2025-06-28 19:56:13 +02:00
Dariusz L
7a52be5a79 Show original image size in layer info overlay
Added originalWidth and originalHeight properties to layers in CanvasLayers.js. Updated CanvasRenderer.js to display the original image dimensions in the layer info overlay if available, and improved overlay rendering to support multiline text.
2025-06-28 19:54:34 +02:00
Dariusz L
4376a21147 Add 'fit on add' option for image placement
Introduces a 'fit_on_add' boolean option to control whether images are fit to the canvas when added or pasted. Updates image addition and paste logic in Canvas, CanvasLayers, and CanvasView to support new placement modes ('fit', 'center', 'mouse', 'default').
2025-06-28 19:48:57 +02:00
Dariusz L
8ead4176b5 Add paste mode to handlePaste for image positioning
The handlePaste method now accepts a pasteMode parameter to control image placement, allowing images to be pasted either at the mouse position or centered on the canvas. This improves user control when pasting images via keyboard shortcuts or UI buttons.
2025-06-28 19:30:24 +02:00
Dariusz L
aee5836252 Bump version to 1.2.3
Incremented the project version in pyproject.toml from 1.2.2 to 1.2.3.
2025-06-28 09:47:06 +02:00
Dariusz L
81b2a9cc4e Remove redundant white background fill in CanvasIO
Eliminated unnecessary code that filled temporary canvases with a white background in two methods. This streamlines canvas creation and avoids redundant operations.
2025-06-28 09:44:43 +02:00
Dariusz L
eb262376fc Update pyproject.toml 2025-06-28 08:43:20 +02:00
Dariusz L
ffe37ea2fb Update pyproject.toml 2025-06-28 08:38:35 +02:00
Dariusz L
2033ab168a Set default log level to NONE and remove logger docs
Changed the default log level for both Python and JavaScript module loggers from DEBUG to NONE to disable logging by default. Removed the README_LOGGER.md documentation file, and updated README.md to remove a reference to seamless integration.
2025-06-28 08:38:08 +02:00
Dariusz L
7682b362ed Merge branch 'main' of https://github.com/Azornes/Comfyui-LayerForge 2025-06-28 08:34:49 +02:00
Dariusz L
d37c4a5077 Delete ShowTimeLayerForge.gif 2025-06-28 08:34:36 +02:00
Dariusz L
bde9e7a0e4 Update README.md 2025-06-28 08:32:38 +02:00
Dariusz L
f15c804bbc Update README.md 2025-06-28 08:28:14 +02:00
Dariusz L
32a8512c9c Update README.md 2025-06-28 08:25:11 +02:00
Dariusz L
5b740e5982 Add ShowTimeLayerForge.gif and update README path
Added the ShowTimeLayerForge.gif file to the Media directory and updated the README to reference the new path for the GIF.
2025-06-28 08:24:37 +02:00
Dariusz L
981bf72513 Update video reference and remove old .webm file
Replaced the .webm video reference in README.md with a .gif version and deleted the obsolete ShowTimeLayerForge.webm file.
2025-06-28 08:22:40 +02:00
Dariusz L
e3d959f048 Update README.md 2025-06-28 08:19:17 +02:00
Dariusz L
f6d29de651 Add ShowTimeLayerForge.webm video asset
Introduces a new video file, ShowTimeLayerForge.webm, to the Showtime directory. This asset may be used for media playback or demonstration purposes within the project.
2025-06-28 08:17:55 +02:00
Dariusz L
7c3a6f72c7 Defer canvas rendering with setTimeout for UI updates
Replaces direct calls to canvas.render() and node.onResize() with setTimeout to defer execution, ensuring UI updates occur after DOM changes. This helps prevent rendering issues and improves responsiveness when toggling mask controls and editor view.
2025-06-28 08:07:10 +02:00
Dariusz L
51eaac362a Rename brush softness to hardness in mask tool
Replaces all references to 'softness' with 'hardness' for brush controls in both CanvasView.js and MaskTool.js. Updates UI labels, slider IDs, and internal logic to use 'hardness' terminology, clarifying that a higher value means a harder brush edge.
2025-06-28 07:59:32 +02:00
Dariusz L
a1e00ca06a Add brush preview overlay to MaskTool
Introduces a brush preview overlay using a separate preview canvas in MaskTool. Mouse event handlers in CanvasInteractions and MaskTool are updated to support passing both world and view coordinates, enabling accurate brush preview rendering. The preview is shown or hidden appropriately on mouse enter/leave and while drawing.
2025-06-28 07:37:53 +02:00
Dariusz L
940f027b40 Increase logging level to DEBUG and enhance MaskTool callbacks
Set logging level to DEBUG in both Python and JavaScript loggers for improved debugging. Updated MaskTool to accept an onStateChange callback and trigger it after mask state changes, allowing Canvas to respond to mask updates.
2025-06-28 07:28:58 +02:00
Dariusz L
a7208cb504 Update README.md 2025-06-28 06:50:32 +02:00
Dariusz L
f08214e224 Bump version to 1.2.1 in pyproject.toml
Updated the project version from 1.2.0 to 1.2.1 in preparation for a new release.
2025-06-28 06:11:37 +02:00
Dariusz L
0078faf1fd Set default log level to NONE and improve logger checks
Changed the default log level to LogLevel.NONE in both Python and JavaScript logger utilities. Updated LayerForgeLogger to fully disable logging when the effective level is NONE, ensuring no logs are emitted for disabled modules.
2025-06-28 06:11:12 +02:00
Dariusz L
b114d9b198 Update repository clone URL in README
Replaced the placeholder GitHub URL with the actual repository URL in the clone instructions to improve setup clarity.
2025-06-28 05:56:38 +02:00
Dariusz L
e05cc3bffc Revert "Refactor publish workflow to composite action"
This reverts commit acf625e1d1.
2025-06-28 05:54:08 +02:00
Dariusz L
acf625e1d1 Refactor publish workflow to composite action
Converted the publish workflow from a job-based GitHub Actions workflow to a reusable composite action. Added inputs for personal access token and skip_checkout, included Python setup and comfy-cli installation steps, and updated the publish command to use the new structure.
2025-06-28 05:53:15 +02:00
Dariusz L
306f860417 Add pyproject.toml for LayerForge project
Introduces the pyproject.toml file with project metadata, dependencies, and ComfyUI-specific configuration for the LayerForge canvas node.
2025-06-28 05:44:25 +02:00
Dariusz L
d783709287 Improve tooltip styling and positioning in CanvasView
Refactors the .painter-tooltip CSS for better appearance, responsiveness, and usability, including new scaling classes, table-based layout, and improved scrollbar styling. Updates shortcut help content to use tables instead of lists for clarity. Enhances tooltip positioning logic to prevent overflow outside the viewport and ensures proper display near screen edges.
2025-06-28 04:01:04 +02:00
Dariusz L
be53b6d362 Update README with new features and controls
Expanded the feature list to include persistent state, advanced masking, AI-powered matting, memory management, and improved workflow integration. Rewrote and reorganized the controls section for clarity, adding new shortcuts and detailed descriptions for canvas, layer, clipboard, and mask mode interactions.
2025-06-28 03:42:01 +02:00
Dariusz L
16730cf9a1 Refactor canvas help tooltip for mask mode support
Split help tooltip content into standard and mask mode shortcuts. Tooltip now dynamically displays relevant shortcuts based on whether the mask tool is active, improving user guidance during mask editing.
2025-06-28 03:37:23 +02:00
Dariusz L
4c569a0130 Remove optional input_image and input_mask parameters
Eliminates the 'optional' input_image and input_mask parameters from the CanvasNode class and its process_canvas_image method. Fallback logic for these parameters is also removed, simplifying the code and relying solely on WebSocket cache for image and mask data.
2025-06-28 02:49:07 +02:00
Dariusz L
092748ef85 Add descriptive titles to canvas control buttons
Added 'title' attributes to various canvas control buttons to provide tooltips with descriptive information about each button's function. This improves accessibility and user experience by clarifying the purpose of each control.
2025-06-28 02:37:58 +02:00
Dariusz L
319cbc1dcb Refactor blend mode menu handling in CanvasLayers
Replaces direct DOM removal with a dedicated closeBlendModeMenu method for consistency. Increases menu z-index for better stacking, and appends the menu to the canvas container if available instead of always using document.body.
2025-06-28 02:33:25 +02:00
Dariusz L
3957aa0f61 Refactor canvas state change handling and layer removal
Replaces the onInteractionEnd callback with onStateChange for more consistent state change notifications. Adds a removeSelectedLayers method to Canvas for cleaner layer removal logic. Updates UI event handlers to use the new methods and callbacks, and ensures state is saved after relevant operations. Cleans up redundant updateOutput calls and streamlines output update logic.
2025-06-28 02:26:06 +02:00
Dariusz L
f8f7583c1c Remove cache and output switch options from CanvasNode
Eliminated the 'cache_enabled' and 'output_switch' parameters and related logic from CanvasNode. This simplifies the node's configuration and processing flow by removing unused or redundant options.
2025-06-28 01:55:51 +02:00
Dariusz L
f76f047fa6 Add onInteractionEnd callback to Canvas
Introduces an optional onInteractionEnd callback to the Canvas class, which is triggered at the end of user interactions. CanvasView now uses this callback to update output after interactions, improving responsiveness to user actions.
2025-06-28 01:35:18 +02:00
Dariusz L
d8ebbeea1e Refactor logger setup and path handling
Moved sys.path modification from canvas_node.py to __init__.py for better package management. Improved logger formatting for colored output and enhanced file logging configuration with error handling for log directory creation. Added python/__init__.py to make the 'python' directory a package.
2025-06-28 01:26:33 +02:00