Commit Graph

6188 Commits

Author SHA1 Message Date
Christian Byrne
273e39bbd1 feat: improve search alg in templates (#7377)
## Summary

Improves search alg on templates, especially for some highly searchd
terms like "wan" or "3d."

<img width="3456" height="2166" alt="image"
src="https://github.com/user-attachments/assets/2138e5c4-3536-4d33-8cd3-a408aea1fcd8"
/>

<img width="3456" height="2166" alt="image"
src="https://github.com/user-attachments/assets/2c0ef2df-7a0d-465c-9063-f70d2a349400"
/>

<img width="3456" height="2166" alt="image"
src="https://github.com/user-attachments/assets/8be9f056-26af-48bd-8214-63b16be68c16"
/>


<img width="3456" height="2166" alt="image"
src="https://github.com/user-attachments/assets/9d6159ce-bbc4-4a40-9455-1972ddd6438a"
/>




[Context](https://comfy-organization.slack.com/archives/C07G75QB06Q/p1765398450984809)

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7377-feat-improve-search-alg-in-templates-2c66d73d3650812996e5c8be53873e92)
by [Unito](https://www.unito.io)
2025-12-11 11:47:04 -08:00
Alexander Brown
ca5f24fcd9 Fix: revert st function change (#7387)
Update the 'st' function to use fallback message correctly.

## Summary

Will follow-up to figure out why some custom node descriptions trigger
an issue here.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7387-Fix-revert-st-function-change-2c66d73d3650816991a3ecc2a4740716)
by [Unito](https://www.unito.io)
2025-12-11 19:32:54 +00:00
Alexander Piskun
8ba8b21fa0 increase some API nodes pricing (#7156)
## Summary

Changes for Runway, Luma and Ideogram nodes.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7156-increase-some-API-nodes-pricing-2bf6d73d3650818d96c7ce53b3d77ef1)
by [Unito](https://www.unito.io)

---------

Co-authored-by: Luke Mino-Altherr <luke@comfy.org>
Co-authored-by: Hunter <huntcsg@users.noreply.github.com>
2025-12-11 14:03:09 -05:00
Luke Mino-Altherr
1522622427 fix: remove incorrect tooltip on remaining credit balance (#7383)
## Summary
Removed incorrect tooltip displayed on the remaining credit balance in
the subscription panel.

## Changes
- **What**: Removed unused `refreshTooltip` destructure and i18n
translation key
- **Breaking**: None

Fixes #6694

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7383-fix-remove-incorrect-tooltip-on-remaining-credit-balance-2c66d73d3650814eaee0f3c9006b7bd6)
by [Unito](https://www.unito.io)

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-11 10:52:10 -08:00
Christian Byrne
d83c3122ab fix: consistent subscription dialog width (#7378)
## Summary
- Remove conditional width logic that caused race condition when feature
flags loaded after dialog shown
- Dialog now always uses wide variant (`min(1200px, 95vw)`) with rounded
corners styling

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7378-fix-consistent-subscription-dialog-width-2c66d73d36508165b3def17fcf2c97f0)
by [Unito](https://www.unito.io)

---------

Co-authored-by: GitHub Action <action@github.com>
2025-12-11 07:58:14 -07:00
Yourz
c99865ce7f fix: disable the sign up and sign in button when form is invalid (#7376)
## Summary

<!-- One sentence describing what changed and why. -->

Add a disabled state to the sign-up button in the cloud onboarding
views. The button should be disabled when the form is invalid to prevent
users from submitting incomplete or incorrectly formatted information.

## Changes

- **What**: <!-- Core functionality added/modified -->
- Add disabled state to SignUp button and SignIn button when SignUp or
SignIn form is invalid.
- **Breaking**: <!-- Any breaking changes (if none, remove this line)
-->
- **Dependencies**: <!-- New dependencies (if none, remove this line)
-->

## Review Focus

<!-- Critical design decisions or edge cases that need attention -->

Changes for this notion:
https://www.notion.so/comfy-org/Implement-Disable-sign-up-button-when-form-is-invalid-in-cloud-onboarding-2c56d73d365081edbf8bf06b1f5e52e5

<!-- If this PR fixes an issue, uncomment and update the line below -->
<!-- Fixes #ISSUE_NUMBER -->

## Screenshots (if applicable)
Sign In button

Before(button not disabled when email is invalid)
![Kapture 2025-12-11 at 22 30
59](https://github.com/user-attachments/assets/4278473b-350e-4fea-a299-199697c354b7)

After
![Kapture 2025-12-11 at 22 28
45](https://github.com/user-attachments/assets/b677a444-39ce-487c-a2ad-31369585e333)

<!-- Add screenshots or video recording to help explain your changes -->

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7376-fix-disable-the-sign-up-and-sign-in-button-when-form-is-invalid-2c66d73d36508139af44cd7cb1e1aeb9)
by [Unito](https://www.unito.io)

---------

Co-authored-by: GitHub Action <action@github.com>
2025-12-11 07:47:41 -07:00
Christian Byrne
29af56c154 fix: remove useless/misleading toast in topup dialog (#7375)
## Summary

Removes a toast that says "Purchase successful" when clicking the "Add
credits" button -- that button just opens Stripe checkout in another
tab, so the toast is misleading and could be wrong.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7375-fix-remove-useless-misleading-toast-in-topup-dialog-2c66d73d36508124bb65feaf7cf26712)
by [Unito](https://www.unito.io)

---------

Co-authored-by: GitHub Action <action@github.com>
2025-12-11 07:34:58 -07:00
Yourz
a65e63a322 fix: throttle sign-up and sign-in button (#7358)
## Summary

<!-- One sentence describing what changed and why. -->
Throttle signup button to prevent duplicate Firebase accounts

## Changes

- **What**: <!-- Core functionality added/modified -->
  - Add throttle to SignUp Button in SignUpForm component
  - Add throttle to SignIn Button in SignInForm component
  - Add loading state to SignUp Button in SignUpForm component

## Review Focus
related to this Notion page:
https://www.notion.so/comfy-org/Implement-Throttle-signup-button-to-prevent-duplicate-Firebase-accounts-2c46d73d36508193a8d1fb5146674956

<!-- Critical design decisions or edge cases that need attention -->

<!-- If this PR fixes an issue, uncomment and update the line below -->
<!-- Fixes #ISSUE_NUMBER -->

## Screenshots (if applicable)

<!-- Add screenshots or video recording to help explain your changes -->

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7358-fix-throttle-sign-up-and-sign-in-button-2c66d73d365081278f4dde0f34d60153)
by [Unito](https://www.unito.io)
2025-12-11 05:48:22 -07:00
Taehoon Kim
8e28dda85c fix: unpacking a missing node causes it to disappear (#7341)
## Summary

Fixes the issue where unpacking a subgraph containing missing nodes
causes those nodes to disappear. Missing nodes are now automatically
restored as placeholder nodes that preserve their original data,
allowing them to be recovered when the node types are installed later.

## Changes

- **What**: 
- Modified `multiClone()` to preserve missing nodes as serialized data
when creating subgraphs
- Added `skipMissingNodes` option to `unpackSubgraph()` method to
restore missing nodes as placeholder nodes instead of throwing errors
- Updated `useSubgraphOperations.unpackSubgraph()` to automatically
restore missing nodes as placeholders (removed confirmation dialog)
- Replaced deprecated `LiteGraph.cloneObject()` with `structuredClone()`
  - Removed unused i18n keys and debugging logs

## Review Focus

- **Placeholder node restoration**: Missing nodes are restored using the
same mechanism as `LGraph.configure()` (creating `LGraphNode` with
`last_serialization` and `has_errors` flags). This ensures compatibility
with the existing missing node manager.
- **Performance**: Optimized `getMissingNodeTypes()` to check
`registered_node_types` first before attempting node creation, and uses
Set for O(1) duplicate checking.
- **Data preservation**: Missing nodes preserve their original type,
title, and serialized data in `last_serialization`, allowing automatic
recovery when node types are installed.
- **Backward compatibility**: The `skipMissingNodes` option defaults to
`false`, maintaining original behavior for other code paths. Only the
UI-level `unpackSubgraph()` always uses `skipMissingNodes: true`.

<!-- If this PR fixes an issue, uncomment and update the line below -->
<!-- Fixes #7279 -->

## Demo

Before:


https://github.com/user-attachments/assets/e0327d05-802d-4a64-a9db-4d174e185d82

After:


https://github.com/user-attachments/assets/37ab3140-0ada-480e-b9d5-fef8856f8b27

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7341-fix-unpacking-a-missing-node-causes-it-to-disappear-2c66d73d36508151ac6be70a7b2bc56d)
by [Unito](https://www.unito.io)
2025-12-11 04:29:28 -07:00
Comfy Org PR Bot
a7de97470b 1.35.2 (#7365)
Patch version increment to 1.35.2

**Base branch:** `main`

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7365-1-35-2-2c66d73d365081198874ca2695162232)
by [Unito](https://www.unito.io)

---------

Co-authored-by: christian-byrne <72887196+christian-byrne@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
v1.35.2
2025-12-11 04:13:27 -07:00
Luke Mino-Altherr
5fad29ed37 [docs] Improve import model copy and examples (#7339)
## Summary
Updates user-facing copy in the import model feature for clarity and
better examples.

## Changes
- **Example Link**: Changed from direct download URL to model page URL
(easier to find and copy)
- **Success Message**: Removed emoji for more professional tone
- **Support Documentation**: Updated Civitai link to include `/models`
path

🤖 Generated with [Claude Code](https://claude.com/claude-code)

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7339-docs-Improve-import-model-copy-and-examples-2c66d73d365081268cbfcae2910f3d7c)
by [Unito](https://www.unito.io)

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-11 04:07:01 -07:00
Christian Byrne
ea59fb5fc3 fix: hardcoded color tokens (not theme-aware) (#7366)
## Summary

Fixes instances of hardcoded color tokens (not semantic) which are not
theme-aware and therefore are incorrect on e.g. light mode.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7366-fix-hardcoded-color-tokens-not-theme-aware-2c66d73d365081e294aaff366fc78a8f)
by [Unito](https://www.unito.io)
2025-12-11 04:05:42 -07:00
Christian Byrne
5cba1e3f88 fix: prevent duplicate backport workflow runs for same PR (#7335)
## Summary

When multiple labels are added to a PR in quick succession (e.g.,
`needs-backport` and `core/1.33`), each label triggers a separate
workflow run. Both runs would proceed independently, causing duplicate
failure comments or redundant work. This adds a concurrency group keyed
by PR number with `cancel-in-progress: false`, ensuring runs for the
same PR are serialized rather than racing.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7335-fix-prevent-duplicate-backport-workflow-runs-for-same-PR-2c66d73d36508140a603cd7110c42442)
by [Unito](https://www.unito.io)
2025-12-11 03:01:54 -07:00
Christian Byrne
c8f88d5ba7 feat: add popover with link to Wan Fun Control template on pricing table (#7363)
## Summary
- Add clickable popover to the "What is this?" help text in video
estimates
- Explains that estimates are based on the Wan Fun Control template for
5-second videos
- Includes direct link to try the template:
`cloud.comfy.org/?template=video_wan2_2_14B_fun_camera`

This improves user understanding of how video estimates are calculated
and provides easy access to try the template that the estimates are
based on.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7363-feat-add-popover-with-link-to-Wan-Fun-Control-template-on-pricing-table-2c66d73d36508109b7a6ef80f978448e)
by [Unito](https://www.unito.io)

---------

Co-authored-by: GitHub Action <action@github.com>
2025-12-11 02:38:47 -07:00
Christian Byrne
f5f0e20332 feat: replace Stripe pricing table with custom implementation (#7359)
## Summary
- Replace StripePricingTable with CustomPricingTable component
- Add intelligent subscription tier detection and button logic
- Remove Stripe dependencies and feature flags
- Clean up unused Stripe-related files and configurations

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7359-feat-replace-Stripe-pricing-table-with-custom-implementation-2c66d73d365081f684d4ec81c7cc6790)
by [Unito](https://www.unito.io)

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-11 02:12:17 -07:00
Christian Byrne
b6efc52bf8 feat: show subscription tier below name on cloud (#7356)
## Summary

<img width="427" height="557" alt="image"
src="https://github.com/user-attachments/assets/1183e741-762d-4e52-b24a-77c976e5ad5f"
/>

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7356-feat-show-subscription-tier-below-name-on-cloud-2c66d73d365081829576c276bb5762ac)
by [Unito](https://www.unito.io)
2025-12-11 01:40:24 -07:00
Christian Byrne
1b2df19f1b fix: make subscription panel reactive to actual tier (#7354)
## Summary

Was previously hard-coded, now is actually reactive to value returned
from server

## Details 

- Update CloudSubscriptionStatusResponse to use generated types from
comfyRegistryTypes which includes subscription_tier
- Add subscriptionTier computed to useSubscription composable
- Make SubscriptionPanel tierName, tierPrice, and tierBenefits reactive
to actual subscription tier from API
- Normalize i18n tier structure with consistent value/label format
- Add FOUNDERS_EDITION tier support

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7354-fix-make-subscription-panel-reactive-to-actual-tier-2c66d73d365081059a7be875c13fdd0c)
by [Unito](https://www.unito.io)

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-12-11 00:46:58 -07:00
Christian Byrne
0eba638a0f cleanup: remove unused queue setting (#7353)
## Summary

Removes setting which no longer has any effect due to the Queue panel
being removed.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7353-cleanup-remove-unused-queue-setting-2c66d73d36508100b514f07e16d5b0f6)
by [Unito](https://www.unito.io)
2025-12-11 00:03:15 -07:00
Alexander Piskun
d60ecbb3c3 feat(api-nodes): add pricing badge for Kling O1 Image (#7315)
## Summary

Constant price was taken from here:
https://docs.qingque.cn/d/home/eZQD5BNdCmt-tey_FeJgDFhkW?identityId=2KgtueybT0e#section=h.mdw6dhbeg7pz
2025-12-11 08:59:22 +02:00
Christian Byrne
969466c0a0 add warning when using legacy mask editor (indicating it will be removed in next version) (#7332)
## Summary

Telemetry data shows zero users using the legacy mask editor. It has
been considerable time since we switched to the new one, and there
really is no reason to use the legacy version given how lacking it is.

Will add this warning for 1 minor version just for maximum safety then
remove all legacy mask editor code.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7332-add-warning-when-using-legacy-mask-editor-indicating-it-will-be-removed-in-next-version-2c66d73d365081a0bad7d63ba4d414af)
by [Unito](https://www.unito.io)
2025-12-10 23:09:37 -07:00
Christian Byrne
87244a6954 fix: credits loading skeleton in user popover (#7347)
Show skeleton loader while credits are being fetched instead of briefly
displaying '0 credits'.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7347-Fix-credits-loading-skeleton-in-user-popover-2c66d73d36508103ae65d82e9bceb97d)
by [Unito](https://www.unito.io)
2025-12-10 23:04:01 -07:00
Christian Byrne
0eb2b9171a remove fraction digits on topup credit number (#7345)
## Summary

Don't show fraction digits on credits in the topup dialog.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7345-remove-fraction-digits-on-topup-credit-number-2c66d73d365081028ef8cf73113dd20c)
by [Unito](https://www.unito.io)
2025-12-10 22:51:24 -07:00
Comfy Org PR Bot
24ee353465 [chore] Update Comfy Registry API types from comfy-api@e1e32b5 (#7344)
## Automated API Type Update

This PR updates the Comfy Registry API types from the latest comfy-api
OpenAPI specification.

- API commit: e1e32b5
- Generated on: 2025-12-11T02:37:03Z

These types are automatically generated using openapi-typescript.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7344-chore-Update-Comfy-Registry-API-types-from-comfy-api-e1e32b5-2c66d73d36508100be3afbc49b345404)
by [Unito](https://www.unito.io)

Co-authored-by: christian-byrne <72887196+christian-byrne@users.noreply.github.com>
2025-12-10 22:46:52 -07:00
Christian Byrne
73e09a7fff fix: subscribe button overflow on cloud (#7343)
## Summary


| Before | After |
|
---------------------------------------------------------------------------------------------------------------------------------------------
|
---------------------------------------------------------------------------------------------------------------------------------------------
|
| <img width="958" height="724" alt="image"
src="https://github.com/user-attachments/assets/4c19c94e-646d-4247-8824-471e5a161930"
/> | <img width="493" height="559" alt="Screenshot from 2025-12-10
21-13-36"
src="https://github.com/user-attachments/assets/6e915a50-e44c-4d07-a850-27ad36aed546"
/>

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7343-fix-subscribe-button-overflow-on-cloud-2c66d73d36508101be6bca61a9172c94)
by [Unito](https://www.unito.io)
2025-12-10 22:44:05 -07:00
Alexander Brown
987dcb189d Lint: Start cleanup of the i18n imports (#7327)
## Summary

Avoid direct access of i18n instance to favor useI18n

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7327-Lint-Start-cleanup-of-the-i18n-imports-2c56d73d3650811d9214c9a02863a5a3)
by [Unito](https://www.unito.io)

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2025-12-10 19:36:58 -07:00
Christian Byrne
fceb0017ce refactor: update outdated tooltip on menu setting (#7330)
Followup from https://github.com/Comfy-Org/ComfyUI_frontend/pull/4312:
remove tooltip with outdated info discussing the bottom menu. The bottom
menu setting is removed and even if it was not removed, the logic that
forced the menu to the top on mobile was removed, so this tooltip is
outdated and gives wrong info.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7330-refactor-update-outdated-tooltip-on-menu-setting-2c66d73d36508128b356c6f985d5b12b)
by [Unito](https://www.unito.io)
2025-12-10 19:35:30 -07:00
AustinMroz
6156e22bac Implement widget borders in vue (#7322)
Adds support for displaying the "promoted" and "advanced" border
indicators when in vue mode.

Requires some (hopefully minor and generally beneficial) styling changes
to make sure that the widgets are contained within their border.

Note that the 'advanced' functionality sees minimal use and is likely to
be revamped in the future.

<img width="372" height="417" alt="image"
src="https://github.com/user-attachments/assets/8ea1e66b-2a4e-4a16-996f-289a26e39708"
/>

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7322-Implement-widget-borders-in-vue-2c56d73d36508187b881f97e373d433b)
by [Unito](https://www.unito.io)

---------

Co-authored-by: github-actions <github-actions@github.com>
2025-12-10 17:23:59 -08:00
Christian Byrne
62f9e91724 Improve subscription dialog width for laptop screens (#7324)
## Summary
- Increase Stripe subscription dialog width for better experience on
laptop screens

When too narrow, it forces pricing options grid to go into single column
layout which looks bad and should only happen when absolutely necessary
(e.g,. mobile viewport).

---------

Co-authored-by: GitHub Action <action@github.com>
2025-12-10 17:16:46 -07:00
Johnpaul Chiwetelu
e83cf0f5f6 fix: allow dots in template URL parameter for version numbers (#7325)
## Summary
- Template names with dots (e.g.,
`templates-1_click_multiple_scene_angles-v1.0`) were being rejected by
the URL parameter validation
- Updated validation regex from `^[a-zA-Z0-9_-]+$` to
`^[a-zA-Z0-9_.-]+$` to allow dots for version numbers

## Test plan
- [x] Unit tests updated and passing
- [ ] Verify `?template=templates-1_click_multiple_scene_angles-v1.0`
loads correctly

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7325-fix-allow-dots-in-template-URL-parameter-for-version-numbers-2c56d73d365081d48c28f20d979846d7)
by [Unito](https://www.unito.io)
2025-12-10 16:50:35 -07:00
AustinMroz
c24e2ab5ba Fix loading of subgraph blueprints on cloud (#7326)
Cloud doesn't like the trailing slash when querying  directories.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7326-Fix-loading-of-subgraph-blueprints-on-cloud-2c56d73d36508136a6eae50668b15742)
by [Unito](https://www.unito.io)
2025-12-10 15:36:16 -08:00
Alexander Brown
72b5444d5a Devex: Linter updates (#7309)
## Summary

Updates for the linter/formatter deps, turning on some more rules.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7309-WIP-Linter-updates-2c56d73d36508101b3ece6bcaf7e5212)
by [Unito](https://www.unito.io)

---------

Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Christian Byrne <cbyrne@comfy.org>
2025-12-10 11:08:47 -08:00
Comfy Org PR Bot
b52b2bbc30 1.35.1 (#7318)
Patch version increment to 1.35.1

**Base branch:** `main`

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7318-1-35-1-2c56d73d3650810ea05bf2c5734130a3)
by [Unito](https://www.unito.io)

---------

Co-authored-by: christian-byrne <72887196+christian-byrne@users.noreply.github.com>
Co-authored-by: github-actions <github-actions@github.com>
v1.35.1
2025-12-10 02:42:23 -08:00
Terry Jia
424bd21559 fix: move selected groups when dragging nodes in vueNodes mode (#7306)
## Summary
Captures selected groups at drag start and moves them using frame delta
to match LiteGraph's behavior.

Litegraph doesn't have this issue.

## Screenshots (if applicable)
### Before


https://github.com/user-attachments/assets/0e4ff907-376e-438b-aa89-106c146a8ac1


### After


https://github.com/user-attachments/assets/d954da99-3468-4bd8-9e1a-835e1a90a3bd

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7306-fix-move-selected-groups-when-dragging-nodes-in-vueNodes-mode-2c56d73d3650816a83efd11bbc36262e)
by [Unito](https://www.unito.io)
2025-12-09 23:32:47 -07:00
Johnpaul Chiwetelu
04286c033a hotfix: stabilize flaky workflow sidebar browser tests (#7280)
## Summary
- Fix flaky workflow sidebar browser tests that were failing in headless
mode
- Add retry logic for menu hover operations in Topbar
- Add proper timing/wait helpers for dialog masks and workflow service
completion
- Fix test isolation issues in setupWorkflowsDirectory and drop workflow
test

## Test plan
- [x] Run `pnpm test:browser --
browser_tests/tests/sidebar/workflows.spec.ts` multiple times
- [x] Verify the 3 previously failing tests now pass consistently:
  - "Can overwrite other workflows with save as"
  - "Can rename nested workflow from opened workflow item"  
  - "Can drop workflow from workflows sidebar"

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7280-hotfix-stabilize-flaky-workflow-sidebar-browser-tests-2c46d73d365081c5b3badfafe35a63dc)
by [Unito](https://www.unito.io)

---------

Co-authored-by: Terry Jia <terryjia88@gmail.com>
Co-authored-by: Alexander Brown <drjkl@comfy.org>
Co-authored-by: Luke Mino-Altherr <luke@comfy.org>
Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: GitHub Action <action@github.com>
Co-authored-by: Benjamin Lu <benjaminlu1107@gmail.com>
2025-12-09 23:30:40 -07:00
Benjamin Lu
59429cbe56 fix(desktop-ui): resolve linting and typecheck errors (#7271)
Fixes linting configuration and type errors in apps/desktop-ui.

## Changes
- Updated `eslint.config.ts` to use absolute path for `.oxlintrc.json`
resolution.
- Fixed `import-x` errors in `InstallFooter.vue`, `refUtil.ts`, and
`DesktopDialogView.vue`.
- Fixed i18n raw text error in `NotSupportedView.vue` via
eslint-disable.
- Fixed type inference issue in `i18n.ts` allowing dynamic locale
switching.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7271-fix-desktop-ui-resolve-linting-and-typecheck-errors-2c46d73d3650817cbb66cc7b1dc670a8)
by [Unito](https://www.unito.io)
2025-12-09 23:27:11 -07:00
AustinMroz
eb04178e33 Fix compatibility with older browsers (#7205)
Resolves #7174

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7205-Fix-compatibility-with-older-browsers-2c16d73d365081fcaa3ce2693107791a)
by [Unito](https://www.unito.io)
2025-12-09 23:19:53 -07:00
Terry Jia
b88d96d6cc fix: node shape not reactive in vueNodes mode (#7302)
## Summary

add node shape support in vueNodes

fix https://github.com/Comfy-Org/ComfyUI_frontend/issues/7144

## Screenshots (if applicable)


https://github.com/user-attachments/assets/df8a4fa6-5686-435d-a814-4fe3990f7e69

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7302-fix-node-shape-not-reactive-in-vueNodes-mode-2c56d73d3650811c9ef5e4fe49c94f55)
by [Unito](https://www.unito.io)

---------

Co-authored-by: github-actions <github-actions@github.com>
2025-12-09 23:19:03 -07:00
Simula_r
dedc77786f fix: loading state to show loader only if it takes more than 250ms (#7268)
## Summary

To prevent the flash of "loading..." and "calculating dimensions" when
loading cached images only set loading set if longer than 250ms

## Changes

- **What**: ImagePreview.vue
- **Breaking**: <!-- Any breaking changes (if none, remove this line)
-->
- **Dependencies**: <!-- New dependencies (if none, remove this line)
-->

## Review Focus

<!-- Critical design decisions or edge cases that need attention -->

<!-- If this PR fixes an issue, uncomment and update the line below -->
<!-- Fixes #ISSUE_NUMBER -->

## Screenshots (if applicable)

The retrigger loading is because i have throttled 4g slow in the demo.
So cache takes time. Normally this doesn't happen.


https://github.com/user-attachments/assets/335ca7e4-4ce1-43dd-b7d0-9ee88e187069

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7268-fix-loading-state-to-show-loader-only-if-it-takes-more-than-150ms-2c46d73d365081a6b311f78ba3e1cffd)
by [Unito](https://www.unito.io)
2025-12-09 23:17:43 -07:00
Christian Byrne
356ebe538f style: redesign TopUpCredits dialog (#7305)
Redesigned the TopUpCredits dialog to match Figma design specifications
with proper layout, typography, colors and selection states. Updated
dialog to use workflow-aware messaging, removed header, applied design
system tokens, and integrated subscription renewal dates. Modified
credit packages to use clean USD amounts with realistic video estimates
and fixed button disabled states to show blue with 30% opacity per Figma
design.

| Before | After |
|
---------------------------------------------------------------------------------------------------------------------------------------------
|
---------------------------------------------------------------------------------------------------------------------------------------------
|
| <img width="675" height="863" alt="Screenshot from 2025-12-09
18-08-21"
src="https://github.com/user-attachments/assets/331c7a48-74ae-4a58-b70f-aa476c3fc87c"
/> | <img width="675" height="863" alt="Screenshot from 2025-12-09
18-06-23"
src="https://github.com/user-attachments/assets/dcb7b358-6045-4c89-82ed-3283a20eea89"
/>
 |
2025-12-09 21:30:56 -07:00
Christian Byrne
2c06c58621 feat: update subscription panel with tier-based design and improved UX (#7307)
Transforms the subscription credits panel from legacy design to
tier-based layout with Creator tier details, updated typography using
design system tokens, improved responsive credit breakdown layout, and
better subscription management flow. Updates credit formatting to remove
unnecessary decimals and Credits suffix, replaces external Stripe
billing portal with inline dialog, and reorganizes plan benefits section
with proper v-for structure matching Figma specifications.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7307-feat-update-subscription-panel-with-tier-based-design-and-improved-UX-2c56d73d365081ef8b63e262a6822c72)
by [Unito](https://www.unito.io)

---------

Co-authored-by: Alexander Brown <drjkl@comfy.org>
2025-12-09 21:30:06 -07:00
Christian Byrne
c13343b8fb style: redesign user popover with improved layout and integration with design system (#7303)
Implements new Figma design for the user popover with cleaner row-based
layout, proper design system tokens, and improved spacing. Replaces
PrimeVue icons with Lucide icons, fixes credits display to show whole
numbers without unnecessary decimals, updates menu item order to match
design specifications, and ensures consistent hover states and
typography throughout. All styling now uses Tailwind classes with proper
semantic design tokens instead of inline styles.

| Before | After |
|
---------------------------------------------------------------------------------------------------------------------------------------------
|
---------------------------------------------------------------------------------------------------------------------------------------------
|
| <img width="815" height="973" alt="image"
src="https://github.com/user-attachments/assets/b2c15fa0-f545-4dcf-b224-cee846885337"
/> | <img width="815" height="973" alt="image"
src="https://github.com/user-attachments/assets/1f0bf488-5e15-4bb9-84b7-019cdd5105ae"
/> |

---------

Co-authored-by: Alexander Brown <drjkl@comfy.org>
2025-12-09 20:47:57 -07:00
Luke Mino-Altherr
ce4837a57c feat: display and upload Civitai preview images in model upload flow (#7274)
## Summary
Stores and displays base64-encoded preview images from Civitai during
the model upload flow, uploading the preview as a separate asset linked
to the model.

## Changes
- **Schema**: Added `preview_image` field to `AssetMetadata` schema
- **Service**: Added `uploadAssetFromBase64` method to convert base64
data to blob and upload via FormData
- **Upload Flow**: Modified wizard to first upload preview image as
asset, then link it to model via `preview_id`
- **UI**: Display 56x56px preview thumbnail alongside model filename in
confirmation and success steps

## Review Focus
- Base64 to blob conversion and FormData upload implementation
- Sequential upload flow (preview first, then model with preview_id
reference)

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7274-feat-display-and-upload-Civitai-preview-images-in-model-upload-flow-2c46d73d365081ff9b74c1791d23f6dd)
by [Unito](https://www.unito.io)

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-09 16:32:55 -08:00
Benjamin Lu
2903560416 Move cancel button into actionbar (#7297)
## Summary
Move the interrupt control into the actionbar so cancellation sits with
the run controls.

## Changes
- add a cancel button to the actionbar with the existing interrupt
tooltip and disabled state
- remove the cancel button and related execution wiring from the top
menu section to avoid duplication

## Review Focus
- spacing/hover states of the new cancel control in both docked and
floating modes

## Screenshots (if applicable)
- n/a

Tests: pnpm typecheck; pnpm lint:fix

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7297-Move-cancel-button-into-actionbar-2c46d73d36508198b00cf011390289f6)
by [Unito](https://www.unito.io)
2025-12-09 14:32:03 -08:00
Luke Mino-Altherr
6850c45d63 [feat] Add ownership filter to model browser (#7201)
## Summary
Adds a dropdown filter to the model browser that allows users to filter
assets by ownership (All, My models, Public models), based on the
`is_immutable` property.

## Changes
- **Filter UI**: Added ownership dropdown in
[AssetFilterBar.vue](src/platform/assets/components/AssetFilterBar.vue#L30-L38)
that only appears when user has uploaded models
- **Filter Logic**: Implemented `filterByOwnership` function in
[useAssetBrowser.ts](src/platform/assets/composables/useAssetBrowser.ts#L38-L45)
to filter by `is_immutable` property
- **i18n**: Added translation strings for ownership filter options
- **Tests**: Added comprehensive tests for ownership filtering in both
composable and component test files

## Review Focus
- The ownership filter visibility logic correctly checks for mutable
assets (`!is_immutable`)
- Default filter value is 'all' to show all models initially
- Filter integrates cleanly with existing file format and base model
filters

🤖 Generated with [Claude Code](https://claude.com/claude-code)

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7201-feat-Add-ownership-filter-to-model-browser-2c16d73d365081f280f6d1e42e5400af)
by [Unito](https://www.unito.io)

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: GitHub Action <action@github.com>
2025-12-09 13:52:33 -08:00
Alexander Brown
2b9f7ecedf 🤖 Testing section update (#7295)
## Summary

Standing on the shoulders of giants.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7295-Testing-section-update-2c46d73d3650818f935bcb2ac65d9830)
by [Unito](https://www.unito.io)
2025-12-09 13:21:21 -07:00
Terry Jia
73b08acfe0 fix: Note/MarkdownNote node color change not reactive in vueNodes mode (#7294)
## Summary

Move color/bgcolor initialization from class field overrides to
constructor to preserve LGraphNodeProperties getter/setter
instrumentation.

Class field overrides were replacing the reactive property descriptors
set by the parent constructor, preventing change events from firing.

issue found while tesing in
https://github.com/Comfy-Org/ComfyUI_frontend/issues/3449

## Screenshots
Before


https://github.com/user-attachments/assets/04499a3a-15c2-44fd-9819-6dd5f6849f20


After


https://github.com/user-attachments/assets/ba93278b-9761-4d45-abb3-2a57ff95a900

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7294-fix-Note-MarkdownNote-node-color-change-not-reactive-in-vueNodes-mode-2c46d73d3650818f8ee6f6f0c0e61d39)
by [Unito](https://www.unito.io)
2025-12-09 09:17:07 -08:00
Christian Byrne
c524ce3a2f make jojodecayz and bigcat88 owners of partner node pricing (#7284)
## Summary

Allows partner node team to quickly approve/merge each other's PRs.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7284-make-jojodecayz-and-bigcat88-owners-of-partner-node-pricing-2c46d73d365081b08295d3204f8ca13c)
by [Unito](https://www.unito.io)
2025-12-09 07:55:57 -05:00
Christian Byrne
aef40834f3 add shared comfy credit conversion helpers (#7061)
Introduces cents<->usd<->credit converters plus basic formatters and
adds test. Lays groundwork to start converting UI components into
displaying comfy credits.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7061-add-shared-comfy-credit-conversion-helpers-2bb6d73d3650810bb34fdf9bb3fc115b)
by [Unito](https://www.unito.io)

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-09 05:11:27 -07:00
Christian Byrne
8209f5a108 feat: add Stripe pricing table integration for subscription dialog (conditional on feature flag) (#7288)
Integrates Stripe's pricing table web component into the subscription
dialog when the subscription_tiers_enabled feature flag is active. The
implementation includes a new StripePricingTable component that loads
Stripe's pricing table script and renders the table with proper error
handling and loading states. The subscription dialog now displays the
Stripe pricing table with contact us and enterprise links, using a
1100px width that balances multi-column layout with visual design.
Configuration supports environment variables, remote config, and window
config for the Stripe publishable key and pricing table ID.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7288-feat-add-Stripe-pricing-table-integration-for-subscription-dialog-conditional-on-featur-2c46d73d365081fa9d93c213df118996)
by [Unito](https://www.unito.io)
2025-12-09 04:45:45 -07:00
Christian Byrne
77e453db36 [fix] Fall back to current minor when next minor branch doesn't exist (#7286)
## Summary
- When the next minor branch (e.g., `core/1.35`) doesn't exist yet, fall
back to current minor (`core/1.34`) for patch releases instead of
failing
- Fixes the weekly release workflow failure when ComfyUI is on version
1.33.x and `core/1.34` doesn't exist yet

## Test plan
- [x] Tested locally with version where next minor exists (1.33.5 →
finds core/1.34)
- [x] Tested fallback when next minor doesn't exist (1.34.7 → falls back
to core/1.34)
- [x] Tested error case when neither branch exists

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7286-fix-Fall-back-to-current-minor-when-next-minor-branch-doesn-t-exist-2c46d73d365081009762c732954e148d)
by [Unito](https://www.unito.io)
2025-12-09 02:45:56 -07:00