{"id":21917527,"url":"https://github.com/numz/comfyui-flowchain","last_synced_at":"2025-04-06T08:11:32.640Z","repository":{"id":257992508,"uuid":"872016019","full_name":"numz/Comfyui-FlowChain","owner":"numz","description":"Convert your workflows into nodes and chain them together","archived":false,"fork":false,"pushed_at":"2025-03-28T07:38:35.000Z","size":28649,"stargazers_count":116,"open_issues_count":1,"forks_count":11,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-30T07:07:48.835Z","etag":null,"topics":["comfyui","comfyui-nodes","comfyui-workflow","flux","stable-diffusion"],"latest_commit_sha":null,"homepage":"https://buymeacoffee.com/numzzz5","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/numz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-10-13T15:12:32.000Z","updated_at":"2025-03-29T20:08:20.000Z","dependencies_parsed_at":"2025-01-16T09:14:38.594Z","dependency_job_id":"c2c5012d-98a8-4cca-b76b-7f65eb30593f","html_url":"https://github.com/numz/Comfyui-FlowChain","commit_stats":{"total_commits":23,"total_committers":1,"mean_commits":23.0,"dds":0.0,"last_synced_commit":"d2e744eb3a3371e5297ec82e7b95396123307784"},"previous_names":["numz/comfyui-flowchain"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numz%2FComfyui-FlowChain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numz%2FComfyui-FlowChain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numz%2FComfyui-FlowChain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numz%2FComfyui-FlowChain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/numz","download_url":"https://codeload.github.com/numz/Comfyui-FlowChain/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247451652,"owners_count":20940939,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["comfyui","comfyui-nodes","comfyui-workflow","flux","stable-diffusion"],"created_at":"2024-11-28T19:33:29.230Z","updated_at":"2025-04-06T08:11:32.602Z","avatar_url":"https://github.com/numz.png","language":"JavaScript","funding_links":["https://www.patreon.com/Wav2LipStudio","https://buymeacoffee.com/numzzz5"],"categories":[],"sub_categories":[],"readme":"# ⛓️ Comfyui-FlowChain\n\n## 💡 Description\nThis repository includes a set of custom nodes for ComfyUI that allow you to:\n\n - Convert your workflows into nodes\n - Chain your workflows together\n - Bonus: a node to integrate [LipSync Studio v0.6](https://www.patreon.com/Wav2LipStudio) via API (third-party application)\n\n\u003cimg src=\"docs/assets/demo.gif\" width=\"100%\"\u003e\n\n## 🚀 All Nodes\n\n\u003cimg src=\"docs/assets/allnodes.png\" width=\"100%\"\u003e\n\n## 📖 Quick Index\n* [🤔 Why, when the 'convert to group node' option already exists?](#-why-when-the-convert-to-group-node-option-already-exists)\n* [🚀 Updates](#-updates)\n* [🔗 requirements](#-requirements)\n* [💻 Installation](#-installation)\n* [🕸️ Nodes](#-nodes)\n* [🐍 Usage](#-usage)\n* [💪 Special things to know](#-special-things-to-know)\n* [📺 Examples](#-examples)\n* [😎 Contributing](#-contributing)\n* [🙏 Appreciation](#-appreciation)\n* [📜 License](#-license)\n* [☕ Support](#-support)\n\n## 🤔 Why, when the 'convert to group node' option already exists?\nThe idea came from the frustration users experienced with the many limitations and bugs in ComfyUI’s group nodes. While group nodes can seem useful for organizing nodes hierarchically, their actual use often leads to issues. Here are some of the major flaws I aimed to address:\n - **Instability with primitive nodes**: Primitive nodes are often dropped when grouped, making them ineffective in complex workflows.\n - **Issues with dynamic nodes**: Dynamic nodes, such as those with switches or conditional behaviors, tend to lose connections when grouped.\n - **Incompatibility with ControlNet**: When integrating ControlNet nodes into group nodes, the order of inputs and outputs is crucial to avoid reversing results. \n - **Complex node maintenance**: Managing nodes in ComfyUI can quickly become overwhelming, especially when you need to modify the same function multiple times. \n\nBy solving these problems, my tool makes node management more intuitive, stable, and efficient, allowing you to focus on what matters: creating.\n\n## 🚀 Updates\n**2025.03.26**\n\n - 💪 Live update of workflow when modifying a subworkflow, just 1 second after saving the subworkflow. But you need to back and forth to see the changes. if you work on one screen no problem, but if you work on two screens you need to back and forth to see the changes.\n - ↕️ Capability to order inputs and outputs in the workflow node. Order depends on the order of the input/output from top to bottom in the subworkflow.\n - 🛠️ Fixed some instabilities.\n - 🆙 Must work with ComfyUI 1.11.8 and above.\n\n**2025.03.23**\nFirst of all, I apologize for not maintaining the code regularly. ComfyUI has evolved significantly since my last version, so I've completely revised the code to ensure better integration with ComfyUI and avoid future issues.\n\nFeatures in this version:\n- 💪 No need to convert your workflows to API format anymore - you can use original workflows directly.\n- 💪 Better cache management\n- 🗑️ remove \"import workflow\", no longer usefull since working on standart workflow.\n- \n\nWarning and know issue:\n- 🛑 old version will not be compatible, sorry about that\n- ⚠️ The word \"seed\" in input as \"INT\" will break the node so if you wan't use \"seed\" as input prefer to give a name like \"seed_input\" or whatever...\n\n\n**2024.11.01 Initial version features :**\n1 Convert your workflows into nodes\n- ⛓️ Chain your workflow\n- 👄 Extra Node that use [LipSync Studio v0.6](https://www.patreon.com/Wav2LipStudio)\n\n## 🔗 requirements\n\n- **comfyui**: Be sure to have a **ComfyUI front-end** version of at least **1.11.8**. If not, update ComfyUI to the latest version. To find the front-end version, go to ComfyUI settings (the gear icon), click \"About,\" and check the version at the top of the page.\n\n## 💻 Installation\n\n### Method 1: Automatic Installation\n1. Go to the **ComfyUI Manager** and click **Custom Nodes Manager**.\n2. search for **FlowChain** and click **Install**.\n\n### Method 2: Manual Installation\n1. Install [Git](https://git-scm.com/)\n2. Go to folder ..\\ComfyUI\\custom_nodes\n3. Run cmd.exe\n   \u003e **Windows**:\n   \u003e\n   \u003e \u003e **Variant 1:** In folder click panel current path and input **cmd** and press **Enter** on keyboard\n   \u003e \u003e\n   \u003e \u003e **Variant 2:** Press on keyboard Windows+R, and enter cmd.exe open window cmd, enter **cd /d your_path_to_custom_nodes**, **Enter** on keyboard\n4. Then do : \n\n```git clone https://github.com/numz/Comfyui-FlowChain.git```\n\nAfter this command be created folder Comfyui-FlowChain\n\n8. Go to the folder: \n\n```cd Comfyui-FlowChain```\n\n8. Then do:\n\n```pip install -r requirements.txt```\n\n7. Run Comfyui...\n\n## 🕸️ Nodes:\n\n|                                                   | Name                |                                                 Description                                                  | ComfyUI category |\n|:-------------------------------------------------:|:--------------------|:------------------------------------------------------------------------------------------------------------:|:----------------:|\n| \u003cimg src=\"docs/assets/workflow.png\" width=\"100%\"\u003e | _Workflow_          | Node that allows loading workflows. It will show Inputs and Outputs into the loaded Workflows                |   FlowChain ⛓️   |\n|  \u003cimg src=\"docs/assets/Input.png\" width=\"100%\"\u003e   | _Workflow Input_    |                              Node used to declare the inputs of your workflows.                              |   FlowChain ⛓️   |\n|  \u003cimg src=\"docs/assets/output.png\" width=\"100%\"\u003e  | _Workflow Output_   |                             Node used to declare the outputs of your workflows.                              |   FlowChain ⛓️   |\n| \u003cimg src=\"docs/assets/Continue.png\" width=\"100%\"\u003e | _Workflow Continue_ |                                 Node to stop/Continue the workflow process.                                  |   FlowChain ⛓️   |\n| \u003cimg src=\"docs/assets/lipsync.png\" width=\"100%\"\u003e  | _Workflow Lipsync_  |                                   Extra Node to use LipSync Studio via API                                   |   FlowChain ⛓️   |\n\n\n# 🐍 Usage\n\n## ⛓️ Workflow Node\n![Illustration](docs/assets/workflow2.png)\n\nSelect a workflow from the **workflows** dropdown menu. This list displays all compatible workflows saved in your ComfyUI user directory:\n\n`ComfyUI\\user\\default\\workflows`\n\nFor a workflow to be considered **compatible**, it must contain at least one \"Workflow Input\" or \"Workflow Output\" node. This ensures the workflow can properly interface with the FlowChain system.\n\n**Note:** After adding new workflows to this directory, you'll need to refresh the ComfyUI interface (press F5) to see them appear in the dropdown list. But once loaded, it will refresh the parent node automatically\n  \n## ⛓️ Input Node\n![Illustration](docs/assets/input2.png)\n\n- Allow to declare inputs in your workflow.\n- Types available :  **\"IMAGE\", \"MASK\", \"STRING\", \"INT\", \"FLOAT\", \"LATENT\", \"BOOLEAN\", \"CLIP\", \"CONDITIONING\", \"MODEL\", \"VAE\"**\n- Give a Name and select the type.\n- **Default** value is used when debugging your workflow or if you don't plug an input into the **Workflow** node.\n\n- ![Illustration](docs/assets/workflow5.png)\n\n## ⛓️ Output Node\n![Illustration](docs/assets/output1.png)\n\n- Allow to declare outputs in your workflow.\n- Types available :  **\"IMAGE\", \"MASK\", \"STRING\", \"INT\", \"FLOAT\", \"LATENT\", \"BOOLEAN\", \"CLIP\", \"CONDITIONING\", \"MODEL\", \"VAE\"**\n- Give a Name and select the type.\n- **Default** value is used to connect the output.\n\n![Illustration](docs/assets/output2.png)\n\n## ⛓️ Continue Node\n![Illustration](docs/assets/continue1.png)\n\n- Usually associated with a **boolean** input plugged on **\"continue_workflow\"**, allow to \"Stop\" a workflow if **\"continue_workflow\"** is False.\n- Types available :  **\"IMAGE\", \"LATENT\"**\n- Give a Name and select the type.\n- During development of your workflow, If **continue_worflow\" is False it will let pass only 1 image/latent, and if True it will let pass all images/latents.\n\n![Illustration](docs/assets/continue3.png)\n\n- But When a workflow is loaded into the **\"workflow\"** Node, which contain a **\"Workflow Continue\"** node, it will be delete if **continue_workflow** is False. That allow to create conditional situation where you want to prevent computation of some parts.\n\n![Illustration](docs/assets/continue5.png)\n\n## 🔉👄 Workflow LipSync Node\n![Illustration](docs/assets/lipsync2.png)\n\n- Extra Node that allow to use third-party app **[Lipsync Studio v0.6](https://www.patreon.com/Wav2LipStudio)** Via it's API\n- Inputs:\n    - **frames**: Images to compute.\n    - **audio**: Audio to add.\n    - **faceswap_image**: An image with a face to swap.\n    - **lipsync_studio_url**: usually http://127.0.0.1:7860\n    - **project_name**: name of your project.\n    - **face_id**: id of the face you want to lipsync and faceswap.\n    - **fps**: frame per second.\n    - **avatar**: Will be used create a driving video, 10 avatars are available, each give different output result.\n    - **close mouth before Lip sync**: Allow to close the mouth before create the lip sync.\n    - **quality**: Can be **Low, Medium, High**, in High gfpgan will be used to enhance quality output.\n    - **skip_first_frame**: number of frames to remove at the beginning of the video.\n    - **load_cap**: number of frames to load.\n    - **low vram**: allow to decrease VRAM consumption for low pc configuration.\n\nProject will be automatically created into your Lipsync Studio **projects** folder. You can then load it into studio and work directly from studio if the output not good enough for you.\n\n![Illustration](docs/assets/lipsync3.png)\n\n## 💪 Special things to know\n\n the **\"🪛 Switch\"** nodes from [Crystools](https://github.com/crystian/ComfyUI-Crystools) have a particular place in **workflow Node**\n\n![Illustration](docs/assets/crystools.png)\n\nLet's illustrate this with an example:\n\n![Illustration](docs/assets/switch.png)\n\nHere we want to choose between video1 or video2. It depends on the **boolean** value in **Switch Image Node**. The issue here is that both videos will be loaded before Switch. To prevent both videos from being loaded, the **\"workflow node\"** will check the boolean value, remove the unused node, and directly connect the correct value to the preview image.\n\n![Illustration](docs/assets/switch2.png)\n\nThis gives you the ability to create truly conditional cases in your workflows, without computing irrelevant nodes.\n\n# 📺 Examples\n\nComing soon\n\n# 😎 Contributing\n\nWe welcome contributions to this project. When submitting pull requests, please provide a detailed description of the changes. see [CONTRIBUTING](CONTRIBUTING.md) for more information.\n\n# 🙏 Appreciation \n- [Jedrzej Kosinski](https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite) : For the code quality that really inspired me during development.\n\n\n# ☕ Support\n\nthis project is open-source effort that is free to use and modify. I rely on the support of users to keep this project going and help improve it. If you'd like to support me, you can make a donation on my [buy me a coffe](https://buymeacoffee.com/numzzz5) or [Patreon page](https://www.patreon.com/Wav2LipStudio). Any contribution, large or small, is greatly appreciated!\n\nYour support helps me cover the costs of development and maintenance, and allows me to allocate more time and resources to enhancing this project. Thank you for your support!\n\n[![](https://www.buymeacoffee.com/assets/img/guidelines/download-assets-sm-1.svg)](https://buymeacoffee.com/numzzz5)\n\n[patreon page](https://www.patreon.com/Wav2LipStudio)\n\n# 📜 License\n* The code in this repository is released under the MIT license as found in the [LICENSE file](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumz%2Fcomfyui-flowchain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnumz%2Fcomfyui-flowchain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnumz%2Fcomfyui-flowchain/lists"}