diff --git a/package.json b/package.json index 35e0fdc..a6ab605 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,8 @@ "test:unit": "vitest", "lint": "prettier --plugin-search-dir . --check . && eslint .", "format": "prettier --plugin-search-dir . --write .", - "svelte-check": "svelte-check" + "svelte-check": "svelte-check", + "build:css": "pollen -c gradio/js/theme/src/pollen.config.cjs && mv src/pollen.css node_modules/@gradio/theme/src" }, "devDependencies": { "@sveltejs/adapter-auto": "^2.0.0", @@ -38,6 +39,7 @@ "@gradio/utils": "workspace:^0.0.1", "events": "^3.3.0", "litegraph.js": "^0.7.12", + "pollen-css": "^4.6.2", "radix-icons-svelte": "^1.2.1", "svelte-preprocess": "^5.0.3", "svelte-splitpanes": "^0.7.13", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8d4584b..28ee033 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -17,6 +17,7 @@ importers: eslint-plugin-svelte3: ^4.0.0 events: ^3.3.0 litegraph.js: ^0.7.12 + pollen-css: ^4.6.2 prettier: ^2.8.0 prettier-plugin-svelte: ^2.8.1 radix-icons-svelte: ^1.2.1 @@ -40,6 +41,7 @@ importers: '@gradio/utils': link:gradio/js/utils events: 3.3.0 litegraph.js: 0.7.12 + pollen-css: 4.6.2 radix-icons-svelte: 1.2.1 svelte-preprocess: 5.0.3_ex2livsgfbezl6rd73hucsky7y svelte-splitpanes: 0.7.13_svelte@3.58.0 @@ -512,6 +514,11 @@ packages: engines: {node: '>= 6'} dev: false + /case/1.6.3: + resolution: {integrity: sha512-mzDSXIPaFwVDvZAHqZ9VlbyF4yyXRuX6IvB06WvPYkqJVO24kX1PPhv9bfpKNFZyxYFmmgo03HUiD8iklmJYRQ==} + engines: {node: '>= 0.8.0'} + dev: false + /chai/4.3.7: resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} engines: {node: '>=4'} @@ -566,6 +573,11 @@ packages: engines: {node: '>= 6'} dev: false + /commander/9.5.0: + resolution: {integrity: sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ==} + engines: {node: ^12.20.0 || >=14} + dev: false + /concat-map/0.0.1: resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} @@ -583,6 +595,13 @@ packages: which: 2.0.2 dev: true + /css-vars-ponyfill/2.4.8: + resolution: {integrity: sha512-4/j4AX4htytYHWyHVZ2BFQ+NoCGZEcOH2h4/2mmgE4SkrFg4Xq6tGYR77DtvvUIDsaXuJN+sj41bbgauA0Gfmg==} + dependencies: + balanced-match: 1.0.2 + get-css-data: 2.1.0 + dev: false + /cssesc/3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -615,7 +634,6 @@ packages: /deepmerge/4.3.1: resolution: {integrity: sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==} engines: {node: '>=0.10.0'} - dev: true /detect-indent/6.1.0: resolution: {integrity: sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA==} @@ -878,6 +896,10 @@ packages: /function-bind/1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} + /get-css-data/2.1.0: + resolution: {integrity: sha512-HtPrzGk8aBF9rLeQNuImcXci7YVqsMEKzVflEWaCJu25ehxyDNiZRWoSxqSFUBfma8LERqKo70t/TcaGjIsM9g==} + dev: false + /get-func-name/2.0.0: resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} dev: true @@ -1013,6 +1035,10 @@ packages: resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true + /javascript-stringify/2.1.0: + resolution: {integrity: sha512-JVAfqNPTvNq3sB/VHQJAFxN/sPgKnsKrCwyRt15zwNCdrMMJDdcEOdubuy+DuJYYdm0ox1J4uzEuYKkN+9yhVg==} + dev: false + /jiti/1.18.2: resolution: {integrity: sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==} hasBin: true @@ -1098,6 +1124,11 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true + /map-obj/5.0.2: + resolution: {integrity: sha512-K6K2NgKnTXimT3779/4KxSvobxOtMmx1LBZ3NwRxT/MDIR3Br/fQ4Q+WCX5QxjyUR8zg5+RV9Tbf2c5pAWTD2A==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dev: false + /merge2/1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} @@ -1254,6 +1285,20 @@ packages: engines: {node: '>= 6'} dev: false + /pollen-css/4.6.2: + resolution: {integrity: sha512-uSkmTx51xXOFR+Jd6SOaKRBUyNXIjKQ50hB6+bjkDyWjvlOG8CVn3bzPJJM8eRmqKJTd13GUJaKCPbq1Zi11OA==} + hasBin: true + dependencies: + case: 1.6.3 + commander: 9.5.0 + css-vars-ponyfill: 2.4.8 + deepmerge: 4.3.1 + javascript-stringify: 2.1.0 + lilconfig: 2.1.0 + map-obj: 5.0.2 + prettier: 2.8.7 + dev: false + /postcss-import/14.1.0_postcss@8.4.21: resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} engines: {node: '>=10.0.0'} @@ -1342,7 +1387,6 @@ packages: resolution: {integrity: sha512-yPngTo3aXUUmyuTjeTUT75txrf+aMh9FiD7q9ZE/i6r0bPb22g4FsE6Y338PQX1bmfy08i9QQCB7/rcUAVntfw==} engines: {node: '>=10.13.0'} hasBin: true - dev: true /punycode/2.3.0: resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==} diff --git a/src/lib/components/ComfyApp.ts b/src/lib/components/ComfyApp.ts index 3de197d..eac9ea0 100644 --- a/src/lib/components/ComfyApp.ts +++ b/src/lib/components/ComfyApp.ts @@ -331,10 +331,6 @@ export default class ComfyApp { // Process nodes in order of execution for (const node of this.lGraph.computeExecutionOrder(false, null)) { const fromFrontend = frontendState[node.id]; - if (fromFrontend) { - console.log("Set values!", node, fromFrontend) - node.widgets_values = fromFrontend; - } const n = workflow.nodes.find((n) => n.id === node.id); @@ -359,7 +355,13 @@ export default class ComfyApp { for (const i in widgets) { const widget = widgets[i]; if (!widget.options || widget.options.serialize !== false) { - inputs[widget.name] = widget.serializeValue ? await widget.serializeValue(n, i) : widget.value; + // TODO serializeValue API + let value = widget.serializeValue ? await widget.serializeValue(n, i) : widget.value; + if (fromFrontend) { + console.log("Set values!", value, fromFrontend[i]) + value = fromFrontend[i]; + } + inputs[widget.name] = value } } }