diff --git a/README.md b/README.md index 45263ecc..11bed324 100755 --- a/README.md +++ b/README.md @@ -20,9 +20,9 @@ If you like ComflowySpace, give our repo a [⭐ Star](https://github.com/6174/co ## Download * **MacOS:** - * [Mac Intel](https://github.com/6174/comflowyspace/releases/download/v0.2.2-alpha/comflowy-0.2.2-alpha.dmg) (Note that if you have an Intel Macbook, make sure it has AMD graphics before installing, otherwise it won't work!) - * [Mac M](https://github.com/6174/comflowyspace/releases/download/v0.2.2-alpha/comflowy-0.2.2-alpha-arm64.dmg) -* **[Windows](https://github.com/6174/comflowyspace/releases/download/v0.2.2-alpha/comflowy-0.2.2-alpha.zip)** + * [Mac Intel](https://github.com/6174/comflowyspace/releases/download/v0.2.3-alpha/comflowy-0.2.3-alpha.dmg) (Note that if you have an Intel Macbook, make sure it has AMD graphics before installing, otherwise it won't work!) + * [Mac M](https://github.com/6174/comflowyspace/releases/download/v0.2.3-alpha/comflowy-0.2.3-alpha-arm64.dmg) +* **[Windows](https://github.com/6174/comflowyspace/releases/download/v0.2.3-alpha/comflowy-0.2.3-alpha.zip)** ## Cloud Version If your computer's performance isn't sufficient for the local version, you can also try our [cloud version](https://www.comflowy.com). diff --git a/apps/electron-backend/layers/main/src/index.ts b/apps/electron-backend/layers/main/src/index.ts index dfce9f4a..4f5e3ad8 100755 --- a/apps/electron-backend/layers/main/src/index.ts +++ b/apps/electron-backend/layers/main/src/index.ts @@ -20,8 +20,8 @@ log.transports.file.format = '{level} {text}'; app.setAboutPanelOptions({ applicationName: 'Comflowy', - applicationVersion: '0.2.2-alpha', - version: '0.2.2-alpha', + applicationVersion: '0.2.3-alpha', + version: '0.2.3-alpha', copyright: 'Copyright © 2024 https://www.comflowy.com', authors: ['@Marc Chen', '@Jimmy Wang'], website: 'https://www.comflowy.com', diff --git a/apps/electron-backend/package.json b/apps/electron-backend/package.json index 9dec1a88..14a3e76a 100644 --- a/apps/electron-backend/package.json +++ b/apps/electron-backend/package.json @@ -1,6 +1,6 @@ { "name": "comflowy", - "version": "0.2.2-alpha", + "version": "0.2.3-alpha", "private": true, "main": "layers/main/dist/index.js", "scripts": { diff --git a/apps/electron-frontend/.env.development b/apps/electron-frontend/.env.development index b1b60418..509146f6 100644 --- a/apps/electron-frontend/.env.development +++ b/apps/electron-frontend/.env.development @@ -1,4 +1,4 @@ -NEXT_PUBLIC_APP_VERSION=0.2.2-alpha +NEXT_PUBLIC_APP_VERSION=0.2.3-alpha NEXT_PUBLIC_API_SERVER=http://localhost:3000 SENTRY_AUTH_TOKEN=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 NEXT_PUBLIC_APTABASE_API_KEY=A-SH-5854572926 diff --git a/apps/electron-frontend/.env.production b/apps/electron-frontend/.env.production index 2d62f1ed..a69a4f04 100644 --- a/apps/electron-frontend/.env.production +++ b/apps/electron-frontend/.env.production @@ -1,4 +1,4 @@ -NEXT_PUBLIC_APP_VERSION=0.2.2-alpha +NEXT_PUBLIC_APP_VERSION=0.2.3-alpha NEXT_PUBLIC_API_SERVER=https://www.comflowy.com SENTRY_AUTH_TOKEN=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 NEXT_PUBLIC_FG_ENABLE_SUBFLOW=disabled diff --git a/apps/electron-frontend/package.json b/apps/electron-frontend/package.json index a1226aea..fff5b25f 100755 --- a/apps/electron-frontend/package.json +++ b/apps/electron-frontend/package.json @@ -32,6 +32,8 @@ "react-dnd": "^16.0.1", "react-dnd-html5-backend": "^16.0.1", "react-dom": "^18.2.0", + "react-h5-audio-player": "^3.9.3", + "react-markdown": "^9.0.1", "react-player": "^2.16.0", "react-use-websocket": "^4.5.0", "reactflow": "^11.10.1", diff --git a/apps/electron-frontend/src/components/bootstrap/setup-config.tsx b/apps/electron-frontend/src/components/bootstrap/setup-config.tsx index 3816a6aa..bfae9d44 100644 --- a/apps/electron-frontend/src/components/bootstrap/setup-config.tsx +++ b/apps/electron-frontend/src/components/bootstrap/setup-config.tsx @@ -113,7 +113,7 @@ export function SetupConfig() { track('bootstrap-setup-config-success-without-comfyui-installed'); } - if (pythonPath.trim() !== "") { + if (installedComfyUI && pythonPath.trim() !== "") { bootstrapTasks.forEach(task => { const skipTasks = [ BootStrapTaskType.installPython, diff --git a/apps/electron-frontend/src/components/setting-modal/setting-modal.tsx b/apps/electron-frontend/src/components/setting-modal/setting-modal.tsx index 269ddc7e..1ed19563 100644 --- a/apps/electron-frontend/src/components/setting-modal/setting-modal.tsx +++ b/apps/electron-frontend/src/components/setting-modal/setting-modal.tsx @@ -384,7 +384,7 @@ function AboutComflowySpace() {
Comflowy
-
{t(KEYS.version)} 0.2.2-alpha
+
{t(KEYS.version)} 0.2.3-alpha
diff --git a/apps/electron-frontend/src/components/templates/data/Batch-image-workflow.json b/apps/electron-frontend/src/components/templates/data/Batch-image-workflow.json index 60009d4e..b360bed3 100644 --- a/apps/electron-frontend/src/components/templates/data/Batch-image-workflow.json +++ b/apps/electron-frontend/src/components/templates/data/Batch-image-workflow.json @@ -1 +1 @@ -{"id":"abf9b0f9-6a08-47b9-937b-53173392b74e","title":"Batch image workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[863,186],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":1},{"name":"positive","type":"CONDITIONING","link":4},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7,11],"slot_index":0}],"widgets_values":[369501923869898,"fixed",20,8,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[26,474],"size":[315,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[1],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[3,5],"slot_index":1},{"name":"VAE","type":"VAE","links":[8,13],"slot_index":2}],"widgets_values":["SDXL-v1.0-base.safetensors"],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[473,609],"size":[315,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[512,512,4],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[399.27614213197967,85.76040609137053],"size":[423,221],"inputs":[{"name":"clip","type":"CLIP","link":3}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[4],"slot_index":0}],"widgets_values":["Cat, standing on the castle"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[399.24162436548227,335.9319796954315],"size":[425,221],"inputs":[{"name":"clip","type":"CLIP","link":5}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["text, watermark"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1209,188],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":8}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1451,189],"size":[210,270],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0},{"id":"10","type":"LatentFromBatch","properties":{"Node name for S&R":"LatentFromBatch"},"pos":[1210,532],"size":[315,151],"inputs":[{"name":"samples","type":"LATENT","link":11}],"outputs":[{"name":"LATENT","type":"LATENT","links":[10],"shape":3,"slot_index":0}],"widgets_values":[2,1],"order":0,"mode":0},{"id":"11","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1566,535],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":10},{"name":"vae","type":"VAE","link":13}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[12],"shape":3,"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"12","type":"SaveImage","properties":{},"pos":[1823,537],"size":[315,270],"inputs":[{"name":"images","type":"IMAGE","link":12}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0}],"links":[["1","4",0,"3",0,"MODEL"],["2","5",0,"3",3,"LATENT"],["3","4",1,"6",0,"CLIP"],["4","6",0,"3",1,"CONDITIONING"],["5","4",1,"7",0,"CLIP"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["8","4",2,"8",1,"VAE"],["9","8",0,"9",0,"IMAGE"],["10","10",0,"11",0,"LATENT"],["11","3",0,"10",0,"LATENT"],["12","11",0,"12",0,"IMAGE"],["13","4",2,"11",1,"VAE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.2-alpha"}} \ No newline at end of file +{"id":"abf9b0f9-6a08-47b9-937b-53173392b74e","title":"Batch image workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[863,186],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":1},{"name":"positive","type":"CONDITIONING","link":4},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7,11],"slot_index":0}],"widgets_values":[369501923869898,"fixed",20,8,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[26,474],"size":[315,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[1],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[3,5],"slot_index":1},{"name":"VAE","type":"VAE","links":[8,13],"slot_index":2}],"widgets_values":["SDXL-v1.0-base.safetensors"],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[473,609],"size":[315,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[512,512,4],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[399.27614213197967,85.76040609137053],"size":[423,221],"inputs":[{"name":"clip","type":"CLIP","link":3}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[4],"slot_index":0}],"widgets_values":["Cat, standing on the castle"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[399.24162436548227,335.9319796954315],"size":[425,221],"inputs":[{"name":"clip","type":"CLIP","link":5}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["text, watermark"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1209,188],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":8}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1451,189],"size":[210,270],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0},{"id":"10","type":"LatentFromBatch","properties":{"Node name for S&R":"LatentFromBatch"},"pos":[1210,532],"size":[315,151],"inputs":[{"name":"samples","type":"LATENT","link":11}],"outputs":[{"name":"LATENT","type":"LATENT","links":[10],"shape":3,"slot_index":0}],"widgets_values":[2,1],"order":0,"mode":0},{"id":"11","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1566,535],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":10},{"name":"vae","type":"VAE","link":13}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[12],"shape":3,"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"12","type":"SaveImage","properties":{},"pos":[1823,537],"size":[315,270],"inputs":[{"name":"images","type":"IMAGE","link":12}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0}],"links":[["1","4",0,"3",0,"MODEL"],["2","5",0,"3",3,"LATENT"],["3","4",1,"6",0,"CLIP"],["4","6",0,"3",1,"CONDITIONING"],["5","4",1,"7",0,"CLIP"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["8","4",2,"8",1,"VAE"],["9","8",0,"9",0,"IMAGE"],["10","10",0,"11",0,"LATENT"],["11","3",0,"10",0,"LATENT"],["12","11",0,"12",0,"IMAGE"],["13","4",2,"11",1,"VAE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.3-alpha"}} \ No newline at end of file diff --git a/apps/electron-frontend/src/components/templates/data/Canny-ControlNet-workflow.json b/apps/electron-frontend/src/components/templates/data/Canny-ControlNet-workflow.json index 0a270cdd..44c0f154 100644 --- a/apps/electron-frontend/src/components/templates/data/Canny-ControlNet-workflow.json +++ b/apps/electron-frontend/src/components/templates/data/Canny-ControlNet-workflow.json @@ -1 +1 @@ -{"id":"b6ea4f06-ebb8-4067-84a7-cd021bc38c6c","title":"Canny ControlNet workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[1116.1725888324875,193.46192893401013],"size":[300,413],"inputs":[{"name":"model","type":"MODEL","link":1},{"name":"positive","type":"CONDITIONING","link":17},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[636250194499629,"fixed",25,7,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[-173.86802030456852,-154.46192893401025],"size":[340,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[1],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[3,5],"slot_index":1},{"name":"VAE","type":"VAE","links":[19],"slot_index":2}],"widgets_values":["v1-5-dream-shaper.safetensors"],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[837.9137055837564,436.3401015228426],"size":[220,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[512,512,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","title":"CLIP Text Encode (Positive)","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[428.2690355329948,-322.1573604060914],"size":[370,221],"inputs":[{"name":"clip","type":"CLIP","link":3}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[16],"slot_index":0}],"widgets_values":["a portrait photo of a female elf from Lord of the Rings, (Liv Tyler:1.1), (Cate Blanchett:0.9)\n\nhigh resolution, highly detailed, 4k, cinematic, dramatic lighting"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","title":"CLIP Text Encode (Negative)","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[689.6446700507614,185.18274111675123],"size":[370,221],"inputs":[{"name":"clip","type":"CLIP","link":5}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["blurry, illustration, horror, rendering, cosplay"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1456.1725888324872,193.46192893401016],"size":[140,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":19}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1677.7157360406093,190],"size":[410,460],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["Result"],"order":0,"mode":0},{"id":"12","type":"LoadImage","properties":{"Node name for S&R":"LoadImage"},"pos":[-42.34517766497464,81.07614213197967],"size":[210,345],"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[13],"shape":3,"slot_index":0},{"name":"MASK","type":"MASK","links":null,"shape":3}],"widgets_values":["cwf_portrait.jpg",null],"order":0,"mode":0},{"id":"13","type":"Canny","properties":{"Node name for S&R":"Canny"},"pos":[206.30964467005066,82.4609137055836],"size":[210,151],"inputs":[{"name":"image","type":"IMAGE","link":13}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[14,18],"shape":3,"slot_index":0}],"widgets_values":[0.29999999999999993,0.7],"order":0,"mode":0},{"id":"14","type":"ControlNetLoader","properties":{"Node name for S&R":"ControlNetLoader"},"pos":[349.73096446700504,-76.88832487309655],"size":[453,113],"inputs":[],"outputs":[{"name":"CONTROL_NET","type":"CONTROL_NET","links":[15],"shape":3,"slot_index":0}],"widgets_values":["control_v11p_sd15_canny_fp16.safetensors"],"order":0,"mode":0},{"id":"16","type":"ControlNetApply","properties":{"Node name for S&R":"ControlNetApply"},"pos":[838.4568527918781,-6.223350253807119],"size":[212,161],"inputs":[{"name":"conditioning","type":"CONDITIONING","link":16},{"name":"control_net","type":"CONTROL_NET","link":15},{"name":"image","type":"IMAGE","link":14}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[17],"shape":3,"slot_index":0}],"widgets_values":[0.8499999999999999],"order":0,"mode":0},{"id":"17","type":"PreviewImage","properties":{"Node name for S&R":"PreviewImage"},"pos":[451.50253807106594,89.73096446700497],"size":[210,246],"inputs":[{"name":"images","type":"IMAGE","link":18}],"outputs":[],"widgets_values":[],"order":0,"mode":0}],"links":[["1","4",0,"3",0,"MODEL"],["2","5",0,"3",3,"LATENT"],["3","4",1,"6",0,"CLIP"],["5","4",1,"7",0,"CLIP"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["9","8",0,"9",0,"IMAGE"],["13","12",0,"13",0,"IMAGE"],["14","13",0,"16",2,"IMAGE"],["15","14",0,"16",1,"CONTROL_NET"],["16","6",0,"16",0,"CONDITIONING"],["17","16",0,"3",1,"CONDITIONING"],["18","13",0,"17",0,"IMAGE"],["19","4",2,"8",1,"VAE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.2-alpha"}} \ No newline at end of file +{"id":"b6ea4f06-ebb8-4067-84a7-cd021bc38c6c","title":"Canny ControlNet workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[1116.1725888324875,193.46192893401013],"size":[300,413],"inputs":[{"name":"model","type":"MODEL","link":1},{"name":"positive","type":"CONDITIONING","link":17},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[636250194499629,"fixed",25,7,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[-173.86802030456852,-154.46192893401025],"size":[340,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[1],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[3,5],"slot_index":1},{"name":"VAE","type":"VAE","links":[19],"slot_index":2}],"widgets_values":["v1-5-dream-shaper.safetensors"],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[837.9137055837564,436.3401015228426],"size":[220,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[512,512,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","title":"CLIP Text Encode (Positive)","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[428.2690355329948,-322.1573604060914],"size":[370,221],"inputs":[{"name":"clip","type":"CLIP","link":3}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[16],"slot_index":0}],"widgets_values":["a portrait photo of a female elf from Lord of the Rings, (Liv Tyler:1.1), (Cate Blanchett:0.9)\n\nhigh resolution, highly detailed, 4k, cinematic, dramatic lighting"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","title":"CLIP Text Encode (Negative)","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[689.6446700507614,185.18274111675123],"size":[370,221],"inputs":[{"name":"clip","type":"CLIP","link":5}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["blurry, illustration, horror, rendering, cosplay"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1456.1725888324872,193.46192893401016],"size":[140,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":19}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1677.7157360406093,190],"size":[410,460],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["Result"],"order":0,"mode":0},{"id":"12","type":"LoadImage","properties":{"Node name for S&R":"LoadImage"},"pos":[-42.34517766497464,81.07614213197967],"size":[210,345],"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[13],"shape":3,"slot_index":0},{"name":"MASK","type":"MASK","links":null,"shape":3}],"widgets_values":["cwf_portrait.jpg",null],"order":0,"mode":0},{"id":"13","type":"Canny","properties":{"Node name for S&R":"Canny"},"pos":[206.30964467005066,82.4609137055836],"size":[210,151],"inputs":[{"name":"image","type":"IMAGE","link":13}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[14,18],"shape":3,"slot_index":0}],"widgets_values":[0.29999999999999993,0.7],"order":0,"mode":0},{"id":"14","type":"ControlNetLoader","properties":{"Node name for S&R":"ControlNetLoader"},"pos":[349.73096446700504,-76.88832487309655],"size":[453,113],"inputs":[],"outputs":[{"name":"CONTROL_NET","type":"CONTROL_NET","links":[15],"shape":3,"slot_index":0}],"widgets_values":["control_v11p_sd15_canny_fp16.safetensors"],"order":0,"mode":0},{"id":"16","type":"ControlNetApply","properties":{"Node name for S&R":"ControlNetApply"},"pos":[838.4568527918781,-6.223350253807119],"size":[212,161],"inputs":[{"name":"conditioning","type":"CONDITIONING","link":16},{"name":"control_net","type":"CONTROL_NET","link":15},{"name":"image","type":"IMAGE","link":14}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[17],"shape":3,"slot_index":0}],"widgets_values":[0.8499999999999999],"order":0,"mode":0},{"id":"17","type":"PreviewImage","properties":{"Node name for S&R":"PreviewImage"},"pos":[451.50253807106594,89.73096446700497],"size":[210,246],"inputs":[{"name":"images","type":"IMAGE","link":18}],"outputs":[],"widgets_values":[],"order":0,"mode":0}],"links":[["1","4",0,"3",0,"MODEL"],["2","5",0,"3",3,"LATENT"],["3","4",1,"6",0,"CLIP"],["5","4",1,"7",0,"CLIP"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["9","8",0,"9",0,"IMAGE"],["13","12",0,"13",0,"IMAGE"],["14","13",0,"16",2,"IMAGE"],["15","14",0,"16",1,"CONTROL_NET"],["16","6",0,"16",0,"CONDITIONING"],["17","16",0,"3",1,"CONDITIONING"],["18","13",0,"17",0,"IMAGE"],["19","4",2,"8",1,"VAE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.3-alpha"}} \ No newline at end of file diff --git a/apps/electron-frontend/src/components/templates/data/Hi-res-fix-latent-upscale-workflow.json b/apps/electron-frontend/src/components/templates/data/Hi-res-fix-latent-upscale-workflow.json index 35b65b55..72472d62 100644 --- a/apps/electron-frontend/src/components/templates/data/Hi-res-fix-latent-upscale-workflow.json +++ b/apps/electron-frontend/src/components/templates/data/Hi-res-fix-latent-upscale-workflow.json @@ -1 +1 @@ -{"id":"9ca45931-28ce-4a84-8709-2a84655f544e","title":"Hi-res fix latent upscale workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[863,186],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":1},{"name":"positive","type":"CONDITIONING","link":4},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[10],"slot_index":0}],"widgets_values":[156680208700286,"randomize",20,8,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[-42.776773296244784,386.634909596662],"size":[315,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[1,14],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[3,5],"slot_index":1},{"name":"VAE","type":"VAE","links":[8],"slot_index":2}],"widgets_values":["sd_xl_refiner_1.0.safetensors"],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[486.0118219749653,571.8233657858136],"size":[315,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[512,512,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[385.2586926286509,61.45827538247568],"size":[423,221],"inputs":[{"name":"clip","type":"CLIP","link":3}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[4,12],"slot_index":0}],"widgets_values":["Cat, standing on the castle"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[381.3998609179415,309.0702364394993],"size":[425,221],"inputs":[{"name":"clip","type":"CLIP","link":5}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6,13],"slot_index":0}],"widgets_values":["text, watermark"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1968,177],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":15},{"name":"vae","type":"VAE","link":8}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[2246,178],"size":[240,363],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0},{"id":"10","type":"LatentUpscale","properties":{"Node name for S&R":"LatentUpscale"},"pos":[1223,183.56467315716273],"size":[315,227],"inputs":[{"name":"samples","type":"LATENT","link":10}],"outputs":[{"name":"LATENT","type":"LATENT","links":[11],"shape":3,"slot_index":0}],"widgets_values":["nearest-exact",1024,1024,"disabled"],"order":0,"mode":0},{"id":"11","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[1591.1411682892908,186.2941585535466],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":14},{"name":"positive","type":"CONDITIONING","link":12},{"name":"negative","type":"CONDITIONING","link":13},{"name":"latent_image","type":"LATENT","link":11}],"outputs":[{"name":"LATENT","type":"LATENT","links":[15],"shape":3,"slot_index":0}],"widgets_values":[0,"randomize",20,8,"dpmpp_2m","karras",0.5],"order":0,"mode":0}],"links":[["1","4",0,"3",0,"MODEL"],["2","5",0,"3",3,"LATENT"],["3","4",1,"6",0,"CLIP"],["4","6",0,"3",1,"CONDITIONING"],["5","4",1,"7",0,"CLIP"],["6","7",0,"3",2,"CONDITIONING"],["8","4",2,"8",1,"VAE"],["9","8",0,"9",0,"IMAGE"],["10","3",0,"10",0,"LATENT"],["11","10",0,"11",3,"LATENT"],["12","6",0,"11",1,"CONDITIONING"],["13","7",0,"11",2,"CONDITIONING"],["14","4",0,"11",0,"MODEL"],["15","11",0,"8",0,"LATENT"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.2-alpha"}} \ No newline at end of file +{"id":"9ca45931-28ce-4a84-8709-2a84655f544e","title":"Hi-res fix latent upscale workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[863,186],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":1},{"name":"positive","type":"CONDITIONING","link":4},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[10],"slot_index":0}],"widgets_values":[156680208700286,"randomize",20,8,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[-42.776773296244784,386.634909596662],"size":[315,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[1,14],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[3,5],"slot_index":1},{"name":"VAE","type":"VAE","links":[8],"slot_index":2}],"widgets_values":["sd_xl_refiner_1.0.safetensors"],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[486.0118219749653,571.8233657858136],"size":[315,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[512,512,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[385.2586926286509,61.45827538247568],"size":[423,221],"inputs":[{"name":"clip","type":"CLIP","link":3}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[4,12],"slot_index":0}],"widgets_values":["Cat, standing on the castle"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[381.3998609179415,309.0702364394993],"size":[425,221],"inputs":[{"name":"clip","type":"CLIP","link":5}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6,13],"slot_index":0}],"widgets_values":["text, watermark"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1968,177],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":15},{"name":"vae","type":"VAE","link":8}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[2246,178],"size":[240,363],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0},{"id":"10","type":"LatentUpscale","properties":{"Node name for S&R":"LatentUpscale"},"pos":[1223,183.56467315716273],"size":[315,227],"inputs":[{"name":"samples","type":"LATENT","link":10}],"outputs":[{"name":"LATENT","type":"LATENT","links":[11],"shape":3,"slot_index":0}],"widgets_values":["nearest-exact",1024,1024,"disabled"],"order":0,"mode":0},{"id":"11","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[1591.1411682892908,186.2941585535466],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":14},{"name":"positive","type":"CONDITIONING","link":12},{"name":"negative","type":"CONDITIONING","link":13},{"name":"latent_image","type":"LATENT","link":11}],"outputs":[{"name":"LATENT","type":"LATENT","links":[15],"shape":3,"slot_index":0}],"widgets_values":[0,"randomize",20,8,"dpmpp_2m","karras",0.5],"order":0,"mode":0}],"links":[["1","4",0,"3",0,"MODEL"],["2","5",0,"3",3,"LATENT"],["3","4",1,"6",0,"CLIP"],["4","6",0,"3",1,"CONDITIONING"],["5","4",1,"7",0,"CLIP"],["6","7",0,"3",2,"CONDITIONING"],["8","4",2,"8",1,"VAE"],["9","8",0,"9",0,"IMAGE"],["10","3",0,"10",0,"LATENT"],["11","10",0,"11",3,"LATENT"],["12","6",0,"11",1,"CONDITIONING"],["13","7",0,"11",2,"CONDITIONING"],["14","4",0,"11",0,"MODEL"],["15","11",0,"8",0,"LATENT"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.3-alpha"}} \ No newline at end of file diff --git a/apps/electron-frontend/src/components/templates/data/Inpainting-workflow.json b/apps/electron-frontend/src/components/templates/data/Inpainting-workflow.json index 82aed561..f1ae38c7 100644 --- a/apps/electron-frontend/src/components/templates/data/Inpainting-workflow.json +++ b/apps/electron-frontend/src/components/templates/data/Inpainting-workflow.json @@ -1 +1 @@ -{"id":"f9ef8d91-db53-4917-ae7e-107678de7a9a","title":"Inpainting workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[863,186],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":1},{"name":"positive","type":"CONDITIONING","link":4},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":10}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[156680208700286,"randomize",20,8,"dpmpp_2m","karras",0.85],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[-27.255076142131998,419.2233502538071],"size":[377,170],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[1],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[3,5],"slot_index":1},{"name":"VAE","type":"VAE","links":[8,13],"slot_index":2}],"widgets_values":["DreamShaper-v8.0-Inpainting.safetensors"],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[407.39213197969536,129.70177664974617],"size":[423,221],"inputs":[{"name":"clip","type":"CLIP","link":3}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[4],"slot_index":0}],"widgets_values":["red hair"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[408.4352791878173,372.26269035533],"size":[425,221],"inputs":[{"name":"clip","type":"CLIP","link":5}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["blurry, illustration, naked, horror, distorted, wrong hands"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1209,188],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":8}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1451,189],"size":[210,113],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0},{"id":"10","type":"VAEEncodeForInpaint","properties":{"Node name for S&R":"VAEEncodeForInpaint"},"pos":[517.0862944162436,653.2195431472081],"size":[315,161],"inputs":[{"name":"pixels","type":"IMAGE","link":11},{"name":"vae","type":"VAE","link":13},{"name":"mask","type":"MASK","link":12}],"outputs":[{"name":"LATENT","type":"LATENT","links":[10],"shape":3,"slot_index":0}],"widgets_values":[8],"order":0,"mode":0},{"id":"11","type":"LoadImage","properties":{"Node name for S&R":"LoadImage"},"pos":[167.255076142132,655.960659898477],"size":[315,345],"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[11],"shape":3,"slot_index":0},{"name":"MASK","type":"MASK","links":[12],"shape":3,"slot_index":1}],"widgets_values":["Rectangle 4135.png",null],"order":0,"mode":0}],"links":[["1","4",0,"3",0,"MODEL"],["3","4",1,"6",0,"CLIP"],["4","6",0,"3",1,"CONDITIONING"],["5","4",1,"7",0,"CLIP"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["8","4",2,"8",1,"VAE"],["9","8",0,"9",0,"IMAGE"],["10","10",0,"3",3,"LATENT"],["11","11",0,"10",0,"IMAGE"],["12","11",1,"10",2,"MASK"],["13","4",2,"10",1,"VAE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.2-alpha"}} \ No newline at end of file +{"id":"f9ef8d91-db53-4917-ae7e-107678de7a9a","title":"Inpainting workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[863,186],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":1},{"name":"positive","type":"CONDITIONING","link":4},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":10}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[156680208700286,"randomize",20,8,"dpmpp_2m","karras",0.85],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[-27.255076142131998,419.2233502538071],"size":[377,170],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[1],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[3,5],"slot_index":1},{"name":"VAE","type":"VAE","links":[8,13],"slot_index":2}],"widgets_values":["DreamShaper-v8.0-Inpainting.safetensors"],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[407.39213197969536,129.70177664974617],"size":[423,221],"inputs":[{"name":"clip","type":"CLIP","link":3}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[4],"slot_index":0}],"widgets_values":["red hair"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[408.4352791878173,372.26269035533],"size":[425,221],"inputs":[{"name":"clip","type":"CLIP","link":5}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["blurry, illustration, naked, horror, distorted, wrong hands"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1209,188],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":8}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1451,189],"size":[210,113],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0},{"id":"10","type":"VAEEncodeForInpaint","properties":{"Node name for S&R":"VAEEncodeForInpaint"},"pos":[517.0862944162436,653.2195431472081],"size":[315,161],"inputs":[{"name":"pixels","type":"IMAGE","link":11},{"name":"vae","type":"VAE","link":13},{"name":"mask","type":"MASK","link":12}],"outputs":[{"name":"LATENT","type":"LATENT","links":[10],"shape":3,"slot_index":0}],"widgets_values":[8],"order":0,"mode":0},{"id":"11","type":"LoadImage","properties":{"Node name for S&R":"LoadImage"},"pos":[167.255076142132,655.960659898477],"size":[315,345],"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[11],"shape":3,"slot_index":0},{"name":"MASK","type":"MASK","links":[12],"shape":3,"slot_index":1}],"widgets_values":["Rectangle 4135.png",null],"order":0,"mode":0}],"links":[["1","4",0,"3",0,"MODEL"],["3","4",1,"6",0,"CLIP"],["4","6",0,"3",1,"CONDITIONING"],["5","4",1,"7",0,"CLIP"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["8","4",2,"8",1,"VAE"],["9","8",0,"9",0,"IMAGE"],["10","10",0,"3",3,"LATENT"],["11","11",0,"10",0,"IMAGE"],["12","11",1,"10",2,"MASK"],["13","4",2,"10",1,"VAE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.3-alpha"}} \ No newline at end of file diff --git a/apps/electron-frontend/src/components/templates/data/LCM-LoRA-workflow.json b/apps/electron-frontend/src/components/templates/data/LCM-LoRA-workflow.json index 74b634b4..5adddbcd 100644 --- a/apps/electron-frontend/src/components/templates/data/LCM-LoRA-workflow.json +++ b/apps/electron-frontend/src/components/templates/data/LCM-LoRA-workflow.json @@ -1 +1 @@ -{"id":"17ace548-d59c-4fcd-8ac7-6aca20e085b2","title":"LCM LoRA workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[863,186],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":11},{"name":"positive","type":"CONDITIONING","link":4},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[1054042089559169,"randomize",5,1.8,"lcm","sgm_uniform",1],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[-411,202],"size":[315,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[10],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[12],"slot_index":1},{"name":"VAE","type":"VAE","links":[16],"slot_index":2}],"widgets_values":["sd_xl_base_1.0.safetensors"],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[494.1897079276773,661.375521557719],"size":[315,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[1024,1024,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[385.6600834492351,135.2806675938804],"size":[423,221],"inputs":[{"name":"clip","type":"CLIP","link":13}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[4],"slot_index":0}],"widgets_values":["cat, standing on the castle"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[386,395],"size":[425,221],"inputs":[{"name":"clip","type":"CLIP","link":14}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["text, watermark"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1209,188],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":16}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1451,189],"size":[210,313],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0},{"id":"12","type":"LoraLoader","properties":{"Node name for S&R":"LoraLoader"},"pos":[-26,203],"size":[315,213],"inputs":[{"name":"model","type":"MODEL","link":10},{"name":"clip","type":"CLIP","link":12}],"outputs":[{"name":"MODEL","type":"MODEL","links":[11],"shape":3,"slot_index":0},{"name":"CLIP","type":"CLIP","links":[13,14],"shape":3,"slot_index":1}],"widgets_values":["lcm/SDXL/pytorch_lora_weights.safetensors",1,1],"order":0,"mode":0}],"links":[["2","5",0,"3",3,"LATENT"],["4","6",0,"3",1,"CONDITIONING"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["9","8",0,"9",0,"IMAGE"],["10","4",0,"12",0,"MODEL"],["11","12",0,"3",0,"MODEL"],["12","4",1,"12",1,"CLIP"],["13","12",1,"6",0,"CLIP"],["14","12",1,"7",0,"CLIP"],["16","4",2,"8",1,"VAE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.2-alpha"}} \ No newline at end of file +{"id":"17ace548-d59c-4fcd-8ac7-6aca20e085b2","title":"LCM LoRA workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[863,186],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":11},{"name":"positive","type":"CONDITIONING","link":4},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[1054042089559169,"randomize",5,1.8,"lcm","sgm_uniform",1],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[-411,202],"size":[315,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[10],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[12],"slot_index":1},{"name":"VAE","type":"VAE","links":[16],"slot_index":2}],"widgets_values":["sd_xl_base_1.0.safetensors"],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[494.1897079276773,661.375521557719],"size":[315,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[1024,1024,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[385.6600834492351,135.2806675938804],"size":[423,221],"inputs":[{"name":"clip","type":"CLIP","link":13}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[4],"slot_index":0}],"widgets_values":["cat, standing on the castle"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[386,395],"size":[425,221],"inputs":[{"name":"clip","type":"CLIP","link":14}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["text, watermark"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1209,188],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":16}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1451,189],"size":[210,313],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0},{"id":"12","type":"LoraLoader","properties":{"Node name for S&R":"LoraLoader"},"pos":[-26,203],"size":[315,213],"inputs":[{"name":"model","type":"MODEL","link":10},{"name":"clip","type":"CLIP","link":12}],"outputs":[{"name":"MODEL","type":"MODEL","links":[11],"shape":3,"slot_index":0},{"name":"CLIP","type":"CLIP","links":[13,14],"shape":3,"slot_index":1}],"widgets_values":["lcm/SDXL/pytorch_lora_weights.safetensors",1,1],"order":0,"mode":0}],"links":[["2","5",0,"3",3,"LATENT"],["4","6",0,"3",1,"CONDITIONING"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["9","8",0,"9",0,"IMAGE"],["10","4",0,"12",0,"MODEL"],["11","12",0,"3",0,"MODEL"],["12","4",1,"12",1,"CLIP"],["13","12",1,"6",0,"CLIP"],["14","12",1,"7",0,"CLIP"],["16","4",2,"8",1,"VAE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.3-alpha"}} \ No newline at end of file diff --git a/apps/electron-frontend/src/components/templates/data/LoRA-workflow.json b/apps/electron-frontend/src/components/templates/data/LoRA-workflow.json index 83b831ea..12473957 100644 --- a/apps/electron-frontend/src/components/templates/data/LoRA-workflow.json +++ b/apps/electron-frontend/src/components/templates/data/LoRA-workflow.json @@ -1 +1 @@ -{"id":"2d009605-c966-4e51-b041-6d6fd8ac147d","title":"LoRA workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[863,186],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":11},{"name":"positive","type":"CONDITIONING","link":4},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[506015807837182,"randomize",20,7,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[-411,202],"size":[315,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[10],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[12],"slot_index":1},{"name":"VAE","type":"VAE","links":[],"slot_index":2}],"widgets_values":["anythingelseV4_v45.safetensors"],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[491.01974965229476,667.715438108484],"size":[315,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[512,512,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[384.0751043115439,95.65618915159942],"size":[423,263],"inputs":[{"name":"clip","type":"CLIP","link":13}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[4],"slot_index":0}],"widgets_values":["masterpiece, best quality, 1girl, solo, long_hair,\nlooking_at_viewer, smile, bangs, skirt, shirt, long_sleeves, hat,\ndress, bow, holding, closed_mouth, flower, frills, hair_flower,\npetals, bouquet, holding_flower, center_frills, bonnet,\nholding_bouquet, flower field, flower field, lineart, monochrome,"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[386,395],"size":[425,221],"inputs":[{"name":"clip","type":"CLIP","link":14}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["text, watermark"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1209,188],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":15}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1451,189],"size":[210,313],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0},{"id":"12","type":"LoraLoader","properties":{"Node name for S&R":"LoraLoader"},"pos":[-26,203],"size":[315,213],"inputs":[{"name":"model","type":"MODEL","link":10},{"name":"clip","type":"CLIP","link":12}],"outputs":[{"name":"MODEL","type":"MODEL","links":[11],"shape":3,"slot_index":0},{"name":"CLIP","type":"CLIP","links":[13,14],"shape":3,"slot_index":1}],"widgets_values":["animeoutlineV4_16.safetensors",1,1],"order":0,"mode":0},{"id":"13","type":"VAELoader","properties":{"Node name for S&R":"VAELoader"},"pos":[869.1699582753824,642.8931849791377],"size":[315,113],"inputs":[],"outputs":[{"name":"VAE","type":"VAE","links":[15],"shape":3,"slot_index":0}],"widgets_values":["orangemix.vae.pt"],"order":0,"mode":0}],"links":[["2","5",0,"3",3,"LATENT"],["4","6",0,"3",1,"CONDITIONING"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["9","8",0,"9",0,"IMAGE"],["10","4",0,"12",0,"MODEL"],["11","12",0,"3",0,"MODEL"],["12","4",1,"12",1,"CLIP"],["13","12",1,"6",0,"CLIP"],["14","12",1,"7",0,"CLIP"],["15","13",0,"8",1,"VAE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.2-alpha"}} \ No newline at end of file +{"id":"2d009605-c966-4e51-b041-6d6fd8ac147d","title":"LoRA workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[863,186],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":11},{"name":"positive","type":"CONDITIONING","link":4},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[506015807837182,"randomize",20,7,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[-411,202],"size":[315,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[10],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[12],"slot_index":1},{"name":"VAE","type":"VAE","links":[],"slot_index":2}],"widgets_values":["anythingelseV4_v45.safetensors"],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[491.01974965229476,667.715438108484],"size":[315,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[512,512,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[384.0751043115439,95.65618915159942],"size":[423,263],"inputs":[{"name":"clip","type":"CLIP","link":13}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[4],"slot_index":0}],"widgets_values":["masterpiece, best quality, 1girl, solo, long_hair,\nlooking_at_viewer, smile, bangs, skirt, shirt, long_sleeves, hat,\ndress, bow, holding, closed_mouth, flower, frills, hair_flower,\npetals, bouquet, holding_flower, center_frills, bonnet,\nholding_bouquet, flower field, flower field, lineart, monochrome,"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[386,395],"size":[425,221],"inputs":[{"name":"clip","type":"CLIP","link":14}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["text, watermark"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1209,188],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":15}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1451,189],"size":[210,313],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0},{"id":"12","type":"LoraLoader","properties":{"Node name for S&R":"LoraLoader"},"pos":[-26,203],"size":[315,213],"inputs":[{"name":"model","type":"MODEL","link":10},{"name":"clip","type":"CLIP","link":12}],"outputs":[{"name":"MODEL","type":"MODEL","links":[11],"shape":3,"slot_index":0},{"name":"CLIP","type":"CLIP","links":[13,14],"shape":3,"slot_index":1}],"widgets_values":["animeoutlineV4_16.safetensors",1,1],"order":0,"mode":0},{"id":"13","type":"VAELoader","properties":{"Node name for S&R":"VAELoader"},"pos":[869.1699582753824,642.8931849791377],"size":[315,113],"inputs":[],"outputs":[{"name":"VAE","type":"VAE","links":[15],"shape":3,"slot_index":0}],"widgets_values":["orangemix.vae.pt"],"order":0,"mode":0}],"links":[["2","5",0,"3",3,"LATENT"],["4","6",0,"3",1,"CONDITIONING"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["9","8",0,"9",0,"IMAGE"],["10","4",0,"12",0,"MODEL"],["11","12",0,"3",0,"MODEL"],["12","4",1,"12",1,"CLIP"],["13","12",1,"6",0,"CLIP"],["14","12",1,"7",0,"CLIP"],["15","13",0,"8",1,"VAE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.3-alpha"}} \ No newline at end of file diff --git a/apps/electron-frontend/src/components/templates/data/Outpainting-workflow.json b/apps/electron-frontend/src/components/templates/data/Outpainting-workflow.json index 0667db6d..b32570ab 100644 --- a/apps/electron-frontend/src/components/templates/data/Outpainting-workflow.json +++ b/apps/electron-frontend/src/components/templates/data/Outpainting-workflow.json @@ -1 +1 @@ -{"id":"8c3cab96-fb1f-4198-aa1e-b3ec01de835b","title":"Outpainting workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[863,186],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":1},{"name":"positive","type":"CONDITIONING","link":4},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":10}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[750333344894128,"randomize",20,8,"dpmpp_2m","karras",0.85],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[8.536802030456869,458.47715736040607],"size":[315,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[1],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[3,5],"slot_index":1},{"name":"VAE","type":"VAE","links":[8,13],"slot_index":2}],"widgets_values":["DreamShaper-v8.0-Inpainting.safetensors"],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[403.35786802030464,125.84898477157358],"size":[423,221],"inputs":[{"name":"clip","type":"CLIP","link":3}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[4],"slot_index":0}],"widgets_values":["a fantastic colorful alien landscape with mountains and valleys with galaxy in the sky"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[403.2982233502538,379.2982233502538],"size":[425,221],"inputs":[{"name":"clip","type":"CLIP","link":5}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["blurry, illustration, naked, horror, distorted, wrong hands"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1209,188],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":8}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[17],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"10","type":"VAEEncodeForInpaint","properties":{"Node name for S&R":"VAEEncodeForInpaint"},"pos":[511,673],"size":[315,161],"inputs":[{"name":"pixels","type":"IMAGE","link":16},{"name":"vae","type":"VAE","link":13},{"name":"mask","type":"MASK","link":15}],"outputs":[{"name":"LATENT","type":"LATENT","links":[10],"shape":3,"slot_index":0}],"widgets_values":[16],"order":0,"mode":0},{"id":"11","type":"LoadImage","properties":{"Node name for S&R":"LoadImage"},"pos":[-305,819],"size":[313,482],"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[14],"shape":3,"slot_index":0},{"name":"MASK","type":"MASK","links":[],"shape":3,"slot_index":1}],"widgets_values":["ComfyUI_00297_.png",null],"order":0,"mode":0},{"id":"12","type":"ImagePadForOutpaint","properties":{"Node name for S&R":"ImagePadForOutpaint"},"pos":[97,733],"size":[315,289],"inputs":[{"name":"image","type":"IMAGE","link":14}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[16],"shape":3,"slot_index":0},{"name":"MASK","type":"MASK","links":[15],"shape":3,"slot_index":1}],"widgets_values":[256,0,0,256,100],"order":0,"mode":0},{"id":"13","type":"SaveImage","properties":{},"pos":[1465,185],"size":[315,113],"inputs":[{"name":"images","type":"IMAGE","link":17}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0}],"links":[["1","4",0,"3",0,"MODEL"],["3","4",1,"6",0,"CLIP"],["4","6",0,"3",1,"CONDITIONING"],["5","4",1,"7",0,"CLIP"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["8","4",2,"8",1,"VAE"],["10","10",0,"3",3,"LATENT"],["13","4",2,"10",1,"VAE"],["14","11",0,"12",0,"IMAGE"],["15","12",1,"10",2,"MASK"],["16","12",0,"10",0,"IMAGE"],["17","8",0,"13",0,"IMAGE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.2-alpha"}} \ No newline at end of file +{"id":"8c3cab96-fb1f-4198-aa1e-b3ec01de835b","title":"Outpainting workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[863,186],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":1},{"name":"positive","type":"CONDITIONING","link":4},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":10}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[750333344894128,"randomize",20,8,"dpmpp_2m","karras",0.85],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[8.536802030456869,458.47715736040607],"size":[315,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[1],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[3,5],"slot_index":1},{"name":"VAE","type":"VAE","links":[8,13],"slot_index":2}],"widgets_values":["DreamShaper-v8.0-Inpainting.safetensors"],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[403.35786802030464,125.84898477157358],"size":[423,221],"inputs":[{"name":"clip","type":"CLIP","link":3}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[4],"slot_index":0}],"widgets_values":["a fantastic colorful alien landscape with mountains and valleys with galaxy in the sky"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[403.2982233502538,379.2982233502538],"size":[425,221],"inputs":[{"name":"clip","type":"CLIP","link":5}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["blurry, illustration, naked, horror, distorted, wrong hands"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1209,188],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":8}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[17],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"10","type":"VAEEncodeForInpaint","properties":{"Node name for S&R":"VAEEncodeForInpaint"},"pos":[511,673],"size":[315,161],"inputs":[{"name":"pixels","type":"IMAGE","link":16},{"name":"vae","type":"VAE","link":13},{"name":"mask","type":"MASK","link":15}],"outputs":[{"name":"LATENT","type":"LATENT","links":[10],"shape":3,"slot_index":0}],"widgets_values":[16],"order":0,"mode":0},{"id":"11","type":"LoadImage","properties":{"Node name for S&R":"LoadImage"},"pos":[-305,819],"size":[313,482],"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[14],"shape":3,"slot_index":0},{"name":"MASK","type":"MASK","links":[],"shape":3,"slot_index":1}],"widgets_values":["ComfyUI_00297_.png",null],"order":0,"mode":0},{"id":"12","type":"ImagePadForOutpaint","properties":{"Node name for S&R":"ImagePadForOutpaint"},"pos":[97,733],"size":[315,289],"inputs":[{"name":"image","type":"IMAGE","link":14}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[16],"shape":3,"slot_index":0},{"name":"MASK","type":"MASK","links":[15],"shape":3,"slot_index":1}],"widgets_values":[256,0,0,256,100],"order":0,"mode":0},{"id":"13","type":"SaveImage","properties":{},"pos":[1465,185],"size":[315,113],"inputs":[{"name":"images","type":"IMAGE","link":17}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0}],"links":[["1","4",0,"3",0,"MODEL"],["3","4",1,"6",0,"CLIP"],["4","6",0,"3",1,"CONDITIONING"],["5","4",1,"7",0,"CLIP"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["8","4",2,"8",1,"VAE"],["10","10",0,"3",3,"LATENT"],["13","4",2,"10",1,"VAE"],["14","11",0,"12",0,"IMAGE"],["15","12",1,"10",2,"MASK"],["16","12",0,"10",0,"IMAGE"],["17","8",0,"13",0,"IMAGE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.3-alpha"}} \ No newline at end of file diff --git a/apps/electron-frontend/src/components/templates/data/Pose-ControlNet-workflow.json b/apps/electron-frontend/src/components/templates/data/Pose-ControlNet-workflow.json index 3a099a18..63d0737d 100644 --- a/apps/electron-frontend/src/components/templates/data/Pose-ControlNet-workflow.json +++ b/apps/electron-frontend/src/components/templates/data/Pose-ControlNet-workflow.json @@ -1 +1 @@ -{"id":"986942ff-32de-400d-a5fb-db80ec2f852f","title":"Pose ControlNet workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[1205,174],"size":[300,413],"inputs":[{"name":"model","type":"MODEL","link":1},{"name":"positive","type":"CONDITIONING","link":17},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[757125948756855,"randomize",20,7,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[-220.43367174280888,-214.979780033841],"size":[340,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[1],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[3,5],"slot_index":1},{"name":"VAE","type":"VAE","links":[48],"slot_index":2}],"widgets_values":["v1-5-dream-shaper.safetensors"],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[929,481],"size":[220,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[512,512,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","title":"CLIP Text Encode (Positive)","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[193.1136209813875,-226.375972927242],"size":[370,221],"inputs":[{"name":"clip","type":"CLIP","link":3}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[16],"slot_index":0}],"widgets_values":["masterpiece detailed illustration of a sci-fi battle robot dancing on the street of on an alien planet"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","title":"CLIP Text Encode (Negative)","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[782.8679357021997,233.41522842639594],"size":[370,221],"inputs":[{"name":"clip","type":"CLIP","link":5}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["blurry, painting, drawing, photography, distorted, horror"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1540,177.79238578680201],"size":[140,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":48}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1773.565736040609,179.6603214890017],"size":[410,460],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["Result"],"order":0,"mode":0},{"id":"12","type":"LoadImage","properties":{"Node name for S&R":"LoadImage"},"pos":[-43.60439932318104,186.30338409475465],"size":[210,345],"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[45],"shape":3,"slot_index":0},{"name":"MASK","type":"MASK","links":null,"shape":3}],"widgets_values":["cwf_dance.jpg",null],"order":0,"mode":0},{"id":"14","type":"ControlNetLoader","properties":{"Node name for S&R":"ControlNetLoader"},"pos":[481.8102368866329,31.265313028764808],"size":[365,113],"inputs":[],"outputs":[{"name":"CONTROL_NET","type":"CONTROL_NET","links":[15],"shape":3,"slot_index":0}],"widgets_values":["SD-v1.5-ControlNet-Openpose-fp16.safetensors"],"order":0,"mode":0},{"id":"16","type":"ControlNetApply","properties":{"Node name for S&R":"ControlNetApply"},"pos":[927.2445008460235,39.75490693739425],"size":[212,161],"inputs":[{"name":"conditioning","type":"CONDITIONING","link":16},{"name":"control_net","type":"CONTROL_NET","link":15},{"name":"image","type":"IMAGE","link":49}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[17],"shape":3,"slot_index":0}],"widgets_values":[0.8999999999999999],"order":0,"mode":0},{"id":"17","type":"PreviewImage","properties":{"Node name for S&R":"PreviewImage"},"pos":[492.81142131979686,181.92681895093062],"size":[204,246],"inputs":[{"name":"images","type":"IMAGE","link":47}],"outputs":[],"widgets_values":[],"order":0,"mode":0},{"id":"24","type":"ImageScale","properties":{"Node name for S&R":"ImageScale"},"pos":[634.79179357022,-228.80786802030468],"size":[210,227],"inputs":[{"name":"image","type":"IMAGE","link":46}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[49],"shape":3,"slot_index":0}],"widgets_values":["nearest-exact",512,512,"disabled"],"order":0,"mode":0},{"id":"28","type":"DWPreprocessor","properties":{"Node name for S&R":"DWPreprocessor"},"pos":[198.67876480541457,182.35989847715732],"size":[240,75],"inputs":[{"name":"image","type":"IMAGE","link":45}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[46,47],"shape":3,"slot_index":0}],"widgets_values":[],"order":0,"mode":0}],"links":[["1","4",0,"3",0,"MODEL"],["2","5",0,"3",3,"LATENT"],["3","4",1,"6",0,"CLIP"],["5","4",1,"7",0,"CLIP"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["9","8",0,"9",0,"IMAGE"],["15","14",0,"16",1,"CONTROL_NET"],["16","6",0,"16",0,"CONDITIONING"],["17","16",0,"3",1,"CONDITIONING"],["45","12",0,"28",0,"IMAGE"],["46","28",0,"24",0,"IMAGE"],["47","28",0,"17",0,"IMAGE"],["48","4",2,"8",1,"VAE"],["49","24",0,"16",2,"IMAGE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.2-alpha"}} \ No newline at end of file +{"id":"986942ff-32de-400d-a5fb-db80ec2f852f","title":"Pose ControlNet workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[1205,174],"size":[300,413],"inputs":[{"name":"model","type":"MODEL","link":1},{"name":"positive","type":"CONDITIONING","link":17},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[757125948756855,"randomize",20,7,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[-220.43367174280888,-214.979780033841],"size":[340,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[1],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[3,5],"slot_index":1},{"name":"VAE","type":"VAE","links":[48],"slot_index":2}],"widgets_values":["v1-5-dream-shaper.safetensors"],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[929,481],"size":[220,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[512,512,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","title":"CLIP Text Encode (Positive)","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[193.1136209813875,-226.375972927242],"size":[370,221],"inputs":[{"name":"clip","type":"CLIP","link":3}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[16],"slot_index":0}],"widgets_values":["masterpiece detailed illustration of a sci-fi battle robot dancing on the street of on an alien planet"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","title":"CLIP Text Encode (Negative)","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[782.8679357021997,233.41522842639594],"size":[370,221],"inputs":[{"name":"clip","type":"CLIP","link":5}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["blurry, painting, drawing, photography, distorted, horror"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1540,177.79238578680201],"size":[140,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":48}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1773.565736040609,179.6603214890017],"size":[410,460],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["Result"],"order":0,"mode":0},{"id":"12","type":"LoadImage","properties":{"Node name for S&R":"LoadImage"},"pos":[-43.60439932318104,186.30338409475465],"size":[210,345],"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[45],"shape":3,"slot_index":0},{"name":"MASK","type":"MASK","links":null,"shape":3}],"widgets_values":["cwf_dance.jpg",null],"order":0,"mode":0},{"id":"14","type":"ControlNetLoader","properties":{"Node name for S&R":"ControlNetLoader"},"pos":[481.8102368866329,31.265313028764808],"size":[365,113],"inputs":[],"outputs":[{"name":"CONTROL_NET","type":"CONTROL_NET","links":[15],"shape":3,"slot_index":0}],"widgets_values":["SD-v1.5-ControlNet-Openpose-fp16.safetensors"],"order":0,"mode":0},{"id":"16","type":"ControlNetApply","properties":{"Node name for S&R":"ControlNetApply"},"pos":[927.2445008460235,39.75490693739425],"size":[212,161],"inputs":[{"name":"conditioning","type":"CONDITIONING","link":16},{"name":"control_net","type":"CONTROL_NET","link":15},{"name":"image","type":"IMAGE","link":49}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[17],"shape":3,"slot_index":0}],"widgets_values":[0.8999999999999999],"order":0,"mode":0},{"id":"17","type":"PreviewImage","properties":{"Node name for S&R":"PreviewImage"},"pos":[492.81142131979686,181.92681895093062],"size":[204,246],"inputs":[{"name":"images","type":"IMAGE","link":47}],"outputs":[],"widgets_values":[],"order":0,"mode":0},{"id":"24","type":"ImageScale","properties":{"Node name for S&R":"ImageScale"},"pos":[634.79179357022,-228.80786802030468],"size":[210,227],"inputs":[{"name":"image","type":"IMAGE","link":46}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[49],"shape":3,"slot_index":0}],"widgets_values":["nearest-exact",512,512,"disabled"],"order":0,"mode":0},{"id":"28","type":"DWPreprocessor","properties":{"Node name for S&R":"DWPreprocessor"},"pos":[198.67876480541457,182.35989847715732],"size":[240,75],"inputs":[{"name":"image","type":"IMAGE","link":45}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[46,47],"shape":3,"slot_index":0}],"widgets_values":[],"order":0,"mode":0}],"links":[["1","4",0,"3",0,"MODEL"],["2","5",0,"3",3,"LATENT"],["3","4",1,"6",0,"CLIP"],["5","4",1,"7",0,"CLIP"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["9","8",0,"9",0,"IMAGE"],["15","14",0,"16",1,"CONTROL_NET"],["16","6",0,"16",0,"CONDITIONING"],["17","16",0,"3",1,"CONDITIONING"],["45","12",0,"28",0,"IMAGE"],["46","28",0,"24",0,"IMAGE"],["47","28",0,"17",0,"IMAGE"],["48","4",2,"8",1,"VAE"],["49","24",0,"16",2,"IMAGE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.3-alpha"}} \ No newline at end of file diff --git a/apps/electron-frontend/src/components/templates/data/SDXL-prompt-styler-workflow.json b/apps/electron-frontend/src/components/templates/data/SDXL-prompt-styler-workflow.json index 9f140d87..e37df6a3 100644 --- a/apps/electron-frontend/src/components/templates/data/SDXL-prompt-styler-workflow.json +++ b/apps/electron-frontend/src/components/templates/data/SDXL-prompt-styler-workflow.json @@ -1 +1 @@ -{"id":"197f6593-ca05-48fa-9696-2cdca1f93086","title":"SDXL prompt styler workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[863,186],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":1},{"name":"positive","type":"CONDITIONING","link":4},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[882380300250500,"randomize",20,8,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[18.02715736040608,232.3720812182741],"size":[315,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[1],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[3,5],"slot_index":1},{"name":"VAE","type":"VAE","links":[8],"slot_index":2}],"widgets_values":["AnythingElse-V4.0.safetensors"],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[435.0478003384095,488.27648054145516],"size":[315,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[512,512,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[434,239],"size":[317,99],"inputs":[{"name":"clip","type":"CLIP","link":3},{"name":"text","type":"STRING","link":13,"widget":{"name":"text"}}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[4],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[437,365],"size":[313,99],"inputs":[{"name":"clip","type":"CLIP","link":5},{"name":"text","type":"STRING","link":12,"widget":{"name":"text"}}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1209,188],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":8}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1451,189],"size":[210,270],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0},{"id":"10","type":"SDXLPromptStyler","properties":{"Node name for S&R":"SDXLPromptStyler"},"pos":[-68.67571912013534,422.2971235194585],"size":[400,510],"inputs":[],"outputs":[{"name":"text_positive","type":"STRING","links":[13],"shape":3,"slot_index":0},{"name":"text_negative","type":"STRING","links":[12],"shape":3,"slot_index":1}],"widgets_values":[null,null,null,null,null,null],"order":0,"mode":0}],"links":[["1","4",0,"3",0,"MODEL"],["2","5",0,"3",3,"LATENT"],["3","4",1,"6",0,"CLIP"],["4","6",0,"3",1,"CONDITIONING"],["5","4",1,"7",0,"CLIP"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["8","4",2,"8",1,"VAE"],["9","8",0,"9",0,"IMAGE"],["12","10",1,"7",1,"STRING"],["13","10",0,"6",1,"STRING"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.2-alpha"}} \ No newline at end of file +{"id":"197f6593-ca05-48fa-9696-2cdca1f93086","title":"SDXL prompt styler workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[863,186],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":1},{"name":"positive","type":"CONDITIONING","link":4},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[882380300250500,"randomize",20,8,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[18.02715736040608,232.3720812182741],"size":[315,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[1],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[3,5],"slot_index":1},{"name":"VAE","type":"VAE","links":[8],"slot_index":2}],"widgets_values":["AnythingElse-V4.0.safetensors"],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[435.0478003384095,488.27648054145516],"size":[315,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[512,512,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[434,239],"size":[317,99],"inputs":[{"name":"clip","type":"CLIP","link":3},{"name":"text","type":"STRING","link":13,"widget":{"name":"text"}}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[4],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[437,365],"size":[313,99],"inputs":[{"name":"clip","type":"CLIP","link":5},{"name":"text","type":"STRING","link":12,"widget":{"name":"text"}}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1209,188],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":8}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1451,189],"size":[210,270],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0},{"id":"10","type":"SDXLPromptStyler","properties":{"Node name for S&R":"SDXLPromptStyler"},"pos":[-68.67571912013534,422.2971235194585],"size":[400,510],"inputs":[],"outputs":[{"name":"text_positive","type":"STRING","links":[13],"shape":3,"slot_index":0},{"name":"text_negative","type":"STRING","links":[12],"shape":3,"slot_index":1}],"widgets_values":[null,null,null,null,null,null],"order":0,"mode":0}],"links":[["1","4",0,"3",0,"MODEL"],["2","5",0,"3",3,"LATENT"],["3","4",1,"6",0,"CLIP"],["4","6",0,"3",1,"CONDITIONING"],["5","4",1,"7",0,"CLIP"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["8","4",2,"8",1,"VAE"],["9","8",0,"9",0,"IMAGE"],["12","10",1,"7",1,"STRING"],["13","10",0,"6",1,"STRING"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.3-alpha"}} \ No newline at end of file diff --git a/apps/electron-frontend/src/components/templates/data/Scribble-ControlNet-workflow.json b/apps/electron-frontend/src/components/templates/data/Scribble-ControlNet-workflow.json index 08c092a5..61a7c17a 100644 --- a/apps/electron-frontend/src/components/templates/data/Scribble-ControlNet-workflow.json +++ b/apps/electron-frontend/src/components/templates/data/Scribble-ControlNet-workflow.json @@ -1 +1 @@ -{"id":"8d839df7-2a14-478d-934d-d6990d635446","title":"Scribble ControlNet workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[842,150],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":19},{"name":"positive","type":"CONDITIONING","link":18},{"name":"negative","type":"CONDITIONING","link":16},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[1002496614778823,"randomize",16,6,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[464.6294416243654,433.18527918781723],"size":[315,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[512,512,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[-93.25888324873091,-200.39467005076142],"size":[423,221],"inputs":[{"name":"clip","type":"CLIP","link":21}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[10],"slot_index":0}],"widgets_values":["(solo) girl (flat chest:0.9), (fennec ears:1.1)  (fox ears:1.1), (blonde hair:1.0), messy hair, sky clouds, standing in a grass field, (chibi), blue eyes"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[357.13578680203045,189.50634517766497],"size":[425,221],"inputs":[{"name":"clip","type":"CLIP","link":20}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[16],"slot_index":0}],"widgets_values":["(hands), text, error, cropped, (worst quality:1.2), (low quality:1.2), normal quality, (jpeg artifacts:1.3), signature, watermark, username, blurry, artist name, monochrome, sketch, censorship, censor, (copyright:1.2), extra legs, (forehead mark) (depth of field) (emotionless) (penis)"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1210,250],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":22}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1453,247],"size":[394,449],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0},{"id":"10","type":"ControlNetApply","properties":{"Node name for S&R":"ControlNetApply"},"pos":[459,8.284263959390863],"size":[317,161],"inputs":[{"name":"conditioning","type":"CONDITIONING","link":10},{"name":"control_net","type":"CONTROL_NET","link":13},{"name":"image","type":"IMAGE","link":12}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[18],"slot_index":0}],"widgets_values":[0.8999999999999999],"order":0,"mode":0},{"id":"11","type":"LoadImage","properties":{"Node name for S&R":"LoadImage"},"pos":[-60.4073604060913,198.40736040609139],"size":[388,466],"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[12],"slot_index":0},{"name":"MASK","type":"MASK","links":null}],"widgets_values":["input_scribble_example.png",null],"order":0,"mode":0},{"id":"12","type":"ControlNetLoader","properties":{"Node name for S&R":"ControlNetLoader"},"pos":[-92.7157360406091,47.642131979695435],"size":[422,113],"inputs":[],"outputs":[{"name":"CONTROL_NET","type":"CONTROL_NET","links":[13],"slot_index":0}],"widgets_values":["control_scribble.safetensors"],"order":0,"mode":0},{"id":"14","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[-448,231],"size":[315,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[19],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[20,21],"slot_index":1},{"name":"VAE","type":"VAE","links":[22],"slot_index":2}],"widgets_values":["AnythingElse-V4.0.safetensors"],"order":0,"mode":0}],"links":[["2","5",0,"3",3,"LATENT"],["7","3",0,"8",0,"LATENT"],["9","8",0,"9",0,"IMAGE"],["10","6",0,"10",0,"CONDITIONING"],["12","11",0,"10",2,"IMAGE"],["13","12",0,"10",1,"CONTROL_NET"],["16","7",0,"3",2,"CONDITIONING"],["18","10",0,"3",1,"CONDITIONING"],["19","14",0,"3",0,"MODEL"],["20","14",1,"7",0,"CLIP"],["21","14",1,"6",0,"CLIP"],["22","14",2,"8",1,"VAE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.2-alpha"}} \ No newline at end of file +{"id":"8d839df7-2a14-478d-934d-d6990d635446","title":"Scribble ControlNet workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[842,150],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":19},{"name":"positive","type":"CONDITIONING","link":18},{"name":"negative","type":"CONDITIONING","link":16},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[1002496614778823,"randomize",16,6,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[464.6294416243654,433.18527918781723],"size":[315,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[512,512,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[-93.25888324873091,-200.39467005076142],"size":[423,221],"inputs":[{"name":"clip","type":"CLIP","link":21}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[10],"slot_index":0}],"widgets_values":["(solo) girl (flat chest:0.9), (fennec ears:1.1)  (fox ears:1.1), (blonde hair:1.0), messy hair, sky clouds, standing in a grass field, (chibi), blue eyes"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[357.13578680203045,189.50634517766497],"size":[425,221],"inputs":[{"name":"clip","type":"CLIP","link":20}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[16],"slot_index":0}],"widgets_values":["(hands), text, error, cropped, (worst quality:1.2), (low quality:1.2), normal quality, (jpeg artifacts:1.3), signature, watermark, username, blurry, artist name, monochrome, sketch, censorship, censor, (copyright:1.2), extra legs, (forehead mark) (depth of field) (emotionless) (penis)"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1210,250],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":22}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1453,247],"size":[394,449],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0},{"id":"10","type":"ControlNetApply","properties":{"Node name for S&R":"ControlNetApply"},"pos":[459,8.284263959390863],"size":[317,161],"inputs":[{"name":"conditioning","type":"CONDITIONING","link":10},{"name":"control_net","type":"CONTROL_NET","link":13},{"name":"image","type":"IMAGE","link":12}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[18],"slot_index":0}],"widgets_values":[0.8999999999999999],"order":0,"mode":0},{"id":"11","type":"LoadImage","properties":{"Node name for S&R":"LoadImage"},"pos":[-60.4073604060913,198.40736040609139],"size":[388,466],"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[12],"slot_index":0},{"name":"MASK","type":"MASK","links":null}],"widgets_values":["input_scribble_example.png",null],"order":0,"mode":0},{"id":"12","type":"ControlNetLoader","properties":{"Node name for S&R":"ControlNetLoader"},"pos":[-92.7157360406091,47.642131979695435],"size":[422,113],"inputs":[],"outputs":[{"name":"CONTROL_NET","type":"CONTROL_NET","links":[13],"slot_index":0}],"widgets_values":["control_scribble.safetensors"],"order":0,"mode":0},{"id":"14","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[-448,231],"size":[315,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[19],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[20,21],"slot_index":1},{"name":"VAE","type":"VAE","links":[22],"slot_index":2}],"widgets_values":["AnythingElse-V4.0.safetensors"],"order":0,"mode":0}],"links":[["2","5",0,"3",3,"LATENT"],["7","3",0,"8",0,"LATENT"],["9","8",0,"9",0,"IMAGE"],["10","6",0,"10",0,"CONDITIONING"],["12","11",0,"10",2,"IMAGE"],["13","12",0,"10",1,"CONTROL_NET"],["16","7",0,"3",2,"CONDITIONING"],["18","10",0,"3",1,"CONDITIONING"],["19","14",0,"3",0,"MODEL"],["20","14",1,"7",0,"CLIP"],["21","14",1,"6",0,"CLIP"],["22","14",2,"8",1,"VAE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.3-alpha"}} \ No newline at end of file diff --git a/apps/electron-frontend/src/components/templates/data/Simple-img2img-workflow.json b/apps/electron-frontend/src/components/templates/data/Simple-img2img-workflow.json index fad55b18..f51829b9 100644 --- a/apps/electron-frontend/src/components/templates/data/Simple-img2img-workflow.json +++ b/apps/electron-frontend/src/components/templates/data/Simple-img2img-workflow.json @@ -1 +1 @@ -{"id":"cea8bc18-4c8f-4e7b-bf15-2a09c002b0d5","title":"Simple img2img workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[863,186],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":13},{"name":"positive","type":"CONDITIONING","link":4},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":11}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[321204507298344,"randomize",30,8,"dpmpp_2m","normal",0.8700000000000001],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[392.39109874826147,108.12489568845619],"size":[423,221],"inputs":[{"name":"clip","type":"CLIP","link":14}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[4],"slot_index":0}],"widgets_values":["photograph of victorian woman with wings, sky clouds, meadow grass\n"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[395.4152990264256,357.59874826147427],"size":[425,221],"inputs":[{"name":"clip","type":"CLIP","link":15}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["watermark, text\n"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1209,188],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":17}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1451,189],"size":[210,313],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0},{"id":"10","type":"LoadImage","properties":{"Node name for S&R":"LoadImage"},"pos":[214,736],"size":[317,485],"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[10],"slot_index":0},{"name":"MASK","type":"MASK","links":null,"shape":3}],"widgets_values":["",null],"order":0,"mode":0},{"id":"12","type":"VAEEncode","properties":{"Node name for S&R":"VAEEncode"},"pos":[603.6755090909277,612.2202215703504],"size":[210,99],"inputs":[{"name":"pixels","type":"IMAGE","link":10},{"name":"vae","type":"VAE","link":16}],"outputs":[{"name":"LATENT","type":"LATENT","links":[11],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"14","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[8.951599443671768,433],"size":[315,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[13],"shape":3,"slot_index":0},{"name":"CLIP","type":"CLIP","links":[14,15],"shape":3,"slot_index":1},{"name":"VAE","type":"VAE","links":[16,17],"shape":3,"slot_index":2}],"widgets_values":["v1-5-dream-shaper.safetensors"],"order":0,"mode":0}],"links":[["4","6",0,"3",1,"CONDITIONING"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["9","8",0,"9",0,"IMAGE"],["10","10",0,"12",0,"IMAGE"],["11","12",0,"3",3,"LATENT"],["13","14",0,"3",0,"MODEL"],["14","14",1,"6",0,"CLIP"],["15","14",1,"7",0,"CLIP"],["16","14",2,"12",1,"VAE"],["17","14",2,"8",1,"VAE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.2-alpha"}} \ No newline at end of file +{"id":"cea8bc18-4c8f-4e7b-bf15-2a09c002b0d5","title":"Simple img2img workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[863,186],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":13},{"name":"positive","type":"CONDITIONING","link":4},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":11}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[321204507298344,"randomize",30,8,"dpmpp_2m","normal",0.8700000000000001],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[392.39109874826147,108.12489568845619],"size":[423,221],"inputs":[{"name":"clip","type":"CLIP","link":14}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[4],"slot_index":0}],"widgets_values":["photograph of victorian woman with wings, sky clouds, meadow grass\n"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[395.4152990264256,357.59874826147427],"size":[425,221],"inputs":[{"name":"clip","type":"CLIP","link":15}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["watermark, text\n"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1209,188],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":17}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1451,189],"size":[210,313],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0},{"id":"10","type":"LoadImage","properties":{"Node name for S&R":"LoadImage"},"pos":[214,736],"size":[317,485],"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[10],"slot_index":0},{"name":"MASK","type":"MASK","links":null,"shape":3}],"widgets_values":["",null],"order":0,"mode":0},{"id":"12","type":"VAEEncode","properties":{"Node name for S&R":"VAEEncode"},"pos":[603.6755090909277,612.2202215703504],"size":[210,99],"inputs":[{"name":"pixels","type":"IMAGE","link":10},{"name":"vae","type":"VAE","link":16}],"outputs":[{"name":"LATENT","type":"LATENT","links":[11],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"14","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[8.951599443671768,433],"size":[315,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[13],"shape":3,"slot_index":0},{"name":"CLIP","type":"CLIP","links":[14,15],"shape":3,"slot_index":1},{"name":"VAE","type":"VAE","links":[16,17],"shape":3,"slot_index":2}],"widgets_values":["v1-5-dream-shaper.safetensors"],"order":0,"mode":0}],"links":[["4","6",0,"3",1,"CONDITIONING"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["9","8",0,"9",0,"IMAGE"],["10","10",0,"12",0,"IMAGE"],["11","12",0,"3",3,"LATENT"],["13","14",0,"3",0,"MODEL"],["14","14",1,"6",0,"CLIP"],["15","14",1,"7",0,"CLIP"],["16","14",2,"12",1,"VAE"],["17","14",2,"8",1,"VAE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.3-alpha"}} \ No newline at end of file diff --git a/apps/electron-frontend/src/components/templates/data/Style-model-workflow.json b/apps/electron-frontend/src/components/templates/data/Style-model-workflow.json index 36a82286..cf1281fb 100644 --- a/apps/electron-frontend/src/components/templates/data/Style-model-workflow.json +++ b/apps/electron-frontend/src/components/templates/data/Style-model-workflow.json @@ -1 +1 @@ -{"id":"47cc63e5-e8d9-4851-8324-83cb0def7101","title":"Style model workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[928.0917941585535,-52.23574408901254],"size":[240,413],"inputs":[{"name":"model","type":"MODEL","link":1},{"name":"positive","type":"CONDITIONING","link":22},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[1003683894614458,"randomize",20,7,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[-9.293463143254513,-63.233657858136304],"size":[250,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[1],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[3,5],"slot_index":1},{"name":"VAE","type":"VAE","links":[25],"slot_index":2}],"widgets_values":["v1-5-dream-shaper.safetensors"],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[663.5688456189151,198.25938803894306],"size":[220,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[512,512,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","title":"CLIP Text Encode (Positive)","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[336.7225312934632,-223.72878998609178],"size":[245,221],"inputs":[{"name":"clip","type":"CLIP","link":3}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[24],"slot_index":0}],"widgets_values":["girl"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","title":"CLIP Text Encode (Negative)","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[625.6369958275382,-55.804589707927704],"size":[262,221],"inputs":[{"name":"clip","type":"CLIP","link":5}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["blurry, illustration, naked, text"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1205.3532684283728,-50.86648122392213],"size":[140,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":25}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1430.9541029207232,-46.758692628650905],"size":[408,533],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["Result"],"order":0,"mode":0},{"id":"12","type":"StyleModelApply","properties":{"Node name for S&R":"StyleModelApply"},"pos":[623.5688456189151,-203.39360222531297],"size":[262,123],"inputs":[{"name":"conditioning","type":"CONDITIONING","link":24},{"name":"style_model","type":"STYLE_MODEL","link":13},{"name":"clip_vision_output","type":"CLIP_VISION_OUTPUT","link":14}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[22],"shape":3,"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"13","type":"StyleModelLoader","properties":{"Node name for S&R":"StyleModelLoader"},"pos":[341.66063977746865,19.009735744089006],"size":[240,115],"inputs":[],"outputs":[{"name":"STYLE_MODEL","type":"STYLE_MODEL","links":[13],"shape":3,"slot_index":0}],"widgets_values":["coadapter-style-sd15v1.pth"],"order":0,"mode":0},{"id":"14","type":"CLIPVisionLoader","properties":{"Node name for S&R":"CLIPVisionLoader"},"pos":[-29.541029207232256,163.07371349095968],"size":[309,123],"inputs":[],"outputs":[{"name":"CLIP_VISION","type":"CLIP_VISION","links":[15],"shape":3,"slot_index":0}],"widgets_values":["pytorch_model.bin"],"order":0,"mode":0},{"id":"15","type":"CLIPVisionEncode","properties":{"Node name for S&R":"CLIPVisionEncode"},"pos":[337.26147426981896,160.08762169680114],"size":[248,99],"inputs":[{"name":"clip_vision","type":"CLIP_VISION","link":15},{"name":"image","type":"IMAGE","link":16}],"outputs":[{"name":"CLIP_VISION_OUTPUT","type":"CLIP_VISION_OUTPUT","links":[14],"shape":3,"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"16","type":"LoadImage","properties":{"Node name for S&R":"LoadImage"},"pos":[63.56884561891516,327.4290681502086],"size":[210,345],"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[16],"shape":3,"slot_index":0},{"name":"MASK","type":"MASK","links":null,"shape":3}],"widgets_values":["cwf_marble_statue.jpg",null],"order":0,"mode":0}],"links":[["1","4",0,"3",0,"MODEL"],["2","5",0,"3",3,"LATENT"],["3","4",1,"6",0,"CLIP"],["5","4",1,"7",0,"CLIP"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["9","8",0,"9",0,"IMAGE"],["13","13",0,"12",1,"STYLE_MODEL"],["14","15",0,"12",2,"CLIP_VISION_OUTPUT"],["15","14",0,"15",0,"CLIP_VISION"],["16","16",0,"15",1,"IMAGE"],["22","12",0,"3",1,"CONDITIONING"],["24","6",0,"12",0,"CONDITIONING"],["25","4",2,"8",1,"VAE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.2-alpha"}} \ No newline at end of file +{"id":"47cc63e5-e8d9-4851-8324-83cb0def7101","title":"Style model workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[928.0917941585535,-52.23574408901254],"size":[240,413],"inputs":[{"name":"model","type":"MODEL","link":1},{"name":"positive","type":"CONDITIONING","link":22},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[1003683894614458,"randomize",20,7,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[-9.293463143254513,-63.233657858136304],"size":[250,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[1],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[3,5],"slot_index":1},{"name":"VAE","type":"VAE","links":[25],"slot_index":2}],"widgets_values":["v1-5-dream-shaper.safetensors"],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[663.5688456189151,198.25938803894306],"size":[220,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[512,512,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","title":"CLIP Text Encode (Positive)","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[336.7225312934632,-223.72878998609178],"size":[245,221],"inputs":[{"name":"clip","type":"CLIP","link":3}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[24],"slot_index":0}],"widgets_values":["girl"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","title":"CLIP Text Encode (Negative)","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[625.6369958275382,-55.804589707927704],"size":[262,221],"inputs":[{"name":"clip","type":"CLIP","link":5}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["blurry, illustration, naked, text"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1205.3532684283728,-50.86648122392213],"size":[140,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":25}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1430.9541029207232,-46.758692628650905],"size":[408,533],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["Result"],"order":0,"mode":0},{"id":"12","type":"StyleModelApply","properties":{"Node name for S&R":"StyleModelApply"},"pos":[623.5688456189151,-203.39360222531297],"size":[262,123],"inputs":[{"name":"conditioning","type":"CONDITIONING","link":24},{"name":"style_model","type":"STYLE_MODEL","link":13},{"name":"clip_vision_output","type":"CLIP_VISION_OUTPUT","link":14}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[22],"shape":3,"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"13","type":"StyleModelLoader","properties":{"Node name for S&R":"StyleModelLoader"},"pos":[341.66063977746865,19.009735744089006],"size":[240,115],"inputs":[],"outputs":[{"name":"STYLE_MODEL","type":"STYLE_MODEL","links":[13],"shape":3,"slot_index":0}],"widgets_values":["coadapter-style-sd15v1.pth"],"order":0,"mode":0},{"id":"14","type":"CLIPVisionLoader","properties":{"Node name for S&R":"CLIPVisionLoader"},"pos":[-29.541029207232256,163.07371349095968],"size":[309,123],"inputs":[],"outputs":[{"name":"CLIP_VISION","type":"CLIP_VISION","links":[15],"shape":3,"slot_index":0}],"widgets_values":["pytorch_model.bin"],"order":0,"mode":0},{"id":"15","type":"CLIPVisionEncode","properties":{"Node name for S&R":"CLIPVisionEncode"},"pos":[337.26147426981896,160.08762169680114],"size":[248,99],"inputs":[{"name":"clip_vision","type":"CLIP_VISION","link":15},{"name":"image","type":"IMAGE","link":16}],"outputs":[{"name":"CLIP_VISION_OUTPUT","type":"CLIP_VISION_OUTPUT","links":[14],"shape":3,"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"16","type":"LoadImage","properties":{"Node name for S&R":"LoadImage"},"pos":[63.56884561891516,327.4290681502086],"size":[210,345],"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[16],"shape":3,"slot_index":0},{"name":"MASK","type":"MASK","links":null,"shape":3}],"widgets_values":["cwf_marble_statue.jpg",null],"order":0,"mode":0}],"links":[["1","4",0,"3",0,"MODEL"],["2","5",0,"3",3,"LATENT"],["3","4",1,"6",0,"CLIP"],["5","4",1,"7",0,"CLIP"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["9","8",0,"9",0,"IMAGE"],["13","13",0,"12",1,"STYLE_MODEL"],["14","15",0,"12",2,"CLIP_VISION_OUTPUT"],["15","14",0,"15",0,"CLIP_VISION"],["16","16",0,"15",1,"IMAGE"],["22","12",0,"3",1,"CONDITIONING"],["24","6",0,"12",0,"CONDITIONING"],["25","4",2,"8",1,"VAE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.3-alpha"}} \ No newline at end of file diff --git a/apps/electron-frontend/src/components/templates/data/Upscale-pixel-and-Hi-res-fix-workflow.json b/apps/electron-frontend/src/components/templates/data/Upscale-pixel-and-Hi-res-fix-workflow.json index 061e49c2..46579408 100644 --- a/apps/electron-frontend/src/components/templates/data/Upscale-pixel-and-Hi-res-fix-workflow.json +++ b/apps/electron-frontend/src/components/templates/data/Upscale-pixel-and-Hi-res-fix-workflow.json @@ -1 +1 @@ -{"id":"81cb5889-9a2d-471f-94e3-a778e6837a56","title":"Upscale pixel and hi-res fix latent workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[863,-9.809510026424984],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":1},{"name":"positive","type":"CONDITIONING","link":4},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[17],"slot_index":0}],"widgets_values":[156680208700286,"randomize",20,8,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[-22.805058230080107,201.18918123524094],"size":[315,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[1,14],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[3,5],"slot_index":1},{"name":"VAE","type":"VAE","links":[8,23,24],"slot_index":2}],"widgets_values":["sd_xl_refiner_1.0.safetensors"],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[498.95065795530934,376.623653763821],"size":[315,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[512,512,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[387.8697666830857,-165.51345775828102],"size":[423,221],"inputs":[{"name":"clip","type":"CLIP","link":3}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[4,12],"slot_index":0}],"widgets_values":["Cat, standing on the castle"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[384.6901913214806,103.54276249159733],"size":[425,221],"inputs":[{"name":"clip","type":"CLIP","link":5}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6,13],"slot_index":0}],"widgets_values":["text, watermark"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[2846.773212957964,14.101079830342485],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":15},{"name":"vae","type":"VAE","link":8}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[3098.883320940998,19.327866872378287],"size":[210,313],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0},{"id":"11","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[2485.2851265715367,18.159419359843298],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":14},{"name":"positive","type":"CONDITIONING","link":12},{"name":"negative","type":"CONDITIONING","link":13},{"name":"latent_image","type":"LATENT","link":22}],"outputs":[{"name":"LATENT","type":"LATENT","links":[15],"shape":3,"slot_index":0}],"widgets_values":[0,"randomize",20,8,"dpmpp_2m","karras",0.5],"order":0,"mode":0},{"id":"12","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1335.7797840339317,155.1725615117781],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":17},{"name":"vae","type":"VAE","link":23}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[18],"shape":3,"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"13","type":"ImageUpscaleWithModel","properties":{"Node name for S&R":"ImageUpscaleWithModel"},"pos":[1598.3434661010376,3.1010798303424636],"size":[242,99],"inputs":[{"name":"upscale_model","type":"UPSCALE_MODEL","link":19},{"name":"image","type":"IMAGE","link":18}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[20],"shape":3,"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"14","type":"UpscaleModelLoader","properties":{"Node name for S&R":"UpscaleModelLoader"},"pos":[1236.4774013112171,3.1701044350537124],"size":[315,113],"inputs":[],"outputs":[{"name":"UPSCALE_MODEL","type":"UPSCALE_MODEL","links":[19],"shape":3,"slot_index":0}],"widgets_values":["BSRGANx2.pth"],"order":0,"mode":0},{"id":"15","type":"LatentUpscaleBy","properties":{"Node name for S&R":"LatentUpscaleBy"},"pos":[2135.1166790590014,8.176675511021074],"size":[315,151],"inputs":[{"name":"samples","type":"LATENT","link":21}],"outputs":[{"name":"LATENT","type":"LATENT","links":[22],"shape":3,"slot_index":0}],"widgets_values":["nearest-exact",1.5],"order":0,"mode":0},{"id":"16","type":"VAEEncode","properties":{"Node name for S&R":"VAEEncode"},"pos":[1890.4190617817162,5.101079830342414],"size":[210,99],"inputs":[{"name":"pixels","type":"IMAGE","link":20},{"name":"vae","type":"VAE","link":24}],"outputs":[{"name":"LATENT","type":"LATENT","links":[21],"shape":3,"slot_index":0}],"widgets_values":[],"order":0,"mode":0}],"links":[["1","4",0,"3",0,"MODEL"],["2","5",0,"3",3,"LATENT"],["3","4",1,"6",0,"CLIP"],["4","6",0,"3",1,"CONDITIONING"],["5","4",1,"7",0,"CLIP"],["6","7",0,"3",2,"CONDITIONING"],["8","4",2,"8",1,"VAE"],["9","8",0,"9",0,"IMAGE"],["12","6",0,"11",1,"CONDITIONING"],["13","7",0,"11",2,"CONDITIONING"],["14","4",0,"11",0,"MODEL"],["15","11",0,"8",0,"LATENT"],["17","3",0,"12",0,"LATENT"],["18","12",0,"13",1,"IMAGE"],["19","14",0,"13",0,"UPSCALE_MODEL"],["20","13",0,"16",0,"IMAGE"],["21","16",0,"15",0,"LATENT"],["22","15",0,"11",3,"LATENT"],["23","4",2,"12",1,"VAE"],["24","4",2,"16",1,"VAE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.2-alpha"}} \ No newline at end of file +{"id":"81cb5889-9a2d-471f-94e3-a778e6837a56","title":"Upscale pixel and hi-res fix latent workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[863,-9.809510026424984],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":1},{"name":"positive","type":"CONDITIONING","link":4},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[17],"slot_index":0}],"widgets_values":[156680208700286,"randomize",20,8,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[-22.805058230080107,201.18918123524094],"size":[315,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[1,14],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[3,5],"slot_index":1},{"name":"VAE","type":"VAE","links":[8,23,24],"slot_index":2}],"widgets_values":["sd_xl_refiner_1.0.safetensors"],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[498.95065795530934,376.623653763821],"size":[315,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[512,512,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[387.8697666830857,-165.51345775828102],"size":[423,221],"inputs":[{"name":"clip","type":"CLIP","link":3}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[4,12],"slot_index":0}],"widgets_values":["Cat, standing on the castle"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[384.6901913214806,103.54276249159733],"size":[425,221],"inputs":[{"name":"clip","type":"CLIP","link":5}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6,13],"slot_index":0}],"widgets_values":["text, watermark"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[2846.773212957964,14.101079830342485],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":15},{"name":"vae","type":"VAE","link":8}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[3098.883320940998,19.327866872378287],"size":[210,313],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0},{"id":"11","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[2485.2851265715367,18.159419359843298],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":14},{"name":"positive","type":"CONDITIONING","link":12},{"name":"negative","type":"CONDITIONING","link":13},{"name":"latent_image","type":"LATENT","link":22}],"outputs":[{"name":"LATENT","type":"LATENT","links":[15],"shape":3,"slot_index":0}],"widgets_values":[0,"randomize",20,8,"dpmpp_2m","karras",0.5],"order":0,"mode":0},{"id":"12","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1335.7797840339317,155.1725615117781],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":17},{"name":"vae","type":"VAE","link":23}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[18],"shape":3,"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"13","type":"ImageUpscaleWithModel","properties":{"Node name for S&R":"ImageUpscaleWithModel"},"pos":[1598.3434661010376,3.1010798303424636],"size":[242,99],"inputs":[{"name":"upscale_model","type":"UPSCALE_MODEL","link":19},{"name":"image","type":"IMAGE","link":18}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[20],"shape":3,"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"14","type":"UpscaleModelLoader","properties":{"Node name for S&R":"UpscaleModelLoader"},"pos":[1236.4774013112171,3.1701044350537124],"size":[315,113],"inputs":[],"outputs":[{"name":"UPSCALE_MODEL","type":"UPSCALE_MODEL","links":[19],"shape":3,"slot_index":0}],"widgets_values":["BSRGANx2.pth"],"order":0,"mode":0},{"id":"15","type":"LatentUpscaleBy","properties":{"Node name for S&R":"LatentUpscaleBy"},"pos":[2135.1166790590014,8.176675511021074],"size":[315,151],"inputs":[{"name":"samples","type":"LATENT","link":21}],"outputs":[{"name":"LATENT","type":"LATENT","links":[22],"shape":3,"slot_index":0}],"widgets_values":["nearest-exact",1.5],"order":0,"mode":0},{"id":"16","type":"VAEEncode","properties":{"Node name for S&R":"VAEEncode"},"pos":[1890.4190617817162,5.101079830342414],"size":[210,99],"inputs":[{"name":"pixels","type":"IMAGE","link":20},{"name":"vae","type":"VAE","link":24}],"outputs":[{"name":"LATENT","type":"LATENT","links":[21],"shape":3,"slot_index":0}],"widgets_values":[],"order":0,"mode":0}],"links":[["1","4",0,"3",0,"MODEL"],["2","5",0,"3",3,"LATENT"],["3","4",1,"6",0,"CLIP"],["4","6",0,"3",1,"CONDITIONING"],["5","4",1,"7",0,"CLIP"],["6","7",0,"3",2,"CONDITIONING"],["8","4",2,"8",1,"VAE"],["9","8",0,"9",0,"IMAGE"],["12","6",0,"11",1,"CONDITIONING"],["13","7",0,"11",2,"CONDITIONING"],["14","4",0,"11",0,"MODEL"],["15","11",0,"8",0,"LATENT"],["17","3",0,"12",0,"LATENT"],["18","12",0,"13",1,"IMAGE"],["19","14",0,"13",0,"UPSCALE_MODEL"],["20","13",0,"16",0,"IMAGE"],["21","16",0,"15",0,"LATENT"],["22","15",0,"11",3,"LATENT"],["23","4",2,"12",1,"VAE"],["24","4",2,"16",1,"VAE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.3-alpha"}} \ No newline at end of file diff --git a/apps/electron-frontend/src/components/templates/data/Upscale-pixel-by-algorithm-workflow.json b/apps/electron-frontend/src/components/templates/data/Upscale-pixel-by-algorithm-workflow.json index 849760ac..d911e543 100644 --- a/apps/electron-frontend/src/components/templates/data/Upscale-pixel-by-algorithm-workflow.json +++ b/apps/electron-frontend/src/components/templates/data/Upscale-pixel-by-algorithm-workflow.json @@ -1 +1 @@ -{"id":"fb4bdbb5-7712-42b7-badf-5ad0ae97d652","title":"Upscale pixel by algorithm workflow","nodes":[{"id":"1","type":"LoadImage","properties":{"Node name for S&R":"LoadImage"},"pos":[473.39541029207237,174.7307371349096],"size":[315,345],"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[1],"shape":3,"slot_index":0},{"name":"MASK","type":"MASK","links":null,"shape":3}],"widgets_values":["oldphoto2.png",null],"order":0,"mode":0},{"id":"2","type":"ImageScaleBy","properties":{"Node name for S&R":"ImageScaleBy"},"pos":[855.3418636995826,175.2115438108484],"size":[315,151],"inputs":[{"name":"image","type":"IMAGE","link":1}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[2],"shape":3,"slot_index":0}],"widgets_values":["nearest-exact",2],"order":0,"mode":0},{"id":"3","type":"SaveImage","properties":{},"pos":[1235.401668984701,175.23504867872046],"size":[321,442],"inputs":[{"name":"images","type":"IMAGE","link":2}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0}],"links":[["1","1",0,"2",0,"IMAGE"],["2","2",0,"3",0,"IMAGE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.2-alpha"}} \ No newline at end of file +{"id":"fb4bdbb5-7712-42b7-badf-5ad0ae97d652","title":"Upscale pixel by algorithm workflow","nodes":[{"id":"1","type":"LoadImage","properties":{"Node name for S&R":"LoadImage"},"pos":[473.39541029207237,174.7307371349096],"size":[315,345],"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[1],"shape":3,"slot_index":0},{"name":"MASK","type":"MASK","links":null,"shape":3}],"widgets_values":["oldphoto2.png",null],"order":0,"mode":0},{"id":"2","type":"ImageScaleBy","properties":{"Node name for S&R":"ImageScaleBy"},"pos":[855.3418636995826,175.2115438108484],"size":[315,151],"inputs":[{"name":"image","type":"IMAGE","link":1}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[2],"shape":3,"slot_index":0}],"widgets_values":["nearest-exact",2],"order":0,"mode":0},{"id":"3","type":"SaveImage","properties":{},"pos":[1235.401668984701,175.23504867872046],"size":[321,442],"inputs":[{"name":"images","type":"IMAGE","link":2}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0}],"links":[["1","1",0,"2",0,"IMAGE"],["2","2",0,"3",0,"IMAGE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.3-alpha"}} \ No newline at end of file diff --git a/apps/electron-frontend/src/components/templates/data/Upscale-pixel-by-model-workflow.json b/apps/electron-frontend/src/components/templates/data/Upscale-pixel-by-model-workflow.json index fbbb8521..44899524 100644 --- a/apps/electron-frontend/src/components/templates/data/Upscale-pixel-by-model-workflow.json +++ b/apps/electron-frontend/src/components/templates/data/Upscale-pixel-by-model-workflow.json @@ -1 +1 @@ -{"id":"f3a52eae-84eb-4bbf-897d-226d59a4e20a","title":"Upscale pixel by model workflow","nodes":[{"id":"1","type":"LoadImage","properties":{"Node name for S&R":"LoadImage"},"pos":[704.9874826147428,245.4214186369958],"size":[315,345],"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[5],"shape":3,"slot_index":0},{"name":"MASK","type":"MASK","links":null,"shape":3}],"widgets_values":["oldphoto2.png",null],"order":0,"mode":0},{"id":"3","type":"SaveImage","properties":{},"pos":[1407,211],"size":[315,313],"inputs":[{"name":"images","type":"IMAGE","link":4,"slot_index":0}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0},{"id":"4","type":"UpscaleModelLoader","properties":{"Node name for S&R":"UpscaleModelLoader"},"pos":[701,87],"size":[315,113],"inputs":[],"outputs":[{"name":"UPSCALE_MODEL","type":"UPSCALE_MODEL","links":[6],"shape":3,"slot_index":0}],"widgets_values":["BSRGANx2.pth"],"order":0,"mode":0},{"id":"5","type":"ImageUpscaleWithModel","properties":{"Node name for S&R":"ImageUpscaleWithModel"},"pos":[1084,208],"size":[242,99],"inputs":[{"name":"upscale_model","type":"UPSCALE_MODEL","link":6},{"name":"image","type":"IMAGE","link":5}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[4],"shape":3}],"widgets_values":[],"order":0,"mode":0}],"links":[["4","5",0,"3",0,"IMAGE"],["5","1",0,"5",1,"IMAGE"],["6","4",0,"5",0,"UPSCALE_MODEL"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.2-alpha"}} \ No newline at end of file +{"id":"f3a52eae-84eb-4bbf-897d-226d59a4e20a","title":"Upscale pixel by model workflow","nodes":[{"id":"1","type":"LoadImage","properties":{"Node name for S&R":"LoadImage"},"pos":[704.9874826147428,245.4214186369958],"size":[315,345],"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[5],"shape":3,"slot_index":0},{"name":"MASK","type":"MASK","links":null,"shape":3}],"widgets_values":["oldphoto2.png",null],"order":0,"mode":0},{"id":"3","type":"SaveImage","properties":{},"pos":[1407,211],"size":[315,313],"inputs":[{"name":"images","type":"IMAGE","link":4,"slot_index":0}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0},{"id":"4","type":"UpscaleModelLoader","properties":{"Node name for S&R":"UpscaleModelLoader"},"pos":[701,87],"size":[315,113],"inputs":[],"outputs":[{"name":"UPSCALE_MODEL","type":"UPSCALE_MODEL","links":[6],"shape":3,"slot_index":0}],"widgets_values":["BSRGANx2.pth"],"order":0,"mode":0},{"id":"5","type":"ImageUpscaleWithModel","properties":{"Node name for S&R":"ImageUpscaleWithModel"},"pos":[1084,208],"size":[242,99],"inputs":[{"name":"upscale_model","type":"UPSCALE_MODEL","link":6},{"name":"image","type":"IMAGE","link":5}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[4],"shape":3}],"widgets_values":[],"order":0,"mode":0}],"links":[["4","5",0,"3",0,"IMAGE"],["5","1",0,"5",1,"IMAGE"],["6","4",0,"5",0,"UPSCALE_MODEL"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.3-alpha"}} \ No newline at end of file diff --git a/apps/electron-frontend/src/components/templates/data/default-workflow.json b/apps/electron-frontend/src/components/templates/data/default-workflow.json index 3aad3c89..257ee636 100644 --- a/apps/electron-frontend/src/components/templates/data/default-workflow.json +++ b/apps/electron-frontend/src/components/templates/data/default-workflow.json @@ -1 +1 @@ -{"id":"b1e2f57b-a924-4433-8d13-3cf2b2eae0fa","title":"Default Workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[863,186],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":1},{"name":"positive","type":"CONDITIONING","link":4},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[931096203916419,"randomize",20,8,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[-7.768776077885974,195.09492350486786],"size":[315,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[1],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[3,5],"slot_index":1},{"name":"VAE","type":"VAE","links":[8],"slot_index":2}],"widgets_values":["v1-5-dream-shaper.safetensors"],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[505.51808066759395,588.9888734353269],"size":[315,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[512,512,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[398.740959666203,70.93602225312932],"size":[423,221],"inputs":[{"name":"clip","type":"CLIP","link":3}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[4],"slot_index":0}],"widgets_values":["cat, standing on the castle"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[397.99165507649514,325.2145340751043],"size":[425,221],"inputs":[{"name":"clip","type":"CLIP","link":5}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["text, watermark"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1209,188],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":8}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1451,189],"size":[210,270],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0}],"links":[["1","4",0,"3",0,"MODEL"],["2","5",0,"3",3,"LATENT"],["3","4",1,"6",0,"CLIP"],["4","6",0,"3",1,"CONDITIONING"],["5","4",1,"7",0,"CLIP"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["8","4",2,"8",1,"VAE"],["9","8",0,"9",0,"IMAGE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.2-alpha"}} \ No newline at end of file +{"id":"b1e2f57b-a924-4433-8d13-3cf2b2eae0fa","title":"Default Workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[863,186],"size":[315,413],"inputs":[{"name":"model","type":"MODEL","link":1},{"name":"positive","type":"CONDITIONING","link":4},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[931096203916419,"randomize",20,8,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"4","type":"CheckpointLoaderSimple","properties":{"Node name for S&R":"CheckpointLoaderSimple"},"pos":[-7.768776077885974,195.09492350486786],"size":[315,161],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[1],"slot_index":0},{"name":"CLIP","type":"CLIP","links":[3,5],"slot_index":1},{"name":"VAE","type":"VAE","links":[8],"slot_index":2}],"widgets_values":["v1-5-dream-shaper.safetensors"],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[505.51808066759395,588.9888734353269],"size":[315,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[512,512,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[398.740959666203,70.93602225312932],"size":[423,221],"inputs":[{"name":"clip","type":"CLIP","link":3}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[4],"slot_index":0}],"widgets_values":["cat, standing on the castle"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[397.99165507649514,325.2145340751043],"size":[425,221],"inputs":[{"name":"clip","type":"CLIP","link":5}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["text, watermark"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1209,188],"size":[210,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":8}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1451,189],"size":[210,270],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["ComfyUI"],"order":0,"mode":0}],"links":[["1","4",0,"3",0,"MODEL"],["2","5",0,"3",3,"LATENT"],["3","4",1,"6",0,"CLIP"],["4","6",0,"3",1,"CONDITIONING"],["5","4",1,"7",0,"CLIP"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["8","4",2,"8",1,"VAE"],["9","8",0,"9",0,"IMAGE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.3-alpha"}} \ No newline at end of file diff --git a/apps/electron-frontend/src/components/templates/data/unCLIP-model-workflow.json b/apps/electron-frontend/src/components/templates/data/unCLIP-model-workflow.json index f96cd719..068d0dda 100644 --- a/apps/electron-frontend/src/components/templates/data/unCLIP-model-workflow.json +++ b/apps/electron-frontend/src/components/templates/data/unCLIP-model-workflow.json @@ -1 +1 @@ -{"id":"f27d1766-cb0c-4368-a09b-cb452a22bfc5","title":"unCLIP model workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[1108.652294853964,34.92183588317107],"size":[300,413],"inputs":[{"name":"model","type":"MODEL","link":14},{"name":"positive","type":"CONDITIONING","link":19},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[2,"randomnized",20,7,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[826.1132127955494,432.5687065368567],"size":[220,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[768,768,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","title":"CLIP Text Encode (Positive)","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[361.41105702364393,-209.5902642559109],"size":[370,221],"inputs":[{"name":"clip","type":"CLIP","link":13}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[18],"slot_index":0}],"widgets_values":["a beautiful photograph of an old European city"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","title":"CLIP Text Encode (Negative)","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[675.8598052851183,164.67253129346315],"size":[370,221],"inputs":[{"name":"clip","type":"CLIP","link":21}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["blurry, illustration"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1458.0566063977747,42.75876216968011],"size":[140,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":15}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1697.2129346314325,43.32614742698192],"size":[410,460],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["Result"],"order":0,"mode":0},{"id":"12","type":"unCLIPCheckpointLoader","properties":{"Node name for S&R":"unCLIPCheckpointLoader"},"pos":[47.24123783031993,-207.1441585535466],"size":[250,185],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[14],"shape":3,"slot_index":0},{"name":"CLIP","type":"CLIP","links":[13,21],"shape":3,"slot_index":1},{"name":"VAE","type":"VAE","links":[15],"shape":3,"slot_index":2},{"name":"CLIP_VISION","type":"CLIP_VISION","links":[16],"shape":3,"slot_index":3}],"widgets_values":["sd21-unclip-h.ckpt"],"order":0,"mode":0},{"id":"13","type":"CLIPVisionEncode","properties":{"Node name for S&R":"CLIPVisionEncode"},"pos":[477.6805980528511,36.45959666203063],"size":[254,99],"inputs":[{"name":"clip_vision","type":"CLIP_VISION","link":16},{"name":"image","type":"IMAGE","link":24}],"outputs":[{"name":"CLIP_VISION_OUTPUT","type":"CLIP_VISION_OUTPUT","links":[17],"shape":3,"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"14","type":"unCLIPConditioning","properties":{"Node name for S&R":"unCLIPConditioning"},"pos":[764.1698191933241,-203.32072322670376],"size":[262,175],"inputs":[{"name":"conditioning","type":"CONDITIONING","link":18},{"name":"clip_vision_output","type":"CLIP_VISION_OUTPUT","link":17}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[19],"shape":3,"slot_index":0}],"widgets_values":[1,0.1],"order":0,"mode":0},{"id":"15","type":"LoadImage","properties":{"Node name for S&R":"LoadImage"},"pos":[198.36926286509038,91.97712100139083],"size":[240,345],"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[24],"shape":3,"slot_index":0},{"name":"MASK","type":"MASK","links":null,"shape":3}],"widgets_values":["cwf_budapest (1).jpg",null],"order":0,"mode":0}],"links":[["2","5",0,"3",3,"LATENT"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["9","8",0,"9",0,"IMAGE"],["13","12",1,"6",0,"CLIP"],["14","12",0,"3",0,"MODEL"],["15","12",2,"8",1,"VAE"],["16","12",3,"13",0,"CLIP_VISION"],["17","13",0,"14",1,"CLIP_VISION_OUTPUT"],["18","6",0,"14",0,"CONDITIONING"],["19","14",0,"3",1,"CONDITIONING"],["21","12",1,"7",0,"CLIP"],["24","15",0,"13",1,"IMAGE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.2-alpha"}} \ No newline at end of file +{"id":"f27d1766-cb0c-4368-a09b-cb452a22bfc5","title":"unCLIP model workflow","nodes":[{"id":"3","type":"KSampler","properties":{"Node name for S&R":"KSampler"},"pos":[1108.652294853964,34.92183588317107],"size":[300,413],"inputs":[{"name":"model","type":"MODEL","link":14},{"name":"positive","type":"CONDITIONING","link":19},{"name":"negative","type":"CONDITIONING","link":6},{"name":"latent_image","type":"LATENT","link":2}],"outputs":[{"name":"LATENT","type":"LATENT","links":[7],"slot_index":0}],"widgets_values":[2,"randomnized",20,7,"dpmpp_2m","karras",1],"order":0,"mode":0},{"id":"5","type":"EmptyLatentImage","properties":{"Node name for S&R":"EmptyLatentImage"},"pos":[826.1132127955494,432.5687065368567],"size":[220,189],"inputs":[],"outputs":[{"name":"LATENT","type":"LATENT","links":[2],"slot_index":0}],"widgets_values":[768,768,1],"order":0,"mode":0},{"id":"6","type":"CLIPTextEncode","title":"CLIP Text Encode (Positive)","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[361.41105702364393,-209.5902642559109],"size":[370,221],"inputs":[{"name":"clip","type":"CLIP","link":13}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[18],"slot_index":0}],"widgets_values":["a beautiful photograph of an old European city"],"order":0,"mode":0},{"id":"7","type":"CLIPTextEncode","title":"CLIP Text Encode (Negative)","properties":{"Node name for S&R":"CLIPTextEncode"},"pos":[675.8598052851183,164.67253129346315],"size":[370,221],"inputs":[{"name":"clip","type":"CLIP","link":21}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[6],"slot_index":0}],"widgets_values":["blurry, illustration"],"order":0,"mode":0},{"id":"8","type":"VAEDecode","properties":{"Node name for S&R":"VAEDecode"},"pos":[1458.0566063977747,42.75876216968011],"size":[140,99],"inputs":[{"name":"samples","type":"LATENT","link":7},{"name":"vae","type":"VAE","link":15}],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[9],"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"9","type":"SaveImage","properties":{},"pos":[1697.2129346314325,43.32614742698192],"size":[410,460],"inputs":[{"name":"images","type":"IMAGE","link":9}],"outputs":[],"widgets_values":["Result"],"order":0,"mode":0},{"id":"12","type":"unCLIPCheckpointLoader","properties":{"Node name for S&R":"unCLIPCheckpointLoader"},"pos":[47.24123783031993,-207.1441585535466],"size":[250,185],"inputs":[],"outputs":[{"name":"MODEL","type":"MODEL","links":[14],"shape":3,"slot_index":0},{"name":"CLIP","type":"CLIP","links":[13,21],"shape":3,"slot_index":1},{"name":"VAE","type":"VAE","links":[15],"shape":3,"slot_index":2},{"name":"CLIP_VISION","type":"CLIP_VISION","links":[16],"shape":3,"slot_index":3}],"widgets_values":["sd21-unclip-h.ckpt"],"order":0,"mode":0},{"id":"13","type":"CLIPVisionEncode","properties":{"Node name for S&R":"CLIPVisionEncode"},"pos":[477.6805980528511,36.45959666203063],"size":[254,99],"inputs":[{"name":"clip_vision","type":"CLIP_VISION","link":16},{"name":"image","type":"IMAGE","link":24}],"outputs":[{"name":"CLIP_VISION_OUTPUT","type":"CLIP_VISION_OUTPUT","links":[17],"shape":3,"slot_index":0}],"widgets_values":[],"order":0,"mode":0},{"id":"14","type":"unCLIPConditioning","properties":{"Node name for S&R":"unCLIPConditioning"},"pos":[764.1698191933241,-203.32072322670376],"size":[262,175],"inputs":[{"name":"conditioning","type":"CONDITIONING","link":18},{"name":"clip_vision_output","type":"CLIP_VISION_OUTPUT","link":17}],"outputs":[{"name":"CONDITIONING","type":"CONDITIONING","links":[19],"shape":3,"slot_index":0}],"widgets_values":[1,0.1],"order":0,"mode":0},{"id":"15","type":"LoadImage","properties":{"Node name for S&R":"LoadImage"},"pos":[198.36926286509038,91.97712100139083],"size":[240,345],"inputs":[],"outputs":[{"name":"IMAGE","type":"IMAGE","links":[24],"shape":3,"slot_index":0},{"name":"MASK","type":"MASK","links":null,"shape":3}],"widgets_values":["cwf_budapest (1).jpg",null],"order":0,"mode":0}],"links":[["2","5",0,"3",3,"LATENT"],["6","7",0,"3",2,"CONDITIONING"],["7","3",0,"8",0,"LATENT"],["9","8",0,"9",0,"IMAGE"],["13","12",1,"6",0,"CLIP"],["14","12",0,"3",0,"MODEL"],["15","12",2,"8",1,"VAE"],["16","12",3,"13",0,"CLIP_VISION"],["17","13",0,"14",1,"CLIP_VISION_OUTPUT"],["18","6",0,"14",0,"CONDITIONING"],["19","14",0,"3",1,"CONDITIONING"],["21","12",1,"7",0,"CLIP"],["24","15",0,"13",1,"IMAGE"]],"groups":[],"version":0,"extra":{"comflowy_version":"0.2.3-alpha"}} \ No newline at end of file diff --git a/apps/electron-frontend/src/components/workflow-editor/reactflow-bottomcenter-panel/widget-tree/widget-tree.style.module.scss b/apps/electron-frontend/src/components/workflow-editor/reactflow-bottomcenter-panel/widget-tree/widget-tree.style.module.scss index bfdd7e9b..fae6a216 100644 --- a/apps/electron-frontend/src/components/workflow-editor/reactflow-bottomcenter-panel/widget-tree/widget-tree.style.module.scss +++ b/apps/electron-frontend/src/components/workflow-editor/reactflow-bottomcenter-panel/widget-tree/widget-tree.style.module.scss @@ -96,6 +96,11 @@ text-overflow: ellipsis; text-wrap: nowrap; } + .extension { + font-size: 10px; + text-overflow: ellipsis; + text-wrap: nowrap; + } .pin-button { width: 20px; background: none; @@ -126,4 +131,16 @@ padding: 10px; } } +} + +.widgetPreviewPopover { + z-index: 10000; + :global { + .ant-popover-inner { + padding: 0; + .ant-popover-inner-content { + padding: 0; + } + } + } } \ No newline at end of file diff --git a/apps/electron-frontend/src/components/workflow-editor/reactflow-bottomcenter-panel/widget-tree/widget-tree.tsx b/apps/electron-frontend/src/components/workflow-editor/reactflow-bottomcenter-panel/widget-tree/widget-tree.tsx index 6c46cedf..94918482 100644 --- a/apps/electron-frontend/src/components/workflow-editor/reactflow-bottomcenter-panel/widget-tree/widget-tree.tsx +++ b/apps/electron-frontend/src/components/workflow-editor/reactflow-bottomcenter-panel/widget-tree/widget-tree.tsx @@ -1,5 +1,5 @@ import React, { use, useCallback, useEffect, useRef, useState } from 'react'; -import { Input } from 'antd'; +import { Input, Popover } from 'antd'; import { useAppStore } from '@comflowy/common/store'; import styles from "./widget-tree.style.module.scss"; import { PersistedWorkflowNode, SDNode, Widget } from '@comflowy/common/types'; @@ -11,6 +11,8 @@ import { wordSplitSearch, wordSplitSearchAdvance } from "@comflowy/common/utils/ import { dt, currentLang } from '@comflowy/common/i18n'; import { VirtualList } from 'ui/virtual/virtual-list'; +import { ReactflowWidgetPreviewCard } from '../../reactflow-node/reactflow-node-preview-card'; +import { findExtensionByWidget, findExtensionByWidgetName } from '@comflowy/common/store/extension-state'; export const WidgetTree = (props: { showCategory?: boolean; @@ -57,7 +59,7 @@ export const WidgetTree = (props: { const getWidgetSearchString = (widget) => { return `${widget.name} ${widget.display_name} ${widget.category} ${widget.description}`.toLowerCase(); } - + const handleSearch = (value: string) => { const findedWidgets = Object.keys(widgets).filter((key) => { const widget = widgets[key]; @@ -70,8 +72,6 @@ export const WidgetTree = (props: { return score > 0; }); - console.log(findedWidgets); - // 使用改进的搜索评分函数对结果进行排序 const reOrderedWidgets = findedWidgets.sort((a, b) => { const aScore = wordSplitSearch(value, getWidgetSearchString(widgets[a])); @@ -217,8 +217,8 @@ export const WidgetTree = (props: { { searchValue == "" ? widgetCategoryPanel : (
- { return ( @@ -234,7 +234,7 @@ export const WidgetTree = (props: { /> ) }} - /> + />
) } @@ -282,32 +282,51 @@ function WidgetNode({ widget, onNodeCreated, position, draggable, isPinned, togg const dtDisplayNameTip = dtDisplatyName !== widget.display_name ? `(${widget.display_name})` : ""; const dtWidgetName = dt(`Nodes.${widget.name}.title`, widget.name); const dtWidgetNameTip = dtWidgetName !== widget.name ? `(${widget.name})` : ""; + + const extension = findExtensionByWidget(widget) + return ( -
{ - createNewNode(ev); - }} - onDragStart={draggable ? onDragStart : null} - onMouseEnter={() => setIsHovered(true)} - onMouseLeave={() => setIsHovered(false)} - title={widget?.name}> -
-
{dtDisplatyName}{dtDisplayNameTip}
-
- Type: {dtWidgetName}{dtWidgetNameTip} -
+ +
- {isHovered && ( -
{ - ev.stopPropagation(); - togglePin(); - }} className="pin-button" style={{ float: 'right' }}> - {isPinned ? : } + )} placement='right' > +
{ + createNewNode(ev); + }} + onDragStart={draggable ? onDragStart : null} + onMouseEnter={() => setIsHovered(true)} + onMouseLeave={() => setIsHovered(false)} + title={widget?.name}> +
+
{dtDisplatyName}{dtDisplayNameTip}
+
+ Type: {dtWidgetName}{dtWidgetNameTip} +
+
- )} -
+ {isHovered && ( +
{ + ev.stopPropagation(); + togglePin(); + }} className="pin-button" style={{ float: 'right' }}> + {isPinned ? : } +
+ )} +
+ ) } diff --git a/apps/electron-frontend/src/components/workflow-editor/reactflow-context-menu/reactflow-context-menu.module.scss b/apps/electron-frontend/src/components/workflow-editor/reactflow-context-menu/reactflow-context-menu.module.scss index 2ee6265f..681fc2f3 100644 --- a/apps/electron-frontend/src/components/workflow-editor/reactflow-context-menu/reactflow-context-menu.module.scss +++ b/apps/electron-frontend/src/components/workflow-editor/reactflow-context-menu/reactflow-context-menu.module.scss @@ -9,6 +9,7 @@ .node-info { padding: 10px; overflow: hidden; + width: 200px; color: #FFF; text-overflow: ellipsis; white-space: nowrap; @@ -19,7 +20,15 @@ line-height: 15.456px; /* 154.56% */ letter-spacing: 0.3px; - opacity: .2; + opacity: .8; + p { + margin: 0; + font-size: 11px; + a { + color: var(--primaryColor); + word-break: break-all; + } + } } .ant-menu { background-color: transparent; diff --git a/apps/electron-frontend/src/components/workflow-editor/reactflow-context-menu/reactflow-context-menu.tsx b/apps/electron-frontend/src/components/workflow-editor/reactflow-context-menu/reactflow-context-menu.tsx index 49e9e508..ef47904e 100644 --- a/apps/electron-frontend/src/components/workflow-editor/reactflow-context-menu/reactflow-context-menu.tsx +++ b/apps/electron-frontend/src/components/workflow-editor/reactflow-context-menu/reactflow-context-menu.tsx @@ -12,6 +12,7 @@ import { EnabledIcon, CollapseIcon, CopyIcon, DeleteIcon, DisableRunIcon, Enable import { EditImageMenuItem, needEditImage } from './context-menu-item-edit-image/context-menu-item-edit-image'; import { NodeVisibleState } from '@comflowy/common/types'; import { SaveImageMenuItem, shouldShowSaveImageNode } from './context-menu-item-save-images'; +import { findExtensionByWidget } from '@comflowy/common/store/extension-state'; interface ContextMenuProps { nodes: Node[]; @@ -181,11 +182,23 @@ function NodeMenu(props: NodeMenuProps) { } items.push(getMenuItem(
Remove
, 'MENU_ITEM_DELETE_NODE', null, null)); - + const extension = findExtensionByWidget(widget); + return (
{widget.name} + + {extension && ( + <> +

+ From {extension.title} +

+

+ By {extension.author} +

+ + )}
diff --git a/apps/electron-frontend/src/components/workflow-editor/reactflow-input/input-audio-player-async.tsx b/apps/electron-frontend/src/components/workflow-editor/reactflow-input/input-audio-player-async.tsx new file mode 100644 index 00000000..04f7806f --- /dev/null +++ b/apps/electron-frontend/src/components/workflow-editor/reactflow-input/input-audio-player-async.tsx @@ -0,0 +1,95 @@ +import { EyeOutlined, PlayCircleOutlined } from "@ant-design/icons"; +import { Button, Modal, Space } from "antd"; +import { Suspense, lazy, useEffect, useState } from "react"; +import { isWindow } from "ui/utils/is-window"; +import styles from "./input-audio-player.module.scss"; + +const AsyncCO = lazy(async () => { + return await import("./input-audio-player"); +}); + +interface InputAudioPlayerProps { + url: string; + loop?: boolean; + preview?: boolean; + muted?: boolean; +} + +export function AsyncAudioPlayer(props: InputAudioPlayerProps) { + const [showFrontEndCode, setShowFrontEndCode] = useState(false); + const [isModalVisible, setIsModalVisible] = useState(false); + useEffect(() => { + if (isWindow) { + setShowFrontEndCode(true); + } + }, []) + if (!showFrontEndCode) { + return null; + } + + return ( + Loading...
}> + + + ); +} + +export function AudioPreview(props: InputAudioPlayerProps) { + const [isModalVisible, setIsModalVisible] = useState(false); + const loop = props.loop ?? false; + const muted = props.muted ?? false; + const preview = props.preview ?? false; + const showModal = () => { + setIsModalVisible(true); + }; + + const handleCancel = () => { + setIsModalVisible(false); + }; + + const handleDownload = () => { + window.open(props.url, '_blank'); + }; + + const fileName = props.url.split("/").pop(); + return ( + <> +
{ + if (preview) { + showModal(); + } + }}> +
+ {preview ? ( +
+
+
+ {fileName} +
+
+ ): ( + + )} +
+
+ + Download + , + + ]} + width={400} + > +
+ +
+
+ + ); +} \ No newline at end of file diff --git a/apps/electron-frontend/src/components/workflow-editor/reactflow-input/input-audio-player.module.scss b/apps/electron-frontend/src/components/workflow-editor/reactflow-input/input-audio-player.module.scss new file mode 100644 index 00000000..3ba06f02 --- /dev/null +++ b/apps/electron-frontend/src/components/workflow-editor/reactflow-input/input-audio-player.module.scss @@ -0,0 +1,303 @@ +.audioPlayer { + width: 100%; + :global { + $rhap_theme-color: var(--primaryColor) !default; + $rhap_background-color: transparent !default; + $rhap_bar-color: #414356 !default; + $rhap_time-color: white !default; + $rhap_font-family: inherit !default; + + .rhap_container { + box-sizing: border-box; + display: flex; + flex-direction: column; + line-height: 1; + font-family: $rhap_font-family; + width: 100%; + padding: 10px 15px; + border: solid 1px #414356; + border-radius: var(--borderRadius); + &:focus:not(:focus-visible) { + outline: 0; + } + + svg { + vertical-align: initial; // overwrite Bootstrap default + } + } + + .rhap_header { + margin-bottom: 10px; + } + + .rhap_footer { + margin-top: 5px; + } + + .rhap_main { + display: flex; + flex-direction: column; + flex: 1 1 auto; + } + + .rhap_stacked { + .rhap_controls-section { + margin-top: 8px; + } + } + + .rhap_horizontal { + flex-direction: row; + + .rhap_controls-section { + margin-left: 8px; + } + } + + .rhap_horizontal-reverse { + flex-direction: row-reverse; + + .rhap_controls-section { + margin-right: 8px; + } + } + + .rhap_stacked-reverse { + flex-direction: column-reverse; + + .rhap_controls-section { + margin-bottom: 8px; + } + } + + .rhap_progress-section { + display: flex; + flex: 3 1 auto; + align-items: center; + } + + .rhap_progress-container { + display: flex; + align-items: center; + height: 20px; + flex: 1 0 auto; + align-self: center; + margin: 0 calc(10px + 1%); + cursor: pointer; + user-select: none; + -webkit-user-select: none; + + &:focus:not(:focus-visible) { + outline: 0; + } + } + + .rhap_time { + color: $rhap_time-color; + font-size: 16px; + user-select: none; + -webkit-user-select: none; + } + + .rhap_progress-bar { + box-sizing: border-box; + position: relative; + z-index: 0; + width: 100%; + height: 5px; + background-color: $rhap_bar-color; + border-radius: 2px; + } + + .rhap_progress-filled { + height: 100%; + position: absolute; + z-index: 2; + background-color: $rhap_theme-color; + border-radius: 2px; + } + + .rhap_progress-bar-show-download { + background-color: rgba($rhap_bar-color, 0.5); + } + + .rhap_download-progress { + height: 100%; + position: absolute; + z-index: 1; + background-color: $rhap_bar-color; + border-radius: 2px; + } + + .rhap_progress-indicator { + box-sizing: border-box; + position: absolute; + z-index: 3; + width: 20px; + height: 20px; + margin-left: -10px; + top: -8px; + background: $rhap_theme-color; + border-radius: 50px; + box-shadow: rgba($rhap_theme-color, 0.5) 0 0 5px; + } + + .rhap_controls-section { + display: flex; + flex: 1 1 auto; + justify-content: space-between; + align-items: center; + } + + .rhap_additional-controls { + display: flex; + flex: 1 0 auto; + align-items: center; + } + + .rhap_repeat-button { + font-size: 26px; + width: 26px; + height: 26px; + color: $rhap_theme-color; + margin-right: 6px; + } + + .rhap_main-controls { + flex: 0 1 auto; + display: flex; + justify-content: center; + align-items: center; + } + + .rhap_main-controls-button { + margin: 0 3px; + color: $rhap_theme-color; + font-size: 35px; + width: 35px; + height: 35px; + } + + .rhap_play-pause-button { + font-size: 40px; + width: 40px; + height: 40px; + } + + .rhap_volume-controls { + display: flex; + flex: 1 0 auto; + justify-content: flex-end; + align-items: center; + } + + .rhap_volume-button { + flex: 0 0 26px; + font-size: 26px; + width: 26px; + height: 26px; + color: $rhap_theme-color; + margin-right: 6px; + } + + .rhap_volume-container { + display: flex; + align-items: center; + flex: 0 1 100px; + user-select: none; + -webkit-user-select: none; + } + + .rhap_volume-bar-area { + display: flex; + align-items: center; + width: 100%; + height: 14px; + cursor: pointer; + + &:focus:not(:focus-visible) { + outline: 0; + } + } + + .rhap_volume-bar { + box-sizing: border-box; + position: relative; + width: 100%; + height: 4px; + background: $rhap_bar-color; + border-radius: 2px; + } + + .rhap_volume-indicator { + box-sizing: border-box; + position: absolute; + width: 12px; + height: 12px; + margin-left: -6px; + left: 0; + top: -4px; + background: $rhap_theme-color; + opacity: 0.9; + border-radius: 50px; + box-shadow: rgba($rhap_theme-color, 0.5) 0 0 3px; + cursor: pointer; + + &:hover { + opacity: 0.9; + } + } + + .rhap_volume-filled { + height: 100%; + position: absolute; + z-index: 2; + background-color: $rhap_theme-color; + border-radius: 2px; + } + + /* Utils */ + .rhap_button-clear { + background-color: transparent; + border: none; + padding: 0; + overflow: hidden; + cursor: pointer; + + &:hover { + opacity: 0.9; + transition-duration: 0.2s; + } + + &:active { + opacity: 0.95; + } + + &:focus:not(:focus-visible) { + outline: 0; + } + } + } +} + +.audioPreview { + :global { + .audio-preview-content { + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + height: 100%; + margin-top: 10px; + padding: 4px; + user-select: none; + .name { + font-size: 10px; + max-width: 100%; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + } + } + } +} diff --git a/apps/electron-frontend/src/components/workflow-editor/reactflow-input/input-audio-player.tsx b/apps/electron-frontend/src/components/workflow-editor/reactflow-input/input-audio-player.tsx new file mode 100644 index 00000000..fb08fdee --- /dev/null +++ b/apps/electron-frontend/src/components/workflow-editor/reactflow-input/input-audio-player.tsx @@ -0,0 +1,36 @@ +import React, { useEffect, useRef } from 'react'; +import AudioPlayer from 'react-h5-audio-player'; +import styles from "./input-audio-player.module.scss"; +interface InputAudioPlayerProps { + url: string; + loop?: boolean; + muted?: boolean; +} + +const InputAudioPlayer: React.FC = (props: { url, controls, loop, muted, playing }) => { + const playerRef = useRef(null); + + useEffect(() => { + if (playerRef.current) { + // Start loading the video when the component mounts + // playerRef.current.load(); + } + }, []); + + return ( +
+ +
+ ); +}; + +export default InputAudioPlayer; \ No newline at end of file diff --git a/apps/electron-frontend/src/components/workflow-editor/reactflow-input/input-video-upload.tsx b/apps/electron-frontend/src/components/workflow-editor/reactflow-input/input-video-upload.tsx index fc78fcbd..933bbfeb 100644 --- a/apps/electron-frontend/src/components/workflow-editor/reactflow-input/input-video-upload.tsx +++ b/apps/electron-frontend/src/components/workflow-editor/reactflow-input/input-video-upload.tsx @@ -8,21 +8,27 @@ import { RcFile } from 'antd/es/upload'; import { getImagePreviewUrl, getUploadImageUrl } from '@comflowy/common/comfyui-bridge/bridge'; import { ImageWithDownload } from '../reactflow-gallery/image-with-download'; import { AsyncVideoPlayer, VideoPreview } from './input-video-player-async'; +import { AudioPreview } from './input-audio-player-async'; -export function InputUploadVideo({widget, node, id}: { +export function InputUploadVideo({widget, node, isAudio, id}: { widget: Widget, node: SDNode, + isAudio?: boolean, id: string }) { + isAudio = isAudio ?? false; + const fieldName = isAudio ? "audio" : "video"; + const accepetType = isAudio ? "audio/mpeg, audio/wav, audio/ogg, audio/flac" : "video/webm, video/mp4, video/mkv, image/gif"; + const onUpdateWidgets = useAppStore(st => st.onUpdateWidgets); const graph = useAppStore(st => st.graph); const onNodeFieldChange = useAppStore(st => st.onNodeFieldChange); - const value = graph[id]?.fields.video; + const value = graph[id]?.fields[fieldName]; const isGif = value?.endsWith(".gif"); const onChange = useCallback(async (val) => { try { await onUpdateWidgets(); - onNodeFieldChange(id, 'video', val); + onNodeFieldChange(id, fieldName, val); } catch(err) { console.log(err); } @@ -62,9 +68,9 @@ export function InputUploadVideo({widget, node, id}: { } const props: UploadProps = { - name: 'video', + name: fieldName, multiple: false, - accept: "video/webm, video/mp4, video/mkv, image/gif", + accept: accepetType, showUploadList: false, customRequest: customRequest, style: { @@ -88,6 +94,8 @@ export function InputUploadVideo({widget, node, id}: { console.log('Dropped files', e.dataTransfer.files); }, }; + + console.debug("preview file url", previewImage); return (
@@ -116,7 +124,11 @@ export function InputUploadVideo({widget, node, id}: { width: "100%", height: 300 }}> - + {isAudio ? + + : + + }
)}
diff --git a/apps/electron-frontend/src/components/workflow-editor/reactflow-input/reactflow-input-container.tsx b/apps/electron-frontend/src/components/workflow-editor/reactflow-input/reactflow-input-container.tsx index e81888ef..82120bc5 100644 --- a/apps/electron-frontend/src/components/workflow-editor/reactflow-input/reactflow-input-container.tsx +++ b/apps/electron-frontend/src/components/workflow-editor/reactflow-input/reactflow-input-container.tsx @@ -24,8 +24,11 @@ function _InputContainer({ id, name, input, widget, node, onChange, value, env}: defaultValue = (input[1] as any).default; } const onNodeFieldChange = useAppStore((st) => st.onNodeFieldChange); - const isImageUpload = Input.isImageUpload(input); - const isVideoUpload = Input.isVideoUpload(input); + + const isImageUpload = name === "image" && (input[1] as any)?.image_upload; + const isVideoUpload = name === "video" && Input.isList(input); + const isAudioUpload = name === "audio" && Input.isList(input); + const isGetNodeSelectField = node.widget === NODE_GET && name === NODE_GET_SELECT_FIELD_NAME const isSetNodeSelectField = node.widget === NODE_SET && name === NODE_GET_SELECT_FIELD_NAME @@ -51,7 +54,7 @@ function _InputContainer({ id, name, input, widget, node, onChange, value, env}:
{isImageUpload && } - {isVideoUpload && } + {(isVideoUpload || isAudioUpload) && }
) } diff --git a/apps/electron-frontend/src/components/workflow-editor/reactflow-input/reactflow-input.tsx b/apps/electron-frontend/src/components/workflow-editor/reactflow-input/reactflow-input.tsx index 8199ecee..238af950 100644 --- a/apps/electron-frontend/src/components/workflow-editor/reactflow-input/reactflow-input.tsx +++ b/apps/electron-frontend/src/components/workflow-editor/reactflow-input/reactflow-input.tsx @@ -173,7 +173,7 @@ function InputComponent({ autoSize className='nopan nodrag' placeholder={name} - style={{ minHeight: 128, width: '100%', marginBottom: 10 }} + style={{ minHeight: 128, width: '100%', marginBottom: 10, maxHeight: 600 }} value={value} onChange={(ev) => onChange(ev.target.value)} /> diff --git a/apps/electron-frontend/src/components/workflow-editor/reactflow-node/reactflow-node-imagepreviews.tsx b/apps/electron-frontend/src/components/workflow-editor/reactflow-node/reactflow-node-imagepreviews.tsx index 7f298ca1..8f945b4a 100644 --- a/apps/electron-frontend/src/components/workflow-editor/reactflow-node/reactflow-node-imagepreviews.tsx +++ b/apps/electron-frontend/src/components/workflow-editor/reactflow-node/reactflow-node-imagepreviews.tsx @@ -4,11 +4,13 @@ import { PreviewGroupWithDownload } from "../reactflow-gallery/image-with-downlo import { Image } from 'antd'; import {memo} from "react"; import { VideoPreview } from "../reactflow-input/input-video-player-async"; +import { AudioPreview } from "../reactflow-input/input-audio-player-async"; +import TextArea from "antd/es/input/TextArea"; export const NodeImagePreviews = memo(({ imagePreviews }: { imagePreviews: PreviewImage[] }) => { - const {images: imagePreviewsWithSrc, videos} = usePreviewImages(imagePreviews) + const {images: imagePreviewsWithSrc, videos, audios, texts} = usePreviewImages(imagePreviews) return (
1 ? "multiple" : "single"}`} > @@ -36,6 +38,26 @@ export const NodeImagePreviews = memo(({ imagePreviews }: {
) })} + {audios.map((audio, index) => { + return ( +
+ +
+ ) + })} + {texts.map((text, index) => { + return ( +
+ +
+ ) + })} ) @@ -56,12 +78,14 @@ export function usePreviewImages(imagePreviews: PreviewImage[]) { const imageSrc = getImagePreviewUrl(image.filename, image.type, image.subfolder) const isVideo = image.filename.endsWith("mp4") || image.filename.endsWith("mov") || image.filename.endsWith("avi") || image.filename.endsWith("webm") const isImage = image.filename.endsWith("png") || image.filename.endsWith("jpg") || image.filename.endsWith("jpeg") || image.filename.endsWith("gif") + const isAudio = image.filename.endsWith("mp3") || image.filename.endsWith("wav") || image.filename.endsWith("ogg") || image.filename.endsWith("flac"); return { src: imageSrc, filename: image.filename, image, isVideo, - isImage + isImage, + isAudio } }); @@ -73,6 +97,14 @@ export function usePreviewImages(imagePreviews: PreviewImage[]) { return img.isImage; }); - return { mixed: imagePreviewsWithSrc, images, videos }; + const audios = imagePreviewsWithSrc.filter(img => { + return img.isAudio; + }); + + const texts = imagePreviews.filter(it => { + return it.format === "text" + }); + + return { mixed: imagePreviewsWithSrc, images, videos, audios, texts }; } diff --git a/apps/electron-frontend/src/components/workflow-editor/reactflow-node/reactflow-node-preview-card.style.module.scss b/apps/electron-frontend/src/components/workflow-editor/reactflow-node/reactflow-node-preview-card.style.module.scss new file mode 100644 index 00000000..674357d4 --- /dev/null +++ b/apps/electron-frontend/src/components/workflow-editor/reactflow-node/reactflow-node-preview-card.style.module.scss @@ -0,0 +1,30 @@ +.nodePreview { + :global { + .node-main { + overflow-y: auto; + } + + .react-flow__handle { + position: absolute; + pointer-events: none; + min-width: 5px; + min-height: 5px; + width: 6px; + height: 6px; + background: #92939B; + border-radius: 100%; + } + + .react-flow__handle-left { + top: 34%; + left: 10px; + transform: translate(0, -50%); + } + + .react-flow__handle-right { + right: 10px; + top: 34%; + transform: translate(0, -50%); + } + } +} \ No newline at end of file diff --git a/apps/electron-frontend/src/components/workflow-editor/reactflow-node/reactflow-node-preview-card.tsx b/apps/electron-frontend/src/components/workflow-editor/reactflow-node/reactflow-node-preview-card.tsx index 3525608a..cd67d2a9 100644 --- a/apps/electron-frontend/src/components/workflow-editor/reactflow-node/reactflow-node-preview-card.tsx +++ b/apps/electron-frontend/src/components/workflow-editor/reactflow-node/reactflow-node-preview-card.tsx @@ -1,7 +1,7 @@ import { useAppStore } from "@comflowy/common/store"; -import { PersistedWorkflowNode, Widget } from "@comflowy/common/types"; +import { PersistedWorkflowNode, SDNode, Widget } from "@comflowy/common/types"; import { getNodeRenderInfo } from "@comflowy/common/workflow-editor/node-rendering"; - +import styles from "./reactflow-node-preview-card.style.module.scss" /** * 预览卡片 * @param props @@ -14,11 +14,17 @@ export function ReactflowNodePreviewCard(props: { const renderingInfo = getNodeRenderInfo(props.node.value, widget); return (
- +
) } - +import nodeStyles from "./reactflow-node.style.module.scss"; +import Color from "color"; +import { getTransformStyle } from "./reactflow-node"; +import { getWidgetIcon } from "./reactflow-node-icons"; +import { Slot } from "./reactflow-node-slot"; +import { InputContainer } from "../reactflow-input/reactflow-input-container"; +import { Position } from "reactflow"; /** * 预览一个 widget * @param props @@ -27,11 +33,54 @@ export function ReactflowNodePreviewCard(props: { export function ReactflowWidgetPreviewCard(props: { widget: Widget }) { + const widget = props.widget; + const sdnode = SDNode.fromWidget(props.widget); + const { title, inputs, outputs, params, nodeBgColor, nodeColor } = getNodeRenderInfo(sdnode, props.widget); + const node_id = (new Date()).getTime() + ""; return ( -
-
{props.widget.display_name}
-
{props.widget.name}
-
{props.widget.description}
+
+
+
+

+ {getWidgetIcon(widget)} + {title} +

+
+
+
+
+
+ {inputs.map((input, index) => ( + + ))} +
+
+ {outputs.map((output, index) => ( + + ))} +
+
+ <> +
+ {params.map(({ property, input }) => ( + { + console.log("change", v) + }} name={property} id={node_id} node={sdnode} input={input} widget={widget} /> + ))} +
+
+ +
+
+
) } \ No newline at end of file diff --git a/apps/electron-frontend/src/components/workflow-editor/reactflow-node/reactflow-node-slot.tsx b/apps/electron-frontend/src/components/workflow-editor/reactflow-node/reactflow-node-slot.tsx index b02958d0..2635c3d2 100644 --- a/apps/electron-frontend/src/components/workflow-editor/reactflow-node/reactflow-node-slot.tsx +++ b/apps/electron-frontend/src/components/workflow-editor/reactflow-node/reactflow-node-slot.tsx @@ -65,17 +65,18 @@ export function Slot({ id, label, type, position, valueType, widget, node_id }: let transformFactor = 1; const [hover, setHover] = useState(false); if (hover && !isConnecting) { - transformFactor = Math.max(1, (1 / transform)) * 3.2; + transformFactor = Math.max(1, (1 / transform)) * 1.8; } if (isConnecting && connectingMe) { - transformFactor = Math.max(1, (1 / transform)) * 3.2; + transformFactor = Math.max(1, (1 / transform)) * 1.8; }; const slotLabel = useSlotLabel({ node_id, valueType, type, label }); + const scaleMode = (isConnecting && connectingMe) || (hover && !isConnecting); return ( -
+
{"("}Negative{")"}} + {widget.description && } {isInProgress ?
@@ -149,6 +150,27 @@ export const NodeComponent = memo(({ ) }); +import Markdown from 'react-markdown' +import { Popover } from 'antd'; +import { InfoCircleOutlined } from '@ant-design/icons'; + +function NodeDescription({ description }: { description: string }) { + return ( + + {description} +
+ )} + > +
+ +
+ + ) +} export function getTransformStyle(transformScale: number) { const transform = Math.max(1, 1 / transformScale); diff --git a/apps/electron-frontend/src/components/workflow-editor/reactflow-output/output-text-card.module.scss b/apps/electron-frontend/src/components/workflow-editor/reactflow-output/output-text-card.module.scss new file mode 100644 index 00000000..68338336 --- /dev/null +++ b/apps/electron-frontend/src/components/workflow-editor/reactflow-output/output-text-card.module.scss @@ -0,0 +1,16 @@ +.textCard { + :global { + .text-preview-content { + font-size: 10px; + display: flex; + justify-content: center; + align-items: center; + height: 100%; + overflow: hidden; + text-overflow: ellipsis; + word-wrap: break-word; + cursor: pointer; + user-select: none; + } + } +} \ No newline at end of file diff --git a/apps/electron-frontend/src/components/workflow-editor/reactflow-output/output-text-card.tsx b/apps/electron-frontend/src/components/workflow-editor/reactflow-output/output-text-card.tsx new file mode 100644 index 00000000..d2fd2669 --- /dev/null +++ b/apps/electron-frontend/src/components/workflow-editor/reactflow-output/output-text-card.tsx @@ -0,0 +1,65 @@ +import { EyeOutlined, PlayCircleOutlined } from "@ant-design/icons"; +import { Button, message, Modal, Space } from "antd"; +import { Suspense, lazy, useEffect, useState } from "react"; +import styles from "./output-text-card.module.scss"; +import { copyToClipboard } from "ui/utils/clipboard"; +import TextArea from "antd/es/input/TextArea"; + +export function TextPreview(props: { + text: string, + preview?: boolean, +}) { + const [isModalVisible, setIsModalVisible] = useState(false); + const text = props.text || "text"; + const preview = props.preview ?? false; + const showModal = () => { + setIsModalVisible(true); + }; + + const handleCancel = () => { + setIsModalVisible(false); + }; + + const handleCopy = () => { + copyToClipboard(text); + message.success("Copy success"); + }; + + return ( + <> +
{ + if (preview) { + showModal(); + } + }}> +
+ {preview ? ( +
+ {text} +
+ ) : ( + + )} +
+
+ + Copy Text + , + + ]} + width={400} + > +
+ +
+
+ + ); +} \ No newline at end of file diff --git a/apps/electron-frontend/src/components/workflow-editor/websocket-controller/websocket-controller.tsx b/apps/electron-frontend/src/components/workflow-editor/websocket-controller/websocket-controller.tsx index 019b1aae..89060359 100644 --- a/apps/electron-frontend/src/components/workflow-editor/websocket-controller/websocket-controller.tsx +++ b/apps/electron-frontend/src/components/workflow-editor/websocket-controller/websocket-controller.tsx @@ -124,14 +124,25 @@ export function WsController(props: {clientId: string}): JSX.Element { images.push(...files); } - const texts = msg.data.output?.texts; + let texts = msg.data.output?.text || msg.data.output?.tags; if (texts) { - images.push(...texts); + if (Array.isArray(texts)) { + images.push(...texts.map(t => ({ + format: "text", + text: t + }))); + } else { + images.push({ + format: "text", + text: texts + }); + } } if (Array.isArray(images) && images.length > 0) { onImageSave(msg.data.node, images) } + } else if (Message.isExecutingError(msg)) { track('comfyui-executed-error'); onChangeCurrentPromptId(""); diff --git a/apps/electron-frontend/src/components/workflow-editor/workflow-editor.style.module.scss b/apps/electron-frontend/src/components/workflow-editor/workflow-editor.style.module.scss index c14c706f..7dd7bb04 100755 --- a/apps/electron-frontend/src/components/workflow-editor/workflow-editor.style.module.scss +++ b/apps/electron-frontend/src/components/workflow-editor/workflow-editor.style.module.scss @@ -203,51 +203,6 @@ cursor: grab; } - .react-flow__handle { - position: absolute; - pointer-events: none; - min-width: 5px; - min-height: 5px; - width: 30px; - height: 30px; - background: transparent; - display: flex; - justify-content: center; - align-items: center; - transition: var(--transition); - .handle-visible { - width: 10px; - height: 10px; - border-radius: 100%; - pointer-events: none; - } - } - - .react-flow__handle-left { - top: -3px; - left: -2px; - transform: translate(0, -50%); - } - - .react-flow__handle-right { - right: -2px; - top: -3px; - transform: translate(0, -50%); - } - - .node-slot-left .connectionindicator { - transform-origin: 40% 50%; - } - - .node-slot-right .connectionindicator { - transform-origin: 60% 50%; - } - - .react-flow__handle.connectionindicator { - pointer-events: all; - cursor: crosshair; - } - .react-flow__handle-bottom { top: auto; left: 50%; diff --git a/apps/electron-package/package-lock.json b/apps/electron-package/package-lock.json index 4b68de9e..24f9557c 100644 --- a/apps/electron-package/package-lock.json +++ b/apps/electron-package/package-lock.json @@ -1,12 +1,12 @@ { "name": "comflowy", - "version": "0.2.2-alpha", + "version": "0.2.3-alpha", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "comflowy", - "version": "0.2.2-alpha", + "version": "0.2.3-alpha", "dependencies": { "node-pty": "^1.0.0", "regedit": "^5.1.2" diff --git a/apps/electron-package/package.json b/apps/electron-package/package.json index e3104c10..6c309326 100644 --- a/apps/electron-package/package.json +++ b/apps/electron-package/package.json @@ -1,6 +1,6 @@ { "name": "comflowy", - "version": "0.2.2-alpha", + "version": "0.2.3-alpha", "private": true, "main": "layers/main/dist/index.js", "scripts": { diff --git a/apps/node/src/modules/utils/conda.ts b/apps/node/src/modules/utils/conda.ts index ddb2bccb..98f59bc2 100644 --- a/apps/node/src/modules/utils/conda.ts +++ b/apps/node/src/modules/utils/conda.ts @@ -42,6 +42,13 @@ class Conda { const {pythonPath} = appConfigManager.getSetupConfig(); if (pythonPath && pythonPath !== "") { + this.env = this.env || { + CONDA_ENV_PATH: DEFAULT_CONDA_ENV_PATH, + CONDA_ENV_NAME: CONDA_ENV_NAME, + PYTHON_PATH: `${DEFAULT_CONDA_ENV_PATH}/bin/python`, + PIP_PATH: `${DEFAULT_CONDA_ENV_PATH}/bin/pip`, + CONDA_ENV_SCRIPTS_PATH: `${DEFAULT_CONDA_ENV_PATH}/bin`, + } logger.info("use custom env python: ", pythonPath) this.env!.PYTHON_PATH = pythonPath; this.env!.PIP_PATH = `${pythonPath} -m pip`; diff --git a/packages/common/store/app-state/app-state-create-doc-management-hooks.ts b/packages/common/store/app-state/app-state-create-doc-management-hooks.ts index b580ed6c..1480db02 100644 --- a/packages/common/store/app-state/app-state-create-doc-management-hooks.ts +++ b/packages/common/store/app-state/app-state-create-doc-management-hooks.ts @@ -37,7 +37,8 @@ export default function createHook(set: AppStateSetter, get: AppStateGetter): Pa })); const st = get(); throttledUpdateDocument({ - ...st.persistedWorkflow!, + // ...st.persistedWorkflow!, + id: st.persistedWorkflow!.id, ...updates, last_edit_time, }); diff --git a/packages/common/store/extension-state.ts b/packages/common/store/extension-state.ts index 7efe954f..f13865c9 100644 --- a/packages/common/store/extension-state.ts +++ b/packages/common/store/extension-state.ts @@ -77,6 +77,22 @@ export function transformModeMap(extensionNodeMap: Record, ext return ret; } +export function findExtensionByWidget(widget: { python_module: string }): Extension | undefined { + const python_module = widget.python_module || ""; + if (python_module.includes("custom_nodes.")) { + const { extensions, extensionNodeMap } = useExtensionsState.getState(); + const extensionName = python_module.replace("custom_nodes.", ""); + const extension = extensions.find(ext => { + const reference = ext?.reference; + if (reference?.endsWith(extensionName)) { + return true; + } + }); + return extension + } + return undefined +} + export function findExtensionByWidgetName(widgetName: string): Extension | undefined { const {extensions, extensionNodeMap} = useExtensionsState.getState(); let node = extensionNodeMap[widgetName]; diff --git a/packages/common/types/comfy-props.types.ts b/packages/common/types/comfy-props.types.ts index d44340e0..74c84639 100755 --- a/packages/common/types/comfy-props.types.ts +++ b/packages/common/types/comfy-props.types.ts @@ -222,6 +222,8 @@ export const SDNODE_DEFAULT_COLOR = { export interface PreviewImage { filename: string; subfolder?: string; + format?: string; + text?: string; type?: 'output'; blobUrl?: string; } diff --git a/packages/common/types/comfy-widget.types.ts b/packages/common/types/comfy-widget.types.ts index 8a445399..eca0a240 100755 --- a/packages/common/types/comfy-widget.types.ts +++ b/packages/common/types/comfy-widget.types.ts @@ -8,12 +8,14 @@ export const NODE_GET = "GetNode"; export const NODE_SET = "SetNode"; export const NODE_GET_SELECT_FIELD_NAME = "Constant"; export const NODE_IMAGE_COMPARE = "ImageCompare"; +export const NODE_VHS_COMBINE = "VHS_VideoCombine"; export const NODE_ANYTHING_EVERYWHERE = "Anything Everywhere"; export const NODE_ANYTHING_EVERYWHERE3 = "Anything Everywhere3"; export const NODE_ANYTHING_EVERYWHERE_PROMPT = "Prompts Everywhere"; export const NODE_ANYTHING_EVERYWHERE_REGEX = "Anything Everywhere?"; export const NODE_ANYTHING_EVERYWHERE_SEED = "Seed Everywhere"; +export const NODE_UNKNOWN = "UNKNOWN_WIDGET" export type WidgetKey = string /** @@ -23,6 +25,7 @@ export interface Widget { name: WidgetKey display_name?: string description?: string + unknown?: boolean; category: string input: { required: Record, @@ -30,14 +33,17 @@ export interface Widget { } output: FlowPropsKey[] output_name?: string[] + python_module: string } export const UnknownWidget: Widget = { - name: "UNKNOWN_WIDGET", + name: NODE_UNKNOWN, display_name: "Unknown", category: "Unknown", + unknown: true, input: { required: {} }, output: [], + python_module: "frontend" }; export type Widgets = Record @@ -52,15 +58,16 @@ export const Widget = { Widget.isStaticPrimitive(widget.name) || widget.name === NODE_REROUTE || widget.name === NODE_SET || - widget.name === NODE_GET || + widget.name === NODE_GET || widget.name === NODE_IMAGE_COMPARE ) }, isSeedParam(param: string): boolean { return param === "seed" || param === "noise_seed" }, - isSaveImageNode(widgetName: string): boolean { - const nodes = ["SaveImage", "SaveAnimatedWEBP"]; + isSaveImageNode(widgetName: string,): boolean { + // 保存到 gallery 的节点 + const nodes = ["SaveImage", "SaveAnimatedWEBP", "VHS_VideoCombine", "easy imageSave", "AnimateDiffCombine"]; return nodes.includes(widgetName); }, findSeedFieldName(widget: Widget, inputSlots: string[] = []): string | undefined { @@ -94,13 +101,13 @@ export const Widget = { }, getDefaultFields(widget: Widget): Record { const fields: Record = {} - for (const [key, input] of Object.entries(widget.input.required)) { + for (const [key, input] of Object.entries(widget.input.required || {})) { if (Input.isBool(input)) { - fields[key] = input[1].default ?? false + fields[key] = input[1]?.default ?? false } else if (Input.isFloat(input)) { - fields[key] = input[1].default ?? 0.0 + fields[key] = input[1]?.default ?? 0.0 } else if (Input.isInt(input)) { - fields[key] = input[1].default ?? 0 + fields[key] = input[1]?.default ?? 1 } else if (Input.isString(input)) { fields[key] = '' } else if (Input.isList(input)) { @@ -134,10 +141,11 @@ export const specialWidgets: Record = { category: "utils", input: { required: { - "Constant": ["STRING", {}] + "Constant": ["STRING", {}] } }, - output: [] + output: [], + python_module: "frontend" }, GetNode: { name: "GetNode", @@ -147,10 +155,11 @@ export const specialWidgets: Record = { input: { required: {}, optional: { - "Constant": ["STRING", {}] + "Constant": ["STRING", {}] } }, - output: [] + output: [], + python_module: "frontend" }, Note: { "name": "Note", @@ -168,6 +177,7 @@ export const specialWidgets: Record = { }, "output": [], "category": "utils", + python_module: "frontend" }, Group: { "name": NODE_GROUP, @@ -177,7 +187,8 @@ export const specialWidgets: Record = { "required": {} }, "output": [], - "category": "utils" + "category": "utils", + python_module: "frontend" }, [NODE_PRIMITIVE]: { "name": NODE_PRIMITIVE, @@ -187,7 +198,8 @@ export const specialWidgets: Record = { "required": {} }, "output": [], - "category": "utils" + "category": "utils", + python_module: "frontend" }, Primitive_STRING: createPrimitiveWidget("STRING"), Primitive_BOOLEAN: createPrimitiveWidget("BOOLEAN"), @@ -202,6 +214,7 @@ export const specialWidgets: Record = { "display_name": NODE_REROUTE, "description": NODE_REROUTE, "category": "utils", + python_module: "frontend" } } @@ -217,6 +230,7 @@ function createPrimitiveWidget(type: string): Widget { "display_name": `${type}`, "description": `Primitive type of ${type}`, "category": "utils", + python_module: "frontend" } } @@ -229,4 +243,4 @@ export type SetNodeInfo = { edge: Edge }, field: string -}; +}; \ No newline at end of file diff --git a/packages/common/workflow-editor/node-rendering.tsx b/packages/common/workflow-editor/node-rendering.tsx index 7757d8e3..a2529a7b 100644 --- a/packages/common/workflow-editor/node-rendering.tsx +++ b/packages/common/workflow-editor/node-rendering.tsx @@ -122,6 +122,27 @@ export function getNodeRenderInfo(node: SDNode, widget: Widget): WorkflowNodeRen }); } + // params 进行排序,如果是 imageUpload 或者 videoUpload, 把这个项放到最后 + const sorted_params = params.sort((a, b) => { + function paramsIsUpload(param: { property: string, input: Input }) { + const name = param.property; + const input = param.input; + const isImageUpload = name === "image" && (input[1] as any)?.image_upload; + const isVideoUpload = name === "video" && Input.isList(input); + const isAudioUpload = name === "audio" && Input.isList(input); + return isImageUpload || isVideoUpload || isAudioUpload + } + const aIsUpload = paramsIsUpload(a); + const bIsUpload = paramsIsUpload(b); + if (aIsUpload && !bIsUpload) { + return 1; // a 是 upload,b 不是,a 排在 b 后面 + } else if (!aIsUpload && bIsUpload) { + return -1; // a 不是 upload,b 是,a 排在 b 前面 + } + return 0; // + }); + + let nodeColor = node.color || SDNODE_DEFAULT_COLOR.color; let nodeBgColor = node.bgcolor || SDNODE_DEFAULT_COLOR.bgcolor; @@ -130,7 +151,7 @@ export function getNodeRenderInfo(node: SDNode, widget: Widget): WorkflowNodeRen title: `${title}${enabled ? " (Disabled)" : ""}`, widget, inputs, - params, + params: sorted_params, outputs, nodeColor, nodeBgColor, diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 76765b4b..7d392631 100755 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -254,6 +254,12 @@ importers: react-dom: specifier: ^18.2.0 version: 18.2.0(react@18.2.0) + react-h5-audio-player: + specifier: ^3.9.3 + version: 3.9.3(react-dom@18.2.0)(react@18.2.0) + react-markdown: + specifier: ^9.0.1 + version: 9.0.1(@types/react@18.2.21)(react@18.2.0) react-player: specifier: ^2.16.0 version: 2.16.0(react@18.2.0) @@ -2070,6 +2076,19 @@ packages: resolution: {integrity: sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==} dev: true + /@iconify/react@4.1.1(react@18.2.0): + resolution: {integrity: sha512-jed14EjvKjee8mc0eoscGxlg7mSQRkwQG3iX3cPBCO7UlOjz0DtlvTqxqEcHUJGh+z1VJ31Yhu5B9PxfO0zbdg==} + peerDependencies: + react: '>=16' + dependencies: + '@iconify/types': 2.0.0 + react: 18.2.0 + dev: false + + /@iconify/types@2.0.0: + resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + dev: false + /@isaacs/cliui@8.0.2: resolution: {integrity: sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==} engines: {node: '>=12'} @@ -3673,7 +3692,12 @@ packages: resolution: {integrity: sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ==} dependencies: '@types/ms': 0.7.34 - dev: true + + /@types/estree-jsx@1.0.5: + resolution: {integrity: sha512-52CcUVNFyfb1A2ALocQw/Dd1BQFNmSdkuC3BkZ6iqhdMfQz7JWOFRuJFloOzjk+6WijU56m9oKXFAXc7o3Towg==} + dependencies: + '@types/estree': 1.0.5 + dev: false /@types/estree@1.0.5: resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} @@ -3735,6 +3759,12 @@ packages: '@types/node': 17.0.45 dev: true + /@types/hast@3.0.4: + resolution: {integrity: sha512-WPs+bbQw5aCj+x6laNGWLH3wviHtoCv/P3+otBhbOhJgG8qtpdAMlTCxLtsTWA7LH1Oh/bFCHsBn0TPS5m30EQ==} + dependencies: + '@types/unist': 3.0.2 + dev: false + /@types/http-cache-semantics@4.0.4: resolution: {integrity: sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA==} @@ -3811,6 +3841,12 @@ packages: resolution: {integrity: sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ==} dev: false + /@types/mdast@4.0.4: + resolution: {integrity: sha512-kGaNbPh1k7AFzgpud/gMdvIm5xuECykRR+JnWKQno9TAXVa6WIVCGTPvYGekIDL4uwCZQSYbUxNBSb1aUo79oA==} + dependencies: + '@types/unist': 3.0.2 + dev: false + /@types/mime@1.3.5: resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} dev: false @@ -3826,7 +3862,6 @@ packages: /@types/ms@0.7.34: resolution: {integrity: sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==} - dev: true /@types/node@17.0.45: resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} @@ -3936,6 +3971,14 @@ packages: resolution: {integrity: sha512-6WaYesThRMCl19iryMYP7/x2OVgCtbIVflDGFpWnb9irXI3UjYE4AzmYuiUKY1AJstGijoY+MgUszMgRxIYTYw==} dev: false + /@types/unist@2.0.10: + resolution: {integrity: sha512-IfYcSBWE3hLpBg8+X2SEa8LVkJdJEkT2Ese2aaLs3ptGdVtABxndrMaxuFlQ1qdFf9Q5rDvDpxI3WwgvKFAsQA==} + dev: false + + /@types/unist@3.0.2: + resolution: {integrity: sha512-dqId9J8K/vGi5Zr7oo212BGii5m3q5Hxlkwy3WpYuKPklmBEvsbMYYyLxAQpSffdLl/gdW0XUpKWFvYmyoWCoQ==} + dev: false + /@types/unzipper@0.10.9: resolution: {integrity: sha512-vHbmFZAw8emNAOVkHVbS3qBnbr0x/qHQZ+ei1HE7Oy6Tyrptl+jpqnOX+BF5owcu/HZLOV0nJK+K9sjs1Ox2JA==} dependencies: @@ -4301,7 +4344,6 @@ packages: /@ungap/structured-clone@1.2.0: resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==} - dev: true /@vercel/style-guide@5.1.0(eslint@8.54.0)(jest@29.7.0)(prettier@3.1.0)(typescript@4.5.5): resolution: {integrity: sha512-L9lWYePIycm7vIOjDLj+mmMdmmPkW3/brHjgq+nJdvMOrL7Hdk/19w8X583HYSk0vWsq494o5Qkh6x5+uW7ljg==} @@ -4884,6 +4926,10 @@ packages: babel-preset-current-node-syntax: 1.0.1(@babel/core@7.23.3) dev: true + /bail@2.0.2: + resolution: {integrity: sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==} + dev: false + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} @@ -5239,6 +5285,10 @@ packages: /caniuse-lite@1.0.30001564: resolution: {integrity: sha512-DqAOf+rhof+6GVx1y+xzbFPeOumfQnhYzVnZD6LAXijR77yPtm9mfOcqOnT3mpnJiZVT+kwLAFnRlZcIz+c6bg==} + /ccount@2.0.1: + resolution: {integrity: sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==} + dev: false + /chainsaw@0.1.0: resolution: {integrity: sha512-75kWfWt6MEKNC8xYXIdRpDehRYY/tNSgwKaJq+dbbDcxORuVrrQ+SEHoWsniVn9XPYfP4gmdWIeDk/4YNp1rNQ==} dependencies: @@ -5296,6 +5346,22 @@ packages: engines: {node: '>=10'} dev: true + /character-entities-html4@2.1.0: + resolution: {integrity: sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==} + dev: false + + /character-entities-legacy@3.0.0: + resolution: {integrity: sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==} + dev: false + + /character-entities@2.0.2: + resolution: {integrity: sha512-shx7oQ0Awen/BRIdkjkvz54PnEEI/EjwXDSIZp86/KKdbafHh1Df/RYGBhn4hbe2+uKC9FnT5UCEdyPz3ai9hQ==} + dev: false + + /character-reference-invalid@2.0.1: + resolution: {integrity: sha512-iBZ4F4wRbyORVsu0jPV7gXkOsGYjGHPmAyv+HiHG8gi5PtC9KI2j1+v8/tlibRvjoWX027ypmG/n0HtO5t7unw==} + dev: false + /chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true @@ -5487,6 +5553,10 @@ packages: delayed-stream: 1.0.0 dev: true + /comma-separated-tokens@2.0.3: + resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + dev: false + /commander@10.0.1: resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==} engines: {node: '>=14'} @@ -5820,6 +5890,12 @@ packages: ms: 2.1.2 supports-color: 5.5.0 + /decode-named-character-reference@1.0.2: + resolution: {integrity: sha512-O8x12RzrUF8xyVcY0KJowWsmaJxQbmy0/EtnNtHRpsOcT7dFk5W598coHqBVpmWo1oQQfsCqfCmkZN5DJrZVdg==} + dependencies: + character-entities: 2.0.2 + dev: false + /decompress-response@6.0.0: resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} engines: {node: '>=10'} @@ -5942,7 +6018,6 @@ packages: /dequal@2.0.3: resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} engines: {node: '>=6'} - dev: true /destroy@1.2.0: resolution: {integrity: sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==} @@ -5982,6 +6057,12 @@ packages: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} requiresBuild: true + /devlop@1.1.0: + resolution: {integrity: sha512-RWmIqhcFf1lRYBvNmr7qTNuyCt/7/ns2jbpp1+PalgE/rDQcBT0fioSMUpJ93irlUhC5hrg4cYqe6U+0ImW0rA==} + dependencies: + dequal: 2.0.3 + dev: false + /dexie-react-hooks@1.1.7(@types/react@18.2.21)(dexie@3.2.4)(react@18.2.0): resolution: {integrity: sha512-Lwv5W0Hk+uOW3kGnsU9GZoR1er1B7WQ5DSdonoNG+focTNeJbHW6vi6nBoX534VKI3/uwHebYzSw1fwY6a7mTw==} peerDependencies: @@ -7074,6 +7155,10 @@ packages: engines: {node: '>=4.0'} dev: true + /estree-util-is-identifier-name@3.0.0: + resolution: {integrity: sha512-hFtqIDZTIUZ9BXLb8y4pYGyk6+wekIivNVTcmvk8NoOh+VeRn5y6cEHzbURrWbfp1fIqdVipilzj+lfaadNZmg==} + dev: false + /estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} dev: false @@ -7247,6 +7332,10 @@ packages: type: 2.7.2 dev: false + /extend@3.0.2: + resolution: {integrity: sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==} + dev: false + /external-editor@3.1.0: resolution: {integrity: sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==} engines: {node: '>=4'} @@ -7946,6 +8035,34 @@ packages: dependencies: function-bind: 1.1.2 + /hast-util-to-jsx-runtime@2.3.0: + resolution: {integrity: sha512-H/y0+IWPdsLLS738P8tDnrQ8Z+dj12zQQ6WC11TIM21C8WFVoIxcqWXf2H3hiTVZjF1AWqoimGwrTWecWrnmRQ==} + dependencies: + '@types/estree': 1.0.5 + '@types/hast': 3.0.4 + '@types/unist': 3.0.2 + comma-separated-tokens: 2.0.3 + devlop: 1.1.0 + estree-util-is-identifier-name: 3.0.0 + hast-util-whitespace: 3.0.0 + mdast-util-mdx-expression: 2.0.0 + mdast-util-mdx-jsx: 3.1.2 + mdast-util-mdxjs-esm: 2.0.1 + property-information: 6.5.0 + space-separated-tokens: 2.0.2 + style-to-object: 1.0.6 + unist-util-position: 5.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: false + + /hast-util-whitespace@3.0.0: + resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} + dependencies: + '@types/hast': 3.0.4 + dev: false + /header-case@1.0.1: resolution: {integrity: sha512-i0q9mkOeSuhXw6bGgiQCCBgY/jlZuV/7dZXyZ9c6LcBrqwvT8eT719E9uxE5LiZftdl+z81Ugbg/VvXV4OJOeQ==} dependencies: @@ -7981,6 +8098,10 @@ packages: resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} dev: true + /html-url-attributes@3.0.0: + resolution: {integrity: sha512-/sXbVCWayk6GDVg3ctOX6nxaVj7So40FcFAnWlWGNAB1LpYKcV5Cd10APjPjW80O7zYW2MsjBV4zZ7IZO5fVow==} + dev: false + /http-cache-semantics@4.1.1: resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==} @@ -8176,6 +8297,10 @@ packages: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: true + /inline-style-parser@0.2.3: + resolution: {integrity: sha512-qlD8YNDqyTKTyuITrDOffsl6Tdhv+UC4hcdAVuQsK4IMQ99nSgd1MIA/Q+jQYoh9r3hVUXhYh7urSRmXPkW04g==} + dev: false + /inquirer@7.3.3: resolution: {integrity: sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==} engines: {node: '>=8.0.0'} @@ -8241,6 +8366,17 @@ packages: resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==} engines: {node: '>= 0.10'} + /is-alphabetical@2.0.1: + resolution: {integrity: sha512-FWyyY60MeTNyeSRpkM2Iry0G9hpr7/9kD40mD/cGQEuilcZYS4okz8SN2Q6rLCJ8gbCt6fN+rC+6tMGS99LaxQ==} + dev: false + + /is-alphanumerical@2.0.1: + resolution: {integrity: sha512-hmbYhX/9MUMF5uh7tOXyK/n0ZvWpad5caBA17GsC6vyuCqaWliRG5K1qS9inmUhEMaOBIW7/whAnSwveW/LtZw==} + dependencies: + is-alphabetical: 2.0.1 + is-decimal: 2.0.1 + dev: false + /is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} dependencies: @@ -8315,6 +8451,10 @@ packages: has-tostringtag: 1.0.0 dev: true + /is-decimal@2.0.1: + resolution: {integrity: sha512-AAB9hiomQs5DXWcRB1rqsxGUstbRroFOPPVAomNk/3XHR5JyEZChOyTWe2oayKnsSsr/kcGqF+z6yuH6HHpN0A==} + dev: false + /is-docker@2.2.1: resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} engines: {node: '>=8'} @@ -8364,6 +8504,10 @@ packages: dependencies: is-extglob: 2.1.1 + /is-hexadecimal@2.0.1: + resolution: {integrity: sha512-DgZQp241c8oO6cA1SbTEWiXeoxV42vlcJxgH+B3hi1AiqqKruZR3ZGF8In3fj4+/y/7rHvlOZLZtgJ/4ttYGZg==} + dev: false + /is-inside-container@1.0.0: resolution: {integrity: sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==} engines: {node: '>=14.16'} @@ -8433,7 +8577,6 @@ packages: /is-plain-obj@4.1.0: resolution: {integrity: sha512-+Pgi+vMuUNkJyExiMBt5IlFoMyKnr5zhJ4Uspz58WOhBF5QoIZkFyNHIbBAtHwzVAgk5RtndVNsDRN61/mmDqg==} engines: {node: '>=12'} - dev: true /is-plain-object@5.0.0: resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} @@ -9458,6 +9601,10 @@ packages: triple-beam: 1.4.1 dev: false + /longest-streak@3.1.0: + resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==} + dev: false + /loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true @@ -9602,6 +9749,111 @@ packages: dependencies: escape-string-regexp: 4.0.0 + /mdast-util-from-markdown@2.0.1: + resolution: {integrity: sha512-aJEUyzZ6TzlsX2s5B4Of7lN7EQtAxvtradMMglCQDyaTFgse6CmtmdJ15ElnVRlCg1vpNyVtbem0PWzlNieZsA==} + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.2 + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + mdast-util-to-string: 4.0.0 + micromark: 4.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-decode-string: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + unist-util-stringify-position: 4.0.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdx-expression@2.0.0: + resolution: {integrity: sha512-fGCu8eWdKUKNu5mohVGkhBXCXGnOTLuFqOvGMvdikr+J1w7lDJgxThOKpwRWzzbyXAU2hhSwsmssOY4yTokluw==} + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdx-jsx@3.1.2: + resolution: {integrity: sha512-eKMQDeywY2wlHc97k5eD8VC+9ASMjN8ItEZQNGwJ6E0XWKiW/Z0V5/H8pvoXUf+y+Mj0VIgeRRbujBmFn4FTyA==} + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@types/unist': 3.0.2 + ccount: 2.0.1 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + parse-entities: 4.0.1 + stringify-entities: 4.0.4 + unist-util-remove-position: 5.0.0 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-mdxjs-esm@2.0.1: + resolution: {integrity: sha512-EcmOpxsZ96CvlP03NghtH1EsLtr0n9Tm4lPUJUBccV9RwUOneqSycg19n5HGzCf+10LozMRSObtVr3ee1WoHtg==} + dependencies: + '@types/estree-jsx': 1.0.5 + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + devlop: 1.1.0 + mdast-util-from-markdown: 2.0.1 + mdast-util-to-markdown: 2.1.0 + transitivePeerDependencies: + - supports-color + dev: false + + /mdast-util-phrasing@4.1.0: + resolution: {integrity: sha512-TqICwyvJJpBwvGAMZjj4J2n0X8QWp21b9l0o7eXyVJ25YNWYbJDVIyD1bZXE6WtV6RmKJVYmQAKWa0zWOABz2w==} + dependencies: + '@types/mdast': 4.0.4 + unist-util-is: 6.0.0 + dev: false + + /mdast-util-to-hast@13.2.0: + resolution: {integrity: sha512-QGYKEuUsYT9ykKBCMOEDLsU5JRObWQusAolFMeko/tYPufNkRffBAQjIE+99jbA87xv6FgmjLtwjh9wBWajwAA==} + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + '@ungap/structured-clone': 1.2.0 + devlop: 1.1.0 + micromark-util-sanitize-uri: 2.0.0 + trim-lines: 3.0.1 + unist-util-position: 5.0.0 + unist-util-visit: 5.0.0 + vfile: 6.0.2 + dev: false + + /mdast-util-to-markdown@2.1.0: + resolution: {integrity: sha512-SR2VnIEdVNCJbP6y7kVTJgPLifdr8WEU440fQec7qHoHOUz/oJ2jmNRqdDQ3rbiStOXb2mCDGTuwsK5OPUgYlQ==} + dependencies: + '@types/mdast': 4.0.4 + '@types/unist': 3.0.2 + longest-streak: 3.1.0 + mdast-util-phrasing: 4.1.0 + mdast-util-to-string: 4.0.0 + micromark-util-decode-string: 2.0.0 + unist-util-visit: 5.0.0 + zwitch: 2.0.4 + dev: false + + /mdast-util-to-string@4.0.0: + resolution: {integrity: sha512-0H44vDimn51F0YwvxSJSm0eCDOJTRlmN0R1yBh4HLj9wiV1Dn0QoXGbvFAWj2hSItVTlCmBF1hqKlIyUBVFLPg==} + dependencies: + '@types/mdast': 4.0.4 + dev: false + /media-typer@0.3.0: resolution: {integrity: sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==} engines: {node: '>= 0.6'} @@ -9635,6 +9887,181 @@ packages: resolution: {integrity: sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==} engines: {node: '>= 0.6'} + /micromark-core-commonmark@2.0.1: + resolution: {integrity: sha512-CUQyKr1e///ZODyD1U3xit6zXwy1a8q2a1S1HKtIlmgvurrEpaw/Y9y6KSIbF8P59cn/NjzHyO+Q2fAyYLQrAA==} + dependencies: + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-factory-destination: 2.0.0 + micromark-factory-label: 2.0.0 + micromark-factory-space: 2.0.0 + micromark-factory-title: 2.0.0 + micromark-factory-whitespace: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-classify-character: 2.0.0 + micromark-util-html-tag-name: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-destination@2.0.0: + resolution: {integrity: sha512-j9DGrQLm/Uhl2tCzcbLhy5kXsgkHUrjJHg4fFAeoMRwJmJerT9aw4FEhIbZStWN8A3qMwOp1uzHr4UL8AInxtA==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-label@2.0.0: + resolution: {integrity: sha512-RR3i96ohZGde//4WSe/dJsxOX6vxIg9TimLAS3i4EhBAFx8Sm5SmqVfR8E87DPSR31nEAjZfbt91OMZWcNgdZw==} + dependencies: + devlop: 1.1.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-space@2.0.0: + resolution: {integrity: sha512-TKr+LIDX2pkBJXFLzpyPyljzYK3MtmllMUMODTQJIUfDGncESaqB90db9IAUcz4AZAJFdd8U9zOp9ty1458rxg==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-title@2.0.0: + resolution: {integrity: sha512-jY8CSxmpWLOxS+t8W+FG3Xigc0RDQA9bKMY/EwILvsesiRniiVMejYTE4wumNc2f4UbAa4WsHqe3J1QS1sli+A==} + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-factory-whitespace@2.0.0: + resolution: {integrity: sha512-28kbwaBjc5yAI1XadbdPYHX/eDnqaUFVikLwrO7FDnKG7lpgxnvk/XGRhX/PN0mOZ+dBSZ+LgunHS+6tYQAzhA==} + dependencies: + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-character@2.1.0: + resolution: {integrity: sha512-KvOVV+X1yLBfs9dCBSopq/+G1PcgT3lAK07mC4BzXi5E7ahzMAF8oIupDDJ6mievI6F+lAATkbQQlQixJfT3aQ==} + dependencies: + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-chunked@2.0.0: + resolution: {integrity: sha512-anK8SWmNphkXdaKgz5hJvGa7l00qmcaUQoMYsBwDlSKFKjc6gjGXPDw3FNL3Nbwq5L8gE+RCbGqTw49FK5Qyvg==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-classify-character@2.0.0: + resolution: {integrity: sha512-S0ze2R9GH+fu41FA7pbSqNWObo/kzwf8rN/+IGlW/4tC6oACOs8B++bh+i9bVyNnwCcuksbFwsBme5OCKXCwIw==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-combine-extensions@2.0.0: + resolution: {integrity: sha512-vZZio48k7ON0fVS3CUgFatWHoKbbLTK/rT7pzpJ4Bjp5JjkZeasRfrS9wsBdDJK2cJLHMckXZdzPSSr1B8a4oQ==} + dependencies: + micromark-util-chunked: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-decode-numeric-character-reference@2.0.1: + resolution: {integrity: sha512-bmkNc7z8Wn6kgjZmVHOX3SowGmVdhYS7yBpMnuMnPzDq/6xwVA604DuOXMZTO1lvq01g+Adfa0pE2UKGlxL1XQ==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-decode-string@2.0.0: + resolution: {integrity: sha512-r4Sc6leeUTn3P6gk20aFMj2ntPwn6qpDZqWvYmAG6NgvFTIlj4WtrAudLi65qYoaGdXYViXYw2pkmn7QnIFasA==} + dependencies: + decode-named-character-reference: 1.0.2 + micromark-util-character: 2.1.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-encode@2.0.0: + resolution: {integrity: sha512-pS+ROfCXAGLWCOc8egcBvT0kf27GoWMqtdarNfDcjb6YLuV5cM3ioG45Ys2qOVqeqSbjaKg72vU+Wby3eddPsA==} + dev: false + + /micromark-util-html-tag-name@2.0.0: + resolution: {integrity: sha512-xNn4Pqkj2puRhKdKTm8t1YHC/BAjx6CEwRFXntTaRf/x16aqka6ouVoutm+QdkISTlT7e2zU7U4ZdlDLJd2Mcw==} + dev: false + + /micromark-util-normalize-identifier@2.0.0: + resolution: {integrity: sha512-2xhYT0sfo85FMrUPtHcPo2rrp1lwbDEEzpx7jiH2xXJLqBuy4H0GgXk5ToU8IEwoROtXuL8ND0ttVa4rNqYK3w==} + dependencies: + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-resolve-all@2.0.0: + resolution: {integrity: sha512-6KU6qO7DZ7GJkaCgwBNtplXCvGkJToU86ybBAUdavvgsCiG8lSSvYxr9MhwmQ+udpzywHsl4RpGJsYWG1pDOcA==} + dependencies: + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-sanitize-uri@2.0.0: + resolution: {integrity: sha512-WhYv5UEcZrbAtlsnPuChHUAsu/iBPOVaEVsntLBIdpibO0ddy8OzavZz3iL2xVvBZOpolujSliP65Kq0/7KIYw==} + dependencies: + micromark-util-character: 2.1.0 + micromark-util-encode: 2.0.0 + micromark-util-symbol: 2.0.0 + dev: false + + /micromark-util-subtokenize@2.0.1: + resolution: {integrity: sha512-jZNtiFl/1aY73yS3UGQkutD0UbhTt68qnRpw2Pifmz5wV9h8gOVsN70v+Lq/f1rKaU/W8pxRe8y8Q9FX1AOe1Q==} + dependencies: + devlop: 1.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + dev: false + + /micromark-util-symbol@2.0.0: + resolution: {integrity: sha512-8JZt9ElZ5kyTnO94muPxIGS8oyElRJaiJO8EzV6ZSyGQ1Is8xwl4Q45qU5UOg+bGH4AikWziz0iN4sFLWs8PGw==} + dev: false + + /micromark-util-types@2.0.0: + resolution: {integrity: sha512-oNh6S2WMHWRZrmutsRmDDfkzKtxF+bc2VxLC9dvtrDIRFln627VsFP6fLMgTryGDljgLPjkrzQSDcPrjPyDJ5w==} + dev: false + + /micromark@4.0.0: + resolution: {integrity: sha512-o/sd0nMof8kYff+TqcDx3VSrgBTcZpSvYcAHIfHhv5VAuNmisCxjhx6YmxS8PFEpb9z5WKWKPdzf0jM23ro3RQ==} + dependencies: + '@types/debug': 4.1.12 + debug: 4.3.4(supports-color@5.5.0) + decode-named-character-reference: 1.0.2 + devlop: 1.1.0 + micromark-core-commonmark: 2.0.1 + micromark-factory-space: 2.0.0 + micromark-util-character: 2.1.0 + micromark-util-chunked: 2.0.0 + micromark-util-combine-extensions: 2.0.0 + micromark-util-decode-numeric-character-reference: 2.0.1 + micromark-util-encode: 2.0.0 + micromark-util-normalize-identifier: 2.0.0 + micromark-util-resolve-all: 2.0.0 + micromark-util-sanitize-uri: 2.0.0 + micromark-util-subtokenize: 2.0.1 + micromark-util-symbol: 2.0.0 + micromark-util-types: 2.0.0 + transitivePeerDependencies: + - supports-color + dev: false + /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} @@ -10400,6 +10827,19 @@ packages: author-regex: 1.0.0 dev: true + /parse-entities@4.0.1: + resolution: {integrity: sha512-SWzvYcSJh4d/SGLIOQfZ/CoNv6BTlI6YEQ7Nj82oDVnRpwe/Z/F1EMx42x3JAOwGBlCjeCH0BRJQbQ/opHL17w==} + dependencies: + '@types/unist': 2.0.10 + character-entities: 2.0.2 + character-entities-legacy: 3.0.0 + character-reference-invalid: 2.0.1 + decode-named-character-reference: 1.0.2 + is-alphanumerical: 2.0.1 + is-decimal: 2.0.1 + is-hexadecimal: 2.0.1 + dev: false + /parse-json@2.2.0: resolution: {integrity: sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ==} engines: {node: '>=0.10.0'} @@ -10636,6 +11076,10 @@ packages: object-assign: 4.1.1 react-is: 16.13.1 + /property-information@6.5.0: + resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + dev: false + /proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -11329,6 +11773,18 @@ packages: use-sidecar: 1.1.2(@types/react@18.2.21)(react@18.2.0) dev: false + /react-h5-audio-player@3.9.3(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-D92SbCk6AJAsXYQ2qJqxeAvEjRXBQHY2q6dIZLaLL74eZi7VfynC0/EspHHbFDqBXDq7o2xNFH1Vas+HyXeE/w==} + peerDependencies: + react: ^16.3.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.3.0 || ^17.0.0 || ^18.0.0 + dependencies: + '@babel/runtime': 7.23.4 + '@iconify/react': 4.1.1(react@18.2.0) + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} @@ -11351,6 +11807,28 @@ packages: scheduler: 0.23.0 dev: false + /react-markdown@9.0.1(@types/react@18.2.21)(react@18.2.0): + resolution: {integrity: sha512-186Gw/vF1uRkydbsOIkcGXw7aHq0sZOCRFFjGrr7b9+nVZg4UfA4enXCaxm4fUzecU38sWfrNDitGhshuU7rdg==} + peerDependencies: + '@types/react': 18.2.21 + react: '>=18' + dependencies: + '@types/hast': 3.0.4 + '@types/react': 18.2.21 + devlop: 1.1.0 + hast-util-to-jsx-runtime: 2.3.0 + html-url-attributes: 3.0.0 + mdast-util-to-hast: 13.2.0 + react: 18.2.0 + remark-parse: 11.0.0 + remark-rehype: 11.1.0 + unified: 11.0.5 + unist-util-visit: 5.0.0 + vfile: 6.0.2 + transitivePeerDependencies: + - supports-color + dev: false + /react-player@2.16.0(react@18.2.0): resolution: {integrity: sha512-mAIPHfioD7yxO0GNYVFD1303QFtI3lyyQZLY229UEAp/a10cSW+hPcakg0Keq8uWJxT2OiT/4Gt+Lc9bD6bJmQ==} peerDependencies: @@ -11594,6 +12072,27 @@ packages: jsesc: 0.5.0 dev: true + /remark-parse@11.0.0: + resolution: {integrity: sha512-FCxlKLNGknS5ba/1lmpYijMUzX2esxW5xQqjWxw2eHFfS2MSdaHVINFmhjo+qN1WhZhNimq0dZATN9pH0IDrpA==} + dependencies: + '@types/mdast': 4.0.4 + mdast-util-from-markdown: 2.0.1 + micromark-util-types: 2.0.0 + unified: 11.0.5 + transitivePeerDependencies: + - supports-color + dev: false + + /remark-rehype@11.1.0: + resolution: {integrity: sha512-z3tJrAs2kIs1AqIIy6pzHmAHlF1hWQ+OdY4/hv+Wxe35EhyLKcajL33iUEn3ScxtFox9nUvRufR/Zre8Q08H/g==} + dependencies: + '@types/hast': 3.0.4 + '@types/mdast': 4.0.4 + mdast-util-to-hast: 13.2.0 + unified: 11.0.5 + vfile: 6.0.2 + dev: false + /require-directory@2.1.1: resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} @@ -12124,6 +12623,10 @@ packages: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} + /space-separated-tokens@2.0.2: + resolution: {integrity: sha512-PEGlAwrG8yXGXRjW32fGbg66JAlOAwbObuqVoJpv/mRgoWDQfgH1wDPvtzWyUSNAXBGSk8h755YDbbcEy3SH2Q==} + dev: false + /spdx-correct@3.2.0: resolution: {integrity: sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==} dependencies: @@ -12299,6 +12802,13 @@ packages: dependencies: safe-buffer: 5.2.1 + /stringify-entities@4.0.4: + resolution: {integrity: sha512-IwfBptatlO+QCJUo19AqvrPNqlVMpW9YEL2LIVY+Rpv2qsjCGxaDLNRgeGsQWJhfItebuJhsGSLjaBbNSQ+ieg==} + dependencies: + character-entities-html4: 2.1.0 + character-entities-legacy: 3.0.0 + dev: false + /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} @@ -12360,6 +12870,12 @@ packages: escape-string-regexp: 1.0.5 dev: true + /style-to-object@1.0.6: + resolution: {integrity: sha512-khxq+Qm3xEyZfKd/y9L3oIWQimxuc4STrQKtQn8aSDRHb8mFgpukgX1hdzfrMEW6JCjyJ8p89x+IUMVnCBI1PA==} + dependencies: + inline-style-parser: 0.2.3 + dev: false + /styled-components@5.3.11(@babel/core@7.23.3)(react-dom@18.2.0)(react-is@18.2.0)(react@18.2.0): resolution: {integrity: sha512-uuzIIfnVkagcVHv9nE0VPlHPSCmXIUGKfJ42LNjxCCTDTL5sgnJ8Z7GZBq0EnLYGln77tPpEpExt2+qa+cZqSw==} engines: {node: '>=10'} @@ -12594,6 +13110,10 @@ packages: resolution: {integrity: sha512-iawgk0hLP3SxGKDfnDJf8wTz4p2qImnyihM5Hh/sGvQ3K37dPi/w8sRhdNIxYA1TwFwc5mDhIJq+O0RsvXBKdQ==} dev: false + /trim-lines@3.0.1: + resolution: {integrity: sha512-kRj8B+YHZCc9kQYdWfJB2/oUl9rA99qbowYYBtr4ui4mZyAQ2JpvVBd/6U2YloATfqBhBTSMhTpgBHtU0Mf3Rg==} + dev: false + /trim-repeated@1.0.0: resolution: {integrity: sha512-pkonvlKk8/ZuR0D5tLW8ljt5I8kmxp2XKymhepUeOdCEfKpZaktSArkLHZt76OB1ZvO9bssUsDty4SWhLvZpLg==} engines: {node: '>=0.10.0'} @@ -12606,6 +13126,10 @@ packages: engines: {node: '>= 14.0.0'} dev: false + /trough@2.2.0: + resolution: {integrity: sha512-tmMpK00BjZiUyVyvrBK7knerNgmgvcV/KLVyuma/SC+TQN167GrMRciANTz09+k3zW8L8t60jWO1GpfkZdjTaw==} + dev: false + /truncate-utf8-bytes@1.0.2: resolution: {integrity: sha512-95Pu1QXQvruGEhv62XCMO3Mm90GscOCClvrIUwCM0PYOXK3kaF3l3sIHxx71ThJfcbM2O5Au6SO3AWCSEfW4mQ==} dependencies: @@ -12961,6 +13485,18 @@ packages: which-boxed-primitive: 1.0.2 dev: true + /unified@11.0.5: + resolution: {integrity: sha512-xKvGhPWw3k84Qjh8bI3ZeJjqnyadK+GEFtazSfZv/rKeTkTjOJho6mFqh2SM96iIcZokxiOpg78GazTSg8+KHA==} + dependencies: + '@types/unist': 3.0.2 + bail: 2.0.2 + devlop: 1.1.0 + extend: 3.0.2 + is-plain-obj: 4.1.0 + trough: 2.2.0 + vfile: 6.0.2 + dev: false + /unique-filename@2.0.1: resolution: {integrity: sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -12996,6 +13532,46 @@ packages: crypto-random-string: 4.0.0 dev: false + /unist-util-is@6.0.0: + resolution: {integrity: sha512-2qCTHimwdxLfz+YzdGfkqNlH0tLi9xjTnHddPmJwtIG9MGsdbutfTc4P+haPD7l7Cjxf/WZj+we5qfVPvvxfYw==} + dependencies: + '@types/unist': 3.0.2 + dev: false + + /unist-util-position@5.0.0: + resolution: {integrity: sha512-fucsC7HjXvkB5R3kTCO7kUjRdrS0BJt3M/FPxmHMBOm8JQi2BsHAHFsy27E0EolP8rp0NzXsJ+jNPyDWvOJZPA==} + dependencies: + '@types/unist': 3.0.2 + dev: false + + /unist-util-remove-position@5.0.0: + resolution: {integrity: sha512-Hp5Kh3wLxv0PHj9m2yZhhLt58KzPtEYKQQ4yxfYFEO7EvHwzyDYnduhHnY1mDxoqr7VUwVuHXk9RXKIiYS1N8Q==} + dependencies: + '@types/unist': 3.0.2 + unist-util-visit: 5.0.0 + dev: false + + /unist-util-stringify-position@4.0.0: + resolution: {integrity: sha512-0ASV06AAoKCDkS2+xw5RXJywruurpbC4JZSm7nr7MOt1ojAzvyyaO+UxZf18j8FCF6kmzCZKcAgN/yu2gm2XgQ==} + dependencies: + '@types/unist': 3.0.2 + dev: false + + /unist-util-visit-parents@6.0.1: + resolution: {integrity: sha512-L/PqWzfTP9lzzEa6CKs0k2nARxTdZduw3zyh8d2NVBnsyvHjSX4TWse388YrrQKbvI8w20fGjGlhgT96WwKykw==} + dependencies: + '@types/unist': 3.0.2 + unist-util-is: 6.0.0 + dev: false + + /unist-util-visit@5.0.0: + resolution: {integrity: sha512-MR04uvD+07cwl/yhVuVWAtw+3GOR/knlL55Nd/wAdblk27GCVt3lqpTivy/tkJcZoNPzTwS1Y+KMojlLDhoTzg==} + dependencies: + '@types/unist': 3.0.2 + unist-util-is: 6.0.0 + unist-util-visit-parents: 6.0.1 + dev: false + /universal-github-app-jwt@1.1.1: resolution: {integrity: sha512-G33RTLrIBMFmlDV4u4CBF7dh71eWwykck4XgaxaIVeZKOYZRAAxvcGMRFTUclVY6xoUPQvO4Ne5wKGxYm/Yy9w==} dependencies: @@ -13203,6 +13779,21 @@ packages: dev: true optional: true + /vfile-message@4.0.2: + resolution: {integrity: sha512-jRDZ1IMLttGj41KcZvlrYAaI3CfqpLpfpf+Mfig13viT6NKvRzWZ+lXz0Y5D60w6uJIBAOGq9mSHf0gktF0duw==} + dependencies: + '@types/unist': 3.0.2 + unist-util-stringify-position: 4.0.0 + dev: false + + /vfile@6.0.2: + resolution: {integrity: sha512-zND7NlS8rJYb/sPqkb13ZvbbUoExdbi4w3SfRrMq6R3FvnLQmmfpajJNITuuYm6AZ5uao9vy4BAos3EXBPf2rg==} + dependencies: + '@types/unist': 3.0.2 + unist-util-stringify-position: 4.0.0 + vfile-message: 4.0.2 + dev: false + /vue-eslint-parser@8.3.0(eslint@8.8.0): resolution: {integrity: sha512-dzHGG3+sYwSf6zFBa0Gi9ZDshD7+ad14DGOdTLjruRVgZXe2J+DcZ9iUhyR48z5g1PqRa20yt3Njna/veLJL/g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -13612,6 +14203,10 @@ packages: use-sync-external-store: 1.2.0(react@18.2.0) dev: false + /zwitch@2.0.4: + resolution: {integrity: sha512-bXE4cR/kVZhKZX/RjPEflHaKVhUVl85noU3v6b8apfQEc1x4A+zBxjZ4lN8LqGd6WZ3dl98pY4o717VFmoPp+A==} + dev: false + github.com/6174/comflowy-image-editor/40d5128384d01c89ae7681402ac9de7355d0c48d(@types/react@18.2.21)(react-dom@18.2.0)(react-konva@18.2.10)(react@18.2.0)(styled-components@5.3.11): resolution: {tarball: https://codeload.github.com/6174/comflowy-image-editor/tar.gz/40d5128384d01c89ae7681402ac9de7355d0c48d} id: github.com/6174/comflowy-image-editor/40d5128384d01c89ae7681402ac9de7355d0c48d