comfyui-frontend-package 1.37.10__py3-none-any.whl → 1.38.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- comfyui_frontend_package/static/assets/{AboutPanel-C5DQxPC9.js → AboutPanel-DeWaRZUc.js} +2 -2
- comfyui_frontend_package/static/assets/{AboutPanel-C5DQxPC9.js.map → AboutPanel-DeWaRZUc.js.map} +1 -1
- comfyui_frontend_package/static/assets/{AudioPreviewPlayer-BNO9ZjOM.js → AudioPreviewPlayer-CSxbl0y3.js} +2 -2
- comfyui_frontend_package/static/assets/{AudioPreviewPlayer-BNO9ZjOM.js.map → AudioPreviewPlayer-CSxbl0y3.js.map} +1 -1
- comfyui_frontend_package/static/assets/{ComfyQueueButton-D0Y-jFOd.js → ComfyQueueButton-BV0p-R1-.js} +2 -2
- comfyui_frontend_package/static/assets/{ComfyQueueButton-D0Y-jFOd.js.map → ComfyQueueButton-BV0p-R1-.js.map} +1 -1
- comfyui_frontend_package/static/assets/{ExtensionPanel-CbCxE4jg.js → ExtensionPanel-DvPzK040.js} +2 -2
- comfyui_frontend_package/static/assets/{ExtensionPanel-CbCxE4jg.js.map → ExtensionPanel-DvPzK040.js.map} +1 -1
- comfyui_frontend_package/static/assets/GraphView-2T90vQj0.css +1 -0
- comfyui_frontend_package/static/assets/GraphView-BuGkgiGk.js +15 -0
- comfyui_frontend_package/static/assets/GraphView-BuGkgiGk.js.map +1 -0
- comfyui_frontend_package/static/assets/{KeybindingPanel-Ceb51ttS.js → KeybindingPanel-DbjoObzw.js} +2 -2
- comfyui_frontend_package/static/assets/{KeybindingPanel-Ceb51ttS.js.map → KeybindingPanel-DbjoObzw.js.map} +1 -1
- comfyui_frontend_package/static/assets/LazyImage.vue_vue_type_script_setup_true_lang-Op4fug5d.js +2 -0
- comfyui_frontend_package/static/assets/LazyImage.vue_vue_type_script_setup_true_lang-Op4fug5d.js.map +1 -0
- comfyui_frontend_package/static/assets/{LegacyCreditsPanel-K_GDtrt_.js → LegacyCreditsPanel-BFKSdy5y.js} +2 -2
- comfyui_frontend_package/static/assets/{LegacyCreditsPanel-K_GDtrt_.js.map → LegacyCreditsPanel-BFKSdy5y.js.map} +1 -1
- comfyui_frontend_package/static/assets/{Load3D-CbCbkSys.js → Load3D-B3uXG_Os.js} +2 -2
- comfyui_frontend_package/static/assets/Load3D-B3uXG_Os.js.map +1 -0
- comfyui_frontend_package/static/assets/{Load3D.vue_vue_type_script_setup_true_lang-3QcwinlP.js → Load3D.vue_vue_type_script_setup_true_lang-CslfLloq.js} +2 -2
- comfyui_frontend_package/static/assets/{Load3D.vue_vue_type_script_setup_true_lang-3QcwinlP.js.map → Load3D.vue_vue_type_script_setup_true_lang-CslfLloq.js.map} +1 -1
- comfyui_frontend_package/static/assets/{Media3DTop--kp0iekJ.js → Media3DTop-CfCHfZKG.js} +2 -2
- comfyui_frontend_package/static/assets/{Media3DTop--kp0iekJ.js.map → Media3DTop-CfCHfZKG.js.map} +1 -1
- comfyui_frontend_package/static/assets/{ServerConfigPanel-BGnrWtif.js → ServerConfigPanel-DvFzfUMn.js} +2 -2
- comfyui_frontend_package/static/assets/{ServerConfigPanel-BGnrWtif.js.map → ServerConfigPanel-DvFzfUMn.js.map} +1 -1
- comfyui_frontend_package/static/assets/SubscriptionRequiredDialogContent-C1UryadQ.css +1 -0
- comfyui_frontend_package/static/assets/SubscriptionRequiredDialogContent-DTq1ffwv.js +2 -0
- comfyui_frontend_package/static/assets/{SubscriptionRequiredDialogContent-BMLw-0ti.js.map → SubscriptionRequiredDialogContent-DTq1ffwv.js.map} +1 -1
- comfyui_frontend_package/static/assets/{UserAvatar.vue_vue_type_script_setup_true_lang-48WRCWXz.js → UserAvatar.vue_vue_type_script_setup_true_lang-COE-v4cY.js} +2 -2
- comfyui_frontend_package/static/assets/{UserAvatar.vue_vue_type_script_setup_true_lang-48WRCWXz.js.map → UserAvatar.vue_vue_type_script_setup_true_lang-COE-v4cY.js.map} +1 -1
- comfyui_frontend_package/static/assets/{UserPanel-BfOBqtyE.js → UserPanel-Xvm9QBld.js} +2 -2
- comfyui_frontend_package/static/assets/{UserPanel-BfOBqtyE.js.map → UserPanel-Xvm9QBld.js.map} +1 -1
- comfyui_frontend_package/static/assets/{UserSelectView-hAFmUbm0.js → UserSelectView-Bh8_ghwS.js} +2 -2
- comfyui_frontend_package/static/assets/{UserSelectView-hAFmUbm0.js.map → UserSelectView-Bh8_ghwS.js.map} +1 -1
- comfyui_frontend_package/static/assets/{ValueControlPopover-BEbJxP9Z.js → ValueControlPopover-BrAoQ_2-.js} +2 -2
- comfyui_frontend_package/static/assets/{ValueControlPopover-BEbJxP9Z.js.map → ValueControlPopover-BrAoQ_2-.js.map} +1 -1
- comfyui_frontend_package/static/assets/{WidgetAudioUI-BuXP7XBQ.js → WidgetAudioUI-BjV6M32Q.js} +2 -2
- comfyui_frontend_package/static/assets/{WidgetAudioUI-BuXP7XBQ.js.map → WidgetAudioUI-BjV6M32Q.js.map} +1 -1
- comfyui_frontend_package/static/assets/{WidgetButton-vKBzo4q0.js → WidgetButton-Dk30Nukl.js} +2 -2
- comfyui_frontend_package/static/assets/{WidgetButton-vKBzo4q0.js.map → WidgetButton-Dk30Nukl.js.map} +1 -1
- comfyui_frontend_package/static/assets/{WidgetChart-Dz4GcJwO.js → WidgetChart-BntGUEQZ.js} +2 -2
- comfyui_frontend_package/static/assets/{WidgetChart-Dz4GcJwO.js.map → WidgetChart-BntGUEQZ.js.map} +1 -1
- comfyui_frontend_package/static/assets/{WidgetColorPicker-FoC3o0Lp.js → WidgetColorPicker-CkqNsGhI.js} +2 -2
- comfyui_frontend_package/static/assets/{WidgetColorPicker-FoC3o0Lp.js.map → WidgetColorPicker-CkqNsGhI.js.map} +1 -1
- comfyui_frontend_package/static/assets/{WidgetGalleria-CV4Nv2wv.js → WidgetGalleria-BYYCCQyX.js} +2 -2
- comfyui_frontend_package/static/assets/{WidgetGalleria-CV4Nv2wv.js.map → WidgetGalleria-BYYCCQyX.js.map} +1 -1
- comfyui_frontend_package/static/assets/WidgetInputNumber-psomfHIy.js +2 -0
- comfyui_frontend_package/static/assets/WidgetInputNumber-psomfHIy.js.map +1 -0
- comfyui_frontend_package/static/assets/{WidgetInputNumber.vue_vue_type_script_setup_true_lang-D-IwEPPr.js → WidgetInputNumber.vue_vue_type_script_setup_true_lang-qjF5C0EN.js} +2 -2
- comfyui_frontend_package/static/assets/{WidgetInputNumber.vue_vue_type_script_setup_true_lang-D-IwEPPr.js.map → WidgetInputNumber.vue_vue_type_script_setup_true_lang-qjF5C0EN.js.map} +1 -1
- comfyui_frontend_package/static/assets/{WidgetInputText-Cv8Z1_b9.js → WidgetInputText-Btor0Uhs.js} +2 -2
- comfyui_frontend_package/static/assets/{WidgetInputText-Cv8Z1_b9.js.map → WidgetInputText-Btor0Uhs.js.map} +1 -1
- comfyui_frontend_package/static/assets/{WidgetLayoutField.vue_vue_type_script_setup_true_lang-DFWVBJH-.js → WidgetLayoutField.vue_vue_type_script_setup_true_lang-Bq1noASf.js} +2 -2
- comfyui_frontend_package/static/assets/{WidgetLayoutField.vue_vue_type_script_setup_true_lang-DFWVBJH-.js.map → WidgetLayoutField.vue_vue_type_script_setup_true_lang-Bq1noASf.js.map} +1 -1
- comfyui_frontend_package/static/assets/WidgetLegacy-Cj4T7tN3.js +2 -0
- comfyui_frontend_package/static/assets/WidgetLegacy-Cj4T7tN3.js.map +1 -0
- comfyui_frontend_package/static/assets/{WidgetMarkdown-C4CnxNoM.js → WidgetMarkdown-CsRRMdeD.js} +2 -2
- comfyui_frontend_package/static/assets/{WidgetMarkdown-C4CnxNoM.js.map → WidgetMarkdown-CsRRMdeD.js.map} +1 -1
- comfyui_frontend_package/static/assets/{WidgetRecordAudio-BQ9yATXo.js → WidgetRecordAudio-CbCqPJqI.js} +2 -2
- comfyui_frontend_package/static/assets/{WidgetRecordAudio-BQ9yATXo.js.map → WidgetRecordAudio-CbCqPJqI.js.map} +1 -1
- comfyui_frontend_package/static/assets/WidgetSelect-DcVQrOUl.js +2 -0
- comfyui_frontend_package/static/assets/WidgetSelect-DcVQrOUl.js.map +1 -0
- comfyui_frontend_package/static/assets/{WidgetSelect.vue_vue_type_script_setup_true_lang-EU2Y4eXi.js → WidgetSelect.vue_vue_type_script_setup_true_lang-B0Z0OQv6.js} +2 -2
- comfyui_frontend_package/static/assets/{WidgetSelect.vue_vue_type_script_setup_true_lang-EU2Y4eXi.js.map → WidgetSelect.vue_vue_type_script_setup_true_lang-B0Z0OQv6.js.map} +1 -1
- comfyui_frontend_package/static/assets/{WidgetTextarea-C3Wo0ULT.js → WidgetTextarea-OMPagx9K.js} +2 -2
- comfyui_frontend_package/static/assets/{WidgetTextarea-C3Wo0ULT.js.map → WidgetTextarea-OMPagx9K.js.map} +1 -1
- comfyui_frontend_package/static/assets/{WidgetToggleSwitch-BZUubsU5.js → WidgetToggleSwitch-mOArdF4c.js} +2 -2
- comfyui_frontend_package/static/assets/{WidgetToggleSwitch-BZUubsU5.js.map → WidgetToggleSwitch-mOArdF4c.js.map} +1 -1
- comfyui_frontend_package/static/assets/{WidgetWithControl.vue_vue_type_script_setup_true_lang-B7cz0rwK.js → WidgetWithControl.vue_vue_type_script_setup_true_lang-Bx6suA2O.js} +3 -3
- comfyui_frontend_package/static/assets/{WidgetWithControl.vue_vue_type_script_setup_true_lang-B7cz0rwK.js.map → WidgetWithControl.vue_vue_type_script_setup_true_lang-Bx6suA2O.js.map} +1 -1
- comfyui_frontend_package/static/assets/{audioService-CNb54hvw.js → audioService-jRjL5LtP.js} +2 -2
- comfyui_frontend_package/static/assets/{audioService-CNb54hvw.js.map → audioService-jRjL5LtP.js.map} +1 -1
- comfyui_frontend_package/static/assets/{audioUtils-ClyG3xvN.js → audioUtils-DsaLmBXU.js} +2 -2
- comfyui_frontend_package/static/assets/{audioUtils-ClyG3xvN.js.map → audioUtils-DsaLmBXU.js.map} +1 -1
- comfyui_frontend_package/static/assets/{commands-DHxq3nWN.js → commands-6krn3srk.js} +2 -2
- comfyui_frontend_package/static/assets/commands-6krn3srk.js.map +1 -0
- comfyui_frontend_package/static/assets/commands-B8TX-OdW.js +2 -0
- comfyui_frontend_package/static/assets/commands-B8TX-OdW.js.map +1 -0
- comfyui_frontend_package/static/assets/commands-BBMcY34D.js +2 -0
- comfyui_frontend_package/static/assets/commands-BBMcY34D.js.map +1 -0
- comfyui_frontend_package/static/assets/commands-C0R_Md8R.js +2 -0
- comfyui_frontend_package/static/assets/commands-C0R_Md8R.js.map +1 -0
- comfyui_frontend_package/static/assets/commands-CAv4QkZ-.js +2 -0
- comfyui_frontend_package/static/assets/commands-CAv4QkZ-.js.map +1 -0
- comfyui_frontend_package/static/assets/commands-CeIcZl_a.js +2 -0
- comfyui_frontend_package/static/assets/commands-CeIcZl_a.js.map +1 -0
- comfyui_frontend_package/static/assets/commands-CtwQRBL_.js +2 -0
- comfyui_frontend_package/static/assets/commands-CtwQRBL_.js.map +1 -0
- comfyui_frontend_package/static/assets/commands-DjX42wW9.js +2 -0
- comfyui_frontend_package/static/assets/commands-DjX42wW9.js.map +1 -0
- comfyui_frontend_package/static/assets/commands-DzwpXu9N.js +2 -0
- comfyui_frontend_package/static/assets/commands-DzwpXu9N.js.map +1 -0
- comfyui_frontend_package/static/assets/commands-E4h99f7h.js +2 -0
- comfyui_frontend_package/static/assets/commands-E4h99f7h.js.map +1 -0
- comfyui_frontend_package/static/assets/commands-we3Embjk.js +2 -0
- comfyui_frontend_package/static/assets/commands-we3Embjk.js.map +1 -0
- comfyui_frontend_package/static/assets/{index-B3VEOed6.js → index--yK73oka.js} +23 -23
- comfyui_frontend_package/static/assets/index--yK73oka.js.map +1 -0
- comfyui_frontend_package/static/assets/index-CofcAZPL.css +1 -0
- comfyui_frontend_package/static/assets/{index-B5S_Le6r.js → index-CwTFEsg4.js} +2 -2
- comfyui_frontend_package/static/assets/{index-B5S_Le6r.js.map → index-CwTFEsg4.js.map} +1 -1
- comfyui_frontend_package/static/assets/{index-CtDW77xi.js → index-Hz5b30sA.js} +2 -2
- comfyui_frontend_package/static/assets/{index-CtDW77xi.js.map → index-Hz5b30sA.js.map} +1 -1
- comfyui_frontend_package/static/assets/{keybindingService-50G4NbCc.js → keybindingService-XE4XFAxf.js} +2 -2
- comfyui_frontend_package/static/assets/{keybindingService-50G4NbCc.js.map → keybindingService-XE4XFAxf.js.map} +1 -1
- comfyui_frontend_package/static/assets/main-B1lLjnTc.js +17 -0
- comfyui_frontend_package/static/assets/main-B1lLjnTc.js.map +1 -0
- comfyui_frontend_package/static/assets/main-B6hk_BFB.js +17 -0
- comfyui_frontend_package/static/assets/main-B6hk_BFB.js.map +1 -0
- comfyui_frontend_package/static/assets/main-BJ1OB7_l.js +14 -0
- comfyui_frontend_package/static/assets/main-BJ1OB7_l.js.map +1 -0
- comfyui_frontend_package/static/assets/main-Beff11ll.js +17 -0
- comfyui_frontend_package/static/assets/main-Beff11ll.js.map +1 -0
- comfyui_frontend_package/static/assets/main-Bmv0nfqm.js +14 -0
- comfyui_frontend_package/static/assets/main-Bmv0nfqm.js.map +1 -0
- comfyui_frontend_package/static/assets/main-Bmv_vwNy.js +14 -0
- comfyui_frontend_package/static/assets/main-Bmv_vwNy.js.map +1 -0
- comfyui_frontend_package/static/assets/main-CC-DWYqg.js +17 -0
- comfyui_frontend_package/static/assets/main-CC-DWYqg.js.map +1 -0
- comfyui_frontend_package/static/assets/main-CPEN9kTz.js +17 -0
- comfyui_frontend_package/static/assets/main-CPEN9kTz.js.map +1 -0
- comfyui_frontend_package/static/assets/main-Ca_1lXEg.js +17 -0
- comfyui_frontend_package/static/assets/main-Ca_1lXEg.js.map +1 -0
- comfyui_frontend_package/static/assets/main-CiNLJloN.js +17 -0
- comfyui_frontend_package/static/assets/main-CiNLJloN.js.map +1 -0
- comfyui_frontend_package/static/assets/main-Dy-2iV5r.js +14 -0
- comfyui_frontend_package/static/assets/main-Dy-2iV5r.js.map +1 -0
- comfyui_frontend_package/static/assets/{vendor-primevue-Bp7MMXLP.js → vendor-primevue-DeKsC2uk.js} +2 -2
- comfyui_frontend_package/static/assets/{vendor-primevue-Bp7MMXLP.js.map → vendor-primevue-DeKsC2uk.js.map} +1 -1
- comfyui_frontend_package/static/index.html +1 -1
- {comfyui_frontend_package-1.37.10.dist-info → comfyui_frontend_package-1.38.0.dist-info}/METADATA +1 -1
- {comfyui_frontend_package-1.37.10.dist-info → comfyui_frontend_package-1.38.0.dist-info}/RECORD +134 -134
- comfyui_frontend_package/static/assets/GraphView-CepV6iZo.css +0 -1
- comfyui_frontend_package/static/assets/GraphView-_ZGu5uNf.js +0 -15
- comfyui_frontend_package/static/assets/GraphView-_ZGu5uNf.js.map +0 -1
- comfyui_frontend_package/static/assets/LazyImage.vue_vue_type_script_setup_true_lang-BHcWsrBj.js +0 -2
- comfyui_frontend_package/static/assets/LazyImage.vue_vue_type_script_setup_true_lang-BHcWsrBj.js.map +0 -1
- comfyui_frontend_package/static/assets/Load3D-CbCbkSys.js.map +0 -1
- comfyui_frontend_package/static/assets/SubscriptionRequiredDialogContent-BJ80blC4.css +0 -1
- comfyui_frontend_package/static/assets/SubscriptionRequiredDialogContent-BMLw-0ti.js +0 -2
- comfyui_frontend_package/static/assets/WidgetInputNumber-zsVb0Vit.js +0 -2
- comfyui_frontend_package/static/assets/WidgetInputNumber-zsVb0Vit.js.map +0 -1
- comfyui_frontend_package/static/assets/WidgetLegacy-Dh4xE798.js +0 -2
- comfyui_frontend_package/static/assets/WidgetLegacy-Dh4xE798.js.map +0 -1
- comfyui_frontend_package/static/assets/WidgetSelect-B9DwAKiE.js +0 -2
- comfyui_frontend_package/static/assets/WidgetSelect-B9DwAKiE.js.map +0 -1
- comfyui_frontend_package/static/assets/commands-2re7xZu6.js +0 -2
- comfyui_frontend_package/static/assets/commands-2re7xZu6.js.map +0 -1
- comfyui_frontend_package/static/assets/commands-5dfPmqrI.js +0 -2
- comfyui_frontend_package/static/assets/commands-5dfPmqrI.js.map +0 -1
- comfyui_frontend_package/static/assets/commands-9-tUiihM.js +0 -2
- comfyui_frontend_package/static/assets/commands-9-tUiihM.js.map +0 -1
- comfyui_frontend_package/static/assets/commands-BOYC3thj.js +0 -2
- comfyui_frontend_package/static/assets/commands-BOYC3thj.js.map +0 -1
- comfyui_frontend_package/static/assets/commands-CSrZnGH2.js +0 -2
- comfyui_frontend_package/static/assets/commands-CSrZnGH2.js.map +0 -1
- comfyui_frontend_package/static/assets/commands-DGL_KBDe.js +0 -2
- comfyui_frontend_package/static/assets/commands-DGL_KBDe.js.map +0 -1
- comfyui_frontend_package/static/assets/commands-DHxq3nWN.js.map +0 -1
- comfyui_frontend_package/static/assets/commands-DOgmN2m6.js +0 -2
- comfyui_frontend_package/static/assets/commands-DOgmN2m6.js.map +0 -1
- comfyui_frontend_package/static/assets/commands-DoQ2gxMh.js +0 -2
- comfyui_frontend_package/static/assets/commands-DoQ2gxMh.js.map +0 -1
- comfyui_frontend_package/static/assets/commands-irqWUFB-.js +0 -2
- comfyui_frontend_package/static/assets/commands-irqWUFB-.js.map +0 -1
- comfyui_frontend_package/static/assets/commands-xGVSTfS4.js +0 -2
- comfyui_frontend_package/static/assets/commands-xGVSTfS4.js.map +0 -1
- comfyui_frontend_package/static/assets/index-B3VEOed6.js.map +0 -1
- comfyui_frontend_package/static/assets/index-CPtP45Cb.css +0 -1
- comfyui_frontend_package/static/assets/main-B3vd7GL1.js +0 -17
- comfyui_frontend_package/static/assets/main-B3vd7GL1.js.map +0 -1
- comfyui_frontend_package/static/assets/main-BKCc2TkD.js +0 -17
- comfyui_frontend_package/static/assets/main-BKCc2TkD.js.map +0 -1
- comfyui_frontend_package/static/assets/main-BNvzUx74.js +0 -17
- comfyui_frontend_package/static/assets/main-BNvzUx74.js.map +0 -1
- comfyui_frontend_package/static/assets/main-BPu7av80.js +0 -17
- comfyui_frontend_package/static/assets/main-BPu7av80.js.map +0 -1
- comfyui_frontend_package/static/assets/main-BQ4z0Xxc.js +0 -14
- comfyui_frontend_package/static/assets/main-BQ4z0Xxc.js.map +0 -1
- comfyui_frontend_package/static/assets/main-BoyaoV4J.js +0 -14
- comfyui_frontend_package/static/assets/main-BoyaoV4J.js.map +0 -1
- comfyui_frontend_package/static/assets/main-CJ1ZmTbz.js +0 -14
- comfyui_frontend_package/static/assets/main-CJ1ZmTbz.js.map +0 -1
- comfyui_frontend_package/static/assets/main-DxByB8u3.js +0 -17
- comfyui_frontend_package/static/assets/main-DxByB8u3.js.map +0 -1
- comfyui_frontend_package/static/assets/main-Dyk43SJi.js +0 -17
- comfyui_frontend_package/static/assets/main-Dyk43SJi.js.map +0 -1
- comfyui_frontend_package/static/assets/main-QMLeyFJQ.js +0 -17
- comfyui_frontend_package/static/assets/main-QMLeyFJQ.js.map +0 -1
- comfyui_frontend_package/static/assets/main-f7MqrMkx.js +0 -14
- comfyui_frontend_package/static/assets/main-f7MqrMkx.js.map +0 -1
- {comfyui_frontend_package-1.37.10.dist-info → comfyui_frontend_package-1.38.0.dist-info}/WHEEL +0 -0
- {comfyui_frontend_package-1.37.10.dist-info → comfyui_frontend_package-1.38.0.dist-info}/top_level.txt +0 -0
comfyui_frontend_package/static/assets/LazyImage.vue_vue_type_script_setup_true_lang-BHcWsrBj.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var ce=Object.defineProperty;var m=(i,e)=>ce(i,"name",{value:e,configurable:!0});import{cG as E,a as I,c as se,_ as F,k as pe,cu as me,l as fe,h as q,s as ge,u as ee,d as te,m as ve}from"./index-B3VEOed6.js";import{b as le,E as V,a as he,bx as B,cM as O,cN as N,j as S,d,by as p,m as be,k as y,e as l,G as Z,c as g,q as _,u,p as ye,d3 as we,cw as _e,z as $,w as G,d2 as $e,eE as ke,r as x,A as D,f as re,o as Me,bg as Ue,dc as xe,cd as Se,s as X}from"./vendor-other-B8t_Wf2K.js";import{i as Ce,y as Ie,e as ne,a as Be}from"./vendor-primevue-Bp7MMXLP.js";import{u as ie}from"./vendor-vue-DaLZjKA7.js";function A(){const i=le({get supportsPreviewMetadata(){return I.getServerFeature("supports_preview_metadata")},get maxUploadSize(){return I.getServerFeature("max_upload_size")},get supportsManagerV4(){return I.getServerFeature("extension.manager.supports_v4")},get modelUploadButtonEnabled(){return E.value.model_upload_button_enabled??I.getServerFeature("model_upload_button_enabled",!1)},get assetDeletionEnabled(){return E.value.asset_deletion_enabled??I.getServerFeature("asset_deletion_enabled",!1)},get assetRenameEnabled(){return E.value.asset_rename_enabled??I.getServerFeature("asset_rename_enabled",!1)},get privateModelsEnabled(){return E.value.private_models_enabled??I.getServerFeature("private_models_enabled",!1)},get onboardingSurveyEnabled(){return E.value.onboarding_survey_enabled??I.getServerFeature("onboarding_survey_enabled",!0)},get huggingfaceModelImportEnabled(){return E.value.huggingface_model_import_enabled??I.getServerFeature("huggingface_model_import_enabled",!1)},get asyncModelUploadEnabled(){return E.value.async_model_upload_enabled??I.getServerFeature("async_model_upload_enabled",!1)}}),e=m((n,s)=>V(()=>I.getServerFeature(n,s)),"featureFlag");return{flags:he(i),featureFlag:e}}m(A,"useFeatureFlags");const Fe={class:"flex items-center gap-2 text-sm"},Ve={key:0,class:"text-base-foreground"},Le={key:1,class:"text-base-foreground"},je={class:"truncate"},Ee={key:0,class:"icon-[lucide--check] text-base-foreground"},De=B({inheritAttrs:!1,__name:"SingleSelect",props:O({label:{},options:{},listMaxHeight:{default:"28rem"},popoverMinWidth:{},popoverMaxWidth:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(i){const e=N(i,"modelValue"),{t:n}=ie(),s=m(o=>{if(o==null||!i.options)return i.label??"";const a=i.options.find(r=>r.value===o);return a?a.name:i.label??""},"getLabel"),t=V(()=>{if(!i.popoverMinWidth&&!i.popoverMaxWidth)return;const o=[];return i.popoverMinWidth&&o.push(`min-width: ${i.popoverMinWidth}`),i.popoverMaxWidth&&o.push(`max-width: ${i.popoverMaxWidth}`),o.join("; ")});return(o,a)=>(d(),S(p(Ce),be({modelValue:e.value,"onUpdate:modelValue":a[0]||(a[0]=r=>e.value=r)},o.$attrs,{options:o.options,"option-label":"name","option-value":"value",unstyled:"",pt:{root:m(({props:r})=>({class:["h-10 relative inline-flex cursor-pointer select-none items-center","rounded-lg","bg-secondary-background text-base-foreground","border-[2.5px] border-solid border-transparent","transition-all duration-200 ease-in-out","focus-within:border-node-component-border",{"opacity-60 cursor-default":r.disabled}]}),"root"),label:{class:"flex-1 flex items-center whitespace-nowrap pl-4 py-2 outline-hidden"},dropdown:{class:"flex shrink-0 items-center justify-center px-3 py-2"},overlay:{class:p(se)("mt-2 p-2 rounded-lg","bg-base-background text-base-foreground","border border-solid border-border-default")},listContainer:m(()=>({style:`max-height: min(${o.listMaxHeight}, 50vh)`,class:"scrollbar-custom"}),"listContainer"),list:{class:"flex flex-col gap-0 p-0 m-0 list-none border-none text-sm"},option:m(({context:r})=>({class:p(se)("flex items-center justify-between gap-3 px-2 py-3 rounded","hover:bg-secondary-background-hover",r.focused&&"bg-secondary-background-hover",r.selected&&"bg-secondary-background-selected hover:bg-secondary-background-selected")}),"option"),optionLabel:{class:"truncate"},optionGroupLabel:{class:"px-3 py-2 text-xs uppercase tracking-wide text-muted-foreground"},emptyMessage:{class:"px-3 py-2 text-sm text-muted-foreground"}},"aria-label":o.label||p(n)("g.singleSelectDropdown"),role:"combobox","aria-expanded":!1,"aria-haspopup":"listbox",tabindex:0}),{value:y(r=>[l("div",Fe,[ye(o.$slots,"icon"),r.value!==null&&r.value!==void 0?(d(),g("span",Ve,u(s(r.value)),1)):(d(),g("span",Le,u(o.label),1))])]),dropdownicon:y(()=>a[1]||(a[1]=[l("i",{class:"icon-[lucide--chevron-down] text-muted-foreground"},null,-1)])),option:y(({option:r,selected:c})=>[l("div",{class:"flex w-full items-center justify-between gap-3",style:Z(t.value)},[l("span",je,u(r.name),1),c?(d(),g("i",Ee)):_("",!0)],4)]),_:3},16,["modelValue","options","pt","aria-label"]))}});function Ae(i){const e={loras:"LoRA",ipadapter:"IP-Adapter",sams:"SAM",clip_vision:"CLIP Vision",animatediff_motion_lora:"AnimateDiff Motion LoRA",animatediff_models:"AnimateDiff Model",vae:"VAE",sam2:"SAM 2",controlnet:"ControlNet",gligen:"GLIGEN"};return e[i]?e[i]:i.split("_").map(n=>n.charAt(0).toUpperCase()+n.slice(1)).join(" ")}m(Ae,"formatDisplayName");const ze=["nlf"],de=we(()=>{const{state:i,isLoading:e,error:n,execute:s}=_e(async()=>(await I.getModelFolders()).filter(o=>!ze.includes(o.name)).map(o=>({name:Ae(o.name),value:o.name})).sort((o,a)=>o.name.localeCompare(a.name)),[],{immediate:!1,onError:m(t=>{console.error("Failed to fetch model types:",t)},"onError")});return{modelTypes:i,isLoading:e,error:n,fetchModelTypes:s}}),Re={class:"flex flex-col gap-4 text-sm text-muted-foreground"},Te={class:"flex flex-col gap-2"},He={class:"m-0"},Pe={class:"flex items-center gap-3 rounded-lg bg-secondary-background p-3"},qe=["src","alt"],We={class:"m-0 min-w-0 flex-1 truncate text-base-foreground"},Oe={class:"flex flex-col gap-2"},Ne={class:""},Ge={class:"flex items-center gap-2"},Ke=B({__name:"UploadModelConfirmation",props:O({metadata:{},previewImage:{}},{modelValue:{},modelModifiers:{}}),emits:["update:modelValue"],setup(i){const e=N(i,"modelValue"),{modelTypes:n,isLoading:s}=de();return(t,o)=>(d(),g("div",Re,[l("div",Te,[l("p",He,u(t.$t("assetBrowser.modelAssociatedWithLink")),1),l("div",Pe,[t.previewImage?(d(),g("img",{key:0,src:t.previewImage,alt:t.metadata?.filename||t.metadata?.name||"Model preview",class:"size-14 flex-shrink-0 rounded object-cover"},null,8,qe)):_("",!0),l("p",We,u(t.metadata?.filename||t.metadata?.name),1)])]),l("div",Oe,[l("label",Ne,u(t.$t("assetBrowser.modelTypeSelectorLabel")),1),$(De,{modelValue:e.value,"onUpdate:modelValue":o[0]||(o[0]=a=>e.value=a),label:p(s)?t.$t("g.loading"):t.$t("assetBrowser.modelTypeSelectorPlaceholder"),options:p(n),disabled:p(s),"data-attr":"upload-model-step2-type-selector"},null,8,["modelValue","label","options","disabled"]),l("div",Ge,[o[1]||(o[1]=l("i",{class:"icon-[lucide--circle-question-mark]"},null,-1)),l("span",null,u(t.$t("assetBrowser.notSureLeaveAsIs")),1)])])]))}}),Ye={class:"relative"},Je=["aria-label","src"],oe=B({__name:"VideoHelpDialog",props:O({videoUrl:{},ariaLabel:{default:"Help video"}},{modelValue:{type:Boolean,required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(i){const e=N(i,"modelValue"),n=m(s=>{s.key==="Escape"&&(s.stopImmediatePropagation(),s.stopPropagation(),s.preventDefault(),e.value=!1)},"handleEscapeKey");return G(e,s=>{if(s){const t=$e(document,"keydown",n,{capture:!0});ke(t)}},{immediate:!0}),(s,t)=>(d(),S(p(Ie),{visible:e.value,"onUpdate:visible":t[1]||(t[1]=o=>e.value=o),modal:"",closable:!1,"close-on-escape":!1,"dismissable-mask":!0,pt:{root:{class:"video-help-dialog"},header:{class:"!hidden"},content:{class:"!p-0"},mask:{class:"!bg-black/70"}},style:{width:"90vw"}},{default:y(()=>[l("div",Ye,[$(F,{variant:"textonly",size:"icon",class:"absolute top-4 right-6 z-10","aria-label":s.$t("g.close"),onClick:t[0]||(t[0]=o=>e.value=!1)},{default:y(()=>t[2]||(t[2]=[l("i",{class:"pi pi-times text-sm"},null,-1)])),_:1},8,["aria-label"]),l("video",{autoplay:"",muted:"",loop:"","aria-label":s.ariaLabel,class:"w-full rounded-lg",src:s.videoUrl},u(s.$t("g.videoFailedToLoad")),9,Je)])]),_:1},8,["visible"]))}}),Qe={class:"flex justify-end gap-2 w-full"},Xe={key:0,class:"mr-auto flex items-center gap-2"},Ze={key:4},et={key:0,class:"icon-[lucide--loader-circle] animate-spin"},tt={key:0,class:"icon-[lucide--loader-circle] animate-spin"},at=B({__name:"UploadModelFooter",props:{currentStep:{},isFetchingMetadata:{type:Boolean},isUploading:{type:Boolean},canFetchMetadata:{type:Boolean},canUploadModel:{type:Boolean},uploadStatus:{}},emits:["back","fetchMetadata","upload","close"],setup(i,{emit:e}){const{flags:n}=A(),s=x(!1),t=x(!1),o=e;return(a,r)=>(d(),g("div",Qe,[a.currentStep===1&&p(n).huggingfaceModelImportEnabled?(d(),g("div",Xe,[r[10]||(r[10]=l("i",{class:"icon-[lucide--circle-question-mark] text-muted-foreground"},null,-1)),$(F,{variant:"muted-textonly",size:"sm","data-attr":"upload-model-step1-help-civitai",onClick:r[0]||(r[0]=c=>s.value=!0)},{default:y(()=>[D(u(a.$t("assetBrowser.providerCivitai")),1)]),_:1}),$(F,{variant:"muted-textonly",size:"sm","data-attr":"upload-model-step1-help-huggingface",onClick:r[1]||(r[1]=c=>t.value=!0)},{default:y(()=>[D(u(a.$t("assetBrowser.providerHuggingFace")),1)]),_:1})])):a.currentStep===1?(d(),S(F,{key:1,variant:"muted-textonly",size:"lg",class:"mr-auto underline","data-attr":"upload-model-step1-help-link",onClick:r[2]||(r[2]=c=>s.value=!0)},{default:y(()=>[r[11]||(r[11]=l("i",{class:"icon-[lucide--circle-question-mark]"},null,-1)),l("span",null,u(a.$t("assetBrowser.uploadModelHowDoIFindThis")),1)]),_:1})):_("",!0),a.currentStep===1?(d(),S(F,{key:2,variant:"muted-textonly",size:"lg","data-attr":"upload-model-step1-cancel-button",disabled:a.isFetchingMetadata||a.isUploading,onClick:r[3]||(r[3]=c=>o("close"))},{default:y(()=>[D(u(a.$t("g.cancel")),1)]),_:1},8,["disabled"])):_("",!0),a.currentStep!==1&&a.currentStep!==3?(d(),S(F,{key:3,variant:"muted-textonly",size:"lg","data-attr":`upload-model-step${a.currentStep}-back-button`,disabled:a.isFetchingMetadata||a.isUploading,onClick:r[4]||(r[4]=c=>o("back"))},{default:y(()=>[D(u(a.$t("g.back")),1)]),_:1},8,["data-attr","disabled"])):(d(),g("span",Ze)),a.currentStep===1?(d(),S(F,{key:5,variant:"secondary",size:"lg","data-attr":"upload-model-step1-continue-button",disabled:!a.canFetchMetadata||a.isFetchingMetadata,onClick:r[5]||(r[5]=c=>o("fetchMetadata"))},{default:y(()=>[a.isFetchingMetadata?(d(),g("i",et)):_("",!0),l("span",null,u(a.$t("g.continue")),1)]),_:1},8,["disabled"])):a.currentStep===2?(d(),S(F,{key:6,variant:"secondary",size:"lg","data-attr":"upload-model-step2-confirm-button",disabled:!a.canUploadModel||a.isUploading,onClick:r[6]||(r[6]=c=>o("upload"))},{default:y(()=>[a.isUploading?(d(),g("i",tt)):_("",!0),l("span",null,u(a.$t("assetBrowser.upload")),1)]),_:1},8,["disabled"])):a.currentStep===3&&(a.uploadStatus==="success"||a.uploadStatus==="processing")?(d(),S(F,{key:7,variant:"secondary","data-attr":"upload-model-step3-finish-button",onClick:r[7]||(r[7]=c=>o("close"))},{default:y(()=>[D(u(a.uploadStatus==="processing"?a.$t("g.close"):a.$t("assetBrowser.finish")),1)]),_:1})):_("",!0),$(oe,{modelValue:s.value,"onUpdate:modelValue":r[8]||(r[8]=c=>s.value=c),"video-url":"https://media.comfy.org/compressed_768/civitai_howto.webm","aria-label":a.$t("assetBrowser.uploadModelHelpVideo")},null,8,["modelValue","aria-label"]),$(oe,{modelValue:t.value,"onUpdate:modelValue":r[9]||(r[9]=c=>t.value=c),"video-url":"https://media.comfy.org/byom/huggingfacehowto.mp4","aria-label":a.$t("assetBrowser.uploadModelHelpVideo")},null,8,["modelValue","aria-label"])]))}}),st={class:"flex flex-1 flex-col gap-6 text-sm text-muted-foreground"},ot={key:0,class:"flex flex-col gap-2"},lt={class:"m-0 font-bold"},rt={class:"m-0"},nt={class:"flex flex-row items-center gap-3 rounded-lg bg-modal-card-background p-4"},it=["src","alt"],dt={class:"flex min-w-0 flex-1 flex-col items-start justify-center gap-1"},ut={class:"m-0 w-full truncate text-base-foreground"},ct={class:"m-0 text-sm text-muted"},pt={key:1,class:"flex flex-col gap-2"},mt={class:"m-0 font-bold"},ft={class:"m-0"},gt={class:"flex flex-row items-center gap-3 rounded-lg bg-modal-card-background p-4"},vt=["src","alt"],ht={class:"flex min-w-0 flex-1 flex-col items-start justify-center gap-1"},bt={class:"m-0 w-full truncate text-base-foreground"},yt={class:"m-0 text-sm text-muted"},wt={key:2,class:"flex flex-1 flex-col items-center justify-center gap-6"},_t={class:"text-center"},$t={class:"m-0 text-sm font-bold"},kt={key:0,class:"text-sm text-muted mb-0"},Mt=B({__name:"UploadModelProgress",props:{result:{},error:{},metadata:{},modelType:{},previewImage:{}},setup(i){return(e,n)=>(d(),g("div",st,[e.result==="processing"?(d(),g("div",ot,[l("p",lt,u(e.$t("assetBrowser.processingModel")),1),l("p",rt,u(e.$t("assetBrowser.processingModelDescription")),1),l("div",nt,[e.previewImage?(d(),g("img",{key:0,src:e.previewImage,alt:e.metadata?.filename||e.metadata?.name||"Model preview",class:"size-14 flex-shrink-0 rounded object-cover"},null,8,it)):_("",!0),l("div",dt,[l("p",ut,u(e.metadata?.filename||e.metadata?.name),1),l("p",ct,u(e.modelType),1)])])])):e.result==="success"?(d(),g("div",pt,[l("p",mt,u(e.$t("assetBrowser.modelUploaded")),1),l("p",ft,u(e.$t("assetBrowser.findInLibrary",{type:e.modelType})),1),l("div",gt,[e.previewImage?(d(),g("img",{key:0,src:e.previewImage,alt:e.metadata?.filename||e.metadata?.name||"Model preview",class:"size-14 flex-shrink-0 rounded object-cover"},null,8,vt)):_("",!0),l("div",ht,[l("p",bt,u(e.metadata?.filename||e.metadata?.name),1),l("p",yt,u(e.modelType),1)])])])):e.result==="error"?(d(),g("div",wt,[n[0]||(n[0]=l("i",{class:"icon-[lucide--x-circle] text-6xl text-error"},null,-1)),l("div",_t,[l("p",$t,u(e.$t("assetBrowser.uploadFailed")),1),e.error?(d(),g("p",kt,u(e.error),1)):_("",!0)])])):_("",!0)]))}}),W={type:"civitai",name:"Civitai",hostnames:["civitai.com"]},ue={type:"huggingface",name:"Hugging Face",hostnames:["huggingface.co"]};function ae(i,e){try{const n=new URL(i).hostname.toLowerCase();return e.hostnames.some(s=>n===s||n.endsWith(`.${s}`))}catch{return!1}}m(ae,"validateSourceUrl");const Ut={class:"flex flex-col justify-between h-full gap-6 text-sm"},xt={class:"flex flex-col gap-6"},St={class:"flex flex-col gap-2"},Ct={class:"m-0 text-foreground"},It={class:"m-0"},Bt={class:"m-0 text-muted-foreground"},Ft={class:"inline-flex items-center gap-1 flex-wrap mt-2"},Vt={class:"inline-flex items-center gap-1"},Lt=["alt"],jt={class:"inline-flex items-center gap-1"},Et=["alt"],Dt={class:"flex flex-col gap-2"},At={class:"relative"},zt={key:0,class:"icon-[lucide--circle-check-big] absolute top-1/2 right-3 size-5 -translate-y-1/2 text-green-500"},Rt={key:0,class:"text-xs text-error"},Tt={key:1,class:"text-foreground"},Ht={class:"font-bold italic"},Pt={class:"text-sm text-muted"},qt="/assets/images/civitai.svg",Wt="https://civitai.com/models",Ot="/assets/images/hf-logo.svg",Nt="https://huggingface.co",Gt=B({__name:"UploadModelUrlInput",props:{modelValue:{},error:{}},emits:["update:modelValue"],setup(i,{emit:e}){const{flags:n}=A(),s=i,t=e,o=V({get:m(()=>s.modelValue,"get"),set:m(c=>t("update:modelValue",c),"set")}),a=[W,ue],r=V(()=>{const c=o.value.trim();return c?a.some(w=>ae(c,w)):!1});return(c,w)=>{const k=re("i18n-t");return d(),g("div",Ut,[l("div",xt,[l("div",St,[l("p",Ct,u(c.$t("assetBrowser.uploadModelDescription1Generic")),1),l("div",It,[l("p",Bt,u(c.$t("assetBrowser.uploadModelDescription2Generic")),1),l("span",Ft,[l("span",Vt,[l("img",{src:qt,alt:c.$t("assetBrowser.providerCivitai"),class:"w-4 h-4"},null,8,Lt),l("a",{href:Wt,target:"_blank",rel:"noopener noreferrer",class:"text-muted underline"},u(c.$t("assetBrowser.providerCivitai")),1),w[1]||(w[1]=l("span",null,",",-1))]),l("span",jt,[l("img",{src:Ot,alt:c.$t("assetBrowser.providerHuggingFace"),class:"w-4 h-4"},null,8,Et),l("a",{href:Nt,target:"_blank",rel:"noopener noreferrer",class:"text-muted underline"},u(c.$t("assetBrowser.providerHuggingFace")),1)])])])]),l("div",Dt,[l("div",At,[$(p(ne),{modelValue:o.value,"onUpdate:modelValue":w[0]||(w[0]=h=>o.value=h),autofocus:"",placeholder:c.$t("assetBrowser.genericLinkPlaceholder"),class:"w-full border-0 bg-secondary-background p-4 pr-10","data-attr":"upload-model-step1-url-input"},null,8,["modelValue","placeholder"]),r.value?(d(),g("i",zt)):_("",!0)]),c.error?(d(),g("p",Rt,u(c.error),1)):p(n).asyncModelUploadEnabled?_("",!0):(d(),g("p",Tt,[$(k,{keypath:"assetBrowser.maxFileSize",tag:"span"},{size:y(()=>[l("span",Ht,u(c.$t("assetBrowser.maxFileSizeValue")),1)]),_:1})]))])]),l("div",Pt,u(c.$t("assetBrowser.uploadModelHelpFooterText")),1)])}}}),Kt={class:"flex flex-col gap-6 text-sm text-muted-foreground"},Yt={class:"flex flex-col gap-2"},Jt={class:"m-0"},Qt={class:"list-disc space-y-1 pl-5 mt-0"},Xt={href:"https://civitai.com/models",target:"_blank",class:"text-muted-foreground"},Zt={key:0},ea={class:"font-bold italic"},ta={class:"flex flex-col gap-2"},aa={class:"font-bold italic"},sa={class:"relative"},oa={key:0,class:"icon-[lucide--circle-check-big] absolute top-1/2 right-3 size-5 -translate-y-1/2 text-green-500"},la={key:0,class:"text-xs text-error"},ra={href:"https://civitai.com/models/10706/luisap-z-image-and-qwen-pixel-art-refiner?modelVersionId=2225295",target:"_blank",class:"text-muted-foreground"},na=B({__name:"UploadModelUrlInputCivitai",props:O({error:{}},{modelValue:{required:!0},modelModifiers:{}}),emits:["update:modelValue"],setup(i){const{flags:e}=A(),n=N(i,"modelValue"),s=V(()=>{const t=n.value.trim();return t?ae(t,W):!1});return(t,o)=>{const a=re("i18n-t");return d(),g("div",Kt,[l("div",Yt,[l("p",Jt,u(t.$t("assetBrowser.uploadModelDescription1")),1),l("ul",Qt,[l("li",null,[$(a,{keypath:"assetBrowser.uploadModelDescription2",tag:"span"},{link:y(()=>[l("a",Xt,u(t.$t("assetBrowser.uploadModelDescription2Link")),1)]),_:1})]),p(e).asyncModelUploadEnabled?_("",!0):(d(),g("li",Zt,[$(a,{keypath:"assetBrowser.uploadModelDescription3",tag:"span"},{size:y(()=>[l("span",ea,u(t.$t("assetBrowser.maxFileSizeValue")),1)]),_:1})]))])]),l("div",ta,[$(a,{keypath:"assetBrowser.civitaiLinkLabel",tag:"label",class:"mb-0"},{download:y(()=>[l("span",aa,u(t.$t("assetBrowser.civitaiLinkLabelDownload")),1)]),_:1}),l("div",sa,[$(p(ne),{modelValue:n.value,"onUpdate:modelValue":o[0]||(o[0]=r=>n.value=r),autofocus:"",placeholder:t.$t("assetBrowser.civitaiLinkPlaceholder"),class:"w-full border-0 bg-secondary-background p-4 pr-10","data-attr":"upload-model-step1-url-input"},null,8,["modelValue","placeholder"]),s.value?(d(),g("i",oa)):_("",!0)]),t.error?(d(),g("p",la,u(t.error),1)):(d(),S(a,{key:1,keypath:"assetBrowser.civitaiLinkExample",tag:"p",class:"text-xs"},{example:y(()=>[l("strong",null,u(t.$t("assetBrowser.civitaiLinkExampleStrong")),1)]),link:y(()=>[l("a",ra,u(t.$t("assetBrowser.civitaiLinkExampleUrl")),1)]),_:1}))])])}}});function ia(i){const{t:e}=ie(),n=pe(),s=me(),t=fe(),{flags:o}=A(),a=x(1),r=x(!1),c=x(!1),w=x(),k=x(""),h=x({url:"",name:"",tags:[]}),v=x(),M=o.huggingfaceModelImportEnabled?[W,ue]:[W],j=V(()=>{const U=h.value.url.trim();return U?M.find(b=>ae(U,b))??null:null});G(()=>h.value.url,()=>{k.value=""});const T=V(()=>h.value.url.trim().length>0),H=V(()=>!!v.value);async function K(){if(!T.value)return;let U=h.value.url.trim();try{U=new URL(encodeURI(U)).toString()}catch{}if(h.value.url=U,!j.value){const f=M.map(C=>C.name).join(", ");k.value=e("assetBrowser.unsupportedUrlSource",{sources:f});return}r.value=!0;try{const f=await q.getAssetMetadata(h.value.url);if(f.filename)try{f.filename=decodeURIComponent(f.filename)}catch{}if(f.name)try{f.name=decodeURIComponent(f.name)}catch{}if(h.value.metadata=f,h.value.name=f.filename||f.name||"",h.value.previewImage=f.preview_image,f.tags&&f.tags.length>0){h.value.tags=f.tags;const C=f.tags.find(z=>i.value.some(R=>R.value===z));C&&(v.value=C)}a.value=2}catch(f){console.error("Failed to retrieve metadata:",f),k.value=f instanceof Error?f.message:ge("assetBrowser.uploadModelFailedToRetrieveMetadata","Failed to retrieve metadata. Please check the link and try again."),a.value=1}finally{r.value=!1}}m(K,"fetchMetadata");async function Y(U){if(h.value.previewImage)try{const b=U.split(".")[0];let f="png";const C=h.value.previewImage.match(/^data:image\/([^;]+);/);return C&&(f=C[1]==="jpeg"?"jpg":C[1]),(await q.uploadAssetFromBase64({data:h.value.previewImage,name:`${b}_preview.${f}`,tags:["preview"]})).id}catch(b){console.error("Failed to upload preview image:",b);return}}m(Y,"uploadPreviewImage");async function P(){if(!v.value)return;const U=t.getAllNodeProviders(v.value);(await Promise.allSettled(U.map(f=>n.updateModelsForNodeType(f.nodeDef.name)))).forEach((f,C)=>{f.status==="rejected"&&console.error(`Failed to refresh ${U[C].nodeDef.name}:`,f.reason)})}m(P,"refreshModelCaches");async function J(){if(!H.value)return!1;const U=j.value;if(!U)return k.value=e("assetBrowser.noValidSourceDetected"),!1;c.value=!0;try{const b=v.value?["models",v.value]:["models"],f=h.value.metadata?.filename||h.value.metadata?.name||"model",C=await Y(f),z={source:U.type,source_url:h.value.url,model_type:v.value};if(o.asyncModelUploadEnabled){const R=await q.uploadAssetAsync({source_url:h.value.url,tags:b,user_metadata:z,preview_id:C});R.type==="async"&&R.task.status!=="completed"?(v.value&&s.trackDownload(R.task.task_id,v.value),w.value="processing"):(w.value="success",await P()),a.value=3}else await q.uploadAssetFromUrl({url:h.value.url,name:f,tags:b,user_metadata:z,preview_id:C}),w.value="success",await P(),a.value=3}catch(b){console.error("Failed to upload asset:",b),w.value="error",k.value=b instanceof Error?b.message:"Failed to upload model",a.value=3}finally{c.value=!1}return w.value!=="error"}m(J,"uploadModel");function Q(){a.value>1&&(a.value=a.value-1)}return m(Q,"goToPreviousStep"),{currentStep:a,isFetchingMetadata:r,isUploading:c,uploadStatus:w,uploadError:k,wizardData:h,selectedModelType:v,canFetchMetadata:T,canUploadModel:H,detectedSource:j,fetchMetadata:K,uploadModel:J,goToPreviousStep:Q}}m(ia,"useUploadModelWizard");const da={class:"upload-model-dialog flex flex-col gap-6 border-t border-border-default p-4 pt-6"},ua={class:"min-h-0 flex-auto basis-0 overflow-y-auto"},ca=B({__name:"UploadModelDialog",emits:["upload-success"],setup(i,{emit:e}){const{flags:n}=A(),s=ee(),{modelTypes:t,fetchModelTypes:o}=de(),a=e,{currentStep:r,isFetchingMetadata:c,isUploading:w,uploadStatus:k,uploadError:h,wizardData:v,selectedModelType:M,canFetchMetadata:j,canUploadModel:T,fetchMetadata:H,uploadModel:K,goToPreviousStep:Y}=ia(t);async function P(){await H()}m(P,"handleFetchMetadata");async function J(){await K()&&a("upload-success")}m(J,"handleUploadModel");function Q(){s.closeDialog({key:"upload-model"})}return m(Q,"handleClose"),Me(()=>{o()}),(U,b)=>(d(),g("div",da,[l("div",ua,[p(r)===1&&p(n).huggingfaceModelImportEnabled?(d(),S(Gt,{key:0,modelValue:p(v).url,"onUpdate:modelValue":b[0]||(b[0]=f=>p(v).url=f),error:p(h)},null,8,["modelValue","error"])):p(r)===1?(d(),S(na,{key:1,modelValue:p(v).url,"onUpdate:modelValue":b[1]||(b[1]=f=>p(v).url=f),error:p(h)},null,8,["modelValue","error"])):p(r)===2?(d(),S(Ke,{key:2,modelValue:p(M),"onUpdate:modelValue":b[2]||(b[2]=f=>Ue(M)?M.value=f:null),metadata:p(v).metadata,"preview-image":p(v).previewImage},null,8,["modelValue","metadata","preview-image"])):p(r)===3&&p(k)!=null?(d(),S(Mt,{key:3,result:p(k),error:p(h),metadata:p(v).metadata,"model-type":p(M),"preview-image":p(v).previewImage},null,8,["result","error","metadata","model-type","preview-image"])):_("",!0)]),$(at,{class:"flex-shrink-0","current-step":p(r),"is-fetching-metadata":p(c),"is-uploading":p(w),"can-fetch-metadata":p(j),"can-upload-model":p(T),"upload-status":p(k),onBack:p(Y),onFetchMetadata:P,onUpload:J,onClose:Q},null,8,["current-step","is-fetching-metadata","is-uploading","can-fetch-metadata","can-upload-model","upload-status","onBack"])]))}}),pa=te(ca,[["__scopeId","data-v-0825b930"]]),ma=""+new URL("images/civitai.svg",import.meta.url).href,fa={class:"flex items-center gap-2 p-4 font-bold"},ga={key:0,src:ma,class:"size-4"},va={class:"rounded-full bg-white px-1.5 py-0 text-xxs font-inter font-semibold uppercase text-black"},ha=B({__name:"UploadModelDialogHeader",setup(i){const{flags:e}=A(),n=V(()=>e.huggingfaceModelImportEnabled?"assetBrowser.uploadModelGeneric":"assetBrowser.uploadModelFromCivitai");return(s,t)=>(d(),g("div",fa,[p(e).huggingfaceModelImportEnabled?_("",!0):(d(),g("img",ga)),l("span",null,u(s.$t(n.value)),1),l("span",va,u(s.$t("g.beta")),1)]))}}),ba={},ya={class:"flex flex-1 flex-col items-center justify-center text-base text-muted-foreground"},wa={class:"m-0 max-w-md"};function _a(i,e){return d(),g("div",ya,[l("p",wa,u(i.$t("assetBrowser.upgradeFeatureDescription")),1)])}m(_a,"_sfc_render$1");const $a=te(ba,[["render",_a]]),ka={class:"flex flex-wrap justify-end gap-2 w-full"},Ma={href:"https://blog.comfy.org/p/comfy-cloud-new-features-and-pricing",target:"_blank",rel:"noopener noreferrer",class:"text-muted-foreground mr-auto underline flex items-center gap-2"},Ua=B({__name:"UploadModelUpgradeModalFooter",emits:["close","subscribe"],setup(i,{emit:e}){const n=e;return(s,t)=>(d(),g("div",ka,[l("a",Ma,[t[2]||(t[2]=l("i",{class:"icon-[lucide--external-link]"},null,-1)),l("span",null,u(s.$t("g.learnMore")),1)]),$(F,{variant:"textonly",onClick:t[0]||(t[0]=o=>n("close"))},{default:y(()=>[D(u(s.$t("g.close")),1)]),_:1}),$(F,{variant:"secondary",onClick:t[1]||(t[1]=o=>n("subscribe"))},{default:y(()=>[D(u(s.$t("subscription.required.subscribe")),1)]),_:1})]))}}),xa={class:"flex flex-col justify-between gap-10 p-4 border-t border-border-default w-auto max-w-[min(500px,90vw)]"},Sa=B({__name:"UploadModelUpgradeModal",setup(i){const e=ee(),{showSubscriptionDialog:n}=ve();function s(){e.closeDialog({key:"upload-model-upgrade"})}m(s,"handleClose");function t(){n()}return m(t,"handleSubscribe"),(o,a)=>(d(),g("div",xa,[$($a),$(Ua,{onClose:s,onSubscribe:t})]))}}),Ca={},Ia={class:"flex items-center gap-2 p-4 font-bold"};function Ba(i,e){return d(),g("div",Ia,[l("span",null,u(i.$t("assetBrowser.upgradeToUnlockFeature")),1)])}m(Ba,"_sfc_render");const Fa=te(Ca,[["render",Ba]]);function Wa(i){const e=ee(),{flags:n}=A(),s=V(()=>n.modelUploadButtonEnabled);function t(){n.privateModelsEnabled?e.showDialog({key:"upload-model",headerComponent:ha,component:pa,props:{onUploadSuccess:m(async()=>{await i?.()},"onUploadSuccess")},dialogComponentProps:{pt:{header:"py-0! pl-0!",content:"p-0! overflow-y-hidden!"}}}):e.showDialog({key:"upload-model-upgrade",headerComponent:Fa,component:Sa,dialogComponentProps:{pt:{header:"py-0! pl-0!",content:"p-0! overflow-y-hidden!"}}})}return m(t,"showUploadDialog"),{isUploadButtonEnabled:s,showUploadDialog:t}}m(Wa,"useModelUpload");const Va=""+new URL("images/default-template.png",import.meta.url).href;function La(i,e,n={}){const{immediate:s=!0,...t}=n,o=typeof window<"u"&&"IntersectionObserver"in window,a=x(!1);let r=null;const c=m(()=>{r&&(r.disconnect(),r=null)},"cleanup"),w=m(()=>{c(),!(!o||!i.value)&&(r=new IntersectionObserver(h=>{a.value=h.some(v=>v.isIntersecting),e(h,r)},t),r.observe(i.value))},"observe"),k=m(()=>{r&&i.value&&r.unobserve(i.value)},"unobserve");return s&&G(i,w,{immediate:!0,flush:"post"}),xe(c),{isSupported:o,isIntersecting:a,observe:w,unobserve:k,cleanup:c}}m(La,"useIntersectionObserver");class ja{static{m(this,"MediaCacheService")}cache=le(new Map);maxSize;maxAge;cleanupInterval=null;urlRefCount=new Map;constructor(e={}){this.maxSize=e.maxSize??100,this.maxAge=e.maxAge??1800*1e3,this.startCleanupInterval()}startCleanupInterval(){this.cleanupInterval=window.setInterval(()=>{this.cleanup()},300*1e3)}cleanup(){const e=Date.now(),n=[];for(const[s,t]of Array.from(this.cache.entries()))e-t.lastAccessed>this.maxAge&&(t.objectUrl?(this.urlRefCount.get(t.objectUrl)||0)===0&&(URL.revokeObjectURL(t.objectUrl),this.urlRefCount.delete(t.objectUrl),n.push(s)):n.push(s));if(n.forEach(s=>this.cache.delete(s)),this.cache.size>this.maxSize){const s=Array.from(this.cache.entries());s.sort((a,r)=>a[1].lastAccessed-r[1].lastAccessed);let t=0;const o=this.cache.size-this.maxSize;for(const[a,r]of s){if(t>=o)break;r.objectUrl?(this.urlRefCount.get(r.objectUrl)||0)===0&&(URL.revokeObjectURL(r.objectUrl),this.urlRefCount.delete(r.objectUrl),this.cache.delete(a),t++):(this.cache.delete(a),t++)}}}async getCachedMedia(e){let n=this.cache.get(e);if(n)return n.lastAccessed=Date.now(),n;n={src:e,isLoading:!0,lastAccessed:Date.now()},this.cache.set(e,n);try{const s=await fetch(e,{cache:"force-cache"});if(!s.ok)throw new Error(`Failed to fetch: ${s.status}`);const t=await s.blob(),o=URL.createObjectURL(t),a={src:e,blob:t,objectUrl:o,isLoading:!1,lastAccessed:Date.now()};return this.cache.set(e,a),a}catch(s){console.warn("Failed to cache media:",e,s);const t={src:e,error:!0,isLoading:!1,lastAccessed:Date.now()};return this.cache.set(e,t),t}}acquireUrl(e){const n=this.cache.get(e);if(n?.objectUrl){const s=this.urlRefCount.get(n.objectUrl)||0;return this.urlRefCount.set(n.objectUrl,s+1),n.objectUrl}}releaseUrl(e){const n=this.cache.get(e);if(n?.objectUrl){const s=(this.urlRefCount.get(n.objectUrl)||1)-1;s<=0?(URL.revokeObjectURL(n.objectUrl),this.urlRefCount.delete(n.objectUrl),this.cache.delete(e)):this.urlRefCount.set(n.objectUrl,s)}}clearCache(){for(const e of Array.from(this.cache.values()))e.objectUrl&&URL.revokeObjectURL(e.objectUrl);this.cache.clear(),this.urlRefCount.clear()}destroy(){this.cleanupInterval&&(clearInterval(this.cleanupInterval),this.cleanupInterval=null),this.clearCache()}}let L=null;function Ea(i){return L||(L=new ja(i)),{getCachedMedia:m(o=>L.getCachedMedia(o),"getCachedMedia"),clearCache:m(()=>L.clearCache(),"clearCache"),acquireUrl:m(o=>L.acquireUrl(o),"acquireUrl"),releaseUrl:m(o=>L.releaseUrl(o),"releaseUrl"),cache:L.cache}}m(Ea,"useMediaCache");typeof window<"u"&&window.addEventListener("beforeunload",()=>{L&&L.destroy()});const Da=["src","alt"],Aa={key:2,class:"absolute inset-0 flex items-center justify-center"},za=["alt"],Oa=B({__name:"LazyImage",props:{src:{},alt:{default:""},containerClass:{type:[Array,Object,String,Number,null,Boolean],default:""},imageClass:{type:[Array,Object,String,Number,null,Boolean],default:""},imageStyle:{},rootMargin:{default:"300px"}},setup(i){const e=x(null),n=x(!1),s=x(!1),t=x(!1),o=x(void 0),{getCachedMedia:a,acquireUrl:r,releaseUrl:c}=Ea();La(e,v=>{const M=v[0];n.value=M?.isIntersecting??!1},{rootMargin:i.rootMargin,threshold:.1});const w=V(()=>n.value);G(w,async v=>{if(v&&i.src&&!o.value&&!t.value)try{const M=await a(i.src);if(M.error)t.value=!0;else if(M.objectUrl){const j=r(i.src);o.value=j||M.objectUrl}else o.value=i.src}catch(M){console.warn("Failed to load cached media:",M),o.value=i.src}else v||(o.value?.startsWith("blob:")&&c(i.src),s.value=!1,o.value=void 0,t.value=!1)},{immediate:!0});const k=m(()=>{s.value=!0,t.value=!1},"onImageLoad"),h=m(()=>{t.value=!0,s.value=!1},"onImageError");return Se(()=>{o.value?.startsWith("blob:")&&c(i.src)}),(v,M)=>(d(),g("div",{ref_key:"containerRef",ref:e,class:X(["relative flex h-full w-full items-center justify-center overflow-hidden",v.containerClass])},[s.value?_("",!0):(d(),S(p(Be),{key:0,width:"100%",height:"100%",class:"absolute inset-0"})),o.value?(d(),g("img",{key:1,src:o.value,alt:v.alt,draggable:"false",class:X(v.imageClass),style:Z(v.imageStyle),onLoad:k,onError:h},null,46,Da)):_("",!0),t.value?(d(),g("div",Aa,[l("img",{src:Va,alt:v.alt,draggable:"false",class:X(v.imageClass),style:Z(v.imageStyle)},null,14,za)])):_("",!0)],2))}});export{De as _,Wa as a,Va as b,Oa as c,La as d,A as u};
|
|
2
|
-
//# sourceMappingURL=LazyImage.vue_vue_type_script_setup_true_lang-BHcWsrBj.js.map
|
comfyui_frontend_package/static/assets/LazyImage.vue_vue_type_script_setup_true_lang-BHcWsrBj.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LazyImage.vue_vue_type_script_setup_true_lang-BHcWsrBj.js","sources":["../../src/composables/useFeatureFlags.ts","../../src/components/input/SingleSelect.vue","../../src/platform/assets/composables/useModelTypes.ts","../../src/platform/assets/components/UploadModelConfirmation.vue","../../src/platform/assets/components/VideoHelpDialog.vue","../../src/platform/assets/components/UploadModelFooter.vue","../../src/platform/assets/importSources/civitaiImportSource.ts","../../src/platform/assets/importSources/huggingfaceImportSource.ts","../../src/platform/assets/utils/importSourceUtil.ts","../../src/platform/assets/components/UploadModelUrlInput.vue","../../src/platform/assets/components/UploadModelUrlInputCivitai.vue","../../src/platform/assets/composables/useUploadModelWizard.ts","../../src/platform/assets/components/UploadModelDialog.vue","../../../../../../../assets/images/civitai.svg","../../src/platform/assets/components/UploadModelDialogHeader.vue","../../src/platform/assets/components/UploadModelUpgradeModalBody.vue","../../src/platform/assets/components/UploadModelUpgradeModalFooter.vue","../../src/platform/assets/components/UploadModelUpgradeModal.vue","../../src/platform/assets/components/UploadModelUpgradeModalHeader.vue","../../src/platform/assets/composables/useModelUpload.ts","../../../../../../../assets/images/default-template.png","../../src/composables/useIntersectionObserver.ts","../../src/services/mediaCacheService.ts","../../src/components/common/LazyImage.vue"],"sourcesContent":["import { computed, reactive, readonly } from 'vue'\n\nimport { remoteConfig } from '@/platform/remoteConfig/remoteConfig'\nimport { api } from '@/scripts/api'\n\n/**\n * Known server feature flags (top-level, not extensions)\n */\nexport enum ServerFeatureFlag {\n SUPPORTS_PREVIEW_METADATA = 'supports_preview_metadata',\n MAX_UPLOAD_SIZE = 'max_upload_size',\n MANAGER_SUPPORTS_V4 = 'extension.manager.supports_v4',\n MODEL_UPLOAD_BUTTON_ENABLED = 'model_upload_button_enabled',\n ASSET_DELETION_ENABLED = 'asset_deletion_enabled',\n ASSET_RENAME_ENABLED = 'asset_rename_enabled',\n PRIVATE_MODELS_ENABLED = 'private_models_enabled',\n ONBOARDING_SURVEY_ENABLED = 'onboarding_survey_enabled',\n HUGGINGFACE_MODEL_IMPORT_ENABLED = 'huggingface_model_import_enabled',\n ASYNC_MODEL_UPLOAD_ENABLED = 'async_model_upload_enabled'\n}\n\n/**\n * Composable for reactive access to server-side feature flags\n */\nexport function useFeatureFlags() {\n const flags = reactive({\n get supportsPreviewMetadata() {\n return api.getServerFeature(ServerFeatureFlag.SUPPORTS_PREVIEW_METADATA)\n },\n get maxUploadSize() {\n return api.getServerFeature(ServerFeatureFlag.MAX_UPLOAD_SIZE)\n },\n get supportsManagerV4() {\n return api.getServerFeature(ServerFeatureFlag.MANAGER_SUPPORTS_V4)\n },\n get modelUploadButtonEnabled() {\n // Check remote config first (from /api/features), fall back to websocket feature flags\n return (\n remoteConfig.value.model_upload_button_enabled ??\n api.getServerFeature(\n ServerFeatureFlag.MODEL_UPLOAD_BUTTON_ENABLED,\n false\n )\n )\n },\n get assetDeletionEnabled() {\n return (\n remoteConfig.value.asset_deletion_enabled ??\n api.getServerFeature(ServerFeatureFlag.ASSET_DELETION_ENABLED, false)\n )\n },\n get assetRenameEnabled() {\n return (\n remoteConfig.value.asset_rename_enabled ??\n api.getServerFeature(ServerFeatureFlag.ASSET_RENAME_ENABLED, false)\n )\n },\n get privateModelsEnabled() {\n // Check remote config first (from /api/features), fall back to websocket feature flags\n return (\n remoteConfig.value.private_models_enabled ??\n api.getServerFeature(ServerFeatureFlag.PRIVATE_MODELS_ENABLED, false)\n )\n },\n get onboardingSurveyEnabled() {\n return (\n remoteConfig.value.onboarding_survey_enabled ??\n api.getServerFeature(ServerFeatureFlag.ONBOARDING_SURVEY_ENABLED, true)\n )\n },\n get huggingfaceModelImportEnabled() {\n return (\n remoteConfig.value.huggingface_model_import_enabled ??\n api.getServerFeature(\n ServerFeatureFlag.HUGGINGFACE_MODEL_IMPORT_ENABLED,\n false\n )\n )\n },\n get asyncModelUploadEnabled() {\n return (\n remoteConfig.value.async_model_upload_enabled ??\n api.getServerFeature(\n ServerFeatureFlag.ASYNC_MODEL_UPLOAD_ENABLED,\n false\n )\n )\n }\n })\n\n const featureFlag = <T = unknown>(featurePath: string, defaultValue?: T) =>\n computed(() => api.getServerFeature(featurePath, defaultValue))\n\n return {\n flags: readonly(flags),\n featureFlag\n }\n}\n","<template>\n <!--\n Note: We explicitly pass options here (not just via $attrs) because:\n 1. Our custom value template needs options to look up labels from values\n 2. PrimeVue's value slot only provides 'value' and 'placeholder', not the selected item's label\n 3. We need to maintain the icon slot functionality in the value template\n option-label=\"name\" is required because our option template directly accesses option.name\n -->\n <Select\n v-model=\"selectedItem\"\n v-bind=\"$attrs\"\n :options=\"options\"\n option-label=\"name\"\n option-value=\"value\"\n unstyled\n :pt=\"{\n root: ({ props }: SelectPassThroughMethodOptions<SelectOption>) => ({\n class: [\n // container\n 'h-10 relative inline-flex cursor-pointer select-none items-center',\n // trigger surface\n 'rounded-lg',\n 'bg-secondary-background text-base-foreground',\n 'border-[2.5px] border-solid border-transparent',\n 'transition-all duration-200 ease-in-out',\n 'focus-within:border-node-component-border',\n // disabled\n { 'opacity-60 cursor-default': props.disabled }\n ]\n }),\n label: {\n class:\n // Align with MultiSelect labelContainer spacing\n 'flex-1 flex items-center whitespace-nowrap pl-4 py-2 outline-hidden'\n },\n dropdown: {\n class:\n // Right chevron touch area\n 'flex shrink-0 items-center justify-center px-3 py-2'\n },\n overlay: {\n class: cn(\n 'mt-2 p-2 rounded-lg',\n 'bg-base-background text-base-foreground',\n 'border border-solid border-border-default'\n )\n },\n listContainer: () => ({\n style: `max-height: min(${listMaxHeight}, 50vh)`,\n class: 'scrollbar-custom'\n }),\n list: {\n class:\n // Same list tone/size as MultiSelect\n 'flex flex-col gap-0 p-0 m-0 list-none border-none text-sm'\n },\n option: ({ context }: SelectPassThroughMethodOptions<SelectOption>) => ({\n class: cn(\n // Row layout\n 'flex items-center justify-between gap-3 px-2 py-3 rounded',\n 'hover:bg-secondary-background-hover',\n // Add focus state for keyboard navigation\n context.focused && 'bg-secondary-background-hover',\n // Selected state + check icon\n context.selected &&\n 'bg-secondary-background-selected hover:bg-secondary-background-selected'\n )\n }),\n optionLabel: {\n class: 'truncate'\n },\n optionGroupLabel: {\n class: 'px-3 py-2 text-xs uppercase tracking-wide text-muted-foreground'\n },\n emptyMessage: {\n class: 'px-3 py-2 text-sm text-muted-foreground'\n }\n }\"\n :aria-label=\"label || t('g.singleSelectDropdown')\"\n role=\"combobox\"\n :aria-expanded=\"false\"\n aria-haspopup=\"listbox\"\n :tabindex=\"0\"\n >\n <!-- Trigger value -->\n <template #value=\"slotProps\">\n <div class=\"flex items-center gap-2 text-sm\">\n <slot name=\"icon\" />\n <span\n v-if=\"slotProps.value !== null && slotProps.value !== undefined\"\n class=\"text-base-foreground\"\n >\n {{ getLabel(slotProps.value) }}\n </span>\n <span v-else class=\"text-base-foreground\">\n {{ label }}\n </span>\n </div>\n </template>\n\n <!-- Trigger caret -->\n <template #dropdownicon>\n <i class=\"icon-[lucide--chevron-down] text-muted-foreground\" />\n </template>\n\n <!-- Option row -->\n <template #option=\"{ option, selected }\">\n <div\n class=\"flex w-full items-center justify-between gap-3\"\n :style=\"optionStyle\"\n >\n <span class=\"truncate\">{{ option.name }}</span>\n <i v-if=\"selected\" class=\"icon-[lucide--check] text-base-foreground\" />\n </div>\n </template>\n </Select>\n</template>\n\n<script setup lang=\"ts\">\nimport type { SelectPassThroughMethodOptions } from 'primevue/select'\nimport Select from 'primevue/select'\nimport { computed } from 'vue'\nimport { useI18n } from 'vue-i18n'\n\nimport { cn } from '@/utils/tailwindUtil'\n\nimport type { SelectOption } from './types'\n\ndefineOptions({\n inheritAttrs: false\n})\n\nconst {\n label,\n options,\n listMaxHeight = '28rem',\n popoverMinWidth,\n popoverMaxWidth\n} = defineProps<{\n label?: string\n /**\n * Required for displaying the selected item's label.\n * Cannot rely on $attrs alone because we need to access options\n * in getLabel() to map values to their display names.\n */\n options?: SelectOption[]\n /** Maximum height of the dropdown panel (default: 28rem) */\n listMaxHeight?: string\n /** Minimum width of the popover (default: auto) */\n popoverMinWidth?: string\n /** Maximum width of the popover (default: auto) */\n popoverMaxWidth?: string\n}>()\n\nconst selectedItem = defineModel<string | undefined>({ required: true })\n\nconst { t } = useI18n()\n\n/**\n * Maps a value to its display label.\n * Necessary because PrimeVue's value slot doesn't provide the selected item's label,\n * only the raw value. We need this to show the correct text when an item is selected.\n */\nconst getLabel = (val: string | null | undefined) => {\n if (val == null) return label ?? ''\n if (!options) return label ?? ''\n const found = options.find((o) => o.value === val)\n return found ? found.name : (label ?? '')\n}\n\n// Extract complex style logic from template\nconst optionStyle = computed(() => {\n if (!popoverMinWidth && !popoverMaxWidth) return undefined\n\n const styles: string[] = []\n if (popoverMinWidth) styles.push(`min-width: ${popoverMinWidth}`)\n if (popoverMaxWidth) styles.push(`max-width: ${popoverMaxWidth}`)\n\n return styles.join('; ')\n})\n</script>\n","import { createSharedComposable, useAsyncState } from '@vueuse/core'\n\nimport { api } from '@/scripts/api'\n\n/**\n * Format folder name to display name\n * Converts \"upscale_models\" -> \"Upscale Model\"\n * Converts \"loras\" -> \"LoRA\"\n */\nfunction formatDisplayName(folderName: string): string {\n // Special cases for acronyms and proper nouns\n const specialCases: Record<string, string> = {\n loras: 'LoRA',\n ipadapter: 'IP-Adapter',\n sams: 'SAM',\n clip_vision: 'CLIP Vision',\n animatediff_motion_lora: 'AnimateDiff Motion LoRA',\n animatediff_models: 'AnimateDiff Model',\n vae: 'VAE',\n sam2: 'SAM 2',\n controlnet: 'ControlNet',\n gligen: 'GLIGEN'\n }\n\n if (specialCases[folderName]) {\n return specialCases[folderName]\n }\n\n return folderName\n .split('_')\n .map((word) => word.charAt(0).toUpperCase() + word.slice(1))\n .join(' ')\n}\n\ninterface ModelTypeOption {\n name: string // Display name\n value: string // Actual tag value\n}\n\nconst DISALLOWED_MODEL_TYPES = ['nlf'] as const\n\n/**\n * Composable for fetching and managing model types from the API\n * Uses shared state to ensure data is only fetched once\n */\nexport const useModelTypes = createSharedComposable(() => {\n const {\n state: modelTypes,\n isLoading,\n error,\n execute: fetchModelTypes\n } = useAsyncState(\n async (): Promise<ModelTypeOption[]> => {\n const response = await api.getModelFolders()\n return response\n .filter(\n (folder) =>\n !DISALLOWED_MODEL_TYPES.includes(\n folder.name as (typeof DISALLOWED_MODEL_TYPES)[number]\n )\n )\n .map((folder) => ({\n name: formatDisplayName(folder.name),\n value: folder.name\n }))\n .sort((a, b) => a.name.localeCompare(b.name))\n },\n [] as ModelTypeOption[],\n {\n immediate: false,\n onError: (err) => {\n console.error('Failed to fetch model types:', err)\n }\n }\n )\n\n return {\n modelTypes,\n isLoading,\n error,\n fetchModelTypes\n }\n})\n","<template>\n <div class=\"flex flex-col gap-4 text-sm text-muted-foreground\">\n <div class=\"flex flex-col gap-2\">\n <p class=\"m-0\">\n {{ $t('assetBrowser.modelAssociatedWithLink') }}\n </p>\n <div\n class=\"flex items-center gap-3 rounded-lg bg-secondary-background p-3\"\n >\n <img\n v-if=\"previewImage\"\n :src=\"previewImage\"\n :alt=\"metadata?.filename || metadata?.name || 'Model preview'\"\n class=\"size-14 flex-shrink-0 rounded object-cover\"\n />\n <p class=\"m-0 min-w-0 flex-1 truncate text-base-foreground\">\n {{ metadata?.filename || metadata?.name }}\n </p>\n </div>\n </div>\n\n <!-- Model Type Selection -->\n <div class=\"flex flex-col gap-2\">\n <label class=\"\">\n {{ $t('assetBrowser.modelTypeSelectorLabel') }}\n </label>\n <SingleSelect\n v-model=\"modelValue\"\n :label=\"\n isLoading\n ? $t('g.loading')\n : $t('assetBrowser.modelTypeSelectorPlaceholder')\n \"\n :options=\"modelTypes\"\n :disabled=\"isLoading\"\n data-attr=\"upload-model-step2-type-selector\"\n />\n <div class=\"flex items-center gap-2\">\n <i class=\"icon-[lucide--circle-question-mark]\" />\n <span>{{ $t('assetBrowser.notSureLeaveAsIs') }}</span>\n </div>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport SingleSelect from '@/components/input/SingleSelect.vue'\nimport { useModelTypes } from '@/platform/assets/composables/useModelTypes'\nimport type { AssetMetadata } from '@/platform/assets/schemas/assetSchema'\n\ndefineProps<{\n metadata?: AssetMetadata\n previewImage?: string\n}>()\n\nconst modelValue = defineModel<string | undefined>()\n\nconst { modelTypes, isLoading } = useModelTypes()\n</script>\n","<template>\n <Dialog\n v-model:visible=\"isVisible\"\n modal\n :closable=\"false\"\n :close-on-escape=\"false\"\n :dismissable-mask=\"true\"\n :pt=\"{\n root: { class: 'video-help-dialog' },\n header: { class: '!hidden' },\n content: { class: '!p-0' },\n mask: { class: '!bg-black/70' }\n }\"\n :style=\"{ width: '90vw' }\"\n >\n <div class=\"relative\">\n <Button\n variant=\"textonly\"\n size=\"icon\"\n class=\"absolute top-4 right-6 z-10\"\n :aria-label=\"$t('g.close')\"\n @click=\"isVisible = false\"\n >\n <i class=\"pi pi-times text-sm\" />\n </Button>\n <video\n autoplay\n muted\n loop\n :aria-label=\"ariaLabel\"\n class=\"w-full rounded-lg\"\n :src=\"videoUrl\"\n >\n {{ $t('g.videoFailedToLoad') }}\n </video>\n </div>\n </Dialog>\n</template>\n\n<script setup lang=\"ts\">\nimport { useEventListener } from '@vueuse/core'\nimport Dialog from 'primevue/dialog'\nimport { onWatcherCleanup, watch } from 'vue'\n\nimport Button from '@/components/ui/button/Button.vue'\n\nconst isVisible = defineModel<boolean>({ required: true })\n\nconst { videoUrl, ariaLabel = 'Help video' } = defineProps<{\n videoUrl: string\n ariaLabel?: string\n}>()\n\nconst handleEscapeKey = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n event.stopImmediatePropagation()\n event.stopPropagation()\n event.preventDefault()\n isVisible.value = false\n }\n}\n\n// Add listener with capture phase to intercept before parent dialogs\n// Only active when dialog is visible\nwatch(\n isVisible,\n (visible) => {\n if (visible) {\n const stop = useEventListener(document, 'keydown', handleEscapeKey, {\n capture: true\n })\n onWatcherCleanup(stop)\n }\n },\n { immediate: true }\n)\n</script>\n","<template>\n <div class=\"flex justify-end gap-2 w-full\">\n <div\n v-if=\"currentStep === 1 && flags.huggingfaceModelImportEnabled\"\n class=\"mr-auto flex items-center gap-2\"\n >\n <i class=\"icon-[lucide--circle-question-mark] text-muted-foreground\" />\n <Button\n variant=\"muted-textonly\"\n size=\"sm\"\n data-attr=\"upload-model-step1-help-civitai\"\n @click=\"showCivitaiHelp = true\"\n >\n {{ $t('assetBrowser.providerCivitai') }}\n </Button>\n <Button\n variant=\"muted-textonly\"\n size=\"sm\"\n data-attr=\"upload-model-step1-help-huggingface\"\n @click=\"showHuggingFaceHelp = true\"\n >\n {{ $t('assetBrowser.providerHuggingFace') }}\n </Button>\n </div>\n <Button\n v-else-if=\"currentStep === 1\"\n variant=\"muted-textonly\"\n size=\"lg\"\n class=\"mr-auto underline\"\n data-attr=\"upload-model-step1-help-link\"\n @click=\"showCivitaiHelp = true\"\n >\n <i class=\"icon-[lucide--circle-question-mark]\" />\n <span>{{ $t('assetBrowser.uploadModelHowDoIFindThis') }}</span>\n </Button>\n <Button\n v-if=\"currentStep === 1\"\n variant=\"muted-textonly\"\n size=\"lg\"\n data-attr=\"upload-model-step1-cancel-button\"\n :disabled=\"isFetchingMetadata || isUploading\"\n @click=\"emit('close')\"\n >\n {{ $t('g.cancel') }}\n </Button>\n <Button\n v-if=\"currentStep !== 1 && currentStep !== 3\"\n variant=\"muted-textonly\"\n size=\"lg\"\n :data-attr=\"`upload-model-step${currentStep}-back-button`\"\n :disabled=\"isFetchingMetadata || isUploading\"\n @click=\"emit('back')\"\n >\n {{ $t('g.back') }}\n </Button>\n <span v-else />\n\n <Button\n v-if=\"currentStep === 1\"\n variant=\"secondary\"\n size=\"lg\"\n data-attr=\"upload-model-step1-continue-button\"\n :disabled=\"!canFetchMetadata || isFetchingMetadata\"\n @click=\"emit('fetchMetadata')\"\n >\n <i\n v-if=\"isFetchingMetadata\"\n class=\"icon-[lucide--loader-circle] animate-spin\"\n />\n <span>{{ $t('g.continue') }}</span>\n </Button>\n <Button\n v-else-if=\"currentStep === 2\"\n variant=\"secondary\"\n size=\"lg\"\n data-attr=\"upload-model-step2-confirm-button\"\n :disabled=\"!canUploadModel || isUploading\"\n @click=\"emit('upload')\"\n >\n <i v-if=\"isUploading\" class=\"icon-[lucide--loader-circle] animate-spin\" />\n <span>{{ $t('assetBrowser.upload') }}</span>\n </Button>\n <Button\n v-else-if=\"\n currentStep === 3 &&\n (uploadStatus === 'success' || uploadStatus === 'processing')\n \"\n variant=\"secondary\"\n data-attr=\"upload-model-step3-finish-button\"\n @click=\"emit('close')\"\n >\n {{\n uploadStatus === 'processing'\n ? $t('g.close')\n : $t('assetBrowser.finish')\n }}\n </Button>\n <VideoHelpDialog\n v-model=\"showCivitaiHelp\"\n video-url=\"https://media.comfy.org/compressed_768/civitai_howto.webm\"\n :aria-label=\"$t('assetBrowser.uploadModelHelpVideo')\"\n />\n <VideoHelpDialog\n v-model=\"showHuggingFaceHelp\"\n video-url=\"https://media.comfy.org/byom/huggingfacehowto.mp4\"\n :aria-label=\"$t('assetBrowser.uploadModelHelpVideo')\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from 'vue'\n\nimport Button from '@/components/ui/button/Button.vue'\nimport { useFeatureFlags } from '@/composables/useFeatureFlags'\nimport VideoHelpDialog from '@/platform/assets/components/VideoHelpDialog.vue'\n\nconst { flags } = useFeatureFlags()\n\nconst showCivitaiHelp = ref(false)\nconst showHuggingFaceHelp = ref(false)\n\ndefineProps<{\n currentStep: number\n isFetchingMetadata: boolean\n isUploading: boolean\n canFetchMetadata: boolean\n canUploadModel: boolean\n uploadStatus?: 'processing' | 'success' | 'error'\n}>()\n\nconst emit = defineEmits<{\n (e: 'back'): void\n (e: 'fetchMetadata'): void\n (e: 'upload'): void\n (e: 'close'): void\n}>()\n</script>\n","import type { ImportSource } from '@/platform/assets/types/importSource'\n\n/**\n * Civitai model import source configuration\n */\nexport const civitaiImportSource: ImportSource = {\n type: 'civitai',\n name: 'Civitai',\n hostnames: ['civitai.com']\n}\n","import type { ImportSource } from '@/platform/assets/types/importSource'\n\n/**\n * Hugging Face model import source configuration\n */\nexport const huggingfaceImportSource: ImportSource = {\n type: 'huggingface',\n name: 'Hugging Face',\n hostnames: ['huggingface.co']\n}\n","import type { ImportSource } from '@/platform/assets/types/importSource'\n\n/**\n * Check if a URL belongs to a specific import source\n */\nexport function validateSourceUrl(url: string, source: ImportSource): boolean {\n try {\n const hostname = new URL(url).hostname.toLowerCase()\n return source.hostnames.some(\n (h) => hostname === h || hostname.endsWith(`.${h}`)\n )\n } catch {\n return false\n }\n}\n","<template>\n <div class=\"flex flex-col justify-between h-full gap-6 text-sm\">\n <div class=\"flex flex-col gap-6\">\n <div class=\"flex flex-col gap-2\">\n <p class=\"m-0 text-foreground\">\n {{ $t('assetBrowser.uploadModelDescription1Generic') }}\n </p>\n <div class=\"m-0\">\n <p class=\"m-0 text-muted-foreground\">\n {{ $t('assetBrowser.uploadModelDescription2Generic') }}\n </p>\n <span class=\"inline-flex items-center gap-1 flex-wrap mt-2\">\n <span class=\"inline-flex items-center gap-1\">\n <img\n :src=\"civitaiIcon\"\n :alt=\"$t('assetBrowser.providerCivitai')\"\n class=\"w-4 h-4\"\n />\n <a\n :href=\"civitaiUrl\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"text-muted underline\"\n >\n {{ $t('assetBrowser.providerCivitai') }}</a\n ><span>,</span>\n </span>\n <span class=\"inline-flex items-center gap-1\">\n <img\n :src=\"huggingFaceIcon\"\n :alt=\"$t('assetBrowser.providerHuggingFace')\"\n class=\"w-4 h-4\"\n />\n <a\n :href=\"huggingFaceUrl\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"text-muted underline\"\n >\n {{ $t('assetBrowser.providerHuggingFace') }}\n </a>\n </span>\n </span>\n </div>\n </div>\n\n <div class=\"flex flex-col gap-2\">\n <div class=\"relative\">\n <InputText\n v-model=\"url\"\n autofocus\n :placeholder=\"$t('assetBrowser.genericLinkPlaceholder')\"\n class=\"w-full border-0 bg-secondary-background p-4 pr-10\"\n data-attr=\"upload-model-step1-url-input\"\n />\n <i\n v-if=\"isValidUrl\"\n class=\"icon-[lucide--circle-check-big] absolute top-1/2 right-3 size-5 -translate-y-1/2 text-green-500\"\n />\n </div>\n <p v-if=\"error\" class=\"text-xs text-error\">\n {{ error }}\n </p>\n <p v-else-if=\"!flags.asyncModelUploadEnabled\" class=\"text-foreground\">\n <i18n-t keypath=\"assetBrowser.maxFileSize\" tag=\"span\">\n <template #size>\n <span class=\"font-bold italic\">{{\n $t('assetBrowser.maxFileSizeValue')\n }}</span>\n </template>\n </i18n-t>\n </p>\n </div>\n </div>\n\n <div class=\"text-sm text-muted\">\n {{ $t('assetBrowser.uploadModelHelpFooterText') }}\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport InputText from 'primevue/inputtext'\nimport { computed } from 'vue'\n\nimport { useFeatureFlags } from '@/composables/useFeatureFlags'\nimport { civitaiImportSource } from '@/platform/assets/importSources/civitaiImportSource'\nimport { huggingfaceImportSource } from '@/platform/assets/importSources/huggingfaceImportSource'\nimport { validateSourceUrl } from '@/platform/assets/utils/importSourceUtil'\n\nconst { flags } = useFeatureFlags()\n\nconst props = defineProps<{\n modelValue: string\n error?: string\n}>()\n\nconst emit = defineEmits<{\n 'update:modelValue': [value: string]\n}>()\n\nconst url = computed({\n get: () => props.modelValue,\n set: (value: string) => emit('update:modelValue', value)\n})\n\nconst importSources = [civitaiImportSource, huggingfaceImportSource]\n\nconst isValidUrl = computed(() => {\n const trimmedUrl = url.value.trim()\n if (!trimmedUrl) return false\n return importSources.some((source) => validateSourceUrl(trimmedUrl, source))\n})\n\nconst civitaiIcon = '/assets/images/civitai.svg'\nconst civitaiUrl = 'https://civitai.com/models'\nconst huggingFaceIcon = '/assets/images/hf-logo.svg'\nconst huggingFaceUrl = 'https://huggingface.co'\n</script>\n","<template>\n <div class=\"flex flex-col gap-6 text-sm text-muted-foreground\">\n <div class=\"flex flex-col gap-2\">\n <p class=\"m-0\">\n {{ $t('assetBrowser.uploadModelDescription1') }}\n </p>\n <ul class=\"list-disc space-y-1 pl-5 mt-0\">\n <li>\n <i18n-t keypath=\"assetBrowser.uploadModelDescription2\" tag=\"span\">\n <template #link>\n <a\n href=\"https://civitai.com/models\"\n target=\"_blank\"\n class=\"text-muted-foreground\"\n >\n {{ $t('assetBrowser.uploadModelDescription2Link') }}\n </a>\n </template>\n </i18n-t>\n </li>\n <li v-if=\"!flags.asyncModelUploadEnabled\">\n <i18n-t keypath=\"assetBrowser.uploadModelDescription3\" tag=\"span\">\n <template #size>\n <span class=\"font-bold italic\">{{\n $t('assetBrowser.maxFileSizeValue')\n }}</span>\n </template>\n </i18n-t>\n </li>\n </ul>\n </div>\n\n <div class=\"flex flex-col gap-2\">\n <i18n-t keypath=\"assetBrowser.civitaiLinkLabel\" tag=\"label\" class=\"mb-0\">\n <template #download>\n <span class=\"font-bold italic\">{{\n $t('assetBrowser.civitaiLinkLabelDownload')\n }}</span>\n </template>\n </i18n-t>\n <div class=\"relative\">\n <InputText\n v-model=\"url\"\n autofocus\n :placeholder=\"$t('assetBrowser.civitaiLinkPlaceholder')\"\n class=\"w-full border-0 bg-secondary-background p-4 pr-10\"\n data-attr=\"upload-model-step1-url-input\"\n />\n <i\n v-if=\"isValidUrl\"\n class=\"icon-[lucide--circle-check-big] absolute top-1/2 right-3 size-5 -translate-y-1/2 text-green-500\"\n />\n </div>\n <p v-if=\"error\" class=\"text-xs text-error\">\n {{ error }}\n </p>\n <i18n-t\n v-else\n keypath=\"assetBrowser.civitaiLinkExample\"\n tag=\"p\"\n class=\"text-xs\"\n >\n <template #example>\n <strong>{{ $t('assetBrowser.civitaiLinkExampleStrong') }}</strong>\n </template>\n <template #link>\n <a\n href=\"https://civitai.com/models/10706/luisap-z-image-and-qwen-pixel-art-refiner?modelVersionId=2225295\"\n target=\"_blank\"\n class=\"text-muted-foreground\"\n >\n {{ $t('assetBrowser.civitaiLinkExampleUrl') }}\n </a>\n </template>\n </i18n-t>\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport InputText from 'primevue/inputtext'\nimport { computed } from 'vue'\n\nimport { useFeatureFlags } from '@/composables/useFeatureFlags'\nimport { civitaiImportSource } from '@/platform/assets/importSources/civitaiImportSource'\nimport { validateSourceUrl } from '@/platform/assets/utils/importSourceUtil'\n\nconst { flags } = useFeatureFlags()\n\ndefineProps<{\n error?: string\n}>()\n\nconst url = defineModel<string>({ required: true })\n\nconst isValidUrl = computed(() => {\n const trimmedUrl = url.value.trim()\n if (!trimmedUrl) return false\n return validateSourceUrl(trimmedUrl, civitaiImportSource)\n})\n</script>\n","import type { Ref } from 'vue'\nimport { computed, ref, watch } from 'vue'\nimport { useI18n } from 'vue-i18n'\n\nimport { useFeatureFlags } from '@/composables/useFeatureFlags'\nimport { st } from '@/i18n'\nimport { civitaiImportSource } from '@/platform/assets/importSources/civitaiImportSource'\nimport { huggingfaceImportSource } from '@/platform/assets/importSources/huggingfaceImportSource'\nimport type { AssetMetadata } from '@/platform/assets/schemas/assetSchema'\nimport { assetService } from '@/platform/assets/services/assetService'\nimport type { ImportSource } from '@/platform/assets/types/importSource'\nimport { validateSourceUrl } from '@/platform/assets/utils/importSourceUtil'\nimport { useAssetDownloadStore } from '@/stores/assetDownloadStore'\nimport { useAssetsStore } from '@/stores/assetsStore'\nimport { useModelToNodeStore } from '@/stores/modelToNodeStore'\n\ninterface WizardData {\n url: string\n metadata?: AssetMetadata\n name: string\n tags: string[]\n previewImage?: string\n}\n\ninterface ModelTypeOption {\n name: string\n value: string\n}\n\nexport function useUploadModelWizard(modelTypes: Ref<ModelTypeOption[]>) {\n const { t } = useI18n()\n const assetsStore = useAssetsStore()\n const assetDownloadStore = useAssetDownloadStore()\n const modelToNodeStore = useModelToNodeStore()\n const { flags } = useFeatureFlags()\n const currentStep = ref(1)\n const isFetchingMetadata = ref(false)\n const isUploading = ref(false)\n const uploadStatus = ref<'processing' | 'success' | 'error'>()\n const uploadError = ref('')\n\n const wizardData = ref<WizardData>({\n url: '',\n name: '',\n tags: []\n })\n\n const selectedModelType = ref<string>()\n\n // Available import sources\n const importSources: ImportSource[] = flags.huggingfaceModelImportEnabled\n ? [civitaiImportSource, huggingfaceImportSource]\n : [civitaiImportSource]\n\n // Detected import source based on URL\n const detectedSource = computed(() => {\n const url = wizardData.value.url.trim()\n if (!url) return null\n return (\n importSources.find((source) => validateSourceUrl(url, source)) ?? null\n )\n })\n\n // Clear error when URL changes\n watch(\n () => wizardData.value.url,\n () => {\n uploadError.value = ''\n }\n )\n\n // Validation\n const canFetchMetadata = computed(() => {\n return wizardData.value.url.trim().length > 0\n })\n\n const canUploadModel = computed(() => {\n return !!selectedModelType.value\n })\n\n async function fetchMetadata() {\n if (!canFetchMetadata.value) return\n\n // Clean and normalize URL\n let cleanedUrl = wizardData.value.url.trim()\n try {\n cleanedUrl = new URL(encodeURI(cleanedUrl)).toString()\n } catch {\n // If URL parsing fails, just use the trimmed input\n }\n wizardData.value.url = cleanedUrl\n\n // Validate URL belongs to a supported import source\n const source = detectedSource.value\n if (!source) {\n const supportedSources = importSources.map((s) => s.name).join(', ')\n uploadError.value = t('assetBrowser.unsupportedUrlSource', {\n sources: supportedSources\n })\n return\n }\n\n isFetchingMetadata.value = true\n try {\n const metadata = await assetService.getAssetMetadata(wizardData.value.url)\n\n // Decode URL-encoded filenames (e.g., Chinese characters)\n if (metadata.filename) {\n try {\n metadata.filename = decodeURIComponent(metadata.filename)\n } catch {\n // Keep original if decoding fails\n }\n }\n if (metadata.name) {\n try {\n metadata.name = decodeURIComponent(metadata.name)\n } catch {\n // Keep original if decoding fails\n }\n }\n\n wizardData.value.metadata = metadata\n\n // Pre-fill name from metadata\n wizardData.value.name = metadata.filename || metadata.name || ''\n\n // Store preview image if available\n wizardData.value.previewImage = metadata.preview_image\n\n // Pre-fill model type from metadata tags if available\n if (metadata.tags && metadata.tags.length > 0) {\n wizardData.value.tags = metadata.tags\n // Try to detect model type from tags\n const typeTag = metadata.tags.find((tag) =>\n modelTypes.value.some((type) => type.value === tag)\n )\n if (typeTag) {\n selectedModelType.value = typeTag\n }\n }\n\n currentStep.value = 2\n } catch (error) {\n console.error('Failed to retrieve metadata:', error)\n uploadError.value =\n error instanceof Error\n ? error.message\n : st(\n 'assetBrowser.uploadModelFailedToRetrieveMetadata',\n 'Failed to retrieve metadata. Please check the link and try again.'\n )\n currentStep.value = 1\n } finally {\n isFetchingMetadata.value = false\n }\n }\n\n async function uploadPreviewImage(\n filename: string\n ): Promise<string | undefined> {\n if (!wizardData.value.previewImage) return undefined\n\n try {\n const baseFilename = filename.split('.')[0]\n let extension = 'png'\n const mimeMatch = wizardData.value.previewImage.match(\n /^data:image\\/([^;]+);/\n )\n if (mimeMatch) {\n extension = mimeMatch[1] === 'jpeg' ? 'jpg' : mimeMatch[1]\n }\n\n const previewAsset = await assetService.uploadAssetFromBase64({\n data: wizardData.value.previewImage,\n name: `${baseFilename}_preview.${extension}`,\n tags: ['preview']\n })\n return previewAsset.id\n } catch (error) {\n console.error('Failed to upload preview image:', error)\n return undefined\n }\n }\n\n async function refreshModelCaches() {\n if (!selectedModelType.value) return\n\n const providers = modelToNodeStore.getAllNodeProviders(\n selectedModelType.value\n )\n const results = await Promise.allSettled(\n providers.map((provider) =>\n assetsStore.updateModelsForNodeType(provider.nodeDef.name)\n )\n )\n results.forEach((result, index) => {\n if (result.status === 'rejected') {\n console.error(\n `Failed to refresh ${providers[index].nodeDef.name}:`,\n result.reason\n )\n }\n })\n }\n\n async function uploadModel(): Promise<boolean> {\n if (!canUploadModel.value) {\n return false\n }\n\n const source = detectedSource.value\n if (!source) {\n uploadError.value = t('assetBrowser.noValidSourceDetected')\n return false\n }\n\n isUploading.value = true\n\n try {\n const tags = selectedModelType.value\n ? ['models', selectedModelType.value]\n : ['models']\n const filename =\n wizardData.value.metadata?.filename ||\n wizardData.value.metadata?.name ||\n 'model'\n\n const previewId = await uploadPreviewImage(filename)\n const userMetadata = {\n source: source.type,\n source_url: wizardData.value.url,\n model_type: selectedModelType.value\n }\n\n if (flags.asyncModelUploadEnabled) {\n const result = await assetService.uploadAssetAsync({\n source_url: wizardData.value.url,\n tags,\n user_metadata: userMetadata,\n preview_id: previewId\n })\n\n if (result.type === 'async' && result.task.status !== 'completed') {\n if (selectedModelType.value) {\n assetDownloadStore.trackDownload(\n result.task.task_id,\n selectedModelType.value\n )\n }\n uploadStatus.value = 'processing'\n } else {\n uploadStatus.value = 'success'\n await refreshModelCaches()\n }\n currentStep.value = 3\n } else {\n await assetService.uploadAssetFromUrl({\n url: wizardData.value.url,\n name: filename,\n tags,\n user_metadata: userMetadata,\n preview_id: previewId\n })\n uploadStatus.value = 'success'\n await refreshModelCaches()\n currentStep.value = 3\n }\n } catch (error) {\n console.error('Failed to upload asset:', error)\n uploadStatus.value = 'error'\n uploadError.value =\n error instanceof Error ? error.message : 'Failed to upload model'\n currentStep.value = 3\n } finally {\n isUploading.value = false\n }\n return uploadStatus.value !== 'error'\n }\n\n function goToPreviousStep() {\n if (currentStep.value > 1) {\n currentStep.value = currentStep.value - 1\n }\n }\n\n return {\n // State\n currentStep,\n isFetchingMetadata,\n isUploading,\n uploadStatus,\n uploadError,\n wizardData,\n selectedModelType,\n\n // Computed\n canFetchMetadata,\n canUploadModel,\n detectedSource,\n\n // Actions\n fetchMetadata,\n uploadModel,\n goToPreviousStep\n }\n}\n","<template>\n <div\n class=\"upload-model-dialog flex flex-col gap-6 border-t border-border-default p-4 pt-6\"\n >\n <!-- Scrollable content area -->\n <div class=\"min-h-0 flex-auto basis-0 overflow-y-auto\">\n <!-- Step 1: Enter URL -->\n <UploadModelUrlInput\n v-if=\"currentStep === 1 && flags.huggingfaceModelImportEnabled\"\n v-model=\"wizardData.url\"\n :error=\"uploadError\"\n />\n <UploadModelUrlInputCivitai\n v-else-if=\"currentStep === 1\"\n v-model=\"wizardData.url\"\n :error=\"uploadError\"\n />\n\n <!-- Step 2: Confirm Metadata -->\n <UploadModelConfirmation\n v-else-if=\"currentStep === 2\"\n v-model=\"selectedModelType\"\n :metadata=\"wizardData.metadata\"\n :preview-image=\"wizardData.previewImage\"\n />\n\n <!-- Step 3: Upload Progress -->\n <UploadModelProgress\n v-else-if=\"currentStep === 3 && uploadStatus != null\"\n :result=\"uploadStatus\"\n :error=\"uploadError\"\n :metadata=\"wizardData.metadata\"\n :model-type=\"selectedModelType\"\n :preview-image=\"wizardData.previewImage\"\n />\n </div>\n\n <!-- Navigation Footer - always visible -->\n <UploadModelFooter\n class=\"flex-shrink-0\"\n :current-step=\"currentStep\"\n :is-fetching-metadata=\"isFetchingMetadata\"\n :is-uploading=\"isUploading\"\n :can-fetch-metadata=\"canFetchMetadata\"\n :can-upload-model=\"canUploadModel\"\n :upload-status=\"uploadStatus\"\n @back=\"goToPreviousStep\"\n @fetch-metadata=\"handleFetchMetadata\"\n @upload=\"handleUploadModel\"\n @close=\"handleClose\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { onMounted } from 'vue'\n\nimport { useFeatureFlags } from '@/composables/useFeatureFlags'\nimport UploadModelConfirmation from '@/platform/assets/components/UploadModelConfirmation.vue'\nimport UploadModelFooter from '@/platform/assets/components/UploadModelFooter.vue'\nimport UploadModelProgress from '@/platform/assets/components/UploadModelProgress.vue'\nimport UploadModelUrlInput from '@/platform/assets/components/UploadModelUrlInput.vue'\nimport UploadModelUrlInputCivitai from '@/platform/assets/components/UploadModelUrlInputCivitai.vue'\nimport { useModelTypes } from '@/platform/assets/composables/useModelTypes'\nimport { useUploadModelWizard } from '@/platform/assets/composables/useUploadModelWizard'\nimport { useDialogStore } from '@/stores/dialogStore'\n\nconst { flags } = useFeatureFlags()\nconst dialogStore = useDialogStore()\nconst { modelTypes, fetchModelTypes } = useModelTypes()\n\nconst emit = defineEmits<{\n 'upload-success': []\n}>()\n\nconst {\n currentStep,\n isFetchingMetadata,\n isUploading,\n uploadStatus,\n uploadError,\n wizardData,\n selectedModelType,\n canFetchMetadata,\n canUploadModel,\n fetchMetadata,\n uploadModel,\n goToPreviousStep\n} = useUploadModelWizard(modelTypes)\n\nasync function handleFetchMetadata() {\n await fetchMetadata()\n}\n\nasync function handleUploadModel() {\n const success = await uploadModel()\n if (success) {\n emit('upload-success')\n }\n}\n\nfunction handleClose() {\n dialogStore.closeDialog({ key: 'upload-model' })\n}\n\nonMounted(() => {\n fetchModelTypes()\n})\n</script>\n\n<style scoped>\n.upload-model-dialog {\n width: 90vw;\n max-width: 800px;\n min-height: min(400px, 80vh);\n max-height: 90vh;\n}\n\n@media (min-width: 640px) {\n .upload-model-dialog {\n width: auto;\n min-width: 600px;\n }\n}\n</style>\n","export default \"__VITE_PUBLIC_ASSET__53f47e52__\"","<template>\n <div class=\"flex items-center gap-2 p-4 font-bold\">\n <img\n v-if=\"!flags.huggingfaceModelImportEnabled\"\n src=\"/assets/images/civitai.svg\"\n class=\"size-4\"\n />\n <span>{{ $t(titleKey) }}</span>\n <span\n class=\"rounded-full bg-white px-1.5 py-0 text-xxs font-inter font-semibold uppercase text-black\"\n >\n {{ $t('g.beta') }}\n </span>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue'\n\nimport { useFeatureFlags } from '@/composables/useFeatureFlags'\n\nconst { flags } = useFeatureFlags()\n\nconst titleKey = computed(() => {\n return flags.huggingfaceModelImportEnabled\n ? 'assetBrowser.uploadModelGeneric'\n : 'assetBrowser.uploadModelFromCivitai'\n})\n</script>\n","<template>\n <div\n class=\"flex flex-1 flex-col items-center justify-center text-base text-muted-foreground\"\n >\n <p class=\"m-0 max-w-md\">\n {{ $t('assetBrowser.upgradeFeatureDescription') }}\n </p>\n </div>\n</template>\n","<template>\n <div class=\"flex flex-wrap justify-end gap-2 w-full\">\n <a\n href=\"https://blog.comfy.org/p/comfy-cloud-new-features-and-pricing\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n class=\"text-muted-foreground mr-auto underline flex items-center gap-2\"\n >\n <i class=\"icon-[lucide--external-link]\" />\n <span>{{ $t('g.learnMore') }}</span>\n </a>\n <Button variant=\"textonly\" @click=\"emit('close')\">{{\n $t('g.close')\n }}</Button>\n <Button variant=\"secondary\" @click=\"emit('subscribe')\">\n {{ $t('subscription.required.subscribe') }}\n </Button>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport Button from '@/components/ui/button/Button.vue'\n\nconst emit = defineEmits<{\n close: []\n subscribe: []\n}>()\n</script>\n","<template>\n <div\n class=\"flex flex-col justify-between gap-10 p-4 border-t border-border-default w-auto max-w-[min(500px,90vw)]\"\n >\n <UploadModelUpgradeModalBody />\n\n <UploadModelUpgradeModalFooter\n @close=\"handleClose\"\n @subscribe=\"handleSubscribe\"\n />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport UploadModelUpgradeModalBody from '@/platform/assets/components/UploadModelUpgradeModalBody.vue'\nimport UploadModelUpgradeModalFooter from '@/platform/assets/components/UploadModelUpgradeModalFooter.vue'\nimport { useSubscription } from '@/platform/cloud/subscription/composables/useSubscription'\nimport { useDialogStore } from '@/stores/dialogStore'\n\nconst dialogStore = useDialogStore()\nconst { showSubscriptionDialog } = useSubscription()\n\nfunction handleClose() {\n dialogStore.closeDialog({ key: 'upload-model-upgrade' })\n}\n\nfunction handleSubscribe() {\n showSubscriptionDialog()\n}\n</script>\n","<template>\n <div class=\"flex items-center gap-2 p-4 font-bold\">\n <span>{{ $t('assetBrowser.upgradeToUnlockFeature') }}</span>\n </div>\n</template>\n","import { useFeatureFlags } from '@/composables/useFeatureFlags'\nimport UploadModelDialog from '@/platform/assets/components/UploadModelDialog.vue'\nimport UploadModelDialogHeader from '@/platform/assets/components/UploadModelDialogHeader.vue'\nimport UploadModelUpgradeModal from '@/platform/assets/components/UploadModelUpgradeModal.vue'\nimport UploadModelUpgradeModalHeader from '@/platform/assets/components/UploadModelUpgradeModalHeader.vue'\nimport { useDialogStore } from '@/stores/dialogStore'\nimport { computed } from 'vue'\n\nexport function useModelUpload(\n onUploadSuccess?: () => Promise<unknown> | void\n) {\n const dialogStore = useDialogStore()\n const { flags } = useFeatureFlags()\n const isUploadButtonEnabled = computed(() => flags.modelUploadButtonEnabled)\n\n function showUploadDialog() {\n if (!flags.privateModelsEnabled) {\n // Show upgrade modal if private models are disabled\n dialogStore.showDialog({\n key: 'upload-model-upgrade',\n headerComponent: UploadModelUpgradeModalHeader,\n component: UploadModelUpgradeModal,\n dialogComponentProps: {\n pt: {\n header: 'py-0! pl-0!',\n content: 'p-0! overflow-y-hidden!'\n }\n }\n })\n } else {\n // Show regular upload modal\n dialogStore.showDialog({\n key: 'upload-model',\n headerComponent: UploadModelDialogHeader,\n component: UploadModelDialog,\n props: {\n onUploadSuccess: async () => {\n await onUploadSuccess?.()\n }\n },\n dialogComponentProps: {\n pt: {\n header: 'py-0! pl-0!',\n content: 'p-0! overflow-y-hidden!'\n }\n }\n })\n }\n }\n return { isUploadButtonEnabled, showUploadDialog }\n}\n","export default \"__VITE_PUBLIC_ASSET__c8cdd13f__\"","import { onBeforeUnmount, ref, watch } from 'vue'\nimport type { Ref } from 'vue'\n\ninterface UseIntersectionObserverOptions extends IntersectionObserverInit {\n immediate?: boolean\n}\n\nexport function useIntersectionObserver(\n target: Ref<Element | null>,\n callback: IntersectionObserverCallback,\n options: UseIntersectionObserverOptions = {}\n) {\n const { immediate = true, ...observerOptions } = options\n\n const isSupported =\n typeof window !== 'undefined' && 'IntersectionObserver' in window\n const isIntersecting = ref(false)\n\n let observer: IntersectionObserver | null = null\n\n const cleanup = () => {\n if (observer) {\n observer.disconnect()\n observer = null\n }\n }\n\n const observe = () => {\n cleanup()\n\n if (!isSupported || !target.value) return\n\n observer = new IntersectionObserver((entries) => {\n isIntersecting.value = entries.some((entry) => entry.isIntersecting)\n callback(entries, observer!)\n }, observerOptions)\n\n observer.observe(target.value)\n }\n\n const unobserve = () => {\n if (observer && target.value) {\n observer.unobserve(target.value)\n }\n }\n\n if (immediate) {\n watch(target, observe, { immediate: true, flush: 'post' })\n }\n\n onBeforeUnmount(cleanup)\n\n return {\n isSupported,\n isIntersecting,\n observe,\n unobserve,\n cleanup\n }\n}\n","import { reactive } from 'vue'\n\ninterface CachedMedia {\n src: string\n blob?: Blob\n objectUrl?: string\n error?: boolean\n isLoading: boolean\n lastAccessed: number\n}\n\ninterface MediaCacheOptions {\n maxSize?: number\n maxAge?: number // in milliseconds\n preloadDistance?: number // pixels from viewport\n}\n\nclass MediaCacheService {\n public cache = reactive(new Map<string, CachedMedia>())\n private readonly maxSize: number\n private readonly maxAge: number\n private cleanupInterval: number | null = null\n private urlRefCount = new Map<string, number>()\n\n constructor(options: MediaCacheOptions = {}) {\n this.maxSize = options.maxSize ?? 100\n this.maxAge = options.maxAge ?? 30 * 60 * 1000 // 30 minutes\n\n // Start cleanup interval\n this.startCleanupInterval()\n }\n\n private startCleanupInterval() {\n // Clean up every 5 minutes\n this.cleanupInterval = window.setInterval(\n () => {\n this.cleanup()\n },\n 5 * 60 * 1000\n )\n }\n\n private cleanup() {\n const now = Date.now()\n const keysToDelete: string[] = []\n\n // Find expired entries\n for (const [key, entry] of Array.from(this.cache.entries())) {\n if (now - entry.lastAccessed > this.maxAge) {\n // Only revoke object URL if no components are using it\n if (entry.objectUrl) {\n const refCount = this.urlRefCount.get(entry.objectUrl) || 0\n if (refCount === 0) {\n URL.revokeObjectURL(entry.objectUrl)\n this.urlRefCount.delete(entry.objectUrl)\n keysToDelete.push(key)\n }\n // Don't delete cache entry if URL is still in use\n } else {\n keysToDelete.push(key)\n }\n }\n }\n\n // Remove expired entries\n keysToDelete.forEach((key) => this.cache.delete(key))\n\n // If still over size limit, remove oldest entries that aren't in use\n if (this.cache.size > this.maxSize) {\n const entries = Array.from(this.cache.entries())\n entries.sort((a, b) => a[1].lastAccessed - b[1].lastAccessed)\n\n let removedCount = 0\n const targetRemoveCount = this.cache.size - this.maxSize\n\n for (const [key, entry] of entries) {\n if (removedCount >= targetRemoveCount) break\n\n if (entry.objectUrl) {\n const refCount = this.urlRefCount.get(entry.objectUrl) || 0\n if (refCount === 0) {\n URL.revokeObjectURL(entry.objectUrl)\n this.urlRefCount.delete(entry.objectUrl)\n this.cache.delete(key)\n removedCount++\n }\n } else {\n this.cache.delete(key)\n removedCount++\n }\n }\n }\n }\n\n async getCachedMedia(src: string): Promise<CachedMedia> {\n let entry = this.cache.get(src)\n\n if (entry) {\n // Update last accessed time\n entry.lastAccessed = Date.now()\n return entry\n }\n\n // Create new entry\n entry = {\n src,\n isLoading: true,\n lastAccessed: Date.now()\n }\n\n // Update cache with loading entry\n this.cache.set(src, entry)\n\n try {\n // Fetch the media\n const response = await fetch(src, { cache: 'force-cache' })\n if (!response.ok) {\n throw new Error(`Failed to fetch: ${response.status}`)\n }\n\n const blob = await response.blob()\n const objectUrl = URL.createObjectURL(blob)\n\n // Update entry with successful result\n const updatedEntry: CachedMedia = {\n src,\n blob,\n objectUrl,\n isLoading: false,\n lastAccessed: Date.now()\n }\n\n this.cache.set(src, updatedEntry)\n return updatedEntry\n } catch (error) {\n console.warn('Failed to cache media:', src, error)\n\n // Update entry with error\n const errorEntry: CachedMedia = {\n src,\n error: true,\n isLoading: false,\n lastAccessed: Date.now()\n }\n\n this.cache.set(src, errorEntry)\n return errorEntry\n }\n }\n\n acquireUrl(src: string): string | undefined {\n const entry = this.cache.get(src)\n if (entry?.objectUrl) {\n const currentCount = this.urlRefCount.get(entry.objectUrl) || 0\n this.urlRefCount.set(entry.objectUrl, currentCount + 1)\n return entry.objectUrl\n }\n return undefined\n }\n\n releaseUrl(src: string): void {\n const entry = this.cache.get(src)\n if (entry?.objectUrl) {\n const count = (this.urlRefCount.get(entry.objectUrl) || 1) - 1\n if (count <= 0) {\n URL.revokeObjectURL(entry.objectUrl)\n this.urlRefCount.delete(entry.objectUrl)\n // Remove from cache as well\n this.cache.delete(src)\n } else {\n this.urlRefCount.set(entry.objectUrl, count)\n }\n }\n }\n\n clearCache() {\n // Revoke all object URLs\n for (const entry of Array.from(this.cache.values())) {\n if (entry.objectUrl) {\n URL.revokeObjectURL(entry.objectUrl)\n }\n }\n this.cache.clear()\n this.urlRefCount.clear()\n }\n\n destroy() {\n if (this.cleanupInterval) {\n clearInterval(this.cleanupInterval)\n this.cleanupInterval = null\n }\n this.clearCache()\n }\n}\n\n// Global instance\nlet mediaCacheInstance: MediaCacheService | null = null\n\nexport function useMediaCache(options?: MediaCacheOptions) {\n if (!mediaCacheInstance) {\n mediaCacheInstance = new MediaCacheService(options)\n }\n\n const getCachedMedia = (src: string) =>\n mediaCacheInstance!.getCachedMedia(src)\n const clearCache = () => mediaCacheInstance!.clearCache()\n const acquireUrl = (src: string) => mediaCacheInstance!.acquireUrl(src)\n const releaseUrl = (src: string) => mediaCacheInstance!.releaseUrl(src)\n\n return {\n getCachedMedia,\n clearCache,\n acquireUrl,\n releaseUrl,\n cache: mediaCacheInstance.cache\n }\n}\n\n// Cleanup on page unload\nif (typeof window !== 'undefined') {\n window.addEventListener('beforeunload', () => {\n if (mediaCacheInstance) {\n mediaCacheInstance.destroy()\n }\n })\n}\n","<template>\n <div\n ref=\"containerRef\"\n class=\"relative flex h-full w-full items-center justify-center overflow-hidden\"\n :class=\"containerClass\"\n >\n <Skeleton\n v-if=\"!isImageLoaded\"\n width=\"100%\"\n height=\"100%\"\n class=\"absolute inset-0\"\n />\n <img\n v-if=\"cachedSrc\"\n :src=\"cachedSrc\"\n :alt=\"alt\"\n draggable=\"false\"\n :class=\"imageClass\"\n :style=\"imageStyle\"\n @load=\"onImageLoad\"\n @error=\"onImageError\"\n />\n <div\n v-if=\"hasError\"\n class=\"absolute inset-0 flex items-center justify-center\"\n >\n <img\n src=\"/assets/images/default-template.png\"\n :alt=\"alt\"\n draggable=\"false\"\n :class=\"imageClass\"\n :style=\"imageStyle\"\n />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport Skeleton from 'primevue/skeleton'\nimport { computed, onUnmounted, ref, watch } from 'vue'\n\nimport { useIntersectionObserver } from '@/composables/useIntersectionObserver'\nimport { useMediaCache } from '@/services/mediaCacheService'\nimport type { ClassValue } from '@/utils/tailwindUtil'\n\nconst {\n src,\n alt = '',\n containerClass = '',\n imageClass = '',\n imageStyle,\n rootMargin = '300px'\n} = defineProps<{\n src: string\n alt?: string\n containerClass?: ClassValue\n imageClass?: ClassValue\n imageStyle?: Record<string, any>\n rootMargin?: string\n}>()\n\nconst containerRef = ref<HTMLElement | null>(null)\nconst isIntersecting = ref(false)\nconst isImageLoaded = ref(false)\nconst hasError = ref(false)\nconst cachedSrc = ref<string | undefined>(undefined)\n\nconst { getCachedMedia, acquireUrl, releaseUrl } = useMediaCache()\n\n// Use intersection observer to detect when the image container comes into view\nuseIntersectionObserver(\n containerRef,\n (entries) => {\n const entry = entries[0]\n isIntersecting.value = entry?.isIntersecting ?? false\n },\n {\n rootMargin,\n threshold: 0.1\n }\n)\n\n// Only start loading the image when it's in view\nconst shouldLoad = computed(() => isIntersecting.value)\n\nwatch(\n shouldLoad,\n async (shouldLoadVal) => {\n if (shouldLoadVal && src && !cachedSrc.value && !hasError.value) {\n try {\n const cachedMedia = await getCachedMedia(src)\n if (cachedMedia.error) {\n hasError.value = true\n } else if (cachedMedia.objectUrl) {\n const acquiredUrl = acquireUrl(src)\n cachedSrc.value = acquiredUrl || cachedMedia.objectUrl\n } else {\n cachedSrc.value = src\n }\n } catch (error) {\n console.warn('Failed to load cached media:', error)\n cachedSrc.value = src\n }\n } else if (!shouldLoadVal) {\n if (cachedSrc.value?.startsWith('blob:')) {\n releaseUrl(src)\n }\n // Hide image when out of view\n isImageLoaded.value = false\n cachedSrc.value = undefined\n hasError.value = false\n }\n },\n { immediate: true }\n)\n\nconst onImageLoad = () => {\n isImageLoaded.value = true\n hasError.value = false\n}\n\nconst onImageError = () => {\n hasError.value = true\n isImageLoaded.value = false\n}\n\nonUnmounted(() => {\n if (cachedSrc.value?.startsWith('blob:')) {\n releaseUrl(src)\n }\n})\n</script>\n"],"names":["useFeatureFlags","flags","reactive","api","remoteConfig","featureFlag","__name","featurePath","defaultValue","computed","readonly","selectedItem","_useModel","__props","t","useI18n","getLabel","val","found","o","optionStyle","styles","formatDisplayName","folderName","specialCases","word","DISALLOWED_MODEL_TYPES","useModelTypes","createSharedComposable","modelTypes","isLoading","error","fetchModelTypes","useAsyncState","folder","a","b","err","modelValue","isVisible","handleEscapeKey","event","watch","visible","stop","useEventListener","onWatcherCleanup","showCivitaiHelp","ref","showHuggingFaceHelp","emit","__emit","civitaiImportSource","huggingfaceImportSource","validateSourceUrl","url","source","hostname","h","civitaiIcon","civitaiUrl","huggingFaceIcon","huggingFaceUrl","props","value","importSources","isValidUrl","trimmedUrl","useUploadModelWizard","assetsStore","useAssetsStore","assetDownloadStore","useAssetDownloadStore","modelToNodeStore","useModelToNodeStore","currentStep","isFetchingMetadata","isUploading","uploadStatus","uploadError","wizardData","selectedModelType","detectedSource","canFetchMetadata","canUploadModel","fetchMetadata","cleanedUrl","supportedSources","s","metadata","assetService","typeTag","tag","type","st","uploadPreviewImage","filename","baseFilename","extension","mimeMatch","refreshModelCaches","providers","provider","result","index","uploadModel","tags","previewId","userMetadata","goToPreviousStep","dialogStore","useDialogStore","handleFetchMetadata","handleUploadModel","handleClose","onMounted","_imports_0$1","titleKey","_hoisted_1","_hoisted_2","_openBlock","_createElementBlock","_createElementVNode","_toDisplayString","_ctx","showSubscriptionDialog","useSubscription","handleSubscribe","useModelUpload","onUploadSuccess","isUploadButtonEnabled","showUploadDialog","UploadModelDialogHeader","UploadModelDialog","UploadModelUpgradeModalHeader","UploadModelUpgradeModal","_imports_0","useIntersectionObserver","target","callback","options","immediate","observerOptions","isSupported","isIntersecting","observer","cleanup","observe","entries","entry","unobserve","onBeforeUnmount","MediaCacheService","now","keysToDelete","key","removedCount","targetRemoveCount","src","response","blob","objectUrl","updatedEntry","errorEntry","currentCount","count","mediaCacheInstance","useMediaCache","containerRef","isImageLoaded","hasError","cachedSrc","getCachedMedia","acquireUrl","releaseUrl","shouldLoad","shouldLoadVal","cachedMedia","acquiredUrl","onImageLoad","onImageError","onUnmounted"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Load3D-CbCbkSys.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.legacy-dialog[data-v-44074ee0] .bg-comfy-menu-secondary{background-color:transparent}.legacy-dialog[data-v-44074ee0] .p-button{color:#fff}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var X=Object.defineProperty;var a=(m,c)=>X(m,"name",{value:c,configurable:!0});import{t as s,dx as I,a5 as G,m as V,a4 as Q,X as J,dy as Z,c as M,_ as L,d as U,A as ee,b as te}from"./index-B3VEOed6.js";import{_ as se,a as oe}from"./GraphView-_ZGu5uNf.js";import{bx as j,E as T,j as ne,d as x,r as E,c as b,e,z as p,by as n,k as y,q as O,u as t,F as re,y as ae,s as F,l as le,A,v as ie,w as z,dc as ce}from"./vendor-other-B8t_Wf2K.js";import{v as de,p as ue}from"./vendor-primevue-Bp7MMXLP.js";import{u as pe}from"./vendor-vue-DaLZjKA7.js";import"./vendor-xterm-CWYFmgbN.js";import"./vendor-three-DH0o8VQ7.js";import"./vendor-tiptap-VxK0yxkd.js";import"./UserAvatar.vue_vue_type_script_setup_true_lang-48WRCWXz.js";import"./index-CtDW77xi.js";import"./LazyImage.vue_vue_type_script_setup_true_lang-BHcWsrBj.js";import"./keybindingService-50G4NbCc.js";import"./serverConfigStore-D8kGBwZ6.js";import"./WidgetInputNumber.vue_vue_type_script_setup_true_lang-D-IwEPPr.js";import"./widgetPropFilter-CygYoMQt.js";import"./WidgetLayoutField.vue_vue_type_script_setup_true_lang-DFWVBJH-.js";import"./WidgetWithControl.vue_vue_type_script_setup_true_lang-B7cz0rwK.js";const me=j({__name:"CloudBadge",props:{displayMode:{default:"full"},reverseOrder:{type:Boolean,default:!1},noPadding:{type:Boolean,default:!1},backgroundColor:{default:"var(--comfy-menu-bg)"}},setup(m){const c=T(()=>({label:s("g.beta"),text:"Comfy Cloud"}));return(f,v)=>(x(),ne(se,{badge:c.value,"display-mode":f.displayMode,"reverse-order":f.reverseOrder,"no-padding":f.noPadding,"background-color":f.backgroundColor},null,8,["badge","display-mode","reverse-order","no-padding","background-color"]))}}),fe=""+new URL("images/cloud-subscription.webm",import.meta.url).href,xe=20,be=["yearly-pro","yearly-creator","yearly-standard","monthly-pro","monthly-creator","monthly-standard"];be.reduce((m,c,f)=>m.set(c,f),new Map);const ge={class:"flex flex-col gap-8"},_e={class:"flex justify-center"},ye={class:"flex items-center gap-2"},ve={key:0,class:"bg-primary-background text-white text-[11px] px-1 py-0.5 rounded-full flex items-center font-bold"},he={class:"flex flex-col xl:flex-row items-stretch gap-6"},we={class:"p-8 pb-0 flex flex-col gap-8"},ke={class:"flex flex-row items-center gap-2 justify-between"},$e={class:"font-inter text-base font-bold leading-normal text-base-foreground"},Ce={key:0,class:"rounded-full bg-base-foreground px-1.5 text-[11px] font-bold uppercase text-base-background h-5 tracking-tight flex items-center"},Le={class:"flex flex-col"},Pe={class:"flex flex-col gap-2"},Se={class:"flex flex-row items-baseline gap-2"},Ee={class:"font-inter text-[32px] font-semibold leading-normal text-base-foreground"},Te={class:"font-inter text-xl leading-normal text-base-foreground"},Ae={class:"flex items-center gap-2"},De={class:"text-sm text-muted-foreground"},Re={class:"flex flex-col gap-4 pb-0 flex-1"},Be={class:"flex flex-row items-center justify-between"},Ie={class:"font-inter text-sm font-normal leading-normal text-foreground"},je={class:"flex flex-row items-center gap-1"},Ne={class:"font-inter text-sm font-bold leading-normal text-base-foreground"},Me={class:"flex flex-row items-center justify-between"},Oe={class:"text-sm font-normal text-foreground"},Fe={class:"font-inter text-sm font-bold leading-normal text-base-foreground"},ze={class:"flex flex-row items-center justify-between"},Ve={class:"text-sm font-normal text-foreground"},Ue={class:"flex flex-row items-center justify-between"},He={class:"text-sm font-normal text-foreground"},Ye={class:"flex flex-row items-center justify-between"},qe={class:"text-sm font-normal text-foreground"},Ke={key:0,class:"pi pi-check text-xs text-success-foreground"},We={key:1,class:"pi pi-times text-xs text-foreground"},Xe={class:"flex flex-col gap-2"},Ge={class:"flex flex-row items-start justify-between"},Qe={class:"flex flex-col gap-2"},Je={class:"text-sm font-normal text-foreground leading-relaxed"},Ze={class:"flex flex-row items-center gap-2 group pt-2"},et={class:"font-inter text-sm font-bold leading-normal text-base-foreground"},tt={class:"flex flex-col p-8"},st={class:"flex flex-col gap-2"},ot={class:"text-sm text-base-foreground leading-normal"},nt={href:"https://cloud.comfy.org/?template=video_wan2_2_14B_fun_camera",target:"_blank",rel:"noopener noreferrer",class:"text-sm text-azure-600 hover:text-azure-400 no-underline flex gap-1"},rt={class:"underline"},at=j({__name:"PricingTable",setup(m){const c=[{label:s("subscription.yearly"),value:"yearly"},{label:s("subscription.monthly"),value:"monthly"}],f=[{id:"STANDARD",key:"standard",name:s("subscription.tiers.standard.name"),pricing:I.standard,maxDuration:s("subscription.maxDuration.standard"),customLoRAs:!1,isPopular:!1},{id:"CREATOR",key:"creator",name:s("subscription.tiers.creator.name"),pricing:I.creator,maxDuration:s("subscription.maxDuration.creator"),customLoRAs:!0,isPopular:!0},{id:"PRO",key:"pro",name:s("subscription.tiers.pro.name"),pricing:I.pro,maxDuration:s("subscription.maxDuration.pro"),customLoRAs:!0,isPopular:!1}],{n:v}=pe(),{getAuthHeader:N}=G(),{isActiveSubscription:D,subscriptionTier:P,isYearlySubscription:S}=V(),{accessBillingPortal:k,reportError:h}=Q(),{wrapWithErrorHandlingAsync:$}=J(),g=E(!1),R=E(null),w=E(),u=E("yearly"),_=T(()=>P.value?Z[P.value]:null);T(()=>_.value?{tierKey:_.value,billingCycle:S.value?"yearly":"monthly"}:null);const C=a(r=>{if(!_.value)return!1;const i=u.value==="yearly";return _.value===r&&S.value===i},"isCurrentPlan"),B=a(r=>{w.value.toggle(r)},"togglePopover"),l=a(r=>{if(C(r.key))return s("subscription.currentPlan");const i=u.value==="yearly"?s("subscription.tierNameYearly",{name:r.name}):r.name;return D.value?s("subscription.changeTo",{plan:i}):s("subscription.subscribeTo",{plan:i})},"getButtonLabel"),d=a(r=>C(r.key)?"secondary":r.key==="creator"?"primary":"secondary","getButtonSeverity"),H=a(r=>r.key==="creator"?"font-inter text-sm font-bold leading-normal text-base-background":"font-inter text-sm font-bold leading-normal text-primary-foreground","getButtonTextClass"),Y=a(r=>r.pricing[u.value],"getPrice"),q=a(r=>r.pricing.yearly*12,"getAnnualTotal"),K=a(r=>r.pricing.credits*(u.value==="yearly"?12:1),"getCreditsDisplay"),W=$(async r=>{},h);return(r,i)=>(x(),b("div",ge,[e("div",_e,[p(n(de),{modelValue:u.value,"onUpdate:modelValue":i[0]||(i[0]=o=>u.value=o),options:c,"option-label":"label","option-value":"value","allow-empty":!1,unstyled:"",pt:{root:{class:"flex gap-1 bg-secondary-background rounded-lg p-1.5"},pcToggleButton:{root:a(({context:o})=>({class:["w-36 h-8 rounded-md transition-colors cursor-pointer border-none outline-none ring-0 text-sm font-medium flex items-center justify-center",o.active?"bg-base-foreground text-base-background":"bg-transparent text-muted-foreground hover:bg-secondary-background-hover"]}),"root"),label:{class:"flex items-center gap-2 "}}}},{option:y(({option:o})=>[e("div",ye,[e("span",null,t(o.label),1),o.value==="yearly"?(x(),b("div",ve," -20% ")):O("",!0)])]),_:1},8,["modelValue","pt"])]),e("div",he,[(x(),b(re,null,ae(f,o=>e("div",{key:o.id,class:F(n(M)("flex-1 flex flex-col rounded-2xl border border-border-default bg-base-background shadow-[0_0_12px_rgba(0,0,0,0.1)]",o.isPopular?"border-muted-foreground":""))},[e("div",we,[e("div",ke,[e("span",$e,t(o.name),1),o.isPopular?(x(),b("div",Ce,t(n(s)("subscription.mostPopular")),1)):O("",!0)]),e("div",Le,[e("div",Pe,[e("div",Se,[e("span",Ee,[le(e("span",{class:"line-through text-2xl text-muted-foreground"}," $"+t(o.pricing.monthly),513),[[ie,u.value==="yearly"]]),A(" $"+t(Y(o)),1)]),e("span",Te,t(n(s)("subscription.usdPerMonth")),1)]),e("div",Ae,[e("span",De,t(u.value==="yearly"?n(s)("subscription.billedYearly",{total:`$${q(o)}`}):n(s)("subscription.billedMonthly")),1)])])]),e("div",Re,[e("div",Be,[e("span",Ie,t(u.value==="yearly"?n(s)("subscription.yearlyCreditsLabel"):n(s)("subscription.monthlyCreditsLabel")),1),e("div",je,[i[1]||(i[1]=e("i",{class:"icon-[lucide--component] text-amber-400 text-sm"},null,-1)),e("span",Ne,t(n(v)(K(o))),1)])]),e("div",Me,[e("span",Oe,t(n(s)("subscription.maxDurationLabel")),1),e("span",Fe,t(o.maxDuration),1)]),e("div",ze,[e("span",Ve,t(n(s)("subscription.gpuLabel")),1),i[2]||(i[2]=e("i",{class:"pi pi-check text-xs text-success-foreground"},null,-1))]),e("div",Ue,[e("span",He,t(n(s)("subscription.addCreditsLabel")),1),i[3]||(i[3]=e("i",{class:"pi pi-check text-xs text-success-foreground"},null,-1))]),e("div",Ye,[e("span",qe,t(n(s)("subscription.customLoRAsLabel")),1),o.customLoRAs?(x(),b("i",Ke)):(x(),b("i",We))]),e("div",Xe,[e("div",Ge,[e("div",Qe,[e("span",Je,t(n(s)("subscription.videoEstimateLabel")),1),e("div",Ze,[i[4]||(i[4]=e("i",{class:"pi pi-question-circle text-xs text-muted-foreground group-hover:text-base-foreground"},null,-1)),e("span",{class:"text-sm font-normal text-muted-foreground cursor-pointer group-hover:text-base-foreground",onClick:B},t(n(s)("subscription.videoEstimateHelp")),1)])]),e("span",et," ~"+t(n(v)(o.pricing.videoEstimate)),1)])])])]),e("div",tt,[p(L,{variant:d(o),disabled:g.value||C(o.key),loading:R.value===o.key,class:F(n(M)("h-10 w-full",H(o),o.key==="creator"?"bg-base-foreground border-transparent hover:bg-inverted-background-hover":"bg-secondary-background border-transparent hover:bg-secondary-background-hover focus:bg-secondary-background-selected")),onClick:a(()=>n(W)(o.key),"onClick")},{default:y(()=>[A(t(l(o)),1)]),_:2},1032,["variant","disabled","loading","class","onClick"])])],2)),64))]),p(n(ue),{ref_key:"popover",ref:w,"append-to":"body","auto-z-index":!0,"base-z-index":1e3,dismissable:!0,"close-on-escape":!0,unstyled:"",pt:{root:{class:"rounded-lg border border-interface-stroke bg-interface-panel-surface shadow-lg p-4 max-w-xs"}}},{default:y(()=>[e("div",st,[e("p",ot,t(n(s)("subscription.videoEstimateExplanation")),1),e("a",nt,[e("span",rt,t(n(s)("subscription.videoEstimateTryTemplate")),1),i[5]||(i[5]=e("span",{class:"no-underline",innerHTML:"→"},null,-1))])])]),_:1},512)]))}}),lt={},it={class:"flex flex-col items-start gap-0 self-stretch"},ct={class:"flex items-center gap-2 py-2"},dt={class:"text-sm text-text-primary"},ut={class:"flex items-center gap-2 py-2"},pt={class:"text-sm text-text-primary"};function mt(m,c){return x(),b("div",it,[e("div",ct,[c[0]||(c[0]=e("i",{class:"pi pi-check text-xs text-text-primary"},null,-1)),e("span",dt,t(m.$t("subscription.benefits.benefit1")),1)]),e("div",ut,[c[1]||(c[1]=e("i",{class:"pi pi-check text-xs text-text-primary"},null,-1)),e("span",pt,t(m.$t("subscription.benefits.benefit2")),1)])])}a(mt,"_sfc_render");const ft=U(lt,[["render",mt]]),xt={key:0,class:"relative flex flex-col p-4 pt-8 md:p-16 !overflow-y-auto h-full gap-8"},bt={class:"text-center"},gt={class:"text-xl lg:text-2xl text-muted-foreground m-0"},_t={class:"flex flex-col items-center gap-2"},yt={class:"text-sm text-text-secondary m-0"},vt={class:"flex items-center gap-1.5"},ht={class:"text-sm text-text-secondary"},wt={key:1,class:"legacy-dialog relative grid h-full grid-cols-5"},kt={class:"col-span-3 flex flex-col justify-between p-8"},$t={class:"flex flex-col gap-6"},Ct={class:"inline-flex items-center gap-2"},Lt={class:"text-sm text-text-primary"},Pt={class:"flex items-baseline gap-2"},St={class:"text-4xl font-bold"},Et={class:"text-xl"},Tt={class:"flex flex-col pt-8"},At=3e3,Dt=3,Rt=j({__name:"SubscriptionRequiredDialogContent",props:{onClose:{type:Function}},emits:["close"],setup(m,{emit:c}){const f=m,v=c,{fetchStatus:N,isActiveSubscription:D}=V(),P=new Intl.NumberFormat(navigator.language||"en-US",{style:"currency",currency:"USD",minimumFractionDigits:0,maximumFractionDigits:0}).format(xe),S=ee(),k=T(()=>te);let h=null,$=0;const g=a(()=>{h&&(clearInterval(h),h=null)},"stopPolling"),R=a(()=>{g(),$=0;const l=a(async()=>{try{await N(),$++,$>=Dt&&g()}catch(d){console.error("[SubscriptionDialog] Failed to poll subscription status",d),g()}},"poll");l(),h=window.setInterval(()=>{l()},At)},"startPolling"),w=a(()=>{k.value&&R()},"handleWindowFocus");z(k,l=>{l?window.addEventListener("focus",w):(window.removeEventListener("focus",w),g())},{immediate:!0}),z(()=>D.value,l=>{l&&k.value&&v("close",!0)});const u=a(()=>{v("close",!0)},"handleSubscribed"),_=a(()=>{g(),f.onClose()},"handleClose"),C=a(async()=>{await S.execute("Comfy.ContactSupport")},"handleContactUs"),B=a(()=>{window.open("https://www.comfy.org/cloud/enterprise","_blank")},"handleViewEnterprise");return ce(()=>{g(),window.removeEventListener("focus",w)}),(l,d)=>k.value?(x(),b("div",xt,[p(L,{size:"icon",variant:"muted-textonly",class:"rounded-full shrink-0 text-text-secondary hover:bg-white/10 absolute right-2.5 top-2.5","aria-label":l.$t("g.close"),onClick:_},{default:y(()=>d[0]||(d[0]=[e("i",{class:"pi pi-times text-xl"},null,-1)])),_:1},8,["aria-label"]),e("div",bt,[e("h2",gt,t(l.$t("subscription.description")),1)]),p(at,{class:"flex-1"}),e("div",_t,[e("p",yt,t(l.$t("subscription.haveQuestions")),1),e("div",vt,[p(L,{variant:"muted-textonly",class:"h-6 p-1 text-sm text-text-secondary hover:text-base-foreground",onClick:C},{default:y(()=>[A(t(l.$t("subscription.contactUs"))+" ",1),d[1]||(d[1]=e("i",{class:"pi pi-comments"},null,-1))]),_:1}),e("span",ht,t(l.$t("g.or")),1),p(L,{variant:"muted-textonly",class:"h-6 p-1 text-sm text-text-secondary hover:text-base-foreground",onClick:B},{default:y(()=>[A(t(l.$t("subscription.viewEnterprise"))+" ",1),d[2]||(d[2]=e("i",{class:"pi pi-external-link"},null,-1))]),_:1})])])])):(x(),b("div",wt,[p(L,{size:"icon",variant:"muted-textonly",class:"rounded-full absolute top-2.5 right-2.5 z-10 h-8 w-8 p-0 text-white hover:bg-white/20","aria-label":l.$t("g.close"),onClick:_},{default:y(()=>d[3]||(d[3]=[e("i",{class:"pi pi-times"},null,-1)])),_:1},8,["aria-label"]),d[4]||(d[4]=e("div",{class:"relative col-span-2 flex items-center justify-center overflow-hidden rounded-sm"},[e("video",{autoplay:"",loop:"",muted:"",playsinline:"",class:"h-full min-w-[125%] object-cover p-0",style:{"margin-left":"-20%"}},[e("source",{src:fe,type:"video/webm"})])],-1)),e("div",kt,[e("div",null,[e("div",$t,[e("div",Ct,[e("div",Lt,t(l.$t("subscription.required.title")),1),p(me,{"reverse-order":"","no-padding":"","background-color":"var(--p-dialog-background)","use-subscription":""})]),e("div",Pt,[e("span",St,t(n(P)),1),e("span",Et,t(l.$t("subscription.perMonth")),1)])]),p(ft,{class:"mt-6 text-muted"})]),e("div",Tt,[p(oe,{class:"py-2 px-4 rounded-lg",pt:{root:{style:"background: var(--color-accent-blue, #0B8CE9);"},label:{class:"font-inter font-[700] text-sm"}},onSubscribed:u})])])]))}}),Jt=U(Rt,[["__scopeId","data-v-44074ee0"]]);export{Jt as default};
|
|
2
|
-
//# sourceMappingURL=SubscriptionRequiredDialogContent-BMLw-0ti.js.map
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{_ as o}from"./WidgetInputNumber.vue_vue_type_script_setup_true_lang-D-IwEPPr.js";import"./vendor-primevue-Bp7MMXLP.js";import"./vendor-other-B8t_Wf2K.js";import"./index-B3VEOed6.js";import"./vendor-vue-DaLZjKA7.js";import"./vendor-xterm-CWYFmgbN.js";import"./vendor-three-DH0o8VQ7.js";import"./vendor-tiptap-VxK0yxkd.js";import"./widgetPropFilter-CygYoMQt.js";import"./index-CtDW77xi.js";import"./WidgetLayoutField.vue_vue_type_script_setup_true_lang-DFWVBJH-.js";import"./WidgetWithControl.vue_vue_type_script_setup_true_lang-B7cz0rwK.js";export{o as default};
|
|
2
|
-
//# sourceMappingURL=WidgetInputNumber-zsVb0Vit.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetInputNumber-zsVb0Vit.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a_ as o}from"./index-B3VEOed6.js";import"./vendor-primevue-Bp7MMXLP.js";import"./vendor-other-B8t_Wf2K.js";import"./vendor-vue-DaLZjKA7.js";import"./vendor-xterm-CWYFmgbN.js";import"./vendor-three-DH0o8VQ7.js";import"./vendor-tiptap-VxK0yxkd.js";export{o as default};
|
|
2
|
-
//# sourceMappingURL=WidgetLegacy-Dh4xE798.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetLegacy-Dh4xE798.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{_ as o}from"./WidgetSelect.vue_vue_type_script_setup_true_lang-EU2Y4eXi.js";import"./index-B3VEOed6.js";import"./vendor-primevue-Bp7MMXLP.js";import"./vendor-other-B8t_Wf2K.js";import"./vendor-vue-DaLZjKA7.js";import"./vendor-xterm-CWYFmgbN.js";import"./vendor-three-DH0o8VQ7.js";import"./vendor-tiptap-VxK0yxkd.js";import"./widgetPropFilter-CygYoMQt.js";import"./index-CtDW77xi.js";import"./WidgetLayoutField.vue_vue_type_script_setup_true_lang-DFWVBJH-.js";import"./LazyImage.vue_vue_type_script_setup_true_lang-BHcWsrBj.js";import"./WidgetWithControl.vue_vue_type_script_setup_true_lang-B7cz0rwK.js";export{o as default};
|
|
2
|
-
//# sourceMappingURL=WidgetSelect-B9DwAKiE.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WidgetSelect-B9DwAKiE.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e={label:"Abrir visor 3D (Beta) para el nodo seleccionado"},o={label:"Experimental: Explorar recursos de modelos"},a={label:"Explorar plantillas"},l={label:"Eliminar elementos seleccionados"},r={label:"Ajustar vista a los nodos seleccionados"},s={label:"Bloquear lienzo"},n={label:"Mover nodos seleccionados hacia abajo"},t={label:"Mover nodos seleccionados a la izquierda"},c={label:"Mover nodos seleccionados a la derecha"},i={label:"Mover nodos seleccionados hacia arriba"},d={label:"Restablecer vista"},_={label:"Redimensionar Nodos Seleccionados"},b={label:"Alternar visibilidad de enlace en lienzo"},m={label:"Alternar bloqueo en lienzo"},C={label:"Lienzo Alternar Minimapa"},f={label:"Omitir/No omitir nodos seleccionados"},p={label:"Colapsar/Expandir nodos seleccionados"},u={label:"Silenciar/Activar sonido de nodos seleccionados"},y={label:"Anclar/Desanclar nodos seleccionados"},g={label:"Anclar/Desanclar elementos seleccionados"},k={label:"Desbloquear lienzo"},A={label:"Acercar"},M={label:"Alejar"},T={label:"Borrar tareas pendientes"},v={label:"Borrar flujo de trabajo"},S={label:"Contactar soporte"},h={label:"Mostrar selector de modelo (Dev)"},D={label:"Duplicar flujo de trabajo actual"},j={label:"Exportar flujo de trabajo"},E={label:"Exportar flujo de trabajo (formato API)"},N={label:"Convertir selección en subgrafo"},w={label:"Editar widgets de subgráficos"},O={label:"Salir de subgrafo"},P={label:"Ajustar grupo al contenido"},W={label:"Agrupar nodos seleccionados"},B={label:"Alternar promoción del widget sobre el que se pasa el cursor"},F={label:"Desempaquetar el subgrafo seleccionado"},I={label:"Convertir nodos seleccionados en nodo de grupo"},G={label:"Administrar nodos de grupo"},U={label:"Desagrupar nodos de grupo seleccionados"},z={label:"Abrir Acerca de ComfyUI"},R={label:"Abrir Comfy-Org Discord"},x={label:"Abrir documentación de ComfyUI"},L={label:"Abrir foro de ComfyUI"},V={label:"Abrir problemas de ComfyUI"},q={label:"Interrumpir"},H={label:"Cargar flujo de trabajo predeterminado"},Q={label:"Nodos personalizados (Beta)"},Z={label:"Nodos personalizados (heredados)"},J={label:"Menú del administrador (heredado)"},K={label:"Instalar faltantes"},X={label:"Buscar actualizaciones"},Y={label:"Disminuir tamaño del pincel en MaskEditor"},$={label:"Aumentar tamaño del pincel en MaskEditor"},ee={label:"Abrir selector de color en MaskEditor"},oe={label:"Espejar horizontalmente en MaskEditor"},ae={label:"Espejar verticalmente en MaskEditor"},le={label:"Abrir editor de máscara para el nodo seleccionado"},re={label:"Girar a la izquierda en MaskEditor"},se={label:"Girar a la derecha en MaskEditor"},ne={label:"Descargar modelos"},te={label:"Descargar modelos y caché de ejecución"},ce={label:"Nuevo flujo de trabajo en blanco"},ie={label:"Abrir espacio de clips"},de={label:"Administrador"},_e={label:"Abrir Flujo de Trabajo"},be={label:"Publicar subgrafo"},me={label:"Prompt de Cola"},Ce={label:"Prompt de Cola (Frente)"},fe={label:"Encolar nodos de salida seleccionados"},pe={label:"Alternar historial de trabajos"},ue={label:"Rehacer"},ye={label:"Actualizar Definiciones de Nodo"},ge={label:"Guardar Flujo de Trabajo"},ke={label:"Guardar Flujo de Trabajo Como"},Ae={label:"Mostrar Diálogo de Configuraciones"},Me={label:"Experimental: Habilitar AssetAPI"},Te={label:"Rendimiento del lienzo"},ve={label:"Centro de ayuda"},Se={label:"alternar modo lineal"},he={label:"Alternar Panel de Cola V2"},De={label:"Cambiar Tema (Oscuro/Claro)"},je={label:"Deshacer"},Ee={label:"Abrir diálogo de inicio de sesión"},Ne={label:"Cerrar sesión"},we={label:"Experimental: Habilitar nodos Vue"},Oe={label:"Cerrar Flujo de Trabajo Actual"},Pe={label:"Siguiente Flujo de Trabajo Abierto"},We={label:"Flujo de Trabajo Abierto Anterior"},Be={label:"Alternar Caja de Búsqueda"},Fe={label:"Alternar Panel Inferior"},Ie={label:"Mostrar diálogo de combinaciones de teclas"},Ge={label:"Alternar Modo de Enfoque"},Ue={label:"Alternar barra lateral de recursos",tooltip:"Recursos"},ze={label:"Alternar Barra Lateral de Flujos de Trabajo",tooltip:"Flujos de Trabajo"},Re={"Comfy-Desktop_CheckForUpdates":{label:"Buscar actualizaciones"},"Comfy-Desktop_Folders_OpenCustomNodesFolder":{label:"Abrir carpeta de nodos personalizados"},"Comfy-Desktop_Folders_OpenInputsFolder":{label:"Abrir carpeta de entradas"},"Comfy-Desktop_Folders_OpenLogsFolder":{label:"Abrir carpeta de registros"},"Comfy-Desktop_Folders_OpenModelConfig":{label:"Abrir extra_model_paths.yaml"},"Comfy-Desktop_Folders_OpenModelsFolder":{label:"Abrir carpeta de modelos"},"Comfy-Desktop_Folders_OpenOutputsFolder":{label:"Abrir carpeta de salidas"},"Comfy-Desktop_OpenDevTools":{label:"Abrir herramientas de desarrollo"},"Comfy-Desktop_OpenUserGuide":{label:"Guía de usuario de escritorio"},"Comfy-Desktop_Quit":{label:"Salir"},"Comfy-Desktop_Reinstall":{label:"Reinstalar"},"Comfy-Desktop_Restart":{label:"Reiniciar"},Comfy_3DViewer_Open3DViewer:e,Comfy_BrowseModelAssets:o,Comfy_BrowseTemplates:a,Comfy_Canvas_DeleteSelectedItems:l,Comfy_Canvas_FitView:r,Comfy_Canvas_Lock:s,Comfy_Canvas_MoveSelectedNodes_Down:n,Comfy_Canvas_MoveSelectedNodes_Left:t,Comfy_Canvas_MoveSelectedNodes_Right:c,Comfy_Canvas_MoveSelectedNodes_Up:i,Comfy_Canvas_ResetView:d,Comfy_Canvas_Resize:_,Comfy_Canvas_ToggleLinkVisibility:b,Comfy_Canvas_ToggleLock:m,Comfy_Canvas_ToggleMinimap:C,Comfy_Canvas_ToggleSelectedNodes_Bypass:f,Comfy_Canvas_ToggleSelectedNodes_Collapse:p,Comfy_Canvas_ToggleSelectedNodes_Mute:u,Comfy_Canvas_ToggleSelectedNodes_Pin:y,Comfy_Canvas_ToggleSelected_Pin:g,Comfy_Canvas_Unlock:k,Comfy_Canvas_ZoomIn:A,Comfy_Canvas_ZoomOut:M,Comfy_ClearPendingTasks:T,Comfy_ClearWorkflow:v,Comfy_ContactSupport:S,Comfy_Dev_ShowModelSelector:h,Comfy_DuplicateWorkflow:D,Comfy_ExportWorkflow:j,Comfy_ExportWorkflowAPI:E,Comfy_Graph_ConvertToSubgraph:N,Comfy_Graph_EditSubgraphWidgets:w,Comfy_Graph_ExitSubgraph:O,Comfy_Graph_FitGroupToContents:P,Comfy_Graph_GroupSelectedNodes:W,Comfy_Graph_ToggleWidgetPromotion:B,Comfy_Graph_UnpackSubgraph:F,Comfy_GroupNode_ConvertSelectedNodesToGroupNode:I,Comfy_GroupNode_ManageGroupNodes:G,Comfy_GroupNode_UngroupSelectedGroupNodes:U,Comfy_Help_AboutComfyUI:z,Comfy_Help_OpenComfyOrgDiscord:R,Comfy_Help_OpenComfyUIDocs:x,Comfy_Help_OpenComfyUIForum:L,Comfy_Help_OpenComfyUIIssues:V,Comfy_Interrupt:q,Comfy_LoadDefaultWorkflow:H,Comfy_Manager_CustomNodesManager_ShowCustomNodesMenu:Q,Comfy_Manager_CustomNodesManager_ShowLegacyCustomNodesMenu:Z,Comfy_Manager_ShowLegacyManagerMenu:J,Comfy_Manager_ShowMissingPacks:K,Comfy_Manager_ShowUpdateAvailablePacks:X,Comfy_MaskEditor_BrushSize_Decrease:Y,Comfy_MaskEditor_BrushSize_Increase:$,Comfy_MaskEditor_ColorPicker:ee,Comfy_MaskEditor_Mirror_Horizontal:oe,Comfy_MaskEditor_Mirror_Vertical:ae,Comfy_MaskEditor_OpenMaskEditor:le,Comfy_MaskEditor_Rotate_Left:re,Comfy_MaskEditor_Rotate_Right:se,Comfy_Memory_UnloadModels:ne,Comfy_Memory_UnloadModelsAndExecutionCache:te,Comfy_NewBlankWorkflow:ce,Comfy_OpenClipspace:ie,Comfy_OpenManagerDialog:de,Comfy_OpenWorkflow:_e,Comfy_PublishSubgraph:be,Comfy_QueuePrompt:me,Comfy_QueuePromptFront:Ce,Comfy_QueueSelectedOutputNodes:fe,Comfy_Queue_ToggleOverlay:pe,Comfy_Redo:ue,Comfy_RefreshNodeDefinitions:ye,Comfy_SaveWorkflow:ge,Comfy_SaveWorkflowAs:ke,Comfy_ShowSettingsDialog:Ae,Comfy_ToggleAssetAPI:Me,Comfy_ToggleCanvasInfo:Te,Comfy_ToggleHelpCenter:ve,Comfy_ToggleLinear:Se,Comfy_ToggleQPOV2:he,Comfy_ToggleTheme:De,Comfy_Undo:je,Comfy_User_OpenSignInDialog:Ee,Comfy_User_SignOut:Ne,Experimental_ToggleVueNodes:we,Workspace_CloseWorkflow:Oe,Workspace_NextOpenedWorkflow:Pe,Workspace_PreviousOpenedWorkflow:We,Workspace_SearchBox_Toggle:Be,Workspace_ToggleBottomPanel:Fe,"Workspace_ToggleBottomPanelTab_command-terminal":{label:"Alternar Panel Inferior de Terminal"},"Workspace_ToggleBottomPanelTab_logs-terminal":{label:"Alternar Panel Inferior de Registros"},"Workspace_ToggleBottomPanelTab_shortcuts-essentials":{label:"Alternar panel inferior esencial"},"Workspace_ToggleBottomPanelTab_shortcuts-view-controls":{label:"Alternar panel inferior de controles de vista"},Workspace_ToggleBottomPanel_Shortcuts:Ie,Workspace_ToggleFocusMode:Ge,Workspace_ToggleSidebarTab_assets:Ue,"Workspace_ToggleSidebarTab_model-library":{label:"Alternar Barra Lateral de Biblioteca de Modelos",tooltip:"Biblioteca de Modelos"},"Workspace_ToggleSidebarTab_node-library":{label:"Alternar Barra Lateral de Biblioteca de Nodos",tooltip:"Biblioteca de Nodos"},Workspace_ToggleSidebarTab_workflows:ze};export{e as Comfy_3DViewer_Open3DViewer,o as Comfy_BrowseModelAssets,a as Comfy_BrowseTemplates,l as Comfy_Canvas_DeleteSelectedItems,r as Comfy_Canvas_FitView,s as Comfy_Canvas_Lock,n as Comfy_Canvas_MoveSelectedNodes_Down,t as Comfy_Canvas_MoveSelectedNodes_Left,c as Comfy_Canvas_MoveSelectedNodes_Right,i as Comfy_Canvas_MoveSelectedNodes_Up,d as Comfy_Canvas_ResetView,_ as Comfy_Canvas_Resize,b as Comfy_Canvas_ToggleLinkVisibility,m as Comfy_Canvas_ToggleLock,C as Comfy_Canvas_ToggleMinimap,f as Comfy_Canvas_ToggleSelectedNodes_Bypass,p as Comfy_Canvas_ToggleSelectedNodes_Collapse,u as Comfy_Canvas_ToggleSelectedNodes_Mute,y as Comfy_Canvas_ToggleSelectedNodes_Pin,g as Comfy_Canvas_ToggleSelected_Pin,k as Comfy_Canvas_Unlock,A as Comfy_Canvas_ZoomIn,M as Comfy_Canvas_ZoomOut,T as Comfy_ClearPendingTasks,v as Comfy_ClearWorkflow,S as Comfy_ContactSupport,h as Comfy_Dev_ShowModelSelector,D as Comfy_DuplicateWorkflow,j as Comfy_ExportWorkflow,E as Comfy_ExportWorkflowAPI,N as Comfy_Graph_ConvertToSubgraph,w as Comfy_Graph_EditSubgraphWidgets,O as Comfy_Graph_ExitSubgraph,P as Comfy_Graph_FitGroupToContents,W as Comfy_Graph_GroupSelectedNodes,B as Comfy_Graph_ToggleWidgetPromotion,F as Comfy_Graph_UnpackSubgraph,I as Comfy_GroupNode_ConvertSelectedNodesToGroupNode,G as Comfy_GroupNode_ManageGroupNodes,U as Comfy_GroupNode_UngroupSelectedGroupNodes,z as Comfy_Help_AboutComfyUI,R as Comfy_Help_OpenComfyOrgDiscord,x as Comfy_Help_OpenComfyUIDocs,L as Comfy_Help_OpenComfyUIForum,V as Comfy_Help_OpenComfyUIIssues,q as Comfy_Interrupt,H as Comfy_LoadDefaultWorkflow,Q as Comfy_Manager_CustomNodesManager_ShowCustomNodesMenu,Z as Comfy_Manager_CustomNodesManager_ShowLegacyCustomNodesMenu,J as Comfy_Manager_ShowLegacyManagerMenu,K as Comfy_Manager_ShowMissingPacks,X as Comfy_Manager_ShowUpdateAvailablePacks,Y as Comfy_MaskEditor_BrushSize_Decrease,$ as Comfy_MaskEditor_BrushSize_Increase,ee as Comfy_MaskEditor_ColorPicker,oe as Comfy_MaskEditor_Mirror_Horizontal,ae as Comfy_MaskEditor_Mirror_Vertical,le as Comfy_MaskEditor_OpenMaskEditor,re as Comfy_MaskEditor_Rotate_Left,se as Comfy_MaskEditor_Rotate_Right,ne as Comfy_Memory_UnloadModels,te as Comfy_Memory_UnloadModelsAndExecutionCache,ce as Comfy_NewBlankWorkflow,ie as Comfy_OpenClipspace,de as Comfy_OpenManagerDialog,_e as Comfy_OpenWorkflow,be as Comfy_PublishSubgraph,me as Comfy_QueuePrompt,Ce as Comfy_QueuePromptFront,fe as Comfy_QueueSelectedOutputNodes,pe as Comfy_Queue_ToggleOverlay,ue as Comfy_Redo,ye as Comfy_RefreshNodeDefinitions,ge as Comfy_SaveWorkflow,ke as Comfy_SaveWorkflowAs,Ae as Comfy_ShowSettingsDialog,Me as Comfy_ToggleAssetAPI,Te as Comfy_ToggleCanvasInfo,ve as Comfy_ToggleHelpCenter,Se as Comfy_ToggleLinear,he as Comfy_ToggleQPOV2,De as Comfy_ToggleTheme,je as Comfy_Undo,Ee as Comfy_User_OpenSignInDialog,Ne as Comfy_User_SignOut,we as Experimental_ToggleVueNodes,Oe as Workspace_CloseWorkflow,Pe as Workspace_NextOpenedWorkflow,We as Workspace_PreviousOpenedWorkflow,Be as Workspace_SearchBox_Toggle,Fe as Workspace_ToggleBottomPanel,Ie as Workspace_ToggleBottomPanel_Shortcuts,Ge as Workspace_ToggleFocusMode,Ue as Workspace_ToggleSidebarTab_assets,ze as Workspace_ToggleSidebarTab_workflows,Re as default};
|
|
2
|
-
//# sourceMappingURL=commands-2re7xZu6.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commands-2re7xZu6.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const o={label:"選択したノードの3Dビューアー(ベータ)を開く"},e={label:"実験的: モデルアセットを参照"},l={label:"テンプレートを参照"},a={label:"選択したアイテムを削除"},s={label:"選択したノードにビューを合わせる"},t={label:"キャンバスをロック"},n={label:"選択したノードを下に移動"},_={label:"選択したノードを左に移動"},c={label:"選択したノードを右に移動"},r={label:"選択したノードを上に移動"},C={label:"ビューをリセット"},m={label:"選択したノードのサイズ変更"},b={label:"キャンバスのリンク表示を切り替える"},f={label:"キャンバスのロックを切り替える"},y={label:"キャンバス ミニマップ切り替え"},p={label:"選択したノードのバイパス/バイパス解除"},g={label:"選択したノードの折りたたみ/展開"},d={label:"選択したノードのミュート/ミュート解除"},i={label:"選択したノードのピン留め/ピン留め解除"},k={label:"選択したアイテムのピン留め/ピン留め解除"},u={label:"キャンバスをロック解除"},T={label:"ズームイン"},M={label:"ズームアウト"},S={label:"保留中のタスクをクリア"},v={label:"ワークフローをクリア"},h={label:"サポートに連絡"},w={label:"モデルセレクターを表示(開発用)"},D={label:"現在のワークフローを複製"},O={label:"ワークフローをエクスポート"},W={label:"ワークフローをエクスポート(API形式)"},N={label:"選択範囲をサブグラフに変換"},P={label:"サブグラフウィジェットを編集"},I={label:"サブグラフを終了"},U={label:"グループを内容に合わせて調整"},F={label:"選択したノードをグループ化"},E={label:"ホバー中のウィジェットの優先表示を切り替え"},G={label:"選択したサブグラフを展開"},B={label:"選択したノードをグループノードに変換"},A={label:"グループノードの管理"},L={label:"選択したグループノードのグループ解除"},R={label:"ComfyUIについてを開く"},V={label:"Comfy-OrgのDiscordを開く"},x={label:"ComfyUIのドキュメントを開く"},H={label:"Comfy-Orgフォーラムを開く"},Q={label:"ComfyUIの問題を開く"},z={label:"中断"},Z={label:"デフォルトのワークフローを読み込む"},j={label:"カスタムノード(ベータ版)"},q={label:"カスタムノード(レガシー)"},J={label:"マネージャーメニュー(レガシー)"},K={label:"不足しているパックをインストール"},X={label:"更新を確認"},Y={label:"マスクエディタでブラシサイズを縮小"},$={label:"マスクエディタでブラシサイズを大きくする"},oo={label:"MaskEditorでカラーピッカーを開く"},eo={label:"マスクエディタで左右反転"},lo={label:"マスクエディタで上下反転"},ao={label:"選択したノードのマスクエディタを開く"},so={label:"マスクエディタで左回転"},to={label:"マスクエディタで右回転"},no={label:"モデルのアンロード"},_o={label:"モデルと実行キャッシュのアンロード"},co={label:"新しい空のワークフロー"},ro={label:"クリップスペース"},Co={label:"マネージャー"},mo={label:"ワークフローを開く"},bo={label:"サブグラフを公開"},fo={label:"キュープロンプト"},yo={label:"キュープロンプト(フロント)"},po={label:"選択した出力ノードをキューに追加"},go={label:"ジョブ履歴を切り替え"},io={label:"やり直す"},ko={label:"ノード定義を更新"},uo={label:"ワークフローを保存する"},To={label:"名前を付けてワークフローを保存"},Mo={label:"設定ダイアログを表示"},So={label:"実験的: AssetAPIを有効化"},vo={label:"キャンバスパフォーマンス"},ho={label:"ヘルプセンター"},wo={label:"リニアモードを切り替え"},Do={label:"Queue Panel V2 を切り替え"},Oo={label:"テーマの切り替え(ダーク/ライト)"},Wo={label:"元に戻す"},No={label:"サインインダイアログを開く"},Po={label:"サインアウト"},Io={label:"実験的: Vueノードを有効化"},Uo={label:"現在のワークフローを閉じる"},Fo={label:"次の開いたワークフロー"},Eo={label:"前の開いたワークフロー"},Go={label:"検索ボックスの切り替え"},Bo={label:"パネル下部の切り替え"},Ao={label:"キーバインドダイアログを表示"},Lo={label:"フォーカスモードの切り替え"},Ro={label:"アセットサイドバーの表示切り替え",tooltip:"アセット"},Vo={label:"ワークフローサイドバーの切り替え",tooltip:"ワークフロー"},xo={"Comfy-Desktop_CheckForUpdates":{label:"アップデートを確認"},"Comfy-Desktop_Folders_OpenCustomNodesFolder":{label:"カスタムノードフォルダーを開く"},"Comfy-Desktop_Folders_OpenInputsFolder":{label:"入力フォルダーを開く"},"Comfy-Desktop_Folders_OpenLogsFolder":{label:"ログフォルダーを開く"},"Comfy-Desktop_Folders_OpenModelConfig":{label:"extra_model_paths.yaml を開く"},"Comfy-Desktop_Folders_OpenModelsFolder":{label:"モデルフォルダーを開く"},"Comfy-Desktop_Folders_OpenOutputsFolder":{label:"出力フォルダーを開く"},"Comfy-Desktop_OpenDevTools":{label:"開発者ツールを開く"},"Comfy-Desktop_OpenUserGuide":{label:"デスクトップユーザーガイド"},"Comfy-Desktop_Quit":{label:"終了"},"Comfy-Desktop_Reinstall":{label:"再インストール"},"Comfy-Desktop_Restart":{label:"再起動"},Comfy_3DViewer_Open3DViewer:o,Comfy_BrowseModelAssets:e,Comfy_BrowseTemplates:l,Comfy_Canvas_DeleteSelectedItems:a,Comfy_Canvas_FitView:s,Comfy_Canvas_Lock:t,Comfy_Canvas_MoveSelectedNodes_Down:n,Comfy_Canvas_MoveSelectedNodes_Left:_,Comfy_Canvas_MoveSelectedNodes_Right:c,Comfy_Canvas_MoveSelectedNodes_Up:r,Comfy_Canvas_ResetView:C,Comfy_Canvas_Resize:m,Comfy_Canvas_ToggleLinkVisibility:b,Comfy_Canvas_ToggleLock:f,Comfy_Canvas_ToggleMinimap:y,Comfy_Canvas_ToggleSelectedNodes_Bypass:p,Comfy_Canvas_ToggleSelectedNodes_Collapse:g,Comfy_Canvas_ToggleSelectedNodes_Mute:d,Comfy_Canvas_ToggleSelectedNodes_Pin:i,Comfy_Canvas_ToggleSelected_Pin:k,Comfy_Canvas_Unlock:u,Comfy_Canvas_ZoomIn:T,Comfy_Canvas_ZoomOut:M,Comfy_ClearPendingTasks:S,Comfy_ClearWorkflow:v,Comfy_ContactSupport:h,Comfy_Dev_ShowModelSelector:w,Comfy_DuplicateWorkflow:D,Comfy_ExportWorkflow:O,Comfy_ExportWorkflowAPI:W,Comfy_Graph_ConvertToSubgraph:N,Comfy_Graph_EditSubgraphWidgets:P,Comfy_Graph_ExitSubgraph:I,Comfy_Graph_FitGroupToContents:U,Comfy_Graph_GroupSelectedNodes:F,Comfy_Graph_ToggleWidgetPromotion:E,Comfy_Graph_UnpackSubgraph:G,Comfy_GroupNode_ConvertSelectedNodesToGroupNode:B,Comfy_GroupNode_ManageGroupNodes:A,Comfy_GroupNode_UngroupSelectedGroupNodes:L,Comfy_Help_AboutComfyUI:R,Comfy_Help_OpenComfyOrgDiscord:V,Comfy_Help_OpenComfyUIDocs:x,Comfy_Help_OpenComfyUIForum:H,Comfy_Help_OpenComfyUIIssues:Q,Comfy_Interrupt:z,Comfy_LoadDefaultWorkflow:Z,Comfy_Manager_CustomNodesManager_ShowCustomNodesMenu:j,Comfy_Manager_CustomNodesManager_ShowLegacyCustomNodesMenu:q,Comfy_Manager_ShowLegacyManagerMenu:J,Comfy_Manager_ShowMissingPacks:K,Comfy_Manager_ShowUpdateAvailablePacks:X,Comfy_MaskEditor_BrushSize_Decrease:Y,Comfy_MaskEditor_BrushSize_Increase:$,Comfy_MaskEditor_ColorPicker:oo,Comfy_MaskEditor_Mirror_Horizontal:eo,Comfy_MaskEditor_Mirror_Vertical:lo,Comfy_MaskEditor_OpenMaskEditor:ao,Comfy_MaskEditor_Rotate_Left:so,Comfy_MaskEditor_Rotate_Right:to,Comfy_Memory_UnloadModels:no,Comfy_Memory_UnloadModelsAndExecutionCache:_o,Comfy_NewBlankWorkflow:co,Comfy_OpenClipspace:ro,Comfy_OpenManagerDialog:Co,Comfy_OpenWorkflow:mo,Comfy_PublishSubgraph:bo,Comfy_QueuePrompt:fo,Comfy_QueuePromptFront:yo,Comfy_QueueSelectedOutputNodes:po,Comfy_Queue_ToggleOverlay:go,Comfy_Redo:io,Comfy_RefreshNodeDefinitions:ko,Comfy_SaveWorkflow:uo,Comfy_SaveWorkflowAs:To,Comfy_ShowSettingsDialog:Mo,Comfy_ToggleAssetAPI:So,Comfy_ToggleCanvasInfo:vo,Comfy_ToggleHelpCenter:ho,Comfy_ToggleLinear:wo,Comfy_ToggleQPOV2:Do,Comfy_ToggleTheme:Oo,Comfy_Undo:Wo,Comfy_User_OpenSignInDialog:No,Comfy_User_SignOut:Po,Experimental_ToggleVueNodes:Io,Workspace_CloseWorkflow:Uo,Workspace_NextOpenedWorkflow:Fo,Workspace_PreviousOpenedWorkflow:Eo,Workspace_SearchBox_Toggle:Go,Workspace_ToggleBottomPanel:Bo,"Workspace_ToggleBottomPanelTab_command-terminal":{label:"ターミナルパネル下部の切り替え"},"Workspace_ToggleBottomPanelTab_logs-terminal":{label:"ログパネル下部の切り替え"},"Workspace_ToggleBottomPanelTab_shortcuts-essentials":{label:"必須な下部パネルを切り替え"},"Workspace_ToggleBottomPanelTab_shortcuts-view-controls":{label:"表示コントロール下部パネルの切り替え"},Workspace_ToggleBottomPanel_Shortcuts:Ao,Workspace_ToggleFocusMode:Lo,Workspace_ToggleSidebarTab_assets:Ro,"Workspace_ToggleSidebarTab_model-library":{label:"モデルライブラリサイドバーの切り替え",tooltip:"モデルライブラリ"},"Workspace_ToggleSidebarTab_node-library":{label:"ノードライブラリサイドバーの切り替え",tooltip:"ノードライブラリ"},Workspace_ToggleSidebarTab_workflows:Vo};export{o as Comfy_3DViewer_Open3DViewer,e as Comfy_BrowseModelAssets,l as Comfy_BrowseTemplates,a as Comfy_Canvas_DeleteSelectedItems,s as Comfy_Canvas_FitView,t as Comfy_Canvas_Lock,n as Comfy_Canvas_MoveSelectedNodes_Down,_ as Comfy_Canvas_MoveSelectedNodes_Left,c as Comfy_Canvas_MoveSelectedNodes_Right,r as Comfy_Canvas_MoveSelectedNodes_Up,C as Comfy_Canvas_ResetView,m as Comfy_Canvas_Resize,b as Comfy_Canvas_ToggleLinkVisibility,f as Comfy_Canvas_ToggleLock,y as Comfy_Canvas_ToggleMinimap,p as Comfy_Canvas_ToggleSelectedNodes_Bypass,g as Comfy_Canvas_ToggleSelectedNodes_Collapse,d as Comfy_Canvas_ToggleSelectedNodes_Mute,i as Comfy_Canvas_ToggleSelectedNodes_Pin,k as Comfy_Canvas_ToggleSelected_Pin,u as Comfy_Canvas_Unlock,T as Comfy_Canvas_ZoomIn,M as Comfy_Canvas_ZoomOut,S as Comfy_ClearPendingTasks,v as Comfy_ClearWorkflow,h as Comfy_ContactSupport,w as Comfy_Dev_ShowModelSelector,D as Comfy_DuplicateWorkflow,O as Comfy_ExportWorkflow,W as Comfy_ExportWorkflowAPI,N as Comfy_Graph_ConvertToSubgraph,P as Comfy_Graph_EditSubgraphWidgets,I as Comfy_Graph_ExitSubgraph,U as Comfy_Graph_FitGroupToContents,F as Comfy_Graph_GroupSelectedNodes,E as Comfy_Graph_ToggleWidgetPromotion,G as Comfy_Graph_UnpackSubgraph,B as Comfy_GroupNode_ConvertSelectedNodesToGroupNode,A as Comfy_GroupNode_ManageGroupNodes,L as Comfy_GroupNode_UngroupSelectedGroupNodes,R as Comfy_Help_AboutComfyUI,V as Comfy_Help_OpenComfyOrgDiscord,x as Comfy_Help_OpenComfyUIDocs,H as Comfy_Help_OpenComfyUIForum,Q as Comfy_Help_OpenComfyUIIssues,z as Comfy_Interrupt,Z as Comfy_LoadDefaultWorkflow,j as Comfy_Manager_CustomNodesManager_ShowCustomNodesMenu,q as Comfy_Manager_CustomNodesManager_ShowLegacyCustomNodesMenu,J as Comfy_Manager_ShowLegacyManagerMenu,K as Comfy_Manager_ShowMissingPacks,X as Comfy_Manager_ShowUpdateAvailablePacks,Y as Comfy_MaskEditor_BrushSize_Decrease,$ as Comfy_MaskEditor_BrushSize_Increase,oo as Comfy_MaskEditor_ColorPicker,eo as Comfy_MaskEditor_Mirror_Horizontal,lo as Comfy_MaskEditor_Mirror_Vertical,ao as Comfy_MaskEditor_OpenMaskEditor,so as Comfy_MaskEditor_Rotate_Left,to as Comfy_MaskEditor_Rotate_Right,no as Comfy_Memory_UnloadModels,_o as Comfy_Memory_UnloadModelsAndExecutionCache,co as Comfy_NewBlankWorkflow,ro as Comfy_OpenClipspace,Co as Comfy_OpenManagerDialog,mo as Comfy_OpenWorkflow,bo as Comfy_PublishSubgraph,fo as Comfy_QueuePrompt,yo as Comfy_QueuePromptFront,po as Comfy_QueueSelectedOutputNodes,go as Comfy_Queue_ToggleOverlay,io as Comfy_Redo,ko as Comfy_RefreshNodeDefinitions,uo as Comfy_SaveWorkflow,To as Comfy_SaveWorkflowAs,Mo as Comfy_ShowSettingsDialog,So as Comfy_ToggleAssetAPI,vo as Comfy_ToggleCanvasInfo,ho as Comfy_ToggleHelpCenter,wo as Comfy_ToggleLinear,Do as Comfy_ToggleQPOV2,Oo as Comfy_ToggleTheme,Wo as Comfy_Undo,No as Comfy_User_OpenSignInDialog,Po as Comfy_User_SignOut,Io as Experimental_ToggleVueNodes,Uo as Workspace_CloseWorkflow,Fo as Workspace_NextOpenedWorkflow,Eo as Workspace_PreviousOpenedWorkflow,Go as Workspace_SearchBox_Toggle,Bo as Workspace_ToggleBottomPanel,Ao as Workspace_ToggleBottomPanel_Shortcuts,Lo as Workspace_ToggleFocusMode,Ro as Workspace_ToggleSidebarTab_assets,Vo as Workspace_ToggleSidebarTab_workflows,xo as default};
|
|
2
|
-
//# sourceMappingURL=commands-5dfPmqrI.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commands-5dfPmqrI.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const o={label:"Открыть 3D-просмотрщик (бета) для выбранного узла"},e={label:"Экспериментально: Просмотр ресурсов моделей"},l={label:"Просмотр шаблонов"},a={label:"Удалить выбранные элементы"},s={label:"Подогнать вид к выбранным нодам"},t={label:"Заблокировать холст"},n={label:"Переместить выбранные узлы вниз"},_={label:"Переместить выбранные узлы влево"},c={label:"Переместить выбранные узлы вправо"},r={label:"Переместить выбранные узлы вверх"},C={label:"Сбросить вид"},m={label:"Изменить размер выбранных узлов"},b={label:"Переключить видимость ссылки"},f={label:"Переключить блокировку холста"},y={label:"Полотно: переключить миникарту"},p={label:"Обход/Необход выбранных нод"},d={label:"Свернуть/Развернуть выбранные ноды"},g={label:"Отключить/Включить звук выбранных нод"},i={label:"Закрепить/Открепить выбранные ноды"},k={label:"Закрепить/Открепить выбранных нод"},u={label:"Разблокировать Canvas"},M={label:"Увеличить"},T={label:"Уменьшить"},S={label:"Очистить ожидающие задачи"},v={label:"Очистить рабочий процесс"},h={label:"Связаться с поддержкой"},D={label:"Показать выбор модели (Dev)"},w={label:"Дублировать текущий рабочий процесс"},O={label:"Экспорт рабочего процесса"},W={label:"Экспорт рабочего процесса (формат API)"},N={label:"Преобразовать выделенное в подграф"},E={label:"Редактировать виджеты подграфов"},P={label:"Выйти из подграфа"},I={label:"Подогнать группу к содержимому"},U={label:"Группировать выбранные ноды"},F={label:"Переключить продвижение наведенного виджета"},G={label:"Распаковать выбранный подграф"},B={label:"Преобразовать выбранные ноды в групповую ноду"},A={label:"Управление групповыми нодами"},L={label:"Разгруппировать выбранные групповые ноды"},R={label:"Открыть «О ComfyUI»"},V={label:"Открыть Comfy-Org Discord"},x={label:"Открыть документацию ComfyUI"},H={label:"Открыть форум Comfy-Org"},Q={label:"Открыть ComfyUI Issues"},z={label:"Прервать"},Z={label:"Загрузить стандартный рабочий процесс"},j={label:"Пользовательские узлы (Бета)"},q={label:"Пользовательские узлы (устаревшие)"},J={label:"Меню менеджера (устаревшее)"},K={label:"Установить отсутствующие"},X={label:"Проверить наличие обновлений"},Y={label:"Уменьшить размер кисти в MaskEditor"},$={label:"Увеличить размер кисти в MaskEditor"},oo={label:"Открыть палитру цветов в MaskEditor"},eo={label:"Отразить по горизонтали в MaskEditor"},lo={label:"Отразить по вертикали в MaskEditor"},ao={label:"Открыть редактор масок для выбранной ноды"},so={label:"Повернуть влево в MaskEditor"},to={label:"Повернуть вправо в MaskEditor"},no={label:"Выгрузить модели"},_o={label:"Выгрузить модели и кэш выполнения"},co={label:"Новый пустой рабочий процесс"},ro={label:"Клипспейс"},Co={label:"Менеджер"},mo={label:"Открыть рабочий процесс"},bo={label:"Опубликовать подграф"},fo={label:"Очередь запросов"},yo={label:"Очередь запросов (передняя)"},po={label:"Добавить выбранные выходные узлы в очередь"},go={label:"Показать/скрыть историю заданий"},io={label:"Повторить"},ko={label:"Обновить определения нод"},uo={label:"Сохранить рабочий процесс"},Mo={label:"Сохранить рабочий процесс как"},To={label:"Показать диалог настроек"},So={label:"Экспериментально: Включить AssetAPI"},vo={label:"Производительность холста"},ho={label:"Центр поддержки"},Do={label:"переключить линейный режим"},wo={label:"Переключить панель очереди V2"},Oo={label:"Переключить тему (Тёмная/Светлая)"},Wo={label:"Отменить"},No={label:"Открыть окно входа"},Eo={label:"Выйти"},Po={label:"Экспериментально: Включить Vue узлы"},Io={label:"Закрыть текущий рабочий процесс"},Uo={label:"Следующий открытый рабочий процесс"},Fo={label:"Предыдущий открытый рабочий процесс"},Go={label:"Переключить поисковое окно"},Bo={label:"Переключить нижнюю панель"},Ao={label:"Показать диалог клавиш"},Lo={label:"Переключить режим фокуса"},Ro={label:"Переключить боковую панель ресурсов",tooltip:"Ресурсы"},Vo={label:"Переключить боковую панель рабочих процессов",tooltip:"Рабочие процессы"},xo={"Comfy-Desktop_CheckForUpdates":{label:"Проверить обновления"},"Comfy-Desktop_Folders_OpenCustomNodesFolder":{label:"Открыть папку пользовательских узлов"},"Comfy-Desktop_Folders_OpenInputsFolder":{label:"Открыть папку входных данных"},"Comfy-Desktop_Folders_OpenLogsFolder":{label:"Открыть папку логов"},"Comfy-Desktop_Folders_OpenModelConfig":{label:"Открыть extra_model_paths.yaml"},"Comfy-Desktop_Folders_OpenModelsFolder":{label:"Открыть папку моделей"},"Comfy-Desktop_Folders_OpenOutputsFolder":{label:"Открыть папку выходных данных"},"Comfy-Desktop_OpenDevTools":{label:"Открыть инструменты разработчика"},"Comfy-Desktop_OpenUserGuide":{label:"Руководство пользователя для Desktop"},"Comfy-Desktop_Quit":{label:"Выйти"},"Comfy-Desktop_Reinstall":{label:"Переустановить"},"Comfy-Desktop_Restart":{label:"Перезапустить"},Comfy_3DViewer_Open3DViewer:o,Comfy_BrowseModelAssets:e,Comfy_BrowseTemplates:l,Comfy_Canvas_DeleteSelectedItems:a,Comfy_Canvas_FitView:s,Comfy_Canvas_Lock:t,Comfy_Canvas_MoveSelectedNodes_Down:n,Comfy_Canvas_MoveSelectedNodes_Left:_,Comfy_Canvas_MoveSelectedNodes_Right:c,Comfy_Canvas_MoveSelectedNodes_Up:r,Comfy_Canvas_ResetView:C,Comfy_Canvas_Resize:m,Comfy_Canvas_ToggleLinkVisibility:b,Comfy_Canvas_ToggleLock:f,Comfy_Canvas_ToggleMinimap:y,Comfy_Canvas_ToggleSelectedNodes_Bypass:p,Comfy_Canvas_ToggleSelectedNodes_Collapse:d,Comfy_Canvas_ToggleSelectedNodes_Mute:g,Comfy_Canvas_ToggleSelectedNodes_Pin:i,Comfy_Canvas_ToggleSelected_Pin:k,Comfy_Canvas_Unlock:u,Comfy_Canvas_ZoomIn:M,Comfy_Canvas_ZoomOut:T,Comfy_ClearPendingTasks:S,Comfy_ClearWorkflow:v,Comfy_ContactSupport:h,Comfy_Dev_ShowModelSelector:D,Comfy_DuplicateWorkflow:w,Comfy_ExportWorkflow:O,Comfy_ExportWorkflowAPI:W,Comfy_Graph_ConvertToSubgraph:N,Comfy_Graph_EditSubgraphWidgets:E,Comfy_Graph_ExitSubgraph:P,Comfy_Graph_FitGroupToContents:I,Comfy_Graph_GroupSelectedNodes:U,Comfy_Graph_ToggleWidgetPromotion:F,Comfy_Graph_UnpackSubgraph:G,Comfy_GroupNode_ConvertSelectedNodesToGroupNode:B,Comfy_GroupNode_ManageGroupNodes:A,Comfy_GroupNode_UngroupSelectedGroupNodes:L,Comfy_Help_AboutComfyUI:R,Comfy_Help_OpenComfyOrgDiscord:V,Comfy_Help_OpenComfyUIDocs:x,Comfy_Help_OpenComfyUIForum:H,Comfy_Help_OpenComfyUIIssues:Q,Comfy_Interrupt:z,Comfy_LoadDefaultWorkflow:Z,Comfy_Manager_CustomNodesManager_ShowCustomNodesMenu:j,Comfy_Manager_CustomNodesManager_ShowLegacyCustomNodesMenu:q,Comfy_Manager_ShowLegacyManagerMenu:J,Comfy_Manager_ShowMissingPacks:K,Comfy_Manager_ShowUpdateAvailablePacks:X,Comfy_MaskEditor_BrushSize_Decrease:Y,Comfy_MaskEditor_BrushSize_Increase:$,Comfy_MaskEditor_ColorPicker:oo,Comfy_MaskEditor_Mirror_Horizontal:eo,Comfy_MaskEditor_Mirror_Vertical:lo,Comfy_MaskEditor_OpenMaskEditor:ao,Comfy_MaskEditor_Rotate_Left:so,Comfy_MaskEditor_Rotate_Right:to,Comfy_Memory_UnloadModels:no,Comfy_Memory_UnloadModelsAndExecutionCache:_o,Comfy_NewBlankWorkflow:co,Comfy_OpenClipspace:ro,Comfy_OpenManagerDialog:Co,Comfy_OpenWorkflow:mo,Comfy_PublishSubgraph:bo,Comfy_QueuePrompt:fo,Comfy_QueuePromptFront:yo,Comfy_QueueSelectedOutputNodes:po,Comfy_Queue_ToggleOverlay:go,Comfy_Redo:io,Comfy_RefreshNodeDefinitions:ko,Comfy_SaveWorkflow:uo,Comfy_SaveWorkflowAs:Mo,Comfy_ShowSettingsDialog:To,Comfy_ToggleAssetAPI:So,Comfy_ToggleCanvasInfo:vo,Comfy_ToggleHelpCenter:ho,Comfy_ToggleLinear:Do,Comfy_ToggleQPOV2:wo,Comfy_ToggleTheme:Oo,Comfy_Undo:Wo,Comfy_User_OpenSignInDialog:No,Comfy_User_SignOut:Eo,Experimental_ToggleVueNodes:Po,Workspace_CloseWorkflow:Io,Workspace_NextOpenedWorkflow:Uo,Workspace_PreviousOpenedWorkflow:Fo,Workspace_SearchBox_Toggle:Go,Workspace_ToggleBottomPanel:Bo,"Workspace_ToggleBottomPanelTab_command-terminal":{label:"Переключить нижнюю панель терминала"},"Workspace_ToggleBottomPanelTab_logs-terminal":{label:"Переключить нижнюю панель логов"},"Workspace_ToggleBottomPanelTab_shortcuts-essentials":{label:"Показать/скрыть основную нижнюю панель"},"Workspace_ToggleBottomPanelTab_shortcuts-view-controls":{label:"Показать/скрыть нижнюю панель управления просмотром"},Workspace_ToggleBottomPanel_Shortcuts:Ao,Workspace_ToggleFocusMode:Lo,Workspace_ToggleSidebarTab_assets:Ro,"Workspace_ToggleSidebarTab_model-library":{label:"Переключить боковую панель библиотеки моделей",tooltip:"Библиотека моделей"},"Workspace_ToggleSidebarTab_node-library":{label:"Переключить боковую панель библиотеки нод",tooltip:"Библиотека нод"},Workspace_ToggleSidebarTab_workflows:Vo};export{o as Comfy_3DViewer_Open3DViewer,e as Comfy_BrowseModelAssets,l as Comfy_BrowseTemplates,a as Comfy_Canvas_DeleteSelectedItems,s as Comfy_Canvas_FitView,t as Comfy_Canvas_Lock,n as Comfy_Canvas_MoveSelectedNodes_Down,_ as Comfy_Canvas_MoveSelectedNodes_Left,c as Comfy_Canvas_MoveSelectedNodes_Right,r as Comfy_Canvas_MoveSelectedNodes_Up,C as Comfy_Canvas_ResetView,m as Comfy_Canvas_Resize,b as Comfy_Canvas_ToggleLinkVisibility,f as Comfy_Canvas_ToggleLock,y as Comfy_Canvas_ToggleMinimap,p as Comfy_Canvas_ToggleSelectedNodes_Bypass,d as Comfy_Canvas_ToggleSelectedNodes_Collapse,g as Comfy_Canvas_ToggleSelectedNodes_Mute,i as Comfy_Canvas_ToggleSelectedNodes_Pin,k as Comfy_Canvas_ToggleSelected_Pin,u as Comfy_Canvas_Unlock,M as Comfy_Canvas_ZoomIn,T as Comfy_Canvas_ZoomOut,S as Comfy_ClearPendingTasks,v as Comfy_ClearWorkflow,h as Comfy_ContactSupport,D as Comfy_Dev_ShowModelSelector,w as Comfy_DuplicateWorkflow,O as Comfy_ExportWorkflow,W as Comfy_ExportWorkflowAPI,N as Comfy_Graph_ConvertToSubgraph,E as Comfy_Graph_EditSubgraphWidgets,P as Comfy_Graph_ExitSubgraph,I as Comfy_Graph_FitGroupToContents,U as Comfy_Graph_GroupSelectedNodes,F as Comfy_Graph_ToggleWidgetPromotion,G as Comfy_Graph_UnpackSubgraph,B as Comfy_GroupNode_ConvertSelectedNodesToGroupNode,A as Comfy_GroupNode_ManageGroupNodes,L as Comfy_GroupNode_UngroupSelectedGroupNodes,R as Comfy_Help_AboutComfyUI,V as Comfy_Help_OpenComfyOrgDiscord,x as Comfy_Help_OpenComfyUIDocs,H as Comfy_Help_OpenComfyUIForum,Q as Comfy_Help_OpenComfyUIIssues,z as Comfy_Interrupt,Z as Comfy_LoadDefaultWorkflow,j as Comfy_Manager_CustomNodesManager_ShowCustomNodesMenu,q as Comfy_Manager_CustomNodesManager_ShowLegacyCustomNodesMenu,J as Comfy_Manager_ShowLegacyManagerMenu,K as Comfy_Manager_ShowMissingPacks,X as Comfy_Manager_ShowUpdateAvailablePacks,Y as Comfy_MaskEditor_BrushSize_Decrease,$ as Comfy_MaskEditor_BrushSize_Increase,oo as Comfy_MaskEditor_ColorPicker,eo as Comfy_MaskEditor_Mirror_Horizontal,lo as Comfy_MaskEditor_Mirror_Vertical,ao as Comfy_MaskEditor_OpenMaskEditor,so as Comfy_MaskEditor_Rotate_Left,to as Comfy_MaskEditor_Rotate_Right,no as Comfy_Memory_UnloadModels,_o as Comfy_Memory_UnloadModelsAndExecutionCache,co as Comfy_NewBlankWorkflow,ro as Comfy_OpenClipspace,Co as Comfy_OpenManagerDialog,mo as Comfy_OpenWorkflow,bo as Comfy_PublishSubgraph,fo as Comfy_QueuePrompt,yo as Comfy_QueuePromptFront,po as Comfy_QueueSelectedOutputNodes,go as Comfy_Queue_ToggleOverlay,io as Comfy_Redo,ko as Comfy_RefreshNodeDefinitions,uo as Comfy_SaveWorkflow,Mo as Comfy_SaveWorkflowAs,To as Comfy_ShowSettingsDialog,So as Comfy_ToggleAssetAPI,vo as Comfy_ToggleCanvasInfo,ho as Comfy_ToggleHelpCenter,Do as Comfy_ToggleLinear,wo as Comfy_ToggleQPOV2,Oo as Comfy_ToggleTheme,Wo as Comfy_Undo,No as Comfy_User_OpenSignInDialog,Eo as Comfy_User_SignOut,Po as Experimental_ToggleVueNodes,Io as Workspace_CloseWorkflow,Uo as Workspace_NextOpenedWorkflow,Fo as Workspace_PreviousOpenedWorkflow,Go as Workspace_SearchBox_Toggle,Bo as Workspace_ToggleBottomPanel,Ao as Workspace_ToggleBottomPanel_Shortcuts,Lo as Workspace_ToggleFocusMode,Ro as Workspace_ToggleSidebarTab_assets,Vo as Workspace_ToggleSidebarTab_workflows,xo as default};
|
|
2
|
-
//# sourceMappingURL=commands-9-tUiihM.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commands-9-tUiihM.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const o={label:"فتح عارض ثلاثي الأبعاد (بيتا) للعقدة المحددة"},e={label:"تجريبي: تصفح أصول النماذج"},l={label:"تصفح القوالب"},a={label:"حذف العناصر المحددة"},s={label:"تعديل العرض ليناسب العقد المحددة"},t={label:"قفل اللوحة"},n={label:"تحريك العقد المحددة للأسفل"},_={label:"تحريك العقد المحددة لليسار"},c={label:"تحريك العقد المحددة لليمين"},C={label:"تحريك العقد المحددة للأعلى"},r={label:"إعادة تعيين العرض"},m={label:"تغيير حجم العقد المحددة"},b={label:"تبديل رؤية الروابط في اللوحة"},f={label:"تبديل القفل في اللوحة"},y={label:"تبديل الخريطة المصغرة في اللوحة"},p={label:"تجاوز/إلغاء تجاوز العقد المحددة"},g={label:"طي/توسيع العقد المحددة"},d={label:"كتم/إلغاء كتم العقد المحددة"},i={label:"تثبيت/إلغاء تثبيت العقد المحددة"},k={label:"تثبيت/إلغاء تثبيت العناصر المحددة"},u={label:"فتح اللوحة"},T={label:"تكبير"},S={label:"تصغير"},M={label:"مسح المهام المعلقة"},v={label:"مسح سير العمل"},h={label:"الاتصال بالدعم"},w={label:"إظهار منتقي النماذج (للمطورين)"},W={label:"تكرار سير العمل الحالي"},D={label:"تصدير سير العمل"},O={label:"تصدير سير العمل (تنسيق API)"},N={label:"تحويل التحديد إلى رسم فرعي"},P={label:"تحرير عناصر واجهة الرسم البياني الفرعي"},I={label:"الخروج من الرسم البياني الفرعي"},U={label:"ضبط المجموعة على المحتويات"},F={label:"تجميع العقد المحددة"},G={label:"تبديل ترقية عنصر الواجهة المحوم فوقه"},E={label:"فك التفرع الفرعي المحدد"},B={label:"تحويل العقد المحددة إلى عقدة مجموعة"},A={label:"إدارة عقد المجموعات"},L={label:"إلغاء تجميع عقد المجموعات المحددة"},R={label:"حول ComfyUI"},V={label:"فتح خادم Comfy-Org على Discord"},x={label:"فتح مستندات ComfyUI"},H={label:"فتح منتدى ComfyUI"},Q={label:"فتح مشكلات ComfyUI"},z={label:"إيقاف مؤقت"},Z={label:"تحميل سير العمل الافتراضي"},j={label:"مدير العقد المخصصة"},q={label:"العقد المخصصة (قديم)"},J={label:"قائمة المدير (قديم)"},K={label:"تثبيت العقد المخصصة المفقودة"},X={label:"التحقق من تحديثات العقد المخصصة"},Y={label:"تقليل حجم الفرشاة في محرر القناع"},$={label:"زيادة حجم الفرشاة في محرر القناع"},oo={label:"فتح منتقي الألوان في محرر القناع"},eo={label:"انعكاس أفقي في محرر القناع"},lo={label:"انعكاس عمودي في محرر القناع"},ao={label:"فتح محرر القناع للعقدة المحددة"},so={label:"تدوير لليسار في محرر القناع"},to={label:"تدوير لليمين في محرر القناع"},no={label:"تفريغ النماذج"},_o={label:"تفريغ النماذج وذاكرة التنفيذ المؤقتة"},co={label:"سير عمل جديد فارغ"},Co={label:"Clipspace"},ro={label:"مدير"},mo={label:"فتح سير عمل"},bo={label:"نشر الرسم البياني الفرعي"},fo={label:"إضافة الأمر إلى قائمة الانتظار"},yo={label:"إضافة الأمر إلى مقدمة قائمة الانتظار"},po={label:"إدراج عقد الإخراج المحددة في قائمة الانتظار"},go={label:"تبديل سجل المهام"},io={label:"إعادة"},ko={label:"تحديث تعريفات العقد"},uo={label:"حفظ سير العمل"},To={label:"حفظ سير العمل باسم"},So={label:"عرض نافذة الإعدادات"},Mo={label:"تجريبي: تمكين AssetAPI"},vo={label:"أداء اللوحة"},ho={label:"مركز المساعدة"},wo={label:"تبديل الوضع الخطي"},Wo={label:"تبديل لوحة قائمة الانتظار V2"},Do={label:"تبديل النمط (فاتح/داكن)"},Oo={label:"تراجع"},No={label:"فتح نافذة تسجيل الدخول"},Po={label:"تسجيل الخروج"},Io={label:"تجريبي: تمكين عقد Vue"},Uo={label:"إغلاق سير العمل الحالي"},Fo={label:"سير العمل التالي المفتوح"},Go={label:"سير العمل السابق المفتوح"},Eo={label:"تبديل مربع البحث"},Bo={label:"تبديل اللوحة السفلية"},Ao={label:"عرض مربع حوار اختصارات لوحة المفاتيح"},Lo={label:"تبديل وضع التركيز"},Ro={label:"تبديل الشريط الجانبي للأصول",tooltip:"الأصول"},Vo={label:"تبديل الشريط الجانبي لسير العمل",tooltip:"سير العمل"},xo={"Comfy-Desktop_CheckForUpdates":{label:"التحقق من التحديثات"},"Comfy-Desktop_Folders_OpenCustomNodesFolder":{label:"فتح مجلد العقد المخصصة"},"Comfy-Desktop_Folders_OpenInputsFolder":{label:"فتح مجلد المدخلات"},"Comfy-Desktop_Folders_OpenLogsFolder":{label:"فتح مجلد السجلات"},"Comfy-Desktop_Folders_OpenModelConfig":{label:"فتح extra_model_paths.yaml"},"Comfy-Desktop_Folders_OpenModelsFolder":{label:"فتح مجلد النماذج"},"Comfy-Desktop_Folders_OpenOutputsFolder":{label:"فتح مجلد المخرجات"},"Comfy-Desktop_OpenDevTools":{label:"فتح أدوات المطور"},"Comfy-Desktop_OpenUserGuide":{label:"دليل مستخدم سطح المكتب"},"Comfy-Desktop_Quit":{label:"خروج"},"Comfy-Desktop_Reinstall":{label:"إعادة التثبيت"},"Comfy-Desktop_Restart":{label:"إعادة التشغيل"},Comfy_3DViewer_Open3DViewer:o,Comfy_BrowseModelAssets:e,Comfy_BrowseTemplates:l,Comfy_Canvas_DeleteSelectedItems:a,Comfy_Canvas_FitView:s,Comfy_Canvas_Lock:t,Comfy_Canvas_MoveSelectedNodes_Down:n,Comfy_Canvas_MoveSelectedNodes_Left:_,Comfy_Canvas_MoveSelectedNodes_Right:c,Comfy_Canvas_MoveSelectedNodes_Up:C,Comfy_Canvas_ResetView:r,Comfy_Canvas_Resize:m,Comfy_Canvas_ToggleLinkVisibility:b,Comfy_Canvas_ToggleLock:f,Comfy_Canvas_ToggleMinimap:y,Comfy_Canvas_ToggleSelectedNodes_Bypass:p,Comfy_Canvas_ToggleSelectedNodes_Collapse:g,Comfy_Canvas_ToggleSelectedNodes_Mute:d,Comfy_Canvas_ToggleSelectedNodes_Pin:i,Comfy_Canvas_ToggleSelected_Pin:k,Comfy_Canvas_Unlock:u,Comfy_Canvas_ZoomIn:T,Comfy_Canvas_ZoomOut:S,Comfy_ClearPendingTasks:M,Comfy_ClearWorkflow:v,Comfy_ContactSupport:h,Comfy_Dev_ShowModelSelector:w,Comfy_DuplicateWorkflow:W,Comfy_ExportWorkflow:D,Comfy_ExportWorkflowAPI:O,Comfy_Graph_ConvertToSubgraph:N,Comfy_Graph_EditSubgraphWidgets:P,Comfy_Graph_ExitSubgraph:I,Comfy_Graph_FitGroupToContents:U,Comfy_Graph_GroupSelectedNodes:F,Comfy_Graph_ToggleWidgetPromotion:G,Comfy_Graph_UnpackSubgraph:E,Comfy_GroupNode_ConvertSelectedNodesToGroupNode:B,Comfy_GroupNode_ManageGroupNodes:A,Comfy_GroupNode_UngroupSelectedGroupNodes:L,Comfy_Help_AboutComfyUI:R,Comfy_Help_OpenComfyOrgDiscord:V,Comfy_Help_OpenComfyUIDocs:x,Comfy_Help_OpenComfyUIForum:H,Comfy_Help_OpenComfyUIIssues:Q,Comfy_Interrupt:z,Comfy_LoadDefaultWorkflow:Z,Comfy_Manager_CustomNodesManager_ShowCustomNodesMenu:j,Comfy_Manager_CustomNodesManager_ShowLegacyCustomNodesMenu:q,Comfy_Manager_ShowLegacyManagerMenu:J,Comfy_Manager_ShowMissingPacks:K,Comfy_Manager_ShowUpdateAvailablePacks:X,Comfy_MaskEditor_BrushSize_Decrease:Y,Comfy_MaskEditor_BrushSize_Increase:$,Comfy_MaskEditor_ColorPicker:oo,Comfy_MaskEditor_Mirror_Horizontal:eo,Comfy_MaskEditor_Mirror_Vertical:lo,Comfy_MaskEditor_OpenMaskEditor:ao,Comfy_MaskEditor_Rotate_Left:so,Comfy_MaskEditor_Rotate_Right:to,Comfy_Memory_UnloadModels:no,Comfy_Memory_UnloadModelsAndExecutionCache:_o,Comfy_NewBlankWorkflow:co,Comfy_OpenClipspace:Co,Comfy_OpenManagerDialog:ro,Comfy_OpenWorkflow:mo,Comfy_PublishSubgraph:bo,Comfy_QueuePrompt:fo,Comfy_QueuePromptFront:yo,Comfy_QueueSelectedOutputNodes:po,Comfy_Queue_ToggleOverlay:go,Comfy_Redo:io,Comfy_RefreshNodeDefinitions:ko,Comfy_SaveWorkflow:uo,Comfy_SaveWorkflowAs:To,Comfy_ShowSettingsDialog:So,Comfy_ToggleAssetAPI:Mo,Comfy_ToggleCanvasInfo:vo,Comfy_ToggleHelpCenter:ho,Comfy_ToggleLinear:wo,Comfy_ToggleQPOV2:Wo,Comfy_ToggleTheme:Do,Comfy_Undo:Oo,Comfy_User_OpenSignInDialog:No,Comfy_User_SignOut:Po,Experimental_ToggleVueNodes:Io,Workspace_CloseWorkflow:Uo,Workspace_NextOpenedWorkflow:Fo,Workspace_PreviousOpenedWorkflow:Go,Workspace_SearchBox_Toggle:Eo,Workspace_ToggleBottomPanel:Bo,"Workspace_ToggleBottomPanelTab_command-terminal":{label:"تبديل لوحة الطرفية السفلية"},"Workspace_ToggleBottomPanelTab_logs-terminal":{label:"تبديل لوحة السجلات السفلية"},"Workspace_ToggleBottomPanelTab_shortcuts-essentials":{label:"تبديل اللوحة السفلية الأساسية"},"Workspace_ToggleBottomPanelTab_shortcuts-view-controls":{label:"تبديل لوحة تحكم العرض السفلية"},Workspace_ToggleBottomPanel_Shortcuts:Ao,Workspace_ToggleFocusMode:Lo,Workspace_ToggleSidebarTab_assets:Ro,"Workspace_ToggleSidebarTab_model-library":{label:"تبديل الشريط الجانبي لمكتبة النماذج",tooltip:"مكتبة النماذج"},"Workspace_ToggleSidebarTab_node-library":{label:"تبديل الشريط الجانبي لمكتبة العقد",tooltip:"مكتبة العقد"},Workspace_ToggleSidebarTab_workflows:Vo};export{o as Comfy_3DViewer_Open3DViewer,e as Comfy_BrowseModelAssets,l as Comfy_BrowseTemplates,a as Comfy_Canvas_DeleteSelectedItems,s as Comfy_Canvas_FitView,t as Comfy_Canvas_Lock,n as Comfy_Canvas_MoveSelectedNodes_Down,_ as Comfy_Canvas_MoveSelectedNodes_Left,c as Comfy_Canvas_MoveSelectedNodes_Right,C as Comfy_Canvas_MoveSelectedNodes_Up,r as Comfy_Canvas_ResetView,m as Comfy_Canvas_Resize,b as Comfy_Canvas_ToggleLinkVisibility,f as Comfy_Canvas_ToggleLock,y as Comfy_Canvas_ToggleMinimap,p as Comfy_Canvas_ToggleSelectedNodes_Bypass,g as Comfy_Canvas_ToggleSelectedNodes_Collapse,d as Comfy_Canvas_ToggleSelectedNodes_Mute,i as Comfy_Canvas_ToggleSelectedNodes_Pin,k as Comfy_Canvas_ToggleSelected_Pin,u as Comfy_Canvas_Unlock,T as Comfy_Canvas_ZoomIn,S as Comfy_Canvas_ZoomOut,M as Comfy_ClearPendingTasks,v as Comfy_ClearWorkflow,h as Comfy_ContactSupport,w as Comfy_Dev_ShowModelSelector,W as Comfy_DuplicateWorkflow,D as Comfy_ExportWorkflow,O as Comfy_ExportWorkflowAPI,N as Comfy_Graph_ConvertToSubgraph,P as Comfy_Graph_EditSubgraphWidgets,I as Comfy_Graph_ExitSubgraph,U as Comfy_Graph_FitGroupToContents,F as Comfy_Graph_GroupSelectedNodes,G as Comfy_Graph_ToggleWidgetPromotion,E as Comfy_Graph_UnpackSubgraph,B as Comfy_GroupNode_ConvertSelectedNodesToGroupNode,A as Comfy_GroupNode_ManageGroupNodes,L as Comfy_GroupNode_UngroupSelectedGroupNodes,R as Comfy_Help_AboutComfyUI,V as Comfy_Help_OpenComfyOrgDiscord,x as Comfy_Help_OpenComfyUIDocs,H as Comfy_Help_OpenComfyUIForum,Q as Comfy_Help_OpenComfyUIIssues,z as Comfy_Interrupt,Z as Comfy_LoadDefaultWorkflow,j as Comfy_Manager_CustomNodesManager_ShowCustomNodesMenu,q as Comfy_Manager_CustomNodesManager_ShowLegacyCustomNodesMenu,J as Comfy_Manager_ShowLegacyManagerMenu,K as Comfy_Manager_ShowMissingPacks,X as Comfy_Manager_ShowUpdateAvailablePacks,Y as Comfy_MaskEditor_BrushSize_Decrease,$ as Comfy_MaskEditor_BrushSize_Increase,oo as Comfy_MaskEditor_ColorPicker,eo as Comfy_MaskEditor_Mirror_Horizontal,lo as Comfy_MaskEditor_Mirror_Vertical,ao as Comfy_MaskEditor_OpenMaskEditor,so as Comfy_MaskEditor_Rotate_Left,to as Comfy_MaskEditor_Rotate_Right,no as Comfy_Memory_UnloadModels,_o as Comfy_Memory_UnloadModelsAndExecutionCache,co as Comfy_NewBlankWorkflow,Co as Comfy_OpenClipspace,ro as Comfy_OpenManagerDialog,mo as Comfy_OpenWorkflow,bo as Comfy_PublishSubgraph,fo as Comfy_QueuePrompt,yo as Comfy_QueuePromptFront,po as Comfy_QueueSelectedOutputNodes,go as Comfy_Queue_ToggleOverlay,io as Comfy_Redo,ko as Comfy_RefreshNodeDefinitions,uo as Comfy_SaveWorkflow,To as Comfy_SaveWorkflowAs,So as Comfy_ShowSettingsDialog,Mo as Comfy_ToggleAssetAPI,vo as Comfy_ToggleCanvasInfo,ho as Comfy_ToggleHelpCenter,wo as Comfy_ToggleLinear,Wo as Comfy_ToggleQPOV2,Do as Comfy_ToggleTheme,Oo as Comfy_Undo,No as Comfy_User_OpenSignInDialog,Po as Comfy_User_SignOut,Io as Experimental_ToggleVueNodes,Uo as Workspace_CloseWorkflow,Fo as Workspace_NextOpenedWorkflow,Go as Workspace_PreviousOpenedWorkflow,Eo as Workspace_SearchBox_Toggle,Bo as Workspace_ToggleBottomPanel,Ao as Workspace_ToggleBottomPanel_Shortcuts,Lo as Workspace_ToggleFocusMode,Ro as Workspace_ToggleSidebarTab_assets,Vo as Workspace_ToggleSidebarTab_workflows,xo as default};
|
|
2
|
-
//# sourceMappingURL=commands-BOYC3thj.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commands-BOYC3thj.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
const e={label:"Ouvrir le visualiseur 3D (bêta) pour le nœud sélectionné"},o={label:"Expérimental : Parcourir les ressources de modèles"},l={label:"Parcourir les modèles"},s={label:"Supprimer les éléments sélectionnés"},a={label:"Ajuster la vue aux nœuds sélectionnés"},r={label:"Verrouiller la toile"},t={label:"Déplacer les nœuds sélectionnés vers le bas"},n={label:"Déplacer les nœuds sélectionnés vers la gauche"},i={label:"Déplacer les nœuds sélectionnés vers la droite"},c={label:"Déplacer les nœuds sélectionnés vers le haut"},u={label:"Réinitialiser la vue"},d={label:"Redimensionner les nœuds sélectionnés"},_={label:"Basculer la visibilité du lien sur le canevas"},m={label:"Basculer le verrouillage du canevas"},f={label:"Basculer la mini-carte du canevas"},b={label:"Contourner/Ne pas contourner les nœuds sélectionnés"},C={label:"Réduire/Étendre les nœuds sélectionnés"},p={label:"Mettre en sourdine/Activer le son des nœuds sélectionnés"},g={label:"Épingler/Désépingler les nœuds sélectionnés"},y={label:"Épingler/Désépingler les éléments sélectionnés"},v={label:"Déverrouiller le Canvas"},k={label:"Zoom avant"},h={label:"Zoom arrière"},M={label:"Effacer les tâches en attente"},O={label:"Effacer le flux de travail"},S={label:"Contacter le support"},T={label:"Afficher le sélecteur de modèle (Dev)"},D={label:"Dupliquer le flux de travail actuel"},x={label:"Exporter le flux de travail"},w={label:"Exporter le flux de travail (format API)"},E={label:"Convertir la sélection en sous-graphe"},N={label:"Modifier les widgets de sous-graphe"},W={label:"Quitter le sous-graphe"},B={label:"Ajuster le groupe au contenu"},A={label:"Grouper les nœuds sélectionnés"},P={label:"Activer/désactiver la promotion du widget survolé"},I={label:"Décompresser le sous-graphe sélectionné"},F={label:"Convertir les nœuds sélectionnés en nœud de groupe"},G={label:"Gérer les nœuds de groupe"},R={label:"Dégrouper les nœuds de groupe sélectionnés"},U={label:"Ouvrir À propos de ComfyUI"},V={label:"Ouvrir Comfy-Org Discord"},q={label:"Ouvrir les documents ComfyUI"},L={label:"Ouvrir le forum Comfy-Org"},Q={label:"Ouvrir les problèmes ComfyUI"},H={label:"Interrompre"},j={label:"Charger le flux de travail par défaut"},z={label:"Nœuds personnalisés (Beta)"},Z={label:"Nœuds personnalisés (hérités)"},J={label:"Menu du gestionnaire (héritage)"},K={label:"Installer manquants"},X={label:"Vérifier les mises à jour"},Y={label:"Réduire la taille du pinceau dans MaskEditor"},$={label:"Augmenter la taille du pinceau dans MaskEditor"},ee={label:"Ouvrir le sélecteur de couleur dans MaskEditor"},oe={label:"Miroir horizontal dans MaskEditor"},le={label:"Miroir vertical dans MaskEditor"},se={label:"Ouvrir l'éditeur de masque pour le nœud sélectionné"},ae={label:"Rotation à gauche dans MaskEditor"},re={label:"Rotation à droite dans MaskEditor"},te={label:"Décharger les modèles"},ne={label:"Décharger les modèles et le cache d'exécution"},ie={label:"Nouveau flux de travail vierge"},ce={label:"Espace de clip"},ue={label:"Gestionnaire"},de={label:"Ouvrir le flux de travail"},_e={label:"Publier le sous-graphe"},me={label:"Invite de file d'attente"},fe={label:"Invite de file d'attente (avant)"},be={label:"Mettre en file d’attente les nœuds de sortie sélectionnés"},Ce={label:"Afficher/masquer l'historique des tâches"},pe={label:"Refaire"},ge={label:"Actualiser les définitions de nœud"},ye={label:"Enregistrer le flux de travail"},ve={label:"Enregistrer le flux de travail sous"},ke={label:"Afficher la boîte de dialogue des paramètres"},he={label:"Expérimental : Activer AssetAPI"},Me={label:"Performance du canvas"},Oe={label:"Centre d'aide"},Se={label:"basculer en mode linéaire"},Te={label:"Basculer vers Queue Panel V2"},De={label:"Changer de thème (Sombre/Clair)"},xe={label:"Annuler"},we={label:"Ouvrir la boîte de dialogue de connexion"},Ee={label:"Se déconnecter"},Ne={label:"Expérimental : Activer les nœuds Vue"},We={label:"Fermer le flux de travail actuel"},Be={label:"Flux de travail ouvert suivant"},Ae={label:"Flux de travail ouvert précédent"},Pe={label:"Basculer la boîte de recherche"},Ie={label:"Basculer le panneau inférieur"},Fe={label:"Afficher la boîte de dialogue des raccourcis clavier"},Ge={label:"Basculer le mode focus"},Re={label:"Afficher/Masquer la barre latérale des ressources",tooltip:"Ressources"},Ue={label:"Basculer la barre latérale des flux de travail",tooltip:"Flux de travail"},Ve={"Comfy-Desktop_CheckForUpdates":{label:"Vérifier les mises à jour"},"Comfy-Desktop_Folders_OpenCustomNodesFolder":{label:"Ouvrir le dossier des Custom Nodes"},"Comfy-Desktop_Folders_OpenInputsFolder":{label:"Ouvrir le dossier des entrées"},"Comfy-Desktop_Folders_OpenLogsFolder":{label:"Ouvrir le dossier des journaux"},"Comfy-Desktop_Folders_OpenModelConfig":{label:"Ouvrir extra_model_paths.yaml"},"Comfy-Desktop_Folders_OpenModelsFolder":{label:"Ouvrir le dossier des modèles"},"Comfy-Desktop_Folders_OpenOutputsFolder":{label:"Ouvrir le dossier des sorties"},"Comfy-Desktop_OpenDevTools":{label:"Ouvrir les outils de développement"},"Comfy-Desktop_OpenUserGuide":{label:"Guide d'utilisation du bureau"},"Comfy-Desktop_Quit":{label:"Quitter"},"Comfy-Desktop_Reinstall":{label:"Réinstaller"},"Comfy-Desktop_Restart":{label:"Redémarrer"},Comfy_3DViewer_Open3DViewer:e,Comfy_BrowseModelAssets:o,Comfy_BrowseTemplates:l,Comfy_Canvas_DeleteSelectedItems:s,Comfy_Canvas_FitView:a,Comfy_Canvas_Lock:r,Comfy_Canvas_MoveSelectedNodes_Down:t,Comfy_Canvas_MoveSelectedNodes_Left:n,Comfy_Canvas_MoveSelectedNodes_Right:i,Comfy_Canvas_MoveSelectedNodes_Up:c,Comfy_Canvas_ResetView:u,Comfy_Canvas_Resize:d,Comfy_Canvas_ToggleLinkVisibility:_,Comfy_Canvas_ToggleLock:m,Comfy_Canvas_ToggleMinimap:f,Comfy_Canvas_ToggleSelectedNodes_Bypass:b,Comfy_Canvas_ToggleSelectedNodes_Collapse:C,Comfy_Canvas_ToggleSelectedNodes_Mute:p,Comfy_Canvas_ToggleSelectedNodes_Pin:g,Comfy_Canvas_ToggleSelected_Pin:y,Comfy_Canvas_Unlock:v,Comfy_Canvas_ZoomIn:k,Comfy_Canvas_ZoomOut:h,Comfy_ClearPendingTasks:M,Comfy_ClearWorkflow:O,Comfy_ContactSupport:S,Comfy_Dev_ShowModelSelector:T,Comfy_DuplicateWorkflow:D,Comfy_ExportWorkflow:x,Comfy_ExportWorkflowAPI:w,Comfy_Graph_ConvertToSubgraph:E,Comfy_Graph_EditSubgraphWidgets:N,Comfy_Graph_ExitSubgraph:W,Comfy_Graph_FitGroupToContents:B,Comfy_Graph_GroupSelectedNodes:A,Comfy_Graph_ToggleWidgetPromotion:P,Comfy_Graph_UnpackSubgraph:I,Comfy_GroupNode_ConvertSelectedNodesToGroupNode:F,Comfy_GroupNode_ManageGroupNodes:G,Comfy_GroupNode_UngroupSelectedGroupNodes:R,Comfy_Help_AboutComfyUI:U,Comfy_Help_OpenComfyOrgDiscord:V,Comfy_Help_OpenComfyUIDocs:q,Comfy_Help_OpenComfyUIForum:L,Comfy_Help_OpenComfyUIIssues:Q,Comfy_Interrupt:H,Comfy_LoadDefaultWorkflow:j,Comfy_Manager_CustomNodesManager_ShowCustomNodesMenu:z,Comfy_Manager_CustomNodesManager_ShowLegacyCustomNodesMenu:Z,Comfy_Manager_ShowLegacyManagerMenu:J,Comfy_Manager_ShowMissingPacks:K,Comfy_Manager_ShowUpdateAvailablePacks:X,Comfy_MaskEditor_BrushSize_Decrease:Y,Comfy_MaskEditor_BrushSize_Increase:$,Comfy_MaskEditor_ColorPicker:ee,Comfy_MaskEditor_Mirror_Horizontal:oe,Comfy_MaskEditor_Mirror_Vertical:le,Comfy_MaskEditor_OpenMaskEditor:se,Comfy_MaskEditor_Rotate_Left:ae,Comfy_MaskEditor_Rotate_Right:re,Comfy_Memory_UnloadModels:te,Comfy_Memory_UnloadModelsAndExecutionCache:ne,Comfy_NewBlankWorkflow:ie,Comfy_OpenClipspace:ce,Comfy_OpenManagerDialog:ue,Comfy_OpenWorkflow:de,Comfy_PublishSubgraph:_e,Comfy_QueuePrompt:me,Comfy_QueuePromptFront:fe,Comfy_QueueSelectedOutputNodes:be,Comfy_Queue_ToggleOverlay:Ce,Comfy_Redo:pe,Comfy_RefreshNodeDefinitions:ge,Comfy_SaveWorkflow:ye,Comfy_SaveWorkflowAs:ve,Comfy_ShowSettingsDialog:ke,Comfy_ToggleAssetAPI:he,Comfy_ToggleCanvasInfo:Me,Comfy_ToggleHelpCenter:Oe,Comfy_ToggleLinear:Se,Comfy_ToggleQPOV2:Te,Comfy_ToggleTheme:De,Comfy_Undo:xe,Comfy_User_OpenSignInDialog:we,Comfy_User_SignOut:Ee,Experimental_ToggleVueNodes:Ne,Workspace_CloseWorkflow:We,Workspace_NextOpenedWorkflow:Be,Workspace_PreviousOpenedWorkflow:Ae,Workspace_SearchBox_Toggle:Pe,Workspace_ToggleBottomPanel:Ie,"Workspace_ToggleBottomPanelTab_command-terminal":{label:"Basculer le panneau inférieur du terminal"},"Workspace_ToggleBottomPanelTab_logs-terminal":{label:"Basculer le panneau inférieur des journaux"},"Workspace_ToggleBottomPanelTab_shortcuts-essentials":{label:"Afficher/Masquer le panneau inférieur essentiel"},"Workspace_ToggleBottomPanelTab_shortcuts-view-controls":{label:"Afficher/Masquer le panneau inférieur des contrôles de vue"},Workspace_ToggleBottomPanel_Shortcuts:Fe,Workspace_ToggleFocusMode:Ge,Workspace_ToggleSidebarTab_assets:Re,"Workspace_ToggleSidebarTab_model-library":{label:"Basculer la barre latérale de la bibliothèque de modèles",tooltip:"Bibliothèque de modèles"},"Workspace_ToggleSidebarTab_node-library":{label:"Basculer la barre latérale de la bibliothèque de nœuds",tooltip:"Bibliothèque de nœuds"},Workspace_ToggleSidebarTab_workflows:Ue};export{e as Comfy_3DViewer_Open3DViewer,o as Comfy_BrowseModelAssets,l as Comfy_BrowseTemplates,s as Comfy_Canvas_DeleteSelectedItems,a as Comfy_Canvas_FitView,r as Comfy_Canvas_Lock,t as Comfy_Canvas_MoveSelectedNodes_Down,n as Comfy_Canvas_MoveSelectedNodes_Left,i as Comfy_Canvas_MoveSelectedNodes_Right,c as Comfy_Canvas_MoveSelectedNodes_Up,u as Comfy_Canvas_ResetView,d as Comfy_Canvas_Resize,_ as Comfy_Canvas_ToggleLinkVisibility,m as Comfy_Canvas_ToggleLock,f as Comfy_Canvas_ToggleMinimap,b as Comfy_Canvas_ToggleSelectedNodes_Bypass,C as Comfy_Canvas_ToggleSelectedNodes_Collapse,p as Comfy_Canvas_ToggleSelectedNodes_Mute,g as Comfy_Canvas_ToggleSelectedNodes_Pin,y as Comfy_Canvas_ToggleSelected_Pin,v as Comfy_Canvas_Unlock,k as Comfy_Canvas_ZoomIn,h as Comfy_Canvas_ZoomOut,M as Comfy_ClearPendingTasks,O as Comfy_ClearWorkflow,S as Comfy_ContactSupport,T as Comfy_Dev_ShowModelSelector,D as Comfy_DuplicateWorkflow,x as Comfy_ExportWorkflow,w as Comfy_ExportWorkflowAPI,E as Comfy_Graph_ConvertToSubgraph,N as Comfy_Graph_EditSubgraphWidgets,W as Comfy_Graph_ExitSubgraph,B as Comfy_Graph_FitGroupToContents,A as Comfy_Graph_GroupSelectedNodes,P as Comfy_Graph_ToggleWidgetPromotion,I as Comfy_Graph_UnpackSubgraph,F as Comfy_GroupNode_ConvertSelectedNodesToGroupNode,G as Comfy_GroupNode_ManageGroupNodes,R as Comfy_GroupNode_UngroupSelectedGroupNodes,U as Comfy_Help_AboutComfyUI,V as Comfy_Help_OpenComfyOrgDiscord,q as Comfy_Help_OpenComfyUIDocs,L as Comfy_Help_OpenComfyUIForum,Q as Comfy_Help_OpenComfyUIIssues,H as Comfy_Interrupt,j as Comfy_LoadDefaultWorkflow,z as Comfy_Manager_CustomNodesManager_ShowCustomNodesMenu,Z as Comfy_Manager_CustomNodesManager_ShowLegacyCustomNodesMenu,J as Comfy_Manager_ShowLegacyManagerMenu,K as Comfy_Manager_ShowMissingPacks,X as Comfy_Manager_ShowUpdateAvailablePacks,Y as Comfy_MaskEditor_BrushSize_Decrease,$ as Comfy_MaskEditor_BrushSize_Increase,ee as Comfy_MaskEditor_ColorPicker,oe as Comfy_MaskEditor_Mirror_Horizontal,le as Comfy_MaskEditor_Mirror_Vertical,se as Comfy_MaskEditor_OpenMaskEditor,ae as Comfy_MaskEditor_Rotate_Left,re as Comfy_MaskEditor_Rotate_Right,te as Comfy_Memory_UnloadModels,ne as Comfy_Memory_UnloadModelsAndExecutionCache,ie as Comfy_NewBlankWorkflow,ce as Comfy_OpenClipspace,ue as Comfy_OpenManagerDialog,de as Comfy_OpenWorkflow,_e as Comfy_PublishSubgraph,me as Comfy_QueuePrompt,fe as Comfy_QueuePromptFront,be as Comfy_QueueSelectedOutputNodes,Ce as Comfy_Queue_ToggleOverlay,pe as Comfy_Redo,ge as Comfy_RefreshNodeDefinitions,ye as Comfy_SaveWorkflow,ve as Comfy_SaveWorkflowAs,ke as Comfy_ShowSettingsDialog,he as Comfy_ToggleAssetAPI,Me as Comfy_ToggleCanvasInfo,Oe as Comfy_ToggleHelpCenter,Se as Comfy_ToggleLinear,Te as Comfy_ToggleQPOV2,De as Comfy_ToggleTheme,xe as Comfy_Undo,we as Comfy_User_OpenSignInDialog,Ee as Comfy_User_SignOut,Ne as Experimental_ToggleVueNodes,We as Workspace_CloseWorkflow,Be as Workspace_NextOpenedWorkflow,Ae as Workspace_PreviousOpenedWorkflow,Pe as Workspace_SearchBox_Toggle,Ie as Workspace_ToggleBottomPanel,Fe as Workspace_ToggleBottomPanel_Shortcuts,Ge as Workspace_ToggleFocusMode,Re as Workspace_ToggleSidebarTab_assets,Ue as Workspace_ToggleSidebarTab_workflows,Ve as default};
|
|
2
|
-
//# sourceMappingURL=commands-CSrZnGH2.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"commands-CSrZnGH2.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|