- Add README.ko.md (Korean) and README.es.md (Spanish) as P2 i18n per SEO guideline
- Rename README.zh.md → README.zh-CN.md to follow BCP 47 convention
- Add ⌨️ CLI quick-nav link to top banner across all 6 READMEs
- Update cross-references in all READMEs and docs/index.md
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Remove "Why This Project" section (already covered by Overview)
- Remove "How It Works" section (already covered by Quick Start)
- Deduplicate Common Commands (keep only commands not shown in Quick Start)
- Replace duplicated Web UI launch instructions in Setup Options with a cross-reference
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add Quick Decision routes and Command Reference entries for new CLI
features (inpainting, jobs, server stats, nodes, validate) while
following the three-layer documentation strategy to keep SKILL.md
growth logarithmic.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* chore: sync latest frontend build with Japanese UI support
* chore: redesign README badges using updated colors and logos
- Apply unified Tailwind hue palette to all README badges
- Retain rounded corners style (flat)
- Sync missing Forks and Python badges into zh-TW and ja variants for consistency
- 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)
- 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)
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
- Split CHANGELOG into English (CHANGELOG.md) and Chinese (CHANGELOG.zh.md)
- Add v0.3.1 entry for ComfyUI API Key support
- Add changelog links in both README files
Co-authored-by: Kelin <kelin@KelindeMacBook-Air.local>
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>
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>
Workflows imported via UI store all parameter mappings in ui_parameters,
but only explicitly "exposed" ones go into parameters. When users pass
values (prompt, seed, width, etc.) through the agent conversation, those
values were silently ignored because they weren't in the exposed set,
causing workflows to always run with hardcoded defaults.
Now the runtime merges ui_parameters as a fallback lookup so user-supplied
values reach the correct workflow nodes without requiring manual exposure
in the UI. Explicit parameters still take precedence.
Closes community-reported issue: params passed in chat ignored by workflow.
Co-authored-by: Kelin <kelin@KelindeMacBook-Air.local>
Agents can already pass custom seed values per run, so batch/multi-seed
generation is supported natively without extra helpers.
Co-authored-by: Kelin <kelin@KelindeMacBook-Air.local>
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>
- 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>
* fix: add 30-minute timeout to job polling loop
Prevent infinite blocking when ComfyUI server hangs or a job gets stuck.
Returns a clear timeout error instead of waiting indefinitely.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix: replace fixed timeout with queue-based job liveness check
Instead of a hardcoded 30-minute timeout, poll the /queue endpoint to
determine if the job is still pending or running. Only report an error
when the job disappears from both history and queue, allowing
arbitrarily long tasks to complete naturally.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Kelin <kelin@KelindeMacBook-Air.local>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
GITHUB_TOKEN-created PRs cannot trigger CI workflows (GitHub security
restriction). Switching to MAIN_REPO_TOKEN (PAT) allows the PR to
trigger the Backend check, enabling auto-merge to work correctly.
Co-authored-by: Kelin <kelin@KelindeMacBook-Air.local>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Branch protection requires CI checks before merge, so auto-merge now
works correctly — it waits for the Backend check to pass then merges.
Co-authored-by: Kelin <kelin@KelindeMacBook-Air.local>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Auto-merge requires branch protection rules; without them PRs stall.
Since this workflow only modifies ui/static/ build artifacts, pushing
directly to main is safe and simpler.
Co-authored-by: Kelin <kelin@KelindeMacBook-Air.local>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Triggered manually via workflow_dispatch. Downloads frontend-dist.tar.gz
from the frontend repo's latest release, extracts to ui/static/, and
opens an auto-merge PR.
Co-authored-by: Kelin <kelin@KelindeMacBook-Air.local>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
* build(ui): rebuild frontend — remove server URL help text
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix(updater): use explicit branch ref to avoid tracking config issues
git pull --ff-only fails when local branch tracks a deleted remote
branch. Use git fetch origin main:main instead, which always updates
local main regardless of current branch or tracking configuration.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Kelin <kelin@KelindeMacBook-Air.local>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
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>