Local visual workflows · Updated October 17, 2026
ComfyUI logo

ComfyUI review: keep a workflow you can run again

Choose ComfyUI when you want a reusable local image or video workflow and are willing to maintain its models and nodes. The visual graph helps you inspect each step, but opening a shared workflow does not install everything it needs.

Before running an imported file, answer two questions: which dependencies are missing, and which nodes send data away? A local interface can still call an external model.

Official sources checked · Oct 17Example PNG metadata inspectedNo generation score
Evidence and its limits

This revision checks official documentation and source code on October 17, 2026, and inspects the text metadata in one official example PNG. No ComfyUI installation, workflow execution, generation, paid API session or network audit was performed. The proposed run check below remains unperformed.

The graph earns its keep when you reuse the process

ComfyUI connects model loading, prompting, generation, processing and saving as nodes. You can save that graph as JSON and edit it later. The value is an inspectable process: for example, keeping the same image-to-image setup while changing one input or setting. Official workflow guide.

I would choose it for a process I expect to repeat or extend. If the goal is an occasional image with minimal setup, managing node packages and model files may cost more attention than the extra control is worth. Compare the local AI options around the task you actually need.

The local core is free and open source; optional hosted services are separate. That does not remove hardware, storage or maintenance costs. Nor does an open-source engine establish a model’s permitted uses: check the licenses of the models and extensions you install. Comfy’s terms distinguish its OSS licenses from its commercial products.

Find the missing layer before installing more nodes

A workflow file describes connections and settings. It relies on other files and software. Comfy’s dependency guide separates media assets, models, custom nodes and Python packages. Use that distinction to choose the next check.

  1. Input media

    The graph opens, but the input is missing

    Find the image, mask, audio or video named by its loader. Select your own rights-cleared file; the workflow does not supply the original asset.

  2. Models

    A loader cannot find its file, or model shapes conflict

    Check the file and its model folder first. Then check that the checkpoint, VAE and other model components belong to compatible families. An unrelated node pack will not choose compatible components for you. Model troubleshooting.

  3. Node code

    The required node type is absent

    First check whether it is a core node missing from your installed engine release. For a custom node, identify its package from the workflow author’s instructions. Read its README and review the source and author before installing executable code. Installation and trust guidance.

  4. Python packages

    The node is installed, but startup reports import failed

    Read that startup error and the package’s requirements. Install dependencies in the Python environment that runs ComfyUI, then restart and refresh. A different system Python does not repair that environment. Environment and restart steps.

A red or missing node is a starting clue, not a complete diagnosis. Keep the original file, record the first relevant error and change one dependency at a time. Otherwise a second installation can hide the cause while adding another conflict.

Proposed check: separate a broken import from a broken setup

Not run for this review. Use a neutral brief such as a ceramic cup on a wooden table, with no private inputs.

  1. Back up the setup and save a copy of the imported workflow. Record its failing node and exact error.
  2. Open a small official template for a model you already have. Confirm that it uses core nodes and that the listed model files are present. Run one image before adding extensions. Starting with templates.
  3. If the core example works but the import fails, compare the import’s four dependency layers above. This narrows the problem; it does not prove every installed extension is compatible.
  4. If the interface itself is broken, use Comfy’s custom-node isolation guide. Test a core-only example with custom nodes disabled, then re-enable groups to narrow the cause.

A workflow that requires custom nodes is expected to fail when they are disabled. Its failure is not evidence that ComfyUI core is broken. Record whether the same error persists in the core-only example.

Local core, Partner Nodes and Cloud are different execution paths

Follow the nodes that actually execute. A workflow can combine local processing with remote generation; the browser address or desktop window alone does not tell you where every input goes.

What changes when the workflow crosses a service boundary
PathWhere the work goesWhat to check
Local model nodesYour own machine runs the selected model.Model files, licenses, hardware fit and any extension’s network behavior. “Local” is not an audit of custom code.
Partner NodesExternal model providers receive inputs through Comfy’s service.Paid API use, provider policies and retention. The official FAQ says do not submit NSFW content to API nodes.
Comfy CloudComfy hosts and runs the workflow remotely.Its current service terms, storage and billing. Do not carry assumptions from a local installation into hosted use.

Sources: local and hosted product scope, Partner Node input and content rules, and Comfy’s service and third-party terms. The Partner Node restriction is not a claim about every local model or a substitute for checking Cloud policy.

Use the current switches for the boundary you intend

For a manual installation, the documented options include python main.py --disable-partner-nodes to disable Partner Nodes, or python main.py --offline to also restrict the frontend’s internet communication through a Content-Security-Policy header. These are separate alternatives. Partner Node controls; current argument definitions.

--offline is not a firewall around Python or custom nodes. It does not establish that the backend cannot make network requests. The October 5 v0.39.0 release notes introduced these switch names and deprecated --disable-api-nodes. That old name is now an alias for --offline; check the options supported by your installed version.

Comfy says Partner Node input and output media in its cloud buckets are deleted after 24 hours. Download outputs you want to keep before their URLs expire. That window describes Comfy-managed media storage; it does not establish third-party provider retention or deletion of every account record. Media retention; broader data and provider terms.

If you use paid nodes for permitted work, check each job’s cost. The FAQ warns that a run can temporarily take credits below zero when its cost exceeds the remaining balance. A prepaid balance is not a guaranteed hard spending cap.

A recoverable PNG can also reveal the workflow you meant to keep

ComfyUI can embed a graph in an output file. Its workflow field holds the canvas graph; prompt holds the execution nodes and inputs. Copying that file can copy the embedded settings too. The model weights, input media and custom-node packages are not bundled with them. Official metadata guide.

Static file inspection · October 17, 2026

One official example carries more than visible pixels

We inspected the PNG text chunks in this official img2img example without executing its workflow. It contains an eight-node graph and an execution prompt, including input and checkpoint filename references.

Metadata fields
workflow + prompt
Graph nodes
8
Input reference
example.png

This establishes what is embedded in that file. It does not establish a successful restore, include the referenced assets, or measure current model quality. The example’s old checkpoint is not a model recommendation.

Keep a separate JSON workflow before turning metadata off. Archive its required assets and model and node versions alongside it. For a sharing copy, inspect the actual file’s metadata and visible content before uploading; do not assume that a website or image editor removed the settings.

In Desktop, use Settings → Server-Config → Disable saving prompt metadata in files. For a manual installation, the option is python main.py --disable-metadata. This changes later saves through the standard path; it does not strip existing files. Custom save nodes and formats can differ. Saving controls and format limits.

Update from a known working baseline

Record the engine, node packages and model filenames before changing them. Keep the JSON workflow, inputs and a known output together. A fixed seed alone is not a complete record of the environment.

Desktop’s app update is separate from its ComfyUI engine update. The current guide places engine updates in the instance’s Manage → Update panel, with Stable as the default channel. Portable has separate stable and development update scripts. Follow the instructions for your distribution instead of assuming every “latest” label means the same build. Official update guide.

The Portable script update_comfyui_and_python_dependencies.bat reinstalls dependencies and can break custom-node package pins. Back up the installation first; use it for an identified dependency need, not as the first response to an unexplained missing node. After an update, reopen and run your small baseline before returning to a larger workflow.

Start with one workflow whose dependencies you can name

Pick a small official template for a model you can run, identify its required files and confirm whether any step uses an external service. Save a separate JSON copy. Then add only the extension your next real task needs.

ComfyUI is a good fit when that maintained process is the benefit. If you cannot explain where a node runs or why a package is needed, resolve that question before installing it or sending a private input.

Start with ComfyUI’s workflow guide ↗