Nodes/ComfyUI-FindIt/PlaceHolderNode
ComfyUI Node

PlaceHolderNode

A tiny file-reader whose name tells the whole story

By silveroxides·Created 2 years ago·Updated 2 years ago· 0
PlaceHolderNode
    • STRING
    search_path
    search_file

    The name is not being modest. This is a placeholder, from a pack (ComfyUI-FindIt) that is basically one node, version 0.0.4, and sits in ComfyUI's _for_testing category. What it does, stripped down: you give it a folder path and a filename, it reads that text file line by line, and hands the whole thing back to your graph as a single STRING. That's the entire feature list. It's the author's test bench, and knowing that up front saves you from hunting for a search-UI that isn't there.

    Why you'd reach for it

    Honestly? Most people won't need this. It's not a search tool in the "find me an image" sense - it's a "dump this file's text into my workflow" tool. Legit uses are narrow: pulling a config, a log, or a saved prompt file into the graph so a downstream text node can do something with it, or poking at how file I/O behaves inside ComfyUI.

    The pack comes from silveroxides, who is a real name in this scene - the same person behind the Chroma-GGUF quants that get shared in workflow threads constantly. This node is a side experiment, not the polished part of their output. Set expectations accordingly and it's fine.

    How it works

    Two inputs, both multiline STRING, both self-explanatory in the tooltips:

    • search_path - the directory to search.
    • search_file - the filename to look for.

    The mechanism: the node calls ComfyUI's own folder_paths.recursive_search() to list everything under search_path, then looks for your filename in that list. When it finds a match, it opens the file, numbers each line, and returns the whole thing as one string. That's the whole pipeline.

    The catch is where people get burned. It searches recursively, but then opens the file at the literal search_path + "/" + search_file path - it never builds the path from the actual search result. So if your file lives in a subfolder, the search "finds" it and then the open() blows up anyway. The file has to sit directly in the folder you named. Also expect a wall of console spam: it prints the entire directory listing plus every line as it reads.

    The "exfiltrate" thing is not a joke you should skip

    The method is literally named exfiltrate(). This node reads any text file you point it at and returns its contents as a string - meaning those contents travel through the graph and can land in anything downstream, including a saved output. ComfyUI workflows are shared as JSON files. A workflow that points this node at your ComfyUI API key, your SSH keys, or any other sensitive text file will happily read it and hand it to a text-display or save node. It's not remote code execution - the path is just a user input, and it only reads what you tell it to - but it's the reason you never load a workflow from someone you don't trust that has this node wired to an unexpected path. And it's text-only: point it at a binary file and you get a UnicodeDecodeError, not a clever fallback.

    Install

    Same story as any pack, and it's on the Comfy Registry. Via Manager, search "ComfyUI-FindIt" (or the publisher silveroxides), install, restart. Or the manual way:

    cd ComfyUI/custom_nodes
    git clone https://github.com/silveroxides/ComfyUI-FindIt
    

    Then restart ComfyUI. That's the whole install - there are no dependencies beyond ComfyUI itself (the only import is ComfyUI's own folder_paths) and no model downloads. License is GPL-3.0.

    Troubleshooting

    • "File not found" even though the search found it - the file needs to be directly inside search_path, not a subdirectory. The recursive search sees it; the open() can't reach it.
    • UnicodeDecodeError or garbage output - binary file. Text files only.
    • Can't find the node in the menu - look under the _for_testing section in the add-node menu. That's where it lives by design, not a broken install.
    • The node spams the console - expected. It's debug code.

    Verdict

    For a flat directory and a text file, it works, and the STRING output wires into any text consumer - a preview node or a save-text node. For anything more, it's the wrong tool: there are mature text-preview and file nodes in bigger packs, and if you're doing real file work you're probably better off outside ComfyUI anyway. It's a placeholder that reads files. If that's exactly what you needed today, great - otherwise let it stay on the test bench where its author left it.

    Category_for_testing

    Inputs (2)

    NameTypeDefaultDescription
    search_pathSTRINGThe path to search.
    search_fileSTRINGThe file to search for.

    Outputs (1)

    NameTypeDescription
    STRINGSTRING