/ComfyUI-Light

The most powerful and modular stable diffusion GUI, api and backend with a graph/nodes interface.

Primary LanguageJavaScriptGNU General Public License v3.0GPL-3.0

ComfyUI

A light version of ComfyUI to setup a simple js/python nodal interface with customizable nodes

ComfyUI Screenshot

This light version of ComfyUI will let you design and execute python pipelines using a graph/nodes/flowchart based interface.

Features

  • Nodes/graph/flowchart interface to experiment and create python pipeline workflows without needing to code anything.
  • Asynchronous Queue system
  • Many optimizations: Only re-executes the parts of the workflow that changes between executions.
  • Loading full workflows (with seeds) from generated PNG files.
  • Saving/Loading workflows as Json files.
  • Nodes interface can be used to create complex workflows
  • Starts up very fast.
  • Works fully offline: will never download anything.

Shortcuts

Keybind Explanation
Ctrl + Enter Queue up current graph for generation
Ctrl + Shift + Enter Queue up current graph as first for generation
Ctrl + Z/Ctrl + Y Undo/Redo
Ctrl + S Save workflow
Ctrl + O Load workflow
Ctrl + A Select all nodes
Alt + C Collapse/uncollapse selected nodes
Ctrl + M Mute/unmute selected nodes
Ctrl + B Bypass selected nodes (acts like the node was removed from the graph and the wires reconnected through)
Delete/Backspace Delete selected nodes
Ctrl + Delete/Backspace Delete the current graph
Space Move the canvas around when held and moving the cursor
Ctrl/Shift + Click Add clicked node to selection
Ctrl + C/Ctrl + V Copy and paste selected nodes (without maintaining connections to outputs of unselected nodes)
Ctrl + C/Ctrl + Shift + V Copy and paste selected nodes (maintaining connections from outputs of unselected nodes to inputs of pasted nodes)
Shift + Drag Move multiple selected nodes at the same time
Ctrl + D Load default graph
Q Toggle visibility of the queue
H Toggle visibility of history
R Refresh graph
Double-Click LMB Open node quick search palette

Ctrl can also be replaced with Cmd instead for macOS users

Installing

Manual Install (Windows, Linux)

Git clone this repo.

Dependencies

Install the dependencies by opening your terminal inside the ComfyUI folder and:

pip install -r requirements.txt

After this you should have everything installed and can proceed to running ComfyUI.

Running

python main.py

Notes

Only parts of the graph that have an output with all the correct inputs will be executed.

Only parts of the graph that change from each execution to the next will be executed, if you submit the same graph twice only the first will be executed. If you change the last part of the graph only the part you changed and the part that depends on it will be executed.

Dragging a generated png on the webpage or loading one will give you the full workflow including seeds that were used to create it.

You can use () to change emphasis of a word or phrase like: (good code:1.2) or (bad code:0.8). The default emphasis for () is 1.1. To use () characters in your actual prompt escape them like \( or \).

You can use {day|night}, for wildcard/dynamic prompts. With this syntax "{wild|card|test}" will be randomly replaced by either "wild", "card" or "test" by the frontend every time you queue the prompt. To use {} characters in your actual prompt escape them like: \{ or \}.

Dynamic prompts also support C-style comments, like // comment or /* comment */.

QA

Why did you make this?

I wanted simple and extensible js/python nodal interface and beeing able to grab some util custom nodes made by ComfyUI devs.