@@ -40,12 +40,12 @@ const calculateRunwayDurationPrice = (node: LGraphNode): string => {
4040 ( w ) => w . name === 'duration'
4141 ) as IComboWidget
4242
43- if ( ! durationWidget ) return '$0.05 /second'
43+ if ( ! durationWidget ) return '$0.0715 /second'
4444
4545 const duration = Number ( durationWidget . value )
4646 // If duration is 0 or NaN, don't fall back to 5 seconds - just use 0
4747 const validDuration = isNaN ( duration ) ? 5 : duration
48- const cost = ( 0.05 * validDuration ) . toFixed ( 2 )
48+ const cost = ( 0.0715 * validDuration ) . toFixed ( 2 )
4949 return `$${ cost } /Run`
5050}
5151
@@ -377,11 +377,11 @@ const apiNodeCosts: Record<string, { displayPrice: string | PricingFunction }> =
377377 ( w ) => w . name === 'turbo'
378378 ) as IComboWidget
379379
380- if ( ! numImagesWidget ) return '$0.02 -0.06 x num_images/Run'
380+ if ( ! numImagesWidget ) return '$0.03 -0.09 x num_images/Run'
381381
382382 const numImages = Number ( numImagesWidget . value ) || 1
383383 const turbo = String ( turboWidget ?. value ) . toLowerCase ( ) === 'true'
384- const basePrice = turbo ? 0.02 : 0.06
384+ const basePrice = turbo ? 0.0286 : 0.0858
385385 const cost = ( basePrice * numImages ) . toFixed ( 2 )
386386 return `$${ cost } /Run`
387387 }
@@ -395,11 +395,11 @@ const apiNodeCosts: Record<string, { displayPrice: string | PricingFunction }> =
395395 ( w ) => w . name === 'turbo'
396396 ) as IComboWidget
397397
398- if ( ! numImagesWidget ) return '$0.05 -0.08 x num_images/Run'
398+ if ( ! numImagesWidget ) return '$0.07 -0.11 x num_images/Run'
399399
400400 const numImages = Number ( numImagesWidget . value ) || 1
401401 const turbo = String ( turboWidget ?. value ) . toLowerCase ( ) === 'true'
402- const basePrice = turbo ? 0.05 : 0.08
402+ const basePrice = turbo ? 0.0715 : 0.1144
403403 const cost = ( basePrice * numImages ) . toFixed ( 2 )
404404 return `$${ cost } /Run`
405405 }
@@ -420,29 +420,29 @@ const apiNodeCosts: Record<string, { displayPrice: string | PricingFunction }> =
420420 characterInput . link != null
421421
422422 if ( ! renderingSpeedWidget )
423- return '$0.03 -0.08 x num_images/Run (varies with rendering speed & num_images)'
423+ return '$0.04 -0.11 x num_images/Run (varies with rendering speed & num_images)'
424424
425425 const numImages = Number ( numImagesWidget ?. value ) || 1
426- let basePrice = 0.06 // default balanced price
426+ let basePrice = 0.0858 // default balanced price
427427
428428 const renderingSpeed = String ( renderingSpeedWidget . value )
429429 if ( renderingSpeed . toLowerCase ( ) . includes ( 'quality' ) ) {
430430 if ( hasCharacter ) {
431- basePrice = 0.2
431+ basePrice = 0.286
432432 } else {
433- basePrice = 0.09
433+ basePrice = 0.1287
434434 }
435435 } else if ( renderingSpeed . toLowerCase ( ) . includes ( 'default' ) ) {
436436 if ( hasCharacter ) {
437- basePrice = 0.15
437+ basePrice = 0.2145
438438 } else {
439- basePrice = 0.06
439+ basePrice = 0.0858
440440 }
441441 } else if ( renderingSpeed . toLowerCase ( ) . includes ( 'turbo' ) ) {
442442 if ( hasCharacter ) {
443- basePrice = 0.1
443+ basePrice = 0.143
444444 } else {
445- basePrice = 0.03
445+ basePrice = 0.0429
446446 }
447447 }
448448
@@ -758,7 +758,7 @@ const apiNodeCosts: Record<string, { displayPrice: string | PricingFunction }> =
758758 ) as IComboWidget
759759
760760 if ( ! modelWidget || ! resolutionWidget || ! durationWidget ) {
761- return '$0.14-11.47 /Run (varies with model, resolution & duration)'
761+ return '$0.20-16.40 /Run (varies with model, resolution & duration)'
762762 }
763763
764764 const model = String ( modelWidget . value )
@@ -767,33 +767,33 @@ const apiNodeCosts: Record<string, { displayPrice: string | PricingFunction }> =
767767
768768 if ( model . includes ( 'ray-flash-2' ) ) {
769769 if ( duration . includes ( '5s' ) ) {
770- if ( resolution . includes ( '4k' ) ) return '$2.19 /Run'
771- if ( resolution . includes ( '1080p' ) ) return '$0.55 /Run'
772- if ( resolution . includes ( '720p' ) ) return '$0.24 /Run'
773- if ( resolution . includes ( '540p' ) ) return '$0.14 /Run'
770+ if ( resolution . includes ( '4k' ) ) return '$3.13 /Run'
771+ if ( resolution . includes ( '1080p' ) ) return '$0.79 /Run'
772+ if ( resolution . includes ( '720p' ) ) return '$0.34 /Run'
773+ if ( resolution . includes ( '540p' ) ) return '$0.20 /Run'
774774 } else if ( duration . includes ( '9s' ) ) {
775- if ( resolution . includes ( '4k' ) ) return '$3.95 /Run'
776- if ( resolution . includes ( '1080p' ) ) return '$0.99 /Run'
777- if ( resolution . includes ( '720p' ) ) return '$0.43 /Run'
778- if ( resolution . includes ( '540p' ) ) return '$0.252 /Run'
775+ if ( resolution . includes ( '4k' ) ) return '$5.65 /Run'
776+ if ( resolution . includes ( '1080p' ) ) return '$1.42 /Run'
777+ if ( resolution . includes ( '720p' ) ) return '$0.61 /Run'
778+ if ( resolution . includes ( '540p' ) ) return '$0.36 /Run'
779779 }
780780 } else if ( model . includes ( 'ray-2' ) ) {
781781 if ( duration . includes ( '5s' ) ) {
782- if ( resolution . includes ( '4k' ) ) return '$6.37 /Run'
783- if ( resolution . includes ( '1080p' ) ) return '$1.59 /Run'
784- if ( resolution . includes ( '720p' ) ) return '$0.71 /Run'
785- if ( resolution . includes ( '540p' ) ) return '$0.40 /Run'
782+ if ( resolution . includes ( '4k' ) ) return '$9.11 /Run'
783+ if ( resolution . includes ( '1080p' ) ) return '$2.27 /Run'
784+ if ( resolution . includes ( '720p' ) ) return '$1.02 /Run'
785+ if ( resolution . includes ( '540p' ) ) return '$0.57 /Run'
786786 } else if ( duration . includes ( '9s' ) ) {
787- if ( resolution . includes ( '4k' ) ) return '$11.47 /Run'
788- if ( resolution . includes ( '1080p' ) ) return '$2.87 /Run'
789- if ( resolution . includes ( '720p' ) ) return '$1.28 /Run'
790- if ( resolution . includes ( '540p' ) ) return '$0.72 /Run'
787+ if ( resolution . includes ( '4k' ) ) return '$16.40 /Run'
788+ if ( resolution . includes ( '1080p' ) ) return '$4.10 /Run'
789+ if ( resolution . includes ( '720p' ) ) return '$1.83 /Run'
790+ if ( resolution . includes ( '540p' ) ) return '$1.03 /Run'
791791 }
792- } else if ( model . includes ( 'ray-1. 6' ) ) {
793- return '$0.35 /Run'
792+ } else if ( model . includes ( 'ray-1- 6' ) ) {
793+ return '$0.50 /Run'
794794 }
795795
796- return '$0.55 /Run'
796+ return '$0.79 /Run'
797797 }
798798 } ,
799799 LumaVideoNode : {
@@ -809,7 +809,7 @@ const apiNodeCosts: Record<string, { displayPrice: string | PricingFunction }> =
809809 ) as IComboWidget
810810
811811 if ( ! modelWidget || ! resolutionWidget || ! durationWidget ) {
812- return '$0.14-11.47 /Run (varies with model, resolution & duration)'
812+ return '$0.20-16.40 /Run (varies with model, resolution & duration)'
813813 }
814814
815815 const model = String ( modelWidget . value )
@@ -818,33 +818,33 @@ const apiNodeCosts: Record<string, { displayPrice: string | PricingFunction }> =
818818
819819 if ( model . includes ( 'ray-flash-2' ) ) {
820820 if ( duration . includes ( '5s' ) ) {
821- if ( resolution . includes ( '4k' ) ) return '$2.19 /Run'
822- if ( resolution . includes ( '1080p' ) ) return '$0.55 /Run'
823- if ( resolution . includes ( '720p' ) ) return '$0.24 /Run'
824- if ( resolution . includes ( '540p' ) ) return '$0.14 /Run'
821+ if ( resolution . includes ( '4k' ) ) return '$3.13 /Run'
822+ if ( resolution . includes ( '1080p' ) ) return '$0.79 /Run'
823+ if ( resolution . includes ( '720p' ) ) return '$0.34 /Run'
824+ if ( resolution . includes ( '540p' ) ) return '$0.20 /Run'
825825 } else if ( duration . includes ( '9s' ) ) {
826- if ( resolution . includes ( '4k' ) ) return '$3.95 /Run'
827- if ( resolution . includes ( '1080p' ) ) return '$0.99 /Run'
828- if ( resolution . includes ( '720p' ) ) return '$0.43 /Run'
829- if ( resolution . includes ( '540p' ) ) return '$0.252 /Run'
826+ if ( resolution . includes ( '4k' ) ) return '$5.65 /Run'
827+ if ( resolution . includes ( '1080p' ) ) return '$1.42 /Run'
828+ if ( resolution . includes ( '720p' ) ) return '$0.61 /Run'
829+ if ( resolution . includes ( '540p' ) ) return '$0.36 /Run'
830830 }
831831 } else if ( model . includes ( 'ray-2' ) ) {
832832 if ( duration . includes ( '5s' ) ) {
833- if ( resolution . includes ( '4k' ) ) return '$6.37 /Run'
834- if ( resolution . includes ( '1080p' ) ) return '$1.59 /Run'
835- if ( resolution . includes ( '720p' ) ) return '$0.71 /Run'
836- if ( resolution . includes ( '540p' ) ) return '$0.40 /Run'
833+ if ( resolution . includes ( '4k' ) ) return '$9.11 /Run'
834+ if ( resolution . includes ( '1080p' ) ) return '$2.27 /Run'
835+ if ( resolution . includes ( '720p' ) ) return '$1.02 /Run'
836+ if ( resolution . includes ( '540p' ) ) return '$0.57 /Run'
837837 } else if ( duration . includes ( '9s' ) ) {
838- if ( resolution . includes ( '4k' ) ) return '$11.47 /Run'
839- if ( resolution . includes ( '1080p' ) ) return '$2.87 /Run'
840- if ( resolution . includes ( '720p' ) ) return '$1.28 /Run'
841- if ( resolution . includes ( '540p' ) ) return '$0.72 /Run'
838+ if ( resolution . includes ( '4k' ) ) return '$16.40 /Run'
839+ if ( resolution . includes ( '1080p' ) ) return '$4.10 /Run'
840+ if ( resolution . includes ( '720p' ) ) return '$1.83 /Run'
841+ if ( resolution . includes ( '540p' ) ) return '$1.03 /Run'
842842 }
843843 } else if ( model . includes ( 'ray-1-6' ) ) {
844- return '$0.35 /Run'
844+ return '$0.50 /Run'
845845 }
846846
847- return '$0.55 /Run'
847+ return '$0.79 /Run'
848848 }
849849 } ,
850850 MinimaxImageToVideoNode : {
@@ -1326,18 +1326,18 @@ const apiNodeCosts: Record<string, { displayPrice: string | PricingFunction }> =
13261326 ) as IComboWidget
13271327
13281328 if ( ! modelWidget || ! aspectRatioWidget ) {
1329- return '$0.0045 -0.0182 /Run (varies with model & aspect ratio)'
1329+ return '$0.0064 -0.026 /Run (varies with model & aspect ratio)'
13301330 }
13311331
13321332 const model = String ( modelWidget . value )
13331333
13341334 if ( model . includes ( 'photon-flash-1' ) ) {
1335- return '$0.0019 /Run'
1335+ return '$0.0027 /Run'
13361336 } else if ( model . includes ( 'photon-1' ) ) {
1337- return '$0.0073 /Run'
1337+ return '$0.0104 /Run'
13381338 }
13391339
1340- return '$0.0172 /Run'
1340+ return '$0.0246 /Run'
13411341 }
13421342 } ,
13431343 LumaImageModifyNode : {
@@ -1347,18 +1347,18 @@ const apiNodeCosts: Record<string, { displayPrice: string | PricingFunction }> =
13471347 ) as IComboWidget
13481348
13491349 if ( ! modelWidget ) {
1350- return '$0.0019 -0.0073 /Run (varies with model)'
1350+ return '$0.0027 -0.0104 /Run (varies with model)'
13511351 }
13521352
13531353 const model = String ( modelWidget . value )
13541354
13551355 if ( model . includes ( 'photon-flash-1' ) ) {
1356- return '$0.0019 /Run'
1356+ return '$0.0027 /Run'
13571357 } else if ( model . includes ( 'photon-1' ) ) {
1358- return '$0.0073 /Run'
1358+ return '$0.0104 /Run'
13591359 }
13601360
1361- return '$0.0172 /Run'
1361+ return '$0.0246 /Run'
13621362 }
13631363 } ,
13641364 MoonvalleyTxt2VideoNode : {
@@ -1420,7 +1420,7 @@ const apiNodeCosts: Record<string, { displayPrice: string | PricingFunction }> =
14201420 } ,
14211421 // Runway nodes - using actual node names from ComfyUI
14221422 RunwayTextToImageNode : {
1423- displayPrice : '$0.08 /Run'
1423+ displayPrice : '$0.11 /Run'
14241424 } ,
14251425 RunwayImageToVideoNodeGen3a : {
14261426 displayPrice : calculateRunwayDurationPrice
0 commit comments