Nodes/ComfyUI S4Tool Text/💀Text Font URL
ComfyUI Node

💀Text Font URL

Pull any font from the internet without storing the file

By S4MUEL-404·Created about a year ago·Updated about a year ago· 4
💀Text Font URL
    • font
    â—„font_urlâ–º

    The file loader needs the font on disk; the Base64 loader needs it pasted in. S4Tools Text Font URL is the third option: give it a link to a .ttf or .otf file and it downloads the font right into the graph, no storage, no pasting. It's the "I saw a cool font on a site and want to try it right now" node - you grab the URL, drop it in, and the font appears in your text node on the next run.

    It's also the right answer when you can't touch the machine's filesystem at all, or when you're building a workflow around a font you don't want to redistribute (for licensing reasons, say - you reference the URL instead of shipping the font file in the repo).

    How it works

    The node hits your URL with requests (20-second timeout), raises if the request fails, and wraps whatever comes back as FONT_DATA for S4Tools Text Basic. On a blank URL it raises "Empty font url"; on a failed download it raises "Unable to download font: ..." with the underlying error attached. Nothing is cached - every execution downloads the font fresh.

    Inputs and outputs

    • font_url - a plain string field. Point it at a direct .ttf/.otf file.
    • font - the downloaded bytes as FONT_DATA, into Basic's font input.

    Install

    Same shared path as the pack's other nodes: ComfyUI Manager → search "ComfyUI S4Tool Text" → install, or git clone https://github.com/S4MUEL-404/ComfyUI-S4Tool-Text into ComfyUI/custom_nodes/ and restart. This is the one node in the pack that actually needs requests at runtime - which is near-universally installed in ComfyUI environments anyway, so don't sweat it.

    Gotchas

    • It re-downloads on every run. This is the big one. The workflow needs working internet every time you execute, not just once. Offline, or a flaky connection, and the run dies with "Unable to download font." If you're iterating on a design, this node is a poor fit - use it to fetch a font you like, then switch to Text Font file for the actual work.
    • It must be a direct font file URL, not a page or a CSS endpoint. Google Fonts' usual links serve CSS (or a page) - those are not fonts and will fail downstream. Use a raw file URL, e.g. https://raw.githubusercontent.com/.../SomeFont.ttf or a CDN link that ends in .ttf/.otf. The 20-second timeout also means slow CDNs can give up before the file arrives; a big CJK font from a slow mirror might not make it.
    • No content validation here either - if the URL returns HTML (like an error page served with a 200), that junk becomes your "font" and Text Basic is where it explodes.

    It's the most situational of the three font loaders. When you have a direct file URL in hand and want zero setup, it's great. For a workflow you'll run more than once, fetch once, then pin it locally with the file loader.

    Category💀S4Tool

    Inputs (1)

    NameTypeDefaultDescription
    font_urlSTRING—

    Outputs (1)

    NameTypeDescription
    fontFONT_DATA—