From bc4b3d0a95dff6a1b85f10d34355c2f39e3fc4e6 Mon Sep 17 00:00:00 2001 From: Comfy Org PR Bot Date: Tue, 13 Jan 2026 14:07:00 +0900 Subject: [PATCH] [backport cloud/1.36] fix(price-badges): add missing badge for WanReferenceVideoApi node (#8001) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Backport of #7901 to `cloud/1.36` Automatically created by backport workflow. ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-8001-backport-cloud-1-36-fix-price-badges-add-missing-badge-for-WanReferenceVideoApi-node-2e76d73d3650814c9939e8f27c4e48db) by [Unito](https://www.unito.io) Co-authored-by: Alexander Piskun <13381981+bigcat88@users.noreply.github.com> --- src/composables/node/useNodePricing.ts | 30 ++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/src/composables/node/useNodePricing.ts b/src/composables/node/useNodePricing.ts index 0e4a9e442..641d38911 100644 --- a/src/composables/node/useNodePricing.ts +++ b/src/composables/node/useNodePricing.ts @@ -2132,6 +2132,35 @@ const apiNodeCosts: Record = }, LtxvApiImageToVideo: { displayPrice: ltxvPricingCalculator + }, + WanReferenceVideoApi: { + displayPrice: (node: LGraphNode): string => { + const durationWidget = node.widgets?.find( + (w) => w.name === 'duration' + ) as IComboWidget + const sizeWidget = node.widgets?.find( + (w) => w.name === 'size' + ) as IComboWidget + + if (!durationWidget || !sizeWidget) { + return formatCreditsRangeLabel(0.7, 1.5, { + note: '(varies with size & duration)' + }) + } + + const seconds = parseFloat(String(durationWidget.value)) + const sizeStr = String(sizeWidget.value).toLowerCase() + + const rate = sizeStr.includes('1080p') ? 0.15 : 0.1 + const inputMin = 2 * rate + const inputMax = 5 * rate + const outputPrice = seconds * rate + + const minTotal = inputMin + outputPrice + const maxTotal = inputMax + outputPrice + + return formatCreditsRangeLabel(minTotal, maxTotal) + } } } @@ -2285,6 +2314,7 @@ export const useNodePricing = () => { ByteDanceImageReferenceNode: ['model', 'duration', 'resolution'], WanTextToVideoApi: ['duration', 'size'], WanImageToVideoApi: ['duration', 'resolution'], + WanReferenceVideoApi: ['duration', 'size'], LtxvApiTextToVideo: ['model', 'duration', 'resolution'], LtxvApiImageToVideo: ['model', 'duration', 'resolution'] }