Nodes/ComfyUI_Eclipse/IO Load Image
ComfyUI Node

IO Load Image

Read and write the whole load-image context through one pipe socket

By r-vageΒ·Created 10 months agoΒ·Updated a day agoΒ· 31
IO Load Image
  • pipe
  • image
  • mask
  • sampler_name
  • scheduler
  • pipe
  • image
  • mask
  • width
  • height
  • text_pos
  • text_neg
  • steps
  • cfg
  • sampler_name
  • scheduler
  • seed
  • model_name
  • base_path
  • filepath
  • filename
  • source_name
β—„widthβ€”β–Ί
β—„heightβ€”β–Ί
β—„text_posβ€”β–Ί
β—„text_negβ€”β–Ί
β—„stepsβ€”β–Ί
β—„cfgβ€”β–Ί
β—„seedβ€”β–Ί
β—„model_nameβ€”β–Ί
β—„base_pathβ€”β–Ί
β—„filepathβ€”β–Ί
β—„filenameβ€”β–Ί
β—„source_nameβ€”β–Ί

Eclipse's whole design philosophy is "bundle ten wires into one pipe." IO Load Image is where that idea meets image loading: it's a single node that can both read from and write to a pipe holding everything a load-image step might carry - the image, its mask, its dimensions, prompts, sampler settings, seed, model name, and file paths. One socket in, seventeen named outputs out. If you've been building Eclipse pipe workflows, this is the node that lets you peek inside the pipe and pull individual fields out for the rest of your graph.

How the read/write trick works

The core mechanic is precedence: direct inputs override pipe values; the pipe fills in anything not provided. Connect a pipe and it supplies the defaults for every field; wire a specific input - say width - and your wired value wins for that field. So you can do surgery on a pipe without rebuilding it: take the pipe, override one value, and the output pipe carries the rest through untouched. The README's pipe docs call this "inspection/editing," and that's exactly right - it's the load-image context inspector.

Every one of the seventeen slots is optional, which is the other half of the design. Nothing is required. You can feed it just a pipe and it mirrors the pipe's contents out, or feed it just an image and it fills in everything else with defaults. All seventeen come back out on the output side as named sockets: pipe, image, mask, width, height, text_pos, text_neg, steps, cfg, sampler_name, scheduler, seed, model_name, base_path, filepath, filename, source_name. The sampler_name and scheduler slots are wildcard-typed (*) since a sampler settings pipe can carry various configurations.

The inputs that matter

  • pipe - the context/pipe to read from and patch. The heart of the node.
  • image / mask - the image data and its mask, if you're supplying them directly rather than through a pipe.
  • width / height - dimensions, useful to force or read back.
  • seed, steps, cfg, text_pos, text_neg - the generation parameters that travel with an image, e.g. for metadata-driven workflows.
  • model_name, base_path, filepath, filename, source_name - file identity, handy when the pipe came from a folder loader and you want the actual path.

Where it fits

This node lives at the boundary between Eclipse's pipe ecosystem and the parts of your workflow that still want individual wires - a text encoder that needs text_pos, a sampler that needs steps and seed, a save node that wants filename. Instead of splitting a pipe apart with multiple extraction nodes, you drop one IO Load Image in and pull exactly the fields you need. It's also the natural place to set values before feeding a pipe downstream: override the seed, push the patched pipe onward.

Install

Part of ComfyUI_Eclipse:

cd ComfyUI/custom_nodes
git clone https://github.com/r-vage/ComfyUI_Eclipse

Or install ComfyUI_Eclipse via ComfyUI Manager and restart. No models, no heavy deps. If you're not building pipe-based workflows yet, this node will feel like a lot of sockets for a little job - that's fine. It exists for the day your graph outgrows individual wires, and when that day comes, it'll be waiting.

CategoryπŸŒ’ Eclipse/ Pipe

Inputs (17)

NameTypeDefaultDescription
pipeoptPIPEOptional input for 'pipe'.
imageoptIMAGEOptional input for 'image'.
maskoptMASKOptional input for 'mask'.
widthoptINTOptional input for 'width'.
heightoptINTOptional input for 'height'.
text_posoptSTRINGOptional input for 'text_pos'.
text_negoptSTRINGOptional input for 'text_neg'.
stepsoptINTOptional input for 'steps'.
cfgoptFLOATOptional input for 'cfg'.
sampler_nameopt*Optional input for 'sampler_name'.
scheduleropt*Optional input for 'scheduler'.
seedoptINTOptional input for 'seed'.
model_nameoptSTRINGOptional input for 'model_name'.
base_pathoptSTRINGOptional input for 'base_path'.
filepathoptSTRINGOptional input for 'filepath'.
filenameoptSTRINGOptional input for 'filename'.
source_nameoptSTRINGOptional input for 'source_name'.

Outputs (17)

NameTypeDescription
pipePIPEβ€”
imageIMAGEβ€”
maskMASKβ€”
widthINTβ€”
heightINTβ€”
text_posSTRINGβ€”
text_negSTRINGβ€”
stepsINTβ€”
cfgFLOATβ€”
sampler_name*β€”
scheduler*β€”
seedINTβ€”
model_nameSTRINGβ€”
base_pathSTRINGβ€”
filepathSTRINGβ€”
filenameSTRINGβ€”
source_nameSTRINGβ€”