Nodes/ComfyUI-Apt_Preset/basicIn_img_INOUT
ComfyUI Node

basicIn_img_INOUT

The least exciting node in the pack, on purpose

By cardenluo·Created 2 years ago·Updated a day ago· 332
basicIn_img_INOUT
  • image
  • image

Some nodes are worth an article because they do something clever. This one is worth a short one because its job is to be boring in a useful place.

basicIn_img_INOUT has one optional input, image, of type IMAGE, and one output, image, of the same type. The function is pass_through and it returns the tensor you gave it. That's the entire node. It's not a bug and it's not a stub - it's a port, and the pack ships a whole family of them under the Apt_Preset/IO_Port menu: basicIn_Seed, basicIn_Sampler, basicIn_Scheduler, basicIn_string, basicIn_int, basicIn_float. Same idea, different types.

Why a pass-through is a real node

ComfyUI's plumbing problem is repetition. You have an image you want to use as an init, a mask source, a comparison reference and a tilt-shift reference; four wires, four places to change when you swap the image. A port node collapses that to one place: drop the node at the head of the graph, label it "Input Image", connect it to everything downstream, swap the picture once.

The second half of the value is legibility. A workflow that starts with a named port and ends with a preview reads like a document instead of like a diagram of its own wiring. The knowledge base's node-plumbing doc puts the whole category as fighting two problems - repetition and illegibility - and this node is the most literal possible version of the first one.

Then there's the failure mode it prevents. The input is optional, so leaving it unconnected is legal: the node runs and hands None downstream. You get one clean error at the node that actually needed the image, instead of hunting for which wire you forgot to attach.

When you don't need it

If you've already got rgthree's reroutes and group muters in your muscle memory, a labeled reroute does most of this and you already have it. And core ComfyUI's Primitive nodes do the same fan-out for values. The case for this node is narrow but real: you want a visible input socket with a name at the top of a graph, and you'd rather have the pack's own port than a reroute that looks identical to every other reroute you own. Bonus in this pack specifically - the flow workflows are built around labeled stage boundaries and shared hubs, so a consistent port node keeps the visual language the same across the graph.

Installing it

It's not a standalone download; it's part of the pack:

cd ComfyUI/custom_nodes
git clone https://github.com/cardenluo/ComfyUI-Apt_Preset
pip install -r ComfyUI-Apt_Preset/requirements.txt

Restart ComfyUI and look under Apt_Preset → IO_Port. Manager users can search the pack by title and hit install.

Things that trip people up

Nothing in this node is clever, so most of the surprises come from what it doesn't do. It won't coerce types - if you feed it a LATENT, you won't see it complain, you'll see it pass a latent into whatever you connected next and get an error there. It won't batch, resize, or copy anything; the image arrives and leaves unchanged. And leaving it empty isn't a hidden default image - it's None, so a workflow that "worked yesterday" with a nice picture can fail today because you unplugged the port while tidying up.

For anything past that, the answer is almost always somewhere else in the graph.

CategoryApt_Preset/IO_Port

Inputs (1)

NameTypeDefaultDescription
imageoptIMAGE

Outputs (1)

NameTypeDescription
imageIMAGE