Commit Graph
103 Commits
Author SHA1 Message Date
科林 KELINGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
826f6268b5 build(ui): sync frontend assets from upstream@3faa829c (#114)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-04-07 06:27:30 +00:00
科林 KELINandGitHub ac9c4a5702 chore: replace README banner image and standardize filename (#112)
- Replace old banner (banner-ui-dashboard-20260322.png) with new design
- Rename banner file to banner.png for cleaner naming
- Update banner reference in all README variants (en, zh, zh-TW, ja)
2026-04-07 14:17:14 +08:00
HuangYuChuh c2b8e0f7e4 fix ui upload dependency 2026-04-07 13:54:45 +08:00
HuangYuChuh 4039f9aaca fix: run_ui.bat 使用 .venv 虚拟环境,与 run_ui.sh 逻辑对齐
- run_ui.bat 新增自动创建 .venv、检测 Python 3.10+、自动安装依赖
- 文档去掉多余的 pip install 步骤,说明脚本自动管理虚拟环境
2026-04-02 00:16:57 +08:00
HuangYuChuh d6d4a2e388 fix: replace deleted comfyui_client import with CLI subprocess bridge
Web UI's /run endpoint now calls comfyui-skill CLI via subprocess
instead of importing the deleted comfyui_client.py module.
2026-04-01 12:31:32 +08:00
科林 KELINandGitHub cbee24f850 fix: duplicate nodes losing parameters due to schema name collision (#87) (#88)
Root cause: when a workflow has multiple nodes of the same type (e.g. two
GeminiNanoBanana2), extract_schema_params gave them identical parameter
names (e.g. both "seed"). build_final_schema deduped them, but the
unique names were never synced back to ui_parameters. When the frontend
saved using ui_parameters, the duplicate names caused one parameter to
silently overwrite the other.

Changes:
- Refactor _get_auto_mapping to only decide exposure/required, not naming
- Add _assign_parameter_names for global context-aware naming:
  - Single node of a type → simple name (seed, prompt)
  - Multiple nodes → disambiguate with node title or node_id
- Add sync_names_back option to build_final_schema so ui_parameters
  and parameters stay consistent
- Enrich descriptions with node context for duplicate types

Closes #87
2026-03-30 16:01:31 +08:00
科林 KELINGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
736f3e511f build(ui): sync frontend assets from upstream@c60bdee4 (#86)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-30 05:27:05 +00:00
74d9ea8e23 fix(ui): simplify batch action button labels (#85)
Shorten button text for better readability:
- Select All (was "Select all in view")
- Deselect (was "Clear selection")
- Delete (was "Delete selected")

Co-authored-by: Kelin <kelin@KelindeMacBook-Air.local>
2026-03-30 13:18:13 +08:00
5514e8befa feat(ui): add clickable link to ComfyUI API Key help text (#83)
The help text under the API Key field now links directly to
platform.comfy.org/login so users can generate a key in one click.

Co-authored-by: Kelin <kelin@KelindeMacBook-Air.local>
2026-03-30 10:50:08 +08:00
196ae0bf19 feat: support ComfyUI API Key for cloud nodes (#78) (#81)
Add comfy_api_key server config field to enable cloud API nodes
(Kling, Sora, Nano Banana, etc.) when calling ComfyUI via API.
The key is passed through extra_data.api_key_comfy_org in the
/prompt request, following ComfyUI's official API key integration.

Closes #78

Co-authored-by: Kelin <kelin@KelindeMacBook-Air.local>
2026-03-30 10:27:47 +08:00
科林 KELINGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
f7d38ef4f3 build(ui): sync frontend assets from upstream@672deade (#77)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-29 16:28:17 +00:00
d883e0ab0c feat: add workflow dependency checker and installer (#76)
Add a three-tier dependency detection system for ComfyUI workflows:
1. ComfyUI Manager API — node status + import-fail diagnostics
2. ComfyUI Registry API — cloud search for unknown nodes
3. extension-node-map.json — offline fallback

Features:
- Detect missing custom nodes (not_installed / import_fail / unknown)
- Detect missing model files with auto-download support via Manager
- i18n text report formatting (zh/en) with UNIX-style layout
- Three-strategy node installer (Manager queue → cm-cli → git clone)
- Model download via Manager /manager/queue/install_model
- CLI command `check-deps` for Agent integration
- REST API endpoints with locale parameter
- 28 unit tests covering all detection and formatting logic

Co-authored-by: Kelin <kelin@KelindeMacBook-Air.local>
2026-03-30 00:27:00 +08:00
5be59c5967 fix(ui): remove merge conflict markers from JS bundles (#73)
Commit d7439de left git conflict markers (<<<<<<<<, ========, >>>>>>>>)
inside the production JS bundles, causing JavaScript syntax errors that
prevented React from mounting and triggered the "UI failed to load"
recovery screen.

Co-authored-by: Kelin <kelin@KelindeMacBook-Air.local>
2026-03-28 10:50:23 +08:00
Kelin d7439de018 merge: resolve frontend asset conflicts, keep build with URL param cleanup 2026-03-25 12:43:59 +08:00
Kelin 5ab3320c6e feat(client): add non-blocking submit/status commands for real-time progress feedback
Add `submit` and `status` subcommands to comfyui_client.py so agents in
interactive environments (chat, messaging) can relay generation progress
to users between tool calls instead of blocking silently for 30+ seconds.

- `submit`: validates params, queues prompt, returns run_id immediately
- `status`: checks queue position / running state / completion, downloads
  images when done
- Original `--workflow --args` blocking mode is fully preserved
- SKILL.md updated with interactive vs non-blocking guidance
- Synced frontend assets with URL param cleanup fix
2026-03-25 12:01:32 +08:00
科林 KELINGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
0e3b0453fb build(ui): sync frontend assets from upstream@b85d1ba5 (#68)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-25 03:50:10 +00:00
科林 KELINGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
1a36ba0107 build(ui): sync frontend assets from upstream@bdcb8fcf (#67)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-24 16:08:38 +00:00
科林 KELINGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
295596d7f1 build(ui): sync frontend assets from upstream@7bf6b2c8 (#65)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-24 08:49:05 +00:00
Kelin 6aaf17c3dc feat(api): add image upload support and fix error handling
- Mark LoadImage node's image field as type "image" in schema extraction
- Add POST /api/servers/{server_id}/upload/image proxy endpoint
- Auto-migrate legacy schemas with string type to image type at read time
- Fix ComfyUI error dict handling in comfyui_client.py (TypeError on dict += str)
- Add python-multipart dependency for file upload support
2026-03-24 16:41:51 +08:00
Kelin 2b81876738 fix(schema): support ComfyUI subgraph node IDs in schema extraction
ComfyUI subgraph workflows use colon-separated node IDs like "14:10"
instead of plain integers. The previous int() coercion crashed on
these IDs with ValueError. Store node_id as string throughout the
schema pipeline to support both plain and subgraph workflows.
2026-03-24 13:48:07 +08:00
Kelin 9ba0a36624 feat(api): add batch delete workflows endpoint
Add POST /api/servers/{server_id}/workflows/batch-delete to allow
deleting multiple workflows in a single request. Refactor
WorkflowOrderModel into a shared WorkflowIdsModel base class.
Also disable the list-level history entry point (has_history=False).
2026-03-24 09:16:01 +08:00
科林 KELINGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
c57a01701b build(ui): sync frontend assets from upstream@72b205c1 (#61)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-23 09:54:53 +00:00
科林 KELINGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
ac60d67682 build(ui): sync frontend assets from upstream@d18df976 (#59)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-23 02:31:39 +00:00
Kelin 10121f09a6 fix(ui): bootstrap a supported Python runtime automatically 2026-03-22 23:39:02 +08:00
Kelin 097114fecc feat(api): preview ComfyUI workflow imports before sync 2026-03-22 20:06:03 +08:00
科林 KELINGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
db7fe13333 build(ui): sync frontend assets from upstream@7c26b365 (#54)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-22 08:39:13 +00:00
科林 KELINGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
e158bb1777 build(ui): sync frontend assets from upstream@0be3d700 (#53)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-22 04:56:34 +00:00
科林 KELINGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
5860110658 build(ui): sync frontend assets from upstream@8f107fe9 (#52)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-21 16:51:06 +00:00
Kelin d63577f4f4 fix(ui): recover from failed boot after updates 2026-03-22 00:49:12 +08:00
科林 KELINGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
cf9b113016 build(ui): sync frontend assets from upstream@e2921b5f (#50)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-21 16:36:00 +00:00
Kelin 3b77ffbdbe fix(update): disable HTML caching for UI refreshes 2026-03-22 00:34:03 +08:00
科林 KELINGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
af09845f8f build(ui): sync frontend assets from upstream@aceee01a (#48)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-21 16:16:12 +00:00
科林 KELINGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
f884b57167 build(ui): sync frontend assets from upstream@dd90ea0d (#47)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-21 08:22:03 +00:00
Kelin e83a5cb278 Revert "fix(ui): continue userdata fallback probes on empty results"
This reverts commit edc4948a3c.
2026-03-21 11:55:26 +08:00
Kelin edc4948a3c fix(ui): continue userdata fallback probes on empty results 2026-03-21 11:50:09 +08:00
科林 KELINGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
7dc00cfa18 build(ui): sync frontend assets from upstream@947fd69f (#46)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-20 15:15:32 +00:00
科林 KELINGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
ce0b8933a7 build(ui): sync frontend assets from upstream@1ad0be61 (#45)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-20 15:04:31 +00:00
e948ab84c2 Add workflow execution history backend (#43)
* feat: add workflow execution history backend

* build: refresh bundled workflow history UI assets

* fix: simplify common workflow parameter aliases

* fix: resolve output_dir symlinks and allow workflows with no image output

---------

Co-authored-by: Kelin <kelin@KelindeMacBook-Air.local>
2026-03-20 07:16:40 +08:00
ffbdd76b52 fix: surface schema load errors and normalize update_server inputs (#41)
- registry.py: replace bare `except Exception: pass` with specific
  exception handling and a warning log, so corrupted schema.json files
  are visible instead of silently disappearing from workflow list
- services.py: apply the same input normalization in update_server as
  add_server (strip whitespace, coerce types, apply fallback defaults)
  to prevent dirty data from entering config

Co-authored-by: Kelin <kelin@KelindeMacBook-Air.local>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 14:43:00 +08:00
科林 KELINGitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
efa171cfd4 build(ui): sync frontend assets from upstream@latest (#37)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-18 01:55:44 +00:00
Kelin b6fb9274ef fix(ui): correct workflow import edge cases 2026-03-18 09:28:22 +08:00
lgldlk f2defc547b fix(ui): prefer node-specific schema aliases 2026-03-18 02:10:07 +08:00
lgldlk 14a7d643da chore(ui): refresh bundled frontend assets 2026-03-18 02:08:28 +08:00
lgldlk 6c610a0ad5 feat(ui): add bulk workflow import support 2026-03-18 02:07:38 +08:00
github-actions[bot]GitHubgithub-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
bfb620a758 build(ui): sync frontend assets from upstream@latest (#29)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-03-17 15:19:22 +08:00
a87d47cd5b build(ui): rebuild frontend — remove server URL help text (#23)
Co-authored-by: Kelin <kelin@KelindeMacBook-Air.local>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 14:36:30 +08:00
e1d9bd584d build(ui): rebuild frontend with one-click update banner feature (#22)
Include UpdateBanner, multi-stage update flow (pull → restart → reload),
and system update API integration.

Co-authored-by: Kelin <kelin@KelindeMacBook-Air.local>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 14:08:10 +08:00
KelinandClaude Sonnet 4.6 d1918bfa77 feat: git-based update detection and one-click restart
Add GitUpdateProvider to detect and apply updates without GitHub API:
- scripts/shared/updater.py: check via `git ls-remote`, update via `git pull --ff-only`, restart via os.execv
- ui/app.py: replace frontend_update with three new endpoints:
  GET /api/system/check-update, POST /api/system/update, POST /api/system/restart
- ui/app.py: add POST /api/servers/test-connection for testing server connectivity

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 13:32:31 +08:00
KelinandClaude Opus 4.6 85df948a15 fix: include version.json in repo so update check works out of the box
Users who clone the repo now have version.json in ui/static/ by default.
Without it the frontend update checker always returned no_local_version
and never detected any updates.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 11:50:02 +08:00
KelinandClaude Opus 4.6 d021177c65 fix: persist auth field and show detailed connection errors
- Fix auth field not being saved in add_server/update_server/serialize
- Add test-connection endpoint with detailed error messages
- Return specific errors: 401 Unauthorized, 403 Forbidden, timeout, etc.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 10:59:43 +08:00