From bb1ac32ccd622dccb91a8dfabae3e932fe97c054 Mon Sep 17 00:00:00 2001 From: Benjamin Lu Date: Wed, 7 May 2025 13:56:05 -0400 Subject: [PATCH] Revert "Remove Release Summary section in README (#3607)" (#3802) --- README.md | 443 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 443 insertions(+) diff --git a/README.md b/README.md index 3763f29ee..703690f94 100644 --- a/README.md +++ b/README.md @@ -67,6 +67,449 @@ The development of successive minor versions overlaps. For example, while versio | 3 | Mar 15-21 | Released | Feature Freeze | Development | 1.1.7 through 1.1.13 (daily)
1.2.0 through 1.2.6 (daily) | | 4 | Mar 22-28 | - | Released | Feature Freeze | 1.2.7 through 1.2.13 (daily)
1.3.0 through 1.3.6 (daily) | +## Release Summary + +### Major features + +
+ 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, or Korean. 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 +
+ +
+ v1.4: New mask editor + + https://github.com/Comfy-Org/ComfyUI_frontend/pull/1284 implements a new mask editor. + + ![image](https://github.com/user-attachments/assets/f0ea6ee5-00ee-4e5d-a09c-6938e86a1f17) +
+ +
+ v1.3.22: Integrated server terminal + +Press Ctrl + ` to toggle integrated terminal. + +https://github.com/user-attachments/assets/eddedc6a-07a3-4a83-9475-63b3977f6d94 +
+ +
+ v1.3.7: Keybinding customization + +## Basic UI +![image](https://github.com/user-attachments/assets/c84a1609-3880-48e0-a746-011f36beda68) + +## Reset button +![image](https://github.com/user-attachments/assets/4d2922da-bb4f-4f90-8017-a8e4a0db07c7) + +## Edit Keybinding +![image](https://github.com/user-attachments/assets/77626b7a-cb46-48f8-9465-e03120aac66a) +![image](https://github.com/user-attachments/assets/79131a4e-75c6-4715-bd11-c6aaed887779) + +[rec.webm](https://github.com/user-attachments/assets/a3984ed9-eb28-4d47-86c0-7fc3efc2b5d0) + +
+ +
+ v1.2.4: Node library sidebar tab + + #### Drag & Drop +https://github.com/user-attachments/assets/853e20b7-bc0e-49c9-bbce-a2ba7566f92f + + #### Filter +https://github.com/user-attachments/assets/4bbca3ee-318f-4cf0-be32-a5a5541066cf +
+ +
+ v1.2.0: Queue/History sidebar tab + + https://github.com/user-attachments/assets/86e264fe-4d26-4f07-aa9a-83bdd2d02b8f +
+ + + +### QoL changes + +
+ 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 +
+ + + +
+ v1.3.4: **Litegraph** Auto widget to input conversion + +Dropping a link of correct type on node widget will automatically convert the widget to input. + +[rec.webm](https://github.com/user-attachments/assets/15cea0b0-b225-4bec-af50-2cdb16dc46bf) + +
+ +
+ v1.3.4: **Litegraph** Canvas pan mode + +The canvas becomes readonly in pan mode. Pan mode is activated by clicking the pan mode button on the canvas menu +or by holding the space key. + +[rec.webm](https://github.com/user-attachments/assets/c7872532-a2ac-44c1-9e7d-9e03b5d1a80b) + +
+ + + +
+ v1.2.62: **Litegraph** Show optional input slots as donuts + +![GYEIRidb0AYGO-v](https://github.com/user-attachments/assets/e6cde0b6-654b-4afd-a117-133657a410b1) + +
+ +
+ v1.2.44: **Litegraph** Double click group title to edit + +https://github.com/user-attachments/assets/5bf0e2b6-8b3a-40a7-b44f-f0879e9ad26f + +
+ +
+ v1.2.39: **Litegraph** Group selected nodes with Ctrl + G + +https://github.com/user-attachments/assets/7805dc54-0854-4a28-8bcd-4b007fa01151 + +
+ +
+ v1.2.38: **Litegraph** Double click node title to edit + +https://github.com/user-attachments/assets/d61d5d0e-f200-4153-b293-3e3f6a212b30 + +
+ + + + + +
+ v1.1.8: **Litegraph** hides text overflow on widget value + + https://github.com/user-attachments/assets/5696a89d-4a47-4fcc-9e8c-71e1264943f2 +
+ +### Developer APIs + +
+ v1.6.13: prompt/confirm/alert replacements for ComfyUI desktop + +Several browser-only APIs are not available in ComfyUI desktop's electron environment. + +- `window.prompt` +- `window.confirm` +- `window.alert` + +Please use the following APIs as replacements. + +```js +// window.prompt +window['app'].extensionManager.dialog + .prompt({ + title: 'Test Prompt', + message: 'Test Prompt Message' + }) + .then((value: string) => { + // Do something with the value user entered + }) +``` + +![image](https://github.com/user-attachments/assets/c73f74d0-9bb4-4555-8d56-83f1be4a1d7e) + +```js +// window.confirm +window['app'].extensionManager.dialog + .confirm({ + title: 'Test Confirm', + message: 'Test Confirm Message' + }) + .then((value: boolean) => { + // Do something with the value user entered + }) +``` + +![image](https://github.com/user-attachments/assets/8dec7a42-7443-4245-85be-ceefb1116e96) + +```js +// window.alert +window['app'].extensionManager.toast + .addAlert("Test Alert") +``` + +![image](https://github.com/user-attachments/assets/9b18bdca-76ef-4432-95de-5cd2369684f2) + +
+ +
+ v1.3.34: Register about panel badges + +```js +app.registerExtension({ + name: 'TestExtension1', + aboutPageBadges: [ + { + label: 'Test Badge', + url: 'https://example.com', + icon: 'pi pi-box' + } + ] +}) +``` + +![image](https://github.com/user-attachments/assets/099e77ee-16ad-4141-b2fc-5e9d5075188b) + +
+ +
+ v1.3.22: Register bottom panel tabs + +```js +app.registerExtension({ + name: 'TestExtension', + bottomPanelTabs: [ + { + id: 'TestTab', + title: 'Test Tab', + type: 'custom', + render: (el) => { + el.innerHTML = '
Custom tab
' + } + } + ] +}) +``` + +![image](https://github.com/user-attachments/assets/2114f8b8-2f55-414b-b027-78e61c870b64) + +
+ +
+ v1.3.22: New settings API + +Legacy settings API. + +```js +// Register a new setting +app.ui.settings.addSetting({ + id: 'TestSetting', + name: 'Test Setting', + type: 'text', + defaultValue: 'Hello, world!' +}) + +// Get the value of a setting +const value = app.ui.settings.getSettingValue('TestSetting') + +// Set the value of a setting +app.ui.settings.setSettingValue('TestSetting', 'Hello, universe!') +``` + +New settings API. + +```js +// Register a new setting +app.registerExtension({ + name: 'TestExtension1', + settings: [ + { + id: 'TestSetting', + name: 'Test Setting', + type: 'text', + defaultValue: 'Hello, world!' + } + ] +}) + +// Get the value of a setting +const value = app.extensionManager.setting.get('TestSetting') + +// Set the value of a setting +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. + +```js + app.registerExtension({ + name: 'TestExtension1', + commands: [ + { + id: 'TestCommand', + function: () => { + alert('TestCommand') + } + } + ], + keybindings: [ + { + combo: { key: 'k' }, + commandId: 'TestCommand' + } + ] + }) +``` + +
+ +
+ v1.3.1: Extension API to register custom topbar menu items + + Extensions can call the following API to register custom topbar menu items. + +```js + app.registerExtension({ + name: 'TestExtension1', + commands: [ + { + id: 'foo-id', + label: 'foo', + function: () => { + alert(1) + } + } + ], + menuCommands: [ + { + path: ['ext', 'ext2'], + commands: ['foo-id'] + } + ] + }) +``` + +![image](https://github.com/user-attachments/assets/ae7b082f-7ce9-4549-a446-4563567102fe) +
+ +
+ v1.2.27: Extension API to add toast messagei + + Extensions can call the following API to add toast messages. + +```js + app.extensionManager.toast.add({ + severity: 'info', + summary: 'Loaded!', + detail: 'Extension loaded!', + life: 3000 + }) +``` +Documentation of all supported options can be found here: + +![image](https://github.com/user-attachments/assets/de02cd7e-cd81-43d1-a0b0-bccef92ff487) +
+ +
+ v1.2.4: Extension API to register custom sidebar tab + + Extensions now can call the following API to register a sidebar tab. + +```js + app.extensionManager.registerSidebarTab({ + id: "search", + icon: "pi pi-search", + title: "search", + tooltip: "search", + type: "custom", + render: (el) => { + el.innerHTML = "
Custom search tab
"; + }, + }); +``` + +The list of supported icons can be found here: + +We will support custom icons later. + +![image](https://github.com/user-attachments/assets/7bff028a-bf91-4cab-bf97-55c243b3f5e0) +
+ +
+ v1.10.9: Selection Toolbox API + +Extensions can register commands that appear in the selection toolbox when specific items are selected on the canvas. + +```js +app.registerExtension({ + name: 'TestExtension1', + commands: [ + { + id: 'test.selection.command', + label: 'Test Command', + icon: 'pi pi-star', + function: () => { + // Command logic here + } + } + ], + // Return an array of command IDs to show in the selection toolbox + // when an item is selected + getSelectionToolboxCommands: (selectedItem) => ['test.selection.command'] +}) +``` + +The selection toolbox will display the command button when items are selected: +![Image](https://github.com/user-attachments/assets/28d91267-c0a9-4bd5-a7c4-36e8ec44c9bd) + +
+ ## Contributing We're building this frontend together and would love your help — no matter how you'd like to pitch in! You don't need to write code to make a difference.