Nodes/ComfyUI_LiteLLM/LLLMInterpretUrl
ComfyUI Node

LLLMInterpretUrl

LLLMInterpretUrl grabs text and links for you

By Hopping-Mad-Games·Created 2 years ago·Updated 11 months ago· 7
LLLMInterpretUrl
  • url_list
  • STRING
  • LIST
urlhttp://127.0.0.1:3389/infer
get_what
headersContent-Type:application/json

The most boring, genuinely useful task in any "LLM reads the web" workflow is turning a URL into text your model can actually digest. That's LLLMInterpretUrl. Point it at a page and it returns either the visible text (great for feeding a completion node), the links, or a parsed article - as a string and a list.

Yes, the display name is "LLLMInterpretUrl" with three L's. The author leans into the "LiteLLM" typo; you'll find it in the node menu by that exact name.

How it works

The node has three moving parts worth knowing:

  • url - the page to fetch. Note the default is http://127.0.0.1:3389/infer, i.e. a local inference server. Unless you're running something on that port, type a real URL.
  • get_what - the extraction mode: text (all visible text on the page), links (every anchor as a ("label", "href") pair), urls, or article (parsed title + content as markdown, via the article-parser library).
  • url_list - optional. Give it a LIST of URLs and the node fetches them all (concurrently, with a cap of 5 in flight) and joins the results. If it's empty, it falls back to your single url.

There's also a headers input with a default of Content-Type:application/json, and here's a quirk worth knowing: the fetch code doesn't actually send those headers yet. The field exists, the request doesn't use it. If you genuinely need custom headers (auth, user-agent), this node isn't there yet - patch it or fetch the content another way.

Under the hood it's aiohttp for fetching, BeautifulSoup for the text/link extraction, and article-parser for article mode. Outputs are STRING (the joined result, or the single URL's result) and LIST (the per-URL results). So wire STRING into a completion node's prompt/messages, or keep LIST around if you want per-page granularity.

A real gotcha: the dependencies aren't declared

beautifulsoup4 and article-parser are imported by this node's code, but neither is in the pack's requirements.txt. On a fresh install the pack loads fine, then this node throws ModuleNotFoundError the first time you run it. Fix it once:

cd ComfyUI/custom_nodes/ComfyUI_LiteLLM
pip install beautifulsoup4 article-parser

(aiohttp is covered by the requirements, so only these two are usually missing.)

Where people trip

  • The sleeps. After fetching, the node sleeps 10 seconds per batch of 5 URLs. On a 20-URL list that's a deliberate ~40-second pause. It's there to be polite to servers, not a hang - don't kill the run.
  • Links mode is weird on purpose. The links come back formatted as Python-looking tuple strings (("label", "href")) so you can eval them downstream if you're building something programmatic. That's by design, but it surprises people expecting plain hrefs.
  • Single-page mode returns STRING, and LIST is the same content wrapped. Don't double-count; they're the same data in two shapes so you can wire either type.

Installing

Pack-level: ComfyUI Manager → search "LiteLLM" (repo Hopping-Mad-Games/ComfyUI_LiteLLM) → Install → Restart, or clone into ComfyUI/custom_nodes and pip install -r requirements.txt. Then run the two pip installs above before first use. No API key needed for this node itself - it's just an HTTP fetcher - but the moment its output hits a completion node, the key rules for whatever model you chose apply (environment variables, never in the graph).

It's a niche tool, but if you're building "summarize these links into a shot list" workflows it's the missing fetch step. Just budget for the extra installs and that fixed 10-second-per-batch pacing.

CategoryETK/LLM/LiteLLM

Inputs (4)

NameTypeDefaultDescription
urlSTRINGhttp://127.0.0.1:3389/infer
get_whatCOMBO4 options: text, links, urls, article
headersoptSTRINGContent-Type:application/json
url_listoptLIST

Outputs (2)

NameTypeDescription
STRINGSTRING
LISTLIST