diff --git a/src/composables/node/useNodePricing.ts b/src/composables/node/useNodePricing.ts index 55ac93072..48529fec1 100644 --- a/src/composables/node/useNodePricing.ts +++ b/src/composables/node/useNodePricing.ts @@ -1062,7 +1062,7 @@ const apiNodeCosts: Record = ) as IComboWidget if (!modelWidget || !generateAudioWidget) { - return '$2.00-6.00/Run (varies with model & audio generation)' + return '$0.80-3.20/Run (varies with model & audio generation)' } const model = String(modelWidget.value) @@ -1070,13 +1070,13 @@ const apiNodeCosts: Record = String(generateAudioWidget.value).toLowerCase() === 'true' if (model.includes('veo-3.0-fast-generate-001')) { - return generateAudio ? '$3.20/Run' : '$2.00/Run' + return generateAudio ? '$1.20/Run' : '$0.80/Run' } else if (model.includes('veo-3.0-generate-001')) { - return generateAudio ? '$6.00/Run' : '$4.00/Run' + return generateAudio ? '$3.20/Run' : '$1.60/Run' } // Default fallback - return '$2.00-6.00/Run' + return '$0.80-3.20/Run' } }, LumaImageNode: { diff --git a/tests-ui/tests/composables/node/useNodePricing.test.ts b/tests-ui/tests/composables/node/useNodePricing.test.ts index dbd40a731..89df12a36 100644 --- a/tests-ui/tests/composables/node/useNodePricing.test.ts +++ b/tests-ui/tests/composables/node/useNodePricing.test.ts @@ -505,7 +505,7 @@ describe('useNodePricing', () => { }) describe('dynamic pricing - Veo3VideoGenerationNode', () => { - it('should return $2.00 for veo-3.0-fast-generate-001 without audio', () => { + it('should return $0.80 for veo-3.0-fast-generate-001 without audio', () => { const { getNodeDisplayPrice } = useNodePricing() const node = createMockNode('Veo3VideoGenerationNode', [ { name: 'model', value: 'veo-3.0-fast-generate-001' }, @@ -513,49 +513,49 @@ describe('useNodePricing', () => { ]) const price = getNodeDisplayPrice(node) - expect(price).toBe('$2.00/Run') + expect(price).toBe('$0.80/Run') }) - it('should return $3.20 for veo-3.0-fast-generate-001 with audio', () => { + it('should return $1.20 for veo-3.0-fast-generate-001 with audio', () => { const { getNodeDisplayPrice } = useNodePricing() const node = createMockNode('Veo3VideoGenerationNode', [ { name: 'model', value: 'veo-3.0-fast-generate-001' }, { name: 'generate_audio', value: true } ]) + const price = getNodeDisplayPrice(node) + expect(price).toBe('$1.20/Run') + }) + + it('should return $1.60 for veo-3.0-generate-001 without audio', () => { + const { getNodeDisplayPrice } = useNodePricing() + const node = createMockNode('Veo3VideoGenerationNode', [ + { name: 'model', value: 'veo-3.0-generate-001' }, + { name: 'generate_audio', value: false } + ]) + + const price = getNodeDisplayPrice(node) + expect(price).toBe('$1.60/Run') + }) + + it('should return $3.20 for veo-3.0-generate-001 with audio', () => { + const { getNodeDisplayPrice } = useNodePricing() + const node = createMockNode('Veo3VideoGenerationNode', [ + { name: 'model', value: 'veo-3.0-generate-001' }, + { name: 'generate_audio', value: true } + ]) + const price = getNodeDisplayPrice(node) expect(price).toBe('$3.20/Run') }) - it('should return $4.00 for veo-3.0-generate-001 without audio', () => { - const { getNodeDisplayPrice } = useNodePricing() - const node = createMockNode('Veo3VideoGenerationNode', [ - { name: 'model', value: 'veo-3.0-generate-001' }, - { name: 'generate_audio', value: false } - ]) - - const price = getNodeDisplayPrice(node) - expect(price).toBe('$4.00/Run') - }) - - it('should return $6.00 for veo-3.0-generate-001 with audio', () => { - const { getNodeDisplayPrice } = useNodePricing() - const node = createMockNode('Veo3VideoGenerationNode', [ - { name: 'model', value: 'veo-3.0-generate-001' }, - { name: 'generate_audio', value: true } - ]) - - const price = getNodeDisplayPrice(node) - expect(price).toBe('$6.00/Run') - }) - it('should return range when widgets are missing', () => { const { getNodeDisplayPrice } = useNodePricing() const node = createMockNode('Veo3VideoGenerationNode', []) const price = getNodeDisplayPrice(node) expect(price).toBe( - '$2.00-6.00/Run (varies with model & audio generation)' + '$0.80-3.20/Run (varies with model & audio generation)' ) }) @@ -567,7 +567,7 @@ describe('useNodePricing', () => { const price = getNodeDisplayPrice(node) expect(price).toBe( - '$2.00-6.00/Run (varies with model & audio generation)' + '$0.80-3.20/Run (varies with model & audio generation)' ) }) @@ -579,7 +579,7 @@ describe('useNodePricing', () => { const price = getNodeDisplayPrice(node) expect(price).toBe( - '$2.00-6.00/Run (varies with model & audio generation)' + '$0.80-3.20/Run (varies with model & audio generation)' ) }) })