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.
Input media
The graph opens, but the input is missingFind the image, mask, audio or video named by its loader. Select your own rights-cleared file; the workflow does not supply the original asset.
Models
A loader cannot find its file, or model shapes conflictCheck 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.
Node code
The required node type is absentFirst 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.
Python packages
The node is installed, but startup reportsimport failedRead 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.
- Back up the setup and save a copy of the imported workflow. Record its failing node and exact error.
- 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.
- 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.
- 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.
| Path | Where the work goes | What to check |
|---|---|---|
| Local model nodes | Your 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 Nodes | External 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 Cloud | Comfy 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.
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.
