Nodes/houdini-comfyui-bridge/Copy Input to Output
ComfyUI Node

Copy Input to Output

The file shuttle between Houdini and ComfyUI — Copy Input to Output

By CapybaraCrowporation·Created 10 months ago·Updated 3 months ago· 110
Copy Input to Output
    • rel
    in_rel_path

    If you're not running the Houdini ComfyUI Bridge, this node looks like a joke: one string in, one string out, and somewhere in the middle it copies a file. But the name tells you the whole story - it copies a path that's relative to ComfyUI's input/ folder over to the output/ folder, keeping the subfolder structure intact. That's the bridge's handoff step, the bit where a file stops being "Houdini's input to ComfyUI" and becomes "ComfyUI's result that Houdini can go read."

    Here's the workflow shape it's built for. The bridge treats ComfyUI's input/ directory as an exchange zone: Houdini writes reference images, prompts, and parameters there, ComfyUI reads them, runs the graph, and saves results to output/. When a compound graph needs an intermediate file to survive to the output side - without re-encoding it through an image node - HouCuiCopyInputToOutput is the blunt instrument for the job. It's a filesystem copy, nothing clever, and that's the point.

    How it works

    The node takes in_rel_path - a path relative to the input directory - and does three things in process():

    1. builds the destination path as output/ joined with your path,
    2. creates any parent directories that don't exist yet,
    3. copies the file with shutil.copy2 (so file metadata comes along).

    The single output, rel, just hands your input string back to you. Don't overthink it - it's there so you can chain the node into downstream string consumers without re-typing the path.

    The gotcha that will bite you

    The node returns the input-relative path, even though the file now lives in output/. If you wire that rel output into a node that assumes paths are output-relative, it'll look in the wrong directory and fail confusingly. And if the source file doesn't exist, shutil.copy2 throws a FileNotFoundError that kills the whole queue - so make sure whatever upstream node wrote the file has actually run. The bridge normally orders this correctly inside its compound graphs; when you hand-build your own workflow and this node fires early, those are the two failure modes you'll meet.

    Installing it

    This is one of seven helper nodes in houdini-comfyui-bridge (CapybaraCrowporation/houdini-comfyui-bridge), a community project - not a SideFX initiative, despite the name - by Rafael Drelich Valentim and Anatolii Iudanov, open-sourced at the end of 2025 and presented at SIGGRAPH Asia 2025. It's GPL-3.0, free for commercial use.

    For the ComfyUI side alone:

    cd ComfyUI/custom_nodes
    git clone https://github.com/CapybaraCrowporation/houdini-comfyui-bridge
    

    Then restart ComfyUI (or install "houdini-comfyui-bridge" via ComfyUI Manager). There's no requirements.txt and no model download - the ComfyUI half of this pack has essentially zero dependencies. The heavy part is the Houdini plugin (OTLs dropped into your Houdini userdir or HOUDINI_PATH), which you'll want before any of this makes sense. One setup trap the docs warn about: ComfyUI Desktop defaults to port 8000 while standalone ComfyUI and the Houdini nodes default to 8188 - if Houdini can't find ComfyUI, that mismatch is usually why.

    Should you reach for it?

    In a pure ComfyUI graph, no - you'd never need it. Its entire reason to exist is the Houdini bridge's input/output exchange. If you're here because you googled the node after a bridge workflow went sideways, the file-copying behavior above is everything the node does; debug from the "does the source file exist in input/" angle first.

    Categorysd

    Inputs (1)

    NameTypeDefaultDescription
    in_rel_pathSTRINGrelative input path

    Outputs (1)

    NameTypeDescription
    relSTRING