Skip to content

add pricing badge for Flux2Max node#7641

Merged
bigcat88 merged 1 commit intomainfrom
feat/api-nodes/pricing/Flux2Max
Dec 19, 2025
Merged

add pricing badge for Flux2Max node#7641
bigcat88 merged 1 commit intomainfrom
feat/api-nodes/pricing/Flux2Max

Conversation

@bigcat88
Copy link
Contributor

@bigcat88 bigcat88 commented Dec 19, 2025

Summary

Node uses the same pricing method as Flux2Pro, but at a doubled rate.

┆Issue is synchronized with this Notion page by Unito

@bigcat88 bigcat88 requested a review from jojodecayz as a code owner December 19, 2025 13:22
@dosubot dosubot bot added the size:M This PR changes 30-99 lines, ignoring generated files. label Dec 19, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Dec 19, 2025

📝 Walkthrough

Walkthrough

Added pricing support for Flux2MaxImageNode, a new image generation node type. The entry includes a price calculation function that determines per-run costs based on output image dimensions and whether inputs are externally linked, plus widget mappings for the relevant UI parameters.

Changes

Cohort / File(s) Summary
Node Pricing Entry
src/composables/node/useNodePricing.ts
Added Flux2MaxImageNode to apiNodeCosts with dynamic price function based on image width/height and input references; added corresponding widget mappings (width, height, images) to getRelevantWidgetNames

Possibly related PRs

✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/api-nodes/pricing/Flux2Max

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link

github-actions bot commented Dec 19, 2025

🎭 Playwright Test Results

Some tests failed

⏰ Completed at: 12/19/2025, 01:32:46 PM UTC

📈 Summary

  • Total Tests: 505
  • Passed: 492 ✅
  • Failed: 1 ❌
  • Flaky: 4 ⚠️
  • Skipped: 8 ⏭️

📊 Test Reports by Browser

  • chromium: View Report • ✅ 482 / ❌ 1 / ⚠️ 3 / ⏭️ 8
  • chromium-2x: View Report • ✅ 2 / ❌ 0 / ⚠️ 0 / ⏭️ 0
  • chromium-0.5x: View Report • ✅ 1 / ❌ 0 / ⚠️ 0 / ⏭️ 0
  • mobile-chrome: View Report • ✅ 7 / ❌ 0 / ⚠️ 1 / ⏭️ 0

🎉 Click on the links above to view detailed test results for each browser configuration.

@github-actions
Copy link

github-actions bot commented Dec 19, 2025

🎨 Storybook Build Status

Build completed successfully!

⏰ Completed at: 12/19/2025, 01:23:54 PM UTC

🔗 Links


🎉 Your Storybook is ready for review!

@github-actions
Copy link

Bundle Size Report

Summary

  • Raw size: 16.6 MB baseline 16.6 MB — 🔴 +1.15 kB
  • Gzip: 3.37 MB baseline 3.37 MB — 🔴 +53 B
  • Brotli: 2.6 MB baseline 2.6 MB — 🟢 -18 B
  • Bundles: 99 current • 99 baseline • 42 added / 42 removed

Category Glance
Graph Workspace 🔴 +1.15 kB (997 kB) · Vendor & Third-Party ⚪ 0 B (8.46 MB) · Other ⚪ 0 B (3.44 MB) · App Entry Points ⚪ 0 B (3.21 MB) · Panels & Settings ⚪ 0 B (297 kB) · UI Components ⚪ 0 B (184 kB) · + 3 more

Per-category breakdown
App Entry Points — 3.21 MB (baseline 3.21 MB) • ⚪ 0 B

Main entry bundles and manifests

File Before After Δ Raw Δ Gzip Δ Brotli
assets/index-C4DQgJFI.js (new) 2.98 MB 🔴 +2.98 MB 🔴 +629 kB 🔴 +478 kB
assets/index-CqsbWZzg.js (removed) 2.98 MB 🟢 -2.98 MB 🟢 -629 kB 🟢 -478 kB
assets/index-B6RyZzRV.js (removed) 227 kB 🟢 -227 kB 🟢 -48.5 kB 🟢 -39.8 kB
assets/index-CQprBfuq.js (new) 227 kB 🔴 +227 kB 🔴 +48.5 kB 🔴 +39.8 kB
assets/index-C51Dn0mE.js (new) 345 B 🔴 +345 B 🔴 +245 B 🔴 +233 B
assets/index-C6VzhE7N.js (removed) 345 B 🟢 -345 B 🟢 -246 B 🟢 -231 B

Status: 3 added / 3 removed

Graph Workspace — 997 kB (baseline 996 kB) • 🔴 +1.15 kB

Graph editor runtime, canvas, workflow orchestration

File Before After Δ Raw Δ Gzip Δ Brotli
assets/GraphView-B6hQtLGu.js (new) 997 kB 🔴 +997 kB 🔴 +195 kB 🔴 +148 kB
assets/GraphView-Cu7FWH_z.js (removed) 996 kB 🟢 -996 kB 🟢 -195 kB 🟢 -148 kB

Status: 1 added / 1 removed

Views & Navigation — 6.54 kB (baseline 6.54 kB) • ⚪ 0 B

Top-level views, pages, and routed surfaces

File Before After Δ Raw Δ Gzip Δ Brotli
assets/UserSelectView-BL7Y6CkX.js (removed) 6.54 kB 🟢 -6.54 kB 🟢 -2.14 kB 🟢 -1.89 kB
assets/UserSelectView-D-ngX5qr.js (new) 6.54 kB 🔴 +6.54 kB 🔴 +2.14 kB 🔴 +1.89 kB

Status: 1 added / 1 removed

Panels & Settings — 297 kB (baseline 297 kB) • ⚪ 0 B

Configuration panels, inspectors, and settings screens

File Before After Δ Raw Δ Gzip Δ Brotli
assets/LegacyCreditsPanel-BftYZlzl.js (removed) 21.4 kB 🟢 -21.4 kB 🟢 -5.16 kB 🟢 -4.5 kB
assets/LegacyCreditsPanel-N2IZXg6p.js (new) 21.4 kB 🔴 +21.4 kB 🔴 +5.16 kB 🔴 +4.51 kB
assets/KeybindingPanel-C5CTE424.js (new) 13.6 kB 🔴 +13.6 kB 🔴 +3.42 kB 🔴 +3.03 kB
assets/KeybindingPanel-Dpw0gCUx.js (removed) 13.6 kB 🟢 -13.6 kB 🟢 -3.42 kB 🟢 -3.01 kB
assets/ExtensionPanel-BSSt1FKj.js (new) 10.8 kB 🔴 +10.8 kB 🔴 +2.57 kB 🔴 +2.24 kB
assets/ExtensionPanel-BxFSeJ9Q.js (removed) 10.8 kB 🟢 -10.8 kB 🟢 -2.57 kB 🟢 -2.24 kB
assets/AboutPanel-BkKzLIVg.js (new) 9.16 kB 🔴 +9.16 kB 🔴 +2.46 kB 🔴 +2.21 kB
assets/AboutPanel-D6-b8loz.js (removed) 9.16 kB 🟢 -9.16 kB 🟢 -2.46 kB 🟢 -2.21 kB
assets/ServerConfigPanel-DCMP_YsD.js (new) 7.07 kB 🔴 +7.07 kB 🔴 +1.98 kB 🔴 +1.76 kB
assets/ServerConfigPanel-DER9eSQi.js (removed) 7.07 kB 🟢 -7.07 kB 🟢 -1.98 kB 🟢 -1.76 kB
assets/UserPanel-DvxRQWW1.js (removed) 6.23 kB 🟢 -6.23 kB 🟢 -1.72 kB 🟢 -1.5 kB
assets/UserPanel-DzAUTXyY.js (new) 6.23 kB 🔴 +6.23 kB 🔴 +1.72 kB 🔴 +1.5 kB
assets/settings-BhbWhsRg.js 101 B 101 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BvFz-TmQ.js 33.1 kB 33.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-BxYnTA2y.js 21.5 kB 21.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-C6bMjAne.js 27.1 kB 27.1 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-C7Yhp7H7.js 24 kB 24 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-CsnOn8G0.js 25.7 kB 25.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-D5BGNZ7M.js 24.8 kB 24.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-D7k3huHm.js 25 kB 25 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-DamkILzl.js 26.4 kB 26.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/settings-s1k0gw1Y.js 20.9 kB 20.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 6 added / 6 removed

UI Components — 184 kB (baseline 184 kB) • ⚪ 0 B

Reusable component library chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/Load3D.vue_vue_type_script_setup_true_lang-CJ5VXXVG.js (new) 53.5 kB 🔴 +53.5 kB 🔴 +8.45 kB 🔴 +7.25 kB
assets/Load3D.vue_vue_type_script_setup_true_lang-DK4qhaIA.js (removed) 53.5 kB 🟢 -53.5 kB 🟢 -8.45 kB 🟢 -7.25 kB
assets/WidgetSelect.vue_vue_type_script_setup_true_lang-C39srlhs.js (removed) 48.8 kB 🟢 -48.8 kB 🟢 -10.5 kB 🟢 -9.13 kB
assets/WidgetSelect.vue_vue_type_script_setup_true_lang-ZyV2q-r_.js (new) 48.8 kB 🔴 +48.8 kB 🔴 +10.5 kB 🔴 +9.14 kB
assets/LazyImage.vue_vue_type_script_setup_true_lang-CRG8ZbNT.js (removed) 48.4 kB 🟢 -48.4 kB 🟢 -10.6 kB 🟢 -9.3 kB
assets/LazyImage.vue_vue_type_script_setup_true_lang-Dhe84abT.js (new) 48.4 kB 🔴 +48.4 kB 🔴 +10.6 kB 🔴 +9.3 kB
assets/WidgetInputNumber.vue_vue_type_script_setup_true_lang-BdS-kpkJ.js (new) 14.3 kB 🔴 +14.3 kB 🔴 +3.73 kB 🔴 +3.29 kB
assets/WidgetInputNumber.vue_vue_type_script_setup_true_lang-DvQMX0A8.js (removed) 14.3 kB 🟢 -14.3 kB 🟢 -3.74 kB 🟢 -3.3 kB
assets/ComfyQueueButton-JQd8zzTP.js (removed) 8.49 kB 🟢 -8.49 kB 🟢 -2.49 kB 🟢 -2.22 kB
assets/ComfyQueueButton-oglvG50b.js (new) 8.49 kB 🔴 +8.49 kB 🔴 +2.48 kB 🔴 +2.22 kB
assets/WidgetWithControl.vue_vue_type_script_setup_true_lang-B1B_G7Jw.js (removed) 3.68 kB 🟢 -3.68 kB 🟢 -1.45 kB 🟢 -1.3 kB
assets/WidgetWithControl.vue_vue_type_script_setup_true_lang-COeq5IuU.js (new) 3.68 kB 🔴 +3.68 kB 🔴 +1.45 kB 🔴 +1.3 kB
assets/WidgetLayoutField.vue_vue_type_script_setup_true_lang-D5foiLYH.js (removed) 2.14 kB 🟢 -2.14 kB 🟢 -890 B 🟢 -772 B
assets/WidgetLayoutField.vue_vue_type_script_setup_true_lang-sjcRSCd6.js (new) 2.14 kB 🔴 +2.14 kB 🔴 +890 B 🔴 +769 B
assets/MediaTitle.vue_vue_type_script_setup_true_lang-_NMOUjeT.js (removed) 897 B 🟢 -897 B 🟢 -502 B 🟢 -436 B
assets/MediaTitle.vue_vue_type_script_setup_true_lang-D-4CqNKg.js (new) 897 B 🔴 +897 B 🔴 +503 B 🔴 +430 B
assets/UserAvatar.vue_vue_type_script_setup_true_lang-Bumg4_L2.js 1.34 kB 1.34 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetButton-z3dAsplW.js 2.04 kB 2.04 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 8 added / 8 removed

Data & Services — 12.5 kB (baseline 12.5 kB) • ⚪ 0 B

Stores, services, APIs, and repositories

File Before After Δ Raw Δ Gzip Δ Brotli
assets/keybindingService-C7nmHtJn.js (new) 7.51 kB 🔴 +7.51 kB 🔴 +1.83 kB 🔴 +1.57 kB
assets/keybindingService-Cek6LQCG.js (removed) 7.51 kB 🟢 -7.51 kB 🟢 -1.83 kB 🟢 -1.57 kB
assets/audioService-Bna6bt3x.js (removed) 2.2 kB 🟢 -2.2 kB 🟢 -961 B 🟢 -821 B
assets/audioService-ChxkVn4P.js (new) 2.2 kB 🔴 +2.2 kB 🔴 +963 B 🔴 +831 B
assets/serverConfigStore-7JI8VFS2.js 2.83 kB 2.83 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 2 added / 2 removed

Utilities & Hooks — 1.86 kB (baseline 1.86 kB) • ⚪ 0 B

Helpers, composables, and utility bundles

File Before After Δ Raw Δ Gzip Δ Brotli
assets/audioUtils-B0h0AtVQ.js (removed) 1.41 kB 🟢 -1.41 kB 🟢 -651 B 🟢 -553 B
assets/audioUtils-DzN3gRGe.js (new) 1.41 kB 🔴 +1.41 kB 🔴 +652 B 🔴 +544 B
assets/nodeFilterUtil-CXKCRJ-m.js 460 B 460 B ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 1 added / 1 removed

Vendor & Third-Party — 8.46 MB (baseline 8.46 MB) • ⚪ 0 B

External libraries and shared vendor chunks

File Before After Δ Raw Δ Gzip Δ Brotli
assets/vendor-chart-DaR9dw3X.js 452 kB 452 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-other-Cf7iqkoX.js 3.86 MB 3.86 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-primevue-DZ--Ysu_.js 1.96 MB 1.96 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-three-C1LfRdh4.js 1.37 MB 1.37 MB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-tiptap-C1NB2Q_L.js 232 kB 232 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-vue-DSfeuQOV.js 160 kB 160 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/vendor-xterm-BF8peZ5_.js 420 kB 420 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
Other — 3.44 MB (baseline 3.44 MB) • ⚪ 0 B

Bundles that do not match a named category

File Before After Δ Raw Δ Gzip Δ Brotli
assets/SubscriptionRequiredDialogContent-Cdd2dIJV.js (new) 28.1 kB 🔴 +28.1 kB 🔴 +6.35 kB 🔴 +5.51 kB
assets/SubscriptionRequiredDialogContent-Dv-oRmaC.js (removed) 28.1 kB 🟢 -28.1 kB 🟢 -6.36 kB 🟢 -5.5 kB
assets/WidgetRecordAudio-BHAaRaNV.js (new) 20.4 kB 🔴 +20.4 kB 🔴 +5.23 kB 🔴 +4.63 kB
assets/WidgetRecordAudio-eSVACLiM.js (removed) 20.4 kB 🟢 -20.4 kB 🟢 -5.23 kB 🟢 -4.63 kB
assets/AudioPreviewPlayer-CFzCEAJ0.js (new) 13.4 kB 🔴 +13.4 kB 🔴 +3.37 kB 🔴 +3 kB
assets/AudioPreviewPlayer-Drku7i-r.js (removed) 13.4 kB 🟢 -13.4 kB 🟢 -3.37 kB 🟢 -3.01 kB
assets/ValueControlPopover-BjjjmKcU.js (new) 5.49 kB 🔴 +5.49 kB 🔴 +1.7 kB 🔴 +1.51 kB
assets/ValueControlPopover-DCZAgt59.js (removed) 5.49 kB 🟢 -5.49 kB 🟢 -1.7 kB 🟢 -1.51 kB
assets/WidgetGalleria-DCB3-ibc.js (new) 4.1 kB 🔴 +4.1 kB 🔴 +1.44 kB 🔴 +1.3 kB
assets/WidgetGalleria-DLeALi7o.js (removed) 4.1 kB 🟢 -4.1 kB 🟢 -1.44 kB 🟢 -1.3 kB
assets/WidgetColorPicker-U9Fb_AMf.js (new) 3.41 kB 🔴 +3.41 kB 🔴 +1.38 kB 🔴 +1.23 kB
assets/WidgetColorPicker-VZ986lNg.js (removed) 3.41 kB 🟢 -3.41 kB 🟢 -1.38 kB 🟢 -1.23 kB
assets/WidgetTextarea-DqS4zhrb.js (new) 3.08 kB 🔴 +3.08 kB 🔴 +1.21 kB 🔴 +1.08 kB
assets/WidgetTextarea-s-wIujV_.js (removed) 3.08 kB 🟢 -3.08 kB 🟢 -1.21 kB 🟢 -1.07 kB
assets/WidgetMarkdown-3Af8pp77.js (new) 3.08 kB 🔴 +3.08 kB 🔴 +1.28 kB 🔴 +1.13 kB
assets/WidgetMarkdown-DffARnkF.js (removed) 3.08 kB 🟢 -3.08 kB 🟢 -1.28 kB 🟢 -1.13 kB
assets/WidgetAudioUI-DAEFXo_p.js (removed) 2.94 kB 🟢 -2.94 kB 🟢 -1.19 kB 🟢 -1.07 kB
assets/WidgetAudioUI-DEpX31UL.js (new) 2.94 kB 🔴 +2.94 kB 🔴 +1.18 kB 🔴 +1.07 kB
assets/WidgetInputText-1AlQbZns.js (removed) 1.99 kB 🟢 -1.99 kB 🟢 -917 B 🟢 -850 B
assets/WidgetInputText-D0Wxoi_g.js (new) 1.99 kB 🔴 +1.99 kB 🔴 +917 B 🔴 +848 B
assets/WidgetToggleSwitch-BOIffcIe.js (new) 1.76 kB 🔴 +1.76 kB 🔴 +832 B 🔴 +733 B
assets/WidgetToggleSwitch-De3YZhb5.js (removed) 1.76 kB 🟢 -1.76 kB 🟢 -833 B 🟢 -732 B
assets/MediaImageBottom-FICGZlcE.js (new) 1.55 kB 🔴 +1.55 kB 🔴 +731 B 🔴 +642 B
assets/MediaImageBottom-LdV_KyA5.js (removed) 1.55 kB 🟢 -1.55 kB 🟢 -731 B 🟢 -640 B
assets/MediaAudioBottom-Bmq-9hnK.js (removed) 1.51 kB 🟢 -1.51 kB 🟢 -729 B 🟢 -648 B
assets/MediaAudioBottom-BOvk9KxO.js (new) 1.51 kB 🔴 +1.51 kB 🔴 +731 B 🔴 +650 B
assets/Media3DBottom-A3kyOfgg.js (removed) 1.5 kB 🟢 -1.5 kB 🟢 -726 B 🟢 -643 B
assets/Media3DBottom-KeEgTMO0.js (new) 1.5 kB 🔴 +1.5 kB 🔴 +729 B 🔴 +647 B
assets/MediaVideoBottom-BmEaLe3X.js (removed) 1.5 kB 🟢 -1.5 kB 🟢 -725 B 🟢 -644 B
assets/MediaVideoBottom-DL_-x3xR.js (new) 1.5 kB 🔴 +1.5 kB 🔴 +728 B 🔴 +649 B
assets/Media3DTop-BogVwmkr.js (new) 1.49 kB 🔴 +1.49 kB 🔴 +760 B 🔴 +654 B
assets/Media3DTop-BZUxUXIo.js (removed) 1.49 kB 🟢 -1.49 kB 🟢 -764 B 🟢 -653 B
assets/WidgetSelect-BZvJCoFX.js (removed) 733 B 🟢 -733 B 🟢 -360 B 🟢 -306 B
assets/WidgetSelect-CB4zfIx7.js (new) 733 B 🔴 +733 B 🔴 +362 B 🔴 +322 B
assets/WidgetInputNumber-B68uHZz6.js (new) 673 B 🔴 +673 B 🔴 +346 B 🔴 +291 B
assets/WidgetInputNumber-Bnf4htyK.js (removed) 673 B 🟢 -673 B 🟢 -346 B 🟢 -291 B
assets/Load3D-C0J8jQMM.js (removed) 424 B 🟢 -424 B 🟢 -270 B 🟢 -230 B
assets/Load3D-CeAch51l.js (new) 424 B 🔴 +424 B 🔴 +269 B 🔴 +224 B
assets/WidgetLegacy-91xUFJlo.js (removed) 364 B 🟢 -364 B 🟢 -236 B 🟢 -195 B
assets/WidgetLegacy-JyBckGET.js (new) 364 B 🔴 +364 B 🔴 +237 B 🔴 +195 B
assets/commands-BWp4HdfU.js 101 B 101 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CcfGaui5.js 14.4 kB 14.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CisfgZf5.js 13.7 kB 13.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CkU12Foh.js 13 kB 13 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-CoH2DJa6.js 14.2 kB 14.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-COSt-Bjx.js 14.9 kB 14.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DalfIW5f.js 15.9 kB 15.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DfTl0eCm.js 13.5 kB 13.5 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-DwSJL865.js 13.7 kB 13.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/commands-Zxyx15Vd.js 12.8 kB 12.8 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BDhxs-bB.js 79.9 kB 79.9 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-BtXVDFw6.js 84.7 kB 84.7 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Buv6RhU4.js 82.4 kB 82.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CgJ6zvJL.js 97.2 kB 97.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-CI9qb0E5.js 112 kB 112 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Cu4LqtW0.js 81.6 kB 81.6 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Cw9RZWRY.js 89 B 89 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Dm19QY4N.js 92.2 kB 92.2 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-Tihe0h_r.js 71.3 kB 71.3 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/main-wPWMutMw.js 70.4 kB 70.4 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaAudioTop-Dr0afgCA.js 1.46 kB 1.46 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaImageTop-BXa-oKEc.js 1.75 kB 1.75 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/MediaVideoTop-BVdg2b8C.js 2.65 kB 2.65 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-1Vh3MCrN.js 240 kB 240 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-aW9En70v.js 260 kB 260 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BIckSVgU.js 273 kB 273 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-BiYpVi7D.js 263 kB 263 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Bw_Jitw_.js 101 B 101 B ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CCEXtYfM.js 243 kB 243 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-CvmVDWYd.js 323 kB 323 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-D_wreoPJ.js 267 kB 267 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-Dz-0ZIBN.js 297 kB 297 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/nodeDefs-VZsNmhG7.js 264 kB 264 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetChart-DT6E_SOn.js 2.48 kB 2.48 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/WidgetImageCompare-BB9nVmFq.js 2.21 kB 2.21 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B
assets/widgetPropFilter-BIbGSUAt.js 1.28 kB 1.28 kB ⚪ 0 B ⚪ 0 B ⚪ 0 B

Status: 20 added / 20 removed

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

📜 Review details

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ed7ec2a and ed42177.

📒 Files selected for processing (1)
  • src/composables/node/useNodePricing.ts (2 hunks)
🧰 Additional context used
📓 Path-based instructions (11)
src/**/*.{vue,ts}

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

src/**/*.{vue,ts}: Leverage VueUse functions for performance-enhancing styles
Implement proper error handling
Use vue-i18n in composition API for any string literals. Place new translation entries in src/locales/en/main.json

src/**/*.{vue,ts}: Avoid using ref and watch together - use computed instead if possible
Do not add ref if a prop would suffice; do not add computed if the ref/prop directly would work; use watch only when computed won't accomplish the goal
Leverage VueUse functions for performance-enhancing styles

Files:

  • src/composables/node/useNodePricing.ts
src/**/*.ts

📄 CodeRabbit inference engine (.github/copilot-instructions.md)

src/**/*.ts: Use es-toolkit for utility functions
Use TypeScript for type safety

src/**/*.ts: Extract complex type definitions that are inlined in multiple related places - name them for reuse
Minimize the surface area (exported values) of each module and composable
Favor pure functions, especially testable ones

Files:

  • src/composables/node/useNodePricing.ts
src/**/{services,composables}/**/*.{ts,tsx}

📄 CodeRabbit inference engine (src/CLAUDE.md)

src/**/{services,composables}/**/*.{ts,tsx}: Use api.apiURL() for backend endpoints instead of constructing URLs directly
Use api.fileURL() for static file access instead of constructing URLs directly

Files:

  • src/composables/node/useNodePricing.ts
src/**/*.{ts,tsx,vue}

📄 CodeRabbit inference engine (src/CLAUDE.md)

src/**/*.{ts,tsx,vue}: Sanitize HTML with DOMPurify to prevent XSS attacks
Avoid using @ts-expect-error; use proper TypeScript types instead
Use es-toolkit for utility functions instead of other utility libraries
Implement proper TypeScript types throughout the codebase

src/**/*.{ts,tsx,vue}: ESLint rules: Vue + TS rules, no floating promises, unused imports disallowed, i18n raw text restrictions in templates
Use es-toolkit for utility functions
Avoid mutable state - prefer immutability and assignment at point of declaration
Never use any type - use proper TypeScript types
Never use as any type assertions - fix the underlying type issue

Files:

  • src/composables/node/useNodePricing.ts
src/**/{composables,components}/**/*.{ts,tsx,vue}

📄 CodeRabbit inference engine (src/CLAUDE.md)

Clean up subscriptions in state management to prevent memory leaks

Files:

  • src/composables/node/useNodePricing.ts
src/**/*.{vue,ts,tsx}

📄 CodeRabbit inference engine (src/CLAUDE.md)

Follow Vue 3 composition API style guide

Files:

  • src/composables/node/useNodePricing.ts
src/**/{components,composables}/**/*.{ts,tsx,vue}

📄 CodeRabbit inference engine (src/CLAUDE.md)

Use vue-i18n for ALL user-facing strings by adding them to src/locales/en/main.json

Files:

  • src/composables/node/useNodePricing.ts
src/**/*.{js,ts,tsx,vue}

📄 CodeRabbit inference engine (AGENTS.md)

Use TypeScript exclusively - no new JavaScript files

Files:

  • src/composables/node/useNodePricing.ts
src/composables/**/*.ts

📄 CodeRabbit inference engine (AGENTS.md)

Composables must follow the naming pattern useXyz.ts

Files:

  • src/composables/node/useNodePricing.ts
src/**/*.{ts,tsx,vue,js}

📄 CodeRabbit inference engine (AGENTS.md)

src/**/*.{ts,tsx,vue,js}: Indent with 2 spaces, use single quotes, no trailing semicolons, line width 80 - see .prettierrc
Sort and group imports by plugin, run pnpm format before committing

Files:

  • src/composables/node/useNodePricing.ts
src/**/*.{ts,tsx}

📄 CodeRabbit inference engine (AGENTS.md)

Do not use function expressions - use function declarations instead when possible

Files:

  • src/composables/node/useNodePricing.ts
🧠 Learnings (4)
📚 Learning: 2025-12-09T03:39:54.501Z
Learnt from: DrJKL
Repo: Comfy-Org/ComfyUI_frontend PR: 7169
File: src/platform/remote/comfyui/jobs/jobTypes.ts:1-107
Timestamp: 2025-12-09T03:39:54.501Z
Learning: In the ComfyUI_frontend project, Zod is on v3.x. Do not suggest Zod v4 standalone validators (z.uuid, z.ulid, z.cuid2, z.nanoid) until an upgrade to Zod 4 is performed. When reviewing TypeScript files (e.g., src/platform/remote/comfyui/jobs/jobTypes.ts) validate against Zod 3 capabilities and avoid introducing v4-specific features; flag any proposal to upgrade or incorporate v4-only validators and propose staying with compatible 3.x patterns.

Applied to files:

  • src/composables/node/useNodePricing.ts
📚 Learning: 2025-12-13T11:03:11.264Z
Learnt from: christian-byrne
Repo: Comfy-Org/ComfyUI_frontend PR: 7416
File: src/stores/imagePreviewStore.ts:5-7
Timestamp: 2025-12-13T11:03:11.264Z
Learning: In the ComfyUI_frontend repository, lint rules require keeping 'import type' statements separate from non-type imports, even if importing from the same module. Do not suggest consolidating them into a single import statement. Ensure type imports remain on their own line (import type { ... } from 'module') and regular imports stay on separate lines.

Applied to files:

  • src/composables/node/useNodePricing.ts
📚 Learning: 2025-12-17T00:40:09.635Z
Learnt from: DrJKL
Repo: Comfy-Org/ComfyUI_frontend PR: 7537
File: src/components/ui/button/Button.stories.ts:45-55
Timestamp: 2025-12-17T00:40:09.635Z
Learning: Prefer pure function declarations over function expressions (e.g., use function foo() { ... } instead of const foo = () => { ... }) for pure functions in the repository. Function declarations are more functional-leaning, offer better hoisting clarity, and can improve readability and tooling consistency. Apply this guideline across TypeScript files in Comfy-Org/ComfyUI_frontend, including story and UI component code, except where a function expression is semantically required (e.g., callbacks, higher-order functions with closures).

Applied to files:

  • src/composables/node/useNodePricing.ts
📚 Learning: 2025-12-11T12:25:15.470Z
Learnt from: christian-byrne
Repo: Comfy-Org/ComfyUI_frontend PR: 7358
File: src/components/dialog/content/signin/SignUpForm.vue:45-54
Timestamp: 2025-12-11T12:25:15.470Z
Learning: This repository uses CI automation to format code (pnpm format). Do not include manual formatting suggestions in code reviews for Comfy-Org/ComfyUI_frontend. If formatting issues are detected, rely on the CI formatter or re-run pnpm format. Focus reviews on correctness, readability, performance, accessibility, and maintainability rather than style formatting.

Applied to files:

  • src/composables/node/useNodePricing.ts
🧬 Code graph analysis (1)
src/composables/node/useNodePricing.ts (1)
src/lib/litegraph/src/types/widgets.ts (1)
  • IComboWidget (133-140)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (5)
  • GitHub Check: deploy-and-comment
  • GitHub Check: test
  • GitHub Check: lint-and-format
  • GitHub Check: collect
  • GitHub Check: setup
🔇 Additional comments (1)
src/composables/node/useNodePricing.ts (1)

2067-2067: LGTM!

The widget mapping correctly includes width, height, and images, matching the widgets referenced in the Flux2MaxImageNode pricing function and consistent with Flux2ProImageNode's mapping.

@bigcat88 bigcat88 merged commit 744d37c into main Dec 19, 2025
31 of 32 checks passed
@bigcat88 bigcat88 deleted the feat/api-nodes/pricing/Flux2Max branch December 19, 2025 17:32
@christian-byrne christian-byrne added needs-backport Fix/change that needs to be cherry-picked to the current feature freeze branch core/1.35 labels Dec 22, 2025
github-actions bot pushed a commit that referenced this pull request Dec 22, 2025
## Summary

Node uses the same pricing method as Flux2Pro, but at a doubled rate.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7641-add-pricing-badge-for-Flux2Max-node-2ce6d73d365081e785b3cf562f289470)
by [Unito](https://www.unito.io)
github-actions bot pushed a commit that referenced this pull request Dec 22, 2025
## Summary

Node uses the same pricing method as Flux2Pro, but at a doubled rate.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7641-add-pricing-badge-for-Flux2Max-node-2ce6d73d365081e785b3cf562f289470)
by [Unito](https://www.unito.io)
@comfy-pr-bot
Copy link
Member

@bigcat88 Successfully backported to #7721

@comfy-pr-bot
Copy link
Member

@bigcat88 Successfully backported to #7722

@github-actions github-actions bot removed the needs-backport Fix/change that needs to be cherry-picked to the current feature freeze branch label Dec 22, 2025
christian-byrne pushed a commit that referenced this pull request Dec 22, 2025
Backport of #7641 to `cloud/1.35`

Automatically created by backport workflow.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7722-backport-cloud-1-35-add-pricing-badge-for-Flux2Max-node-2d16d73d3650819b8a17cb37ad9ee4c0)
by [Unito](https://www.unito.io)

Co-authored-by: Alexander Piskun <[email protected]>
christian-byrne pushed a commit that referenced this pull request Dec 22, 2025
Backport of #7641 to `core/1.35`

Automatically created by backport workflow.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7721-backport-core-1-35-add-pricing-badge-for-Flux2Max-node-2d16d73d36508108b1f9c09edc82e39c)
by [Unito](https://www.unito.io)

Co-authored-by: Alexander Piskun <[email protected]>
Yourz pushed a commit that referenced this pull request Dec 24, 2025
## Summary

Node uses the same pricing method as Flux2Pro, but at a doubled rate.

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-7641-add-pricing-badge-for-Flux2Max-node-2ce6d73d365081e785b3cf562f289470)
by [Unito](https://www.unito.io)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M This PR changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants