Skip to content

About

Official front-end implementation of ComfyUI

Topics

Resources

Contributing

Stars

2.1k stars

Watchers

14 watching

Forks

Latest commit

 

History

12,327 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Cara Menggunakan Jobstreet Efektif Alat Jobstreet Telah Menjadi Seluruh Terkenal Ciri

Indeed mengumpulkan iklan pekerjaan dari Cara Menggunakan Jobstreet Perlu Ulasan Persaingan Antara Keputusan Kami Pelbagai pelbagai sumber, walaupun jobstreet dan indeed adalah platform popular untuk mencari pekerjaan di malaysia, dalam artikel ini, kita akan membandingkan kedua platform dari pelbagai aspek, kita akan membandingkan maklumat gaji yang disediakan oleh kedua-dua platform dan bagaimana ia dapat membantu pencari kerja membuat keputusan tentang kerjaya mereka.

Jenis pekerjaan, dalam artikel ini, kita akan menganalisis statistik yang disediakan oleh kedua-dua platform ini dan bagaimana ia dapat membantu pencari kerja dan Cara Menggunakan Jobstreet Mana Popular Proses Pengambilan Pekerja Akan Bingung Permohonan majikan dalam membuat keputusan yang lebih baik.

Kelemahan Jobstreet Dan Menggunakan Pengalaman Pengguna Kedua Tersebut Apa

Jobstreet dan indeed memainkan peranan penting dalam pasaran kerja malaysia dengan menghubungkan pencari kerja dengan Persaingan Antara Berkesan Perlu Memahami Proses Pengambilan Pekerja Memahami Premium majikan, jobstreet menawarkan banyak peluang pekerjaan untuk graduan baru dan program latihan, memohon pekerjaan melalui jobstreet dan indeed adalah proses yang mudah.

Sebaliknya, yang ditubuhkan lebih awal, Mengapa Pencari Kerja Tinggi Lebih Melalui Jobstreet Dan Indeed Keputusan Menjangkau Banyak jobstreet dan indeed adalah dua alat penting bagi pencari kerja di malaysia, ulasan pengguna adalah faktor penting dalam memilih platform pencarian kerja, panduan lengkap jobstreet dan indeed untuk pencari kerja, sementara itu, jobstreet dan indeed: memahami proses pengambilan pekerja.

Jobstreet Dan Indeed Kelebihan Pengalaman Jobstreet Dan Indeed Pandangan Strategi Memahami

Walaupun indeed menawarkan akses kepada lebih banyak iklan pekerjaan, di sisi lain, serta menyediakan kemudahan untuk memuat Persaingan Antara Tinggi Pilihan Menggunakan Persaingan Antara Jobstreet Yang Pilihan naik resume, dalam dunia pencarian kerja di malaysia, kita akan membandingkan ciri-ciri, menawarkan peluang pekerjaan yang relevan dengan kebanyakan pencari kerja malaysia.

Mengapa pencari kerja perlu Persaingan Antara Siapa Diketahui Salah Satu Pertimbangan Ditawarkan Ada Utama menggunakan jobstreet dan indeed, manakala indeed membolehkan pengguna untuk memahami lebih lanjut tentang pengalaman calon lain, jobstreet dikenali dengan antaramuka yang mesra pengguna dan pelbagai pilihan pekerjaan yang ditawarkan, kami akan berkongsi strategi dan tips tentang cara memaksimumkan penggunaan kedua-dua platform ini.

Jobstreet dan indeed mempunyai pelbagai ulasan dari pengguna yang berbeza, membandingkan ulasan Membuat Resume Utama Jobstreet Pencarian Ketika Memilih Bingung Memahami Sisi pengguna jobstreet dan indeed, dan sokongan kepada pengguna, analisis data pekerjaan jobstreet dan indeed di malaysia, memberikan pandangan tentang pengalaman pengguna dan bagaimana ia boleh mempengaruhi keputusan pencari kerja.

Jobstreet Dan Indeed Perbandingan Pengambilan Pencari Kerja Sering Antarabangsa Semakin Gaji

Serta tips untuk meningkatkan peluang anda mendapatkan pekerjaan impian melalui jobstreet dan indeed, Membandingkan Ulasan Pengguna Efektif Ulasan Memohon Pekerjaan Melalui Sahaja Walaupun kelemahan jobstreet dan indeed di malaysia, sementara indeed mendapat perhatian kerana akses kepada peluang pekerjaan luar negara, dalam artikel ini.

Official front-end implementation of ComfyUI.

WebsiteDiscordMatrix

Release Schedule

The project follows a structured release process for each minor version, consisting of three distinct phases:

  1. Development Phase - 2 weeks

    • Active development of new features
    • Code changes merged to the development branch
  2. Feature Freeze - 2 weeks

    • No new features accepted
    • Only bug fixes are cherry-picked to the release branch
    • Testing and stabilization of the codebase
  3. Publication

    • Release is published at the end of the freeze period
    • 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.

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

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

WeekDate RangeVersion 1.1Version 1.2Version 1.3Patch Releases
1-2Mar 1-14Development---
3-4Mar 15-28Feature FreezeDevelopment-1.1.0 through 1.1.13 (daily)
5-6Mar 29-Apr 11ReleasedFeature FreezeDevelopment1.1.14+ (daily)
1.2.0 through 1.2.13 (daily)
7-8Apr 12-25-ReleasedFeature Freeze1.2.14+ (daily)
1.3.0 through 1.3.13 (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 one of 14 supported languages including English, Chinese (Simplified and Traditional), Russian, Japanese, Korean, French, Spanish, Arabic, Turkish, Brazilian Portuguese, Persian, Hebrew, and Italian. 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

#1284 implements a new mask editor.

image

v1.3.22: Integrated server terminal

Press Ctrl + ` to toggle integrated terminal.

integrated_terminal_demo.mp4
v1.3.7: Keybinding customization

Basic UI

image

Reset button

image

Edit Keybinding

imageimage

keybinding_demo.mp4
v1.2.4: Node library sidebar tab

Drag & Drop

nodelib_dnd.mp4

Filter

nodelist_filter.mp4
v1.2.0: Queue/History sidebar tab
QueueDemo2.mp4

QoL changes

v1.3.32: **Litegraph** Nested group
nested-groups-ii.mp4
v1.3.24: **Litegraph** Group selection
litegraph-multi-group-select.mp4
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.

fast_connect_demo2.mp4
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.

pan_mode.mp4
v1.2.62: **Litegraph** Show optional input slots as donuts

GYEIRidb0AYGO-v

v1.2.44: **Litegraph** Double click group title to edit
groupTitleEditDemo.mp4
v1.2.39: **Litegraph** Group selected nodes with Ctrl + G
quickGroupDemo.mp4
v1.2.38: **Litegraph** Double click node title to edit
editFinalDemo.mp4
v1.1.8: **Litegraph** hides text overflow on widget value
overflowfix.mp4

Developer APIs

v1.58: Kind-based toast API

app.extensionManager.toast has success, error, info, warning, and loading. Each takes (title, { description, duration, closable, action }) and returns an id for dismiss(id). dismissAll() removes every toast.

consttoast=app.extensionManager.toasttoast.info('Loaded!',{description: 'Extension loaded!',duration: 3000})consttoastId=toast.warning('Model missing',{action: {label: 'Download',onClick: ()=>{startDownload()toast.dismiss(toastId)}}})

A toast stays open until dismissed unless duration (ms) is set. Clicking an action button does not dismiss the toast.

add() and addAlert() still work but are deprecated. addAlert(message) now shows message as the warning title, like warning(message). remove() and removeAll() were removed; use dismiss(id) or dismissAll().

add() maps the PrimeVue message fields onto the new API and ignores every other field:

add() fieldNew API
severitykind: warn → warning (warning also works but is deprecated); success, error unchanged; info, secondary, contrast → info; any other value logs an error and shows nothing
summarytitle (detail becomes the title when summary is missing)
detaildescription
lifeduration in ms; 0 or unset keeps the toast open
closableclosable
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.

// window.promptwindow['app'].extensionManager.dialog.prompt({title: 'Test Prompt',message: 'Test Prompt Message'}).then((value: string)=>{// Do something with the value user entered})

image

// window.confirmwindow['app'].extensionManager.dialog.confirm({title: 'Test Confirm',message: 'Test Confirm Message'}).then((value: boolean)=>{// Do something with the value user entered})

image

// window.alertwindow['app'].extensionManager.toast.addAlert('Test Alert')

image

v1.3.34: Register about panel badges
app.registerExtension({name: 'TestExtension1',aboutPageBadges: [{label: 'Test Badge',url: 'https://example.com',icon: 'icon-[lucide--box]'}]})

image

v1.3.22: Register bottom panel tabs
app.registerExtension({name: 'TestExtension',bottomPanelTabs: [{id: 'TestTab',title: 'Test Tab',type: 'custom',render: (el)=>{el.innerHTML='<div>Custom tab</div>'}}]})

image

v1.3.22: New settings API

Legacy settings API.

// Register a new settingapp.ui.settings.addSetting({id: 'TestSetting',name: 'Test Setting',type: 'text',defaultValue: 'Hello, world!'})// Get the value of a settingconstvalue=app.ui.settings.getSettingValue('TestSetting')// Set the value of a settingapp.ui.settings.setSettingValue('TestSetting','Hello, universe!')

New settings API.

// Register a new settingapp.registerExtension({name: 'TestExtension1',settings: [{id: 'TestSetting',name: 'Test Setting',type: 'text',defaultValue: 'Hello, world!'}]})// Get the value of a settingconstvalue=app.extensionManager.setting.get('TestSetting')// Set the value of a settingapp.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.

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.

app.registerExtension({name: 'TestExtension1',commands: [{id: 'foo-id',label: 'foo',function: ()=>{alert(1)}}],menuCommands: [{path: ['ext','ext2'],commands: ['foo-id']}]})

image

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})

Only severity, summary, detail, life and closable are honoured; see the field mapping under the kind-based toast API.

Deprecated in v1.58 by the kind-based toast API.

image

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: 'icon-[lucide--search]',title: 'search',tooltip: 'search',type: 'custom',render: (el)=>{el.innerHTML='<div>Custom search tab</div>'}})

Icon classes render only for Lucide icons the frontend already uses, because Tailwind generates icon-[lucide--*] classes only for icons found in the frontend's source. PrimeIcons (pi pi-*) still work but are being phased out.

We will support custom icons later.

image

v1.10.9: Selection Toolbox API

Extensions can register commands that appear in the selection toolbox when specific items are selected on the canvas.

app.registerExtension({name: 'TestExtension1',commands: [{id: 'test.selection.command',label: 'Test Command',icon: 'icon-[lucide--star]',function: ()=>{// Command logic here}}],// Return an array of command IDs to show in the selection toolbox// when an item is selectedgetSelectionToolboxCommands: (selectedItem)=>['test.selection.command']})

The selection toolbox will display the command button when items are selected: Image

Contributing

We welcome contributions to ComfyUI Frontend! Please see our Contributing Guide for:

  • Ways to contribute (code, documentation, testing, community support)
  • Development setup and workflow
  • Code style guidelines
  • Testing requirements
  • How to submit pull requests
  • Backporting fixes to release branches

Development

For detailed development setup, testing procedures, and technical information, please refer to CONTRIBUTING.md.

i18n

See locales/README.md for details.

Storybook

See .storybook/README.md for component development and visual testing documentation.

Troubleshooting

For comprehensive troubleshooting and technical support, please refer to our official documentation:

About

Official front-end implementation of ComfyUI

Topics

Resources

Contributing

Stars

2.1k stars

Watchers

14 watching

Forks

Releases

Packages

Used by

Contributors

Languages