diff --git a/.claude/commands/pr.md b/.claude/commands/pr.md
index a9459a5a6d3..4c34764ee3c 100644
--- a/.claude/commands/pr.md
+++ b/.claude/commands/pr.md
@@ -59,7 +59,7 @@ You'll create the PR with the following structure:
- `area:previews` - Preview functionality
- `area:minimap` - Minimap navigation
- `area:floating-toolbox` - Floating toolbar
-- `area:mask-editor` - Mask editing tools
+- `area:image-canvas` - Image Canvas editing tools
**Navigation & Organization**
diff --git a/CODEOWNERS b/CODEOWNERS
index fcba1e4005e..f602c4d5dbf 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -43,9 +43,9 @@
/src/platform/workflow/templates/ @Myestery @christian-byrne @comfyui-wiki
/src/components/templates/ @Myestery @christian-byrne @comfyui-wiki
-# Mask Editor
-/src/extensions/core/maskeditor.ts @trsommer @brucew4yn3rp
-/src/extensions/core/maskEditorLayerFilenames.ts @trsommer @brucew4yn3rp
+# Image Canvas
+/src/extensions/core/imagecanvas.ts @trsommer @brucew4yn3rp
+/src/extensions/core/imageCanvasLayerFilenames.ts @trsommer @brucew4yn3rp
# 3D
/src/extensions/core/load3d.ts @jtydhr88
diff --git a/README.md b/README.md
index e8af480f2b1..ab5fbd68a6d 100644
--- a/README.md
+++ b/README.md
@@ -13,7 +13,6 @@
[![][github-downloads-shield]][github-downloads-link]
[![][github-downloads-latest-shield]][github-downloads-link]
-
[github-release-shield]: https://img.shields.io/github/v/release/Comfy-Org/ComfyUI_frontend?style=flat&sort=semver
[github-release-link]: https://github.com/Comfy-Org/ComfyUI_frontend/releases
[github-release-date-shield]: https://img.shields.io/github/release-date/Comfy-Org/ComfyUI_frontend?style=flat
@@ -47,6 +46,7 @@ The project follows a structured release process for each minor version, consist
- Version is finalized and made available to all users
### Nightly Releases
+
Nightly releases are published daily at [https://github.com/Comfy-Org/ComfyUI_frontend/releases](https://github.com/Comfy-Org/ComfyUI_frontend/releases).
To use the latest nightly release, add the following command line argument to your ComfyUI launch script:
@@ -56,16 +56,17 @@ To use the latest nightly release, add the following command line argument to yo
```
## Overlapping Release Cycles
+
The development of successive minor versions overlaps. For example, while version 1.1 is in feature freeze, development for version 1.2 begins simultaneously. Each feature has approximately 4 weeks from merge to ComfyUI stable release (2 weeks on main, 2 weeks frozen on RC).
### Example Release Cycle
-| Week | Date Range | Version 1.1 | Version 1.2 | Version 1.3 | Patch Releases |
-|------|------------|-------------|-------------|-------------|----------------|
-| 1-2 | Mar 1-14 | Development | - | - | - |
-| 3-4 | Mar 15-28 | Feature Freeze | Development | - | 1.1.0 through 1.1.13 (daily) |
-| 5-6 | Mar 29-Apr 11 | Released | Feature Freeze | Development | 1.1.14+ (daily)
1.2.0 through 1.2.13 (daily) |
-| 7-8 | Apr 12-25 | - | Released | Feature Freeze | 1.2.14+ (daily)
1.3.0 through 1.3.13 (daily) |
+| Week | Date Range | Version 1.1 | Version 1.2 | Version 1.3 | Patch Releases |
+| ---- | ------------- | -------------- | -------------- | -------------- | ----------------------------------------------- |
+| 1-2 | Mar 1-14 | Development | - | - | - |
+| 3-4 | Mar 15-28 | Feature Freeze | Development | - | 1.1.0 through 1.1.13 (daily) |
+| 5-6 | Mar 29-Apr 11 | Released | Feature Freeze | Development | 1.1.14+ (daily)
1.2.0 through 1.2.13 (daily) |
+| 7-8 | Apr 12-25 | - | Released | Feature Freeze | 1.2.14+ (daily)
1.3.0 through 1.3.13 (daily) |
## Release Summary
@@ -74,19 +75,21 @@ The development of successive minor versions overlaps. For example, while versio
v1.5: Native translation (i18n)
- ComfyUI now includes built-in translation support, replacing the need for third-party translation extensions. Select your language
- in `Comfy > Locale > Language` to translate the interface into English, Chinese (Simplified), Russian, Japanese, Korean, or Arabic. This native
- implementation offers better performance, reliability, and maintainability compared to previous solutions.
+ComfyUI now includes built-in translation support, replacing the need for third-party translation extensions. Select your language
+in `Comfy > Locale > Language` to translate the interface into English, Chinese (Simplified), Russian, Japanese, Korean, or Arabic. This native
+implementation offers better performance, reliability, and maintainability compared to previous solutions.
+
+More details available here: https://blog.comfy.org/p/native-localization-support-i18n
- More details available here: https://blog.comfy.org/p/native-localization-support-i18n
-
- v1.4: New mask editor
+
+ v1.4: New image canvas
- https://github.com/Comfy-Org/ComfyUI_frontend/pull/1284 implements a new mask editor.
+https://github.com/Comfy-Org/ComfyUI_frontend/pull/1284 implements a new image canvas.
+
+
- 
@@ -95,18 +98,22 @@ The development of successive minor versions overlaps. For example, while versio
Press Ctrl + ` to toggle integrated terminal.
https://github.com/user-attachments/assets/eddedc6a-07a3-4a83-9475-63b3977f6d94
+
v1.3.7: Keybinding customization
## Basic UI
+

## Reset button
+

## Edit Keybinding
+


@@ -117,27 +124,34 @@ https://github.com/user-attachments/assets/eddedc6a-07a3-4a83-9475-63b3977f6d94
v1.1.0: Node search box
- #### Fuzzy search & Node preview
- 
+#### Fuzzy search & Node preview
+
+
+
+#### Release link with shift
+
+https://github.com/user-attachments/assets/a1b2b5c3-10d1-4256-b620-345de6858f25
- #### Release link with shift
- https://github.com/user-attachments/assets/a1b2b5c3-10d1-4256-b620-345de6858f25
### QoL changes
@@ -146,12 +160,14 @@ https://github.com/user-attachments/assets/4bbca3ee-318f-4cf0-be32-a5a5541066cf
v1.3.32: **Litegraph** Nested group
https://github.com/user-attachments/assets/f51adeb1-028e-40af-81e4-0ac13075198a
+
v1.3.24: **Litegraph** Group selection
https://github.com/user-attachments/assets/e6230a94-411e-4fba-90cb-6c694200adaa
+
@@ -227,17 +243,21 @@ https://github.com/user-attachments/assets/c142c43f-2fe9-4030-8196-b3bfd4c6977d
v1.2.2: **Litegraph** auto connects to correct slot
- #### Before
- https://github.com/user-attachments/assets/c253f778-82d5-4e6f-aec0-ea2ccf421651
+#### Before
+
+https://github.com/user-attachments/assets/c253f778-82d5-4e6f-aec0-ea2ccf421651
+
+#### After
+
+https://github.com/user-attachments/assets/b6360ac0-f0d2-447c-9daa-8a2e20c0dc1d
- #### After
- https://github.com/user-attachments/assets/b6360ac0-f0d2-447c-9daa-8a2e20c0dc1d
v1.1.8: **Litegraph** hides text overflow on widget value
- https://github.com/user-attachments/assets/5696a89d-4a47-4fcc-9e8c-71e1264943f2
+https://github.com/user-attachments/assets/5696a89d-4a47-4fcc-9e8c-71e1264943f2
+
### Developer APIs
@@ -283,8 +303,7 @@ window['app'].extensionManager.dialog
```js
// window.alert
-window['app'].extensionManager.toast
- .addAlert("Test Alert")
+window['app'].extensionManager.toast.addAlert('Test Alert')
```

@@ -383,28 +402,28 @@ app.extensionManager.setting.set('TestSetting', 'Hello, universe!')
v1.3.7: Register commands and keybindings
- Extensions can call the following API to register commands and keybindings. Do
- note that keybindings defined in core cannot be overwritten, and some keybindings
- are reserved by the browser.
+Extensions can call the following API to register commands and keybindings. Do
+note that keybindings defined in core cannot be overwritten, and some keybindings
+are reserved by the browser.
```js
- app.registerExtension({
- name: 'TestExtension1',
- commands: [
- {
- id: 'TestCommand',
- function: () => {
- alert('TestCommand')
- }
- }
- ],
- keybindings: [
- {
- combo: { key: 'k' },
- commandId: 'TestCommand'
+app.registerExtension({
+ name: 'TestExtension1',
+ commands: [
+ {
+ id: 'TestCommand',
+ function: () => {
+ alert('TestCommand')
}
- ]
- })
+ }
+ ],
+ keybindings: [
+ {
+ combo: { key: 'k' },
+ commandId: 'TestCommand'
+ }
+ ]
+})
```
@@ -412,66 +431,69 @@ app.extensionManager.setting.set('TestSetting', 'Hello, universe!')
v1.2.27: Extension API to add toast message
i
- Extensions can call the following API to add toast messages.
+Extensions can call the following API to add toast messages.
```js
- app.extensionManager.toast.add({
- severity: 'info',
- summary: 'Loaded!',
- detail: 'Extension loaded!',
- life: 3000
- })
+app.extensionManager.toast.add({
+ severity: 'info',
+ summary: 'Loaded!',
+ detail: 'Extension loaded!',
+ life: 3000
+})
```
+
Documentation of all supported options can be found here:

+