On lower screen widths, the SearchBox would scale itself down instead of reducing the fairly wide margins. This wastes space and has reduces the usability of the search box contents itself by cutting off information (such as the experimental badge) on nodes with medium or longer titles This is not without side effects, so further adjustments may be needed. Currently, the searchbox is slightly offset to the right even for wide screens and the adjustments are disabled for very small screens (<=768) such that the preview is offscreen, but the entirety of the searchbox is properly displayed down to 512
Release Schedule
Nightly Release
Nightly releases are published daily at 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:
--front-end-version Comfy-Org/ComfyUI_frontend@latest
For Windows Stand-alone Build Users
Edit your run_cpu.bat or run_nvidia_gpu.bat file as follows:
.\python_embeded\python.exe -s ComfyUI\main.py --windows-standalone-build --front-end-version Comfy-Org/ComfyUI_frontend@latest
pause
Stable Release
Stable releases are published weekly in the ComfyUI main repository, aligned with ComfyUI backend's stable release schedule.
Feature Freeze
There will be a 2-day feature freeze before each stable release. During this period, no new major features will be merged.
Release Summary
Major features
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
v1.1.0: Node search box
Fuzzy search & Node preview
Release link with shift
https://github.com/user-attachments/assets/a1b2b5c3-10d1-4256-b620-345de6858f25
QoL changes
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.2.7: **Litegraph** drags multiple links with shift pressed
https://github.com/user-attachments/assets/68826715-bb55-4b2a-be6e-675cfc424afe
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
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
Node developers API
v1.2.4: Extension API to register custom sidebar tab
Extensions now can call the following API to register a sidebar tab.
app.extensionManager.registerSidebarTab({
id: "search",
icon: "pi pi-search",
title: "search",
tooltip: "search",
type: "custom",
render: (el) => {
el.innerHTML = "<div>Custom search tab</div>";
},
});
The list of supported icons can be found here: https://primevue.org/icons/#list
We will support custom icons later.
v1.2.27: Extension API to add toast message
Extensions can call the following API to add toast messages.
app.extensionManager.toast.add({
severity: 'info',
summary: 'Loaded!',
detail: 'Extension loaded!',
life: 3000
})
Documentation of all supported options can be found here: https://primevue.org/toast/#api.toast.interfaces.ToastMessageOptions
Road Map
What has been done
- Migrate all code to TypeScript with minimal change modification to the original logic.
- Bundle all code with Vite's rollup build.
- Added a shim layer to be backward compatible with the existing extension system. https://github.com/huchenlei/ComfyUI_frontend/pull/15
- Front-end dev server.
- Zod schema for input validation on ComfyUI workflow.
- Make litegraph a npm dependency. https://github.com/Comfy-Org/ComfyUI_frontend/pull/89
- Introduce Vue to start managing part of the UI.
- Easy install and version management (https://github.com/comfyanonymous/ComfyUI/pull/3897).
- Better node management. Sherlock https://github.com/Nuked88/ComfyUI-N-Sidebar.
- Replace the existing ComfyUI front-end implementation. https://github.com/comfyanonymous/ComfyUI/pull/4379
What to be done
- Remove
@ts-ignores. - Turn on
strictontsconfig.json. - Add more widget types for node developers.
- LLM streaming node.
- Linear mode (Similar to InvokeAI's linear mode).
- Keybinding settings management. Register keybindings API for custom nodes.
Development
Git pre-commit hooks
Run npm run prepare to install Git pre-commit hooks. Currently, the pre-commit
hook is used to auto-format code on commit.
Dev Server
Note: The dev server will NOT load any extension from the ComfyUI server. Only core extensions will be loaded.
- Run
npm installto install the necessary packages - Start local ComfyUI backend at
localhost:8188 - Run
npm run devto start the dev server
Test
git clone https://github.com/comfyanonymous/ComfyUI_examples.gittotests-ui/ComfyUI_examplesor the EXAMPLE_REPO_PATH location specified in .envnpm ito install all dependenciesnpm run test:generateto fetchtests-ui/data/object_info.jsonnpm run test:generate:examplesto extract the example workflowsnpm run testto execute all unit tests.
LiteGraph
This repo is using litegraph package hosted on https://github.com/Comfy-Org/litegraph.js. Any changes to litegraph should be submitted in that repo instead.
Test litegraph changes
- Run
npm linkin the local litegraph repo. - Run
npm uninstall @comfyorg/litegraphin this repo. - Run
npm link @comfyorg/litegraphin this repo.
This will replace the litegraph package in this repo with the local litegraph repo.
Deploy
- Option 1: Set
DEPLOY_COMFYUI_DIRin.envand runnpm run deploy. - Option 2: Copy everything under
dist/toComfyUI/web/in your ComfyUI checkout manually.
Publish release to ComfyUI main repo
Run following command to publish a release to ComfyUI main repo. The script will create a new branch and do a commit to web/ folder by checkout dist.zip
from GitHub release.
python scripts/main_repo_release.py <path_to_comfyui_main_repo> <version>