ComfyUI: understand, install, troubleshoot

Custom nodes: the ComfyUI extensions

What a community extension adds, what it costs in dependencies and compatibility, how to choose one, how to install it properly and how to find the one that breaks.

Custom nodes are the ComfyUI extensions written by the community: each one adds an operation the core software does not perform, at the price of one more dependency and a compatibility to check at every update. You choose an extension the way you choose a living repository: maintained, followed, installed by cloning that repository and not by copying a frozen folder, so you know where every building block comes from and can keep it up to date. At Axiris, when a function is missing, we write our own node rather than piling up extensions.

What an extension adds

ComfyUI ships with a set of built-in nodes, maintained along with the software. A custom node is an extension written by someone else: it adds to the graph one or more operations the core does not perform, such as a new type of model, a correction method, a video process or a convenience tool.

This is what makes the ecosystem so rich. Most advanced uses go through at least one extension, and most shared workflows assume several.

What an extension costs

An extension is never free for the installation that receives it.

One more dependency. It often brings its own Python libraries, sometimes a specific version, sometimes in conflict with the one another extension requires. Two extensions that each demand a different version of the same library cannot coexist without arbitration.

A compatibility to check at every update. The ComfyUI core moves fast. An extension that worked yesterday may no longer load after a software update, or the reverse: the extension changes, and the workflow that used it renders something else, without any error. A misaligned graph does not always crash; it may simply produce a different result.

Code running on your machine. An extension runs with the same rights as ComfyUI. Where it comes from matters.

How to choose

Before installing, look at three things.

Is the repository alive: maintained, updated when ComfyUI changes, with issues reported and dealt with? An abandoned repository is a breakdown waiting to happen.

Does it do one thing you cannot do otherwise? An extension that duplicates a core node adds a dependency for nothing.

What does it require in terms of libraries, and are they compatible with what is already installed?

Installing properly: clone, do not copy

An extension is installed by cloning its repository, through the Manager or by hand, and not by copying a folder picked up somewhere. The difference is not a detail: a copy is a frozen version that does not say it is one. You no longer know where it came from, you cannot update it, and the day it breaks, you do not know what you are comparing.

A clone knows where it comes from. It updates, it compares itself to its origin, and when two versions behave differently, you can say which one changed. At Axiris, this is a studio rule: we know where every building block comes from.

When an extension breaks

The launch console tells you which extensions loaded and which failed, and why: a missing library, an incompatible version, an error in the code. That is where you read, before touching anything.

When the problem appears after an installation or an update, disable the extensions to find out whether the failure comes from the core or from one of them, then re-enable them one by one. An update is not a repair: you look for the cause, you do not replace one extension with another to silence the error. The full method is in Troubleshooting ComfyUI.

When the function does not exist

Sometimes no extension does what a workflow asks for, or it does so at the price of a dependency you do not want. At Axiris, we then write our own node: a building block we understand, maintain and can deliver with the workflow.

Official references: Documentation: Custom Nodes · Custom node troubleshooting.

Is an extension blocking you, or is a function missing? Contact request: a first conversation, free and with no commitment. Every practice is different; it is by listening to you that we propose what suits you.