Model or dataset
filliptm/ComfyUI_Fill-Nodes avatar
filliptm/ComfyUI_Fill-Nodes

ComfyUI Fill-Nodes: one Python node pack bundling image tools and hosted model APIs

Large Node Pack for ComfyUI

652 stars63 forksPythonApache-2.0

At a glance

What is it?
Fill-Nodes is a ComfyUI custom node pack written in Python that gathers image processing, file handling, audio and video utilities and connectors for hosted model providers into one Apache-2.0 licensed package, version 2.32.0 in pyproject.toml.
Who is it for?
Fill-Nodes suits ComfyUI users who want captioning, PDF and Google Drive handling, audio-reactive effects and hosted model calls without writing custom nodes themselves, and who are willing to audit thirty Python dependencies including clients for OpenAI, Anthropic, Gemini, Runway and Fal.ai. It does not suit anyone who needs a standalone Python library or a pinned, release-based upgrade path.
Can I use it commercially?
Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 38 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.

Editorial analysis

A single ComfyUI node pack spanning image, file and model work

Fill-Nodes is a collection of custom nodes for ComfyUI, and the collection is wide rather than deep. The node tables in the documentation split it into groups for image work, captioning, visual effects, utility nodes, KSamplers, PDF handling, GPT access, general AI, audio, experimental nodes, prompting, file operations, Google Drive, API tools, Hugging Face, loaders, Discord, work in progress, game and video work, and a set of Kartel nodes. That breadth is the design decision. A ComfyUI user who wants image masking, a PDF export and a Hugging Face download does not have to source three separate packs, and the shared dependency set means one install brings all of it. The trade-off is size: every provider client in the list is installed whether or not you call it, so the pack is heavy for a workflow that uses a handful of nodes.

The FL_ prefix and what a node table actually promises

Node names carry a consistent FL_ prefix, and the documentation presents them as tables of a node name and a description of what it does. FL_AnimeLineExtractor extracts line art using OpenCV adaptive thresholding and morphological operations, with controls for line threshold, line width, detail, noise reduction through Gaussian blur and an optional inversion for white backgrounds. FL_ImageAddNoise generates random Gaussian noise with torch.randn and clips the result to the 0.0 to 1.0 range. FL_ImageAdjuster works through PIL ImageEnhance for saturation, brightness, contrast and sharpness and converts to HSV for hue rotation. These descriptions are parameter level, which is unusual and useful: you can see what a node exposes before wiring it into a graph.

Thirty dependencies decide what the pack can reach

The packaging metadata in pyproject.toml declares the project name comfyui_fill-nodes, version 2.32.0 and the LICENSE file, and the dependency list is long enough to shape the whole footprint. Alongside the imaging stack (opencv-python, kornia, matplotlib, scipy) sit the client libraries: openai, anthropic, google-genai, runwayml, fal-client, ollama, huggingface_hub, google-cloud-storage and open_clip_torch. The audio side pulls in librosa and beat-this, which is pinned to 1.1.0, and the PDF side pulls in reportlab, PyPDF2 and PyMuPDF. keyring is listed as well, which is the local credential store most likely to be used by the nodes that talk to paid APIs. Note the file layout: the same list appears in requirements.txt, so the two files can drift apart if one is edited without the other.

Getting the pack into a ComfyUI instance

The pack is a ComfyUI custom node package. Its root holds __init__.py, the nodes/ directory with the node implementations, web/ for frontend assets, routes/ for server routes, docs/, tests/, fonts/ and images/. The packaging block also registers the pack with the Comfy Registry under the publisher identifier machinedelusions and the display name ComfyUI_Fill-Nodes, which is how a registry-aware ComfyUI install can pick it up rather than a manual copy. The root also ships linux_req_install.sh, a dependency install script for Linux systems, and the two packaging files carry the version and dependency list:

toml
[project]
name = "comfyui_fill-nodes"
version = "2.32.0"
license = {file = "LICENSE"}

Because that script's contents are not published in the repository documentation, read it before running it rather than assuming what it touches.

Dependencies are pinned unevenly, and the pins matter

requirements.txt lists the same dependencies as pyproject.toml, and the version constraints are inconsistent in a way that affects upgrade behaviour. Most entries are unversioned, so pip resolves the newest compatible release at install time, while a few carry hard pins or ranges:

bash
beat-this==1.1.0
google-genai>=2.0.0,<3.0.0
openai-codex==0.144.4

That last line is the sharp edge. A client library pinned to an exact patch version will not move on its own, and if the API it talks to changes shape, the failure shows up in the node rather than at install. The same applies to the claude-agent-sdk entry, which carries a minor range. When a node in this pack starts failing after an otherwise routine dependency refresh, check the pinned entries first, because those are the ones that did not move.

Image nodes work on tensors, so batching is the unit of work

Most of the image nodes operate on ComfyUI image tensors rather than files on disk, and the documentation makes that explicit in places where it matters. FL_ImageBatchToImageList splits a batched tensor into a Python list of single image tensors, and FL_ImageListToImageBatch does the reverse, resizing to the first image's dimensions with Lanczos interpolation when needed. FL_ImageAddToBatch concatenates two batches and resizes the second with bicubic or area interpolation depending on the scaling direction. FL_ImageBatchToGrid lays a batch out in a grid with a black background filling empty positions. FL_ApplyMask edits the alpha channel and interpolates when the mask dimensions do not match the image. For anyone scripting a pipeline, the practical consequence is that batch size and matching dimensions are part of the contract.

Hosted model nodes bring credentials with them

Several node groups exist purely to forward work to services you pay for: GPT nodes, general AI nodes, Hugging Face nodes, Google Drive nodes and API tool nodes. The dependency list shows how wide that is, with openai, anthropic, google-genai, runwayml, fal-client, ollama, huggingface_hub and google-cloud-storage all present, and ollama as the one path that can run against a model on your own machine. The gdown entry points at Google Drive downloads and google-cloud-storage at Google Cloud object storage, so those nodes need an account rather than a local file path. keyring in the dependency list points at credentials being kept in the operating system keyring rather than in a file inside the ComfyUI directory. Read the node documentation for a specific provider before you wire it into a workflow, because the credential and cost expectations differ a lot between an ollama model and a Runway call.

Upgrades come from commits, not from tagged releases

The repository publishes no GitHub releases, so there is no download page and no release note to read before you update. The version marker is the 2.32.0 string in pyproject.toml, and the last push to the repository was on 2026-09-15. For an operator that means the usual ComfyUI habits apply: keep the pack in its own directory under the ComfyUI custom nodes area so it can be replaced cleanly, and read the diff of the dependency list between the copy you run and the one you plan to pull, because a dependency change is the most likely cause of a broken workflow. A node pack this broad also means a single upstream commit can change behaviour in a group you never thought about, since the project groups nodes by domain rather than by stability.

Editorial conclusion

Fill-Nodes suits ComfyUI users who want captioning, PDF and Google Drive handling, audio-reactive effects and hosted model calls without writing custom nodes themselves, and who are willing to audit thirty Python dependencies including clients for OpenAI, Anthropic, Gemini, Runway and Fal.ai. It does not suit anyone who needs a standalone Python library or a pinned, release-based upgrade path. Before installing, read requirements.txt, decide which hosted providers you will actually call, and check the pin on openai-codex, which the repository holds at 0.144.4.

Frequently asked questions

How do I install ComfyUI Fill-Nodes?

The pack is a ComfyUI custom node package whose root holds __init__.py, nodes/, web/ and routes/, and it is registered with the Comfy Registry under the display name ComfyUI_Fill-Nodes with the publisher identifier machinedelusions. Its Python dependencies are listed in requirements.txt, and the repository ships linux_req_install.sh for installing them on Linux.

Which AI services do the Fill-Nodes API nodes talk to?

The dependency list includes openai, anthropic, google-genai, runwayml, fal-client, ollama, huggingface_hub, google-cloud-storage and open_clip_torch. The node groups in the documentation cover GPT, general AI, Hugging Face, Google Drive and API tool nodes.

Do Fill-Nodes need API keys for the hosted model nodes?

The nodes that reach hosted providers need your own credentials, since the pack only installs client libraries and includes keyring for storing them in the operating system keyring. The ollama client is the exception in the sense that it can target a model running locally.

How are ComfyUI Fill-Nodes updated?

The repository has no GitHub releases, so updates arrive as commits rather than tagged versions. The current package version is 2.32.0 in pyproject.toml, and the last push to the repository was on 2026-09-15.

Do the Fill-Nodes image nodes work on files or on tensors?

They work on ComfyUI image tensors. Nodes such as FL_ImageBatchToImageList, FL_ImageListToImageBatch and FL_ImageAddToBatch convert between tensors, lists and batches, and they resize to match the first image's dimensions when sizes differ.

Official sources

  1. filliptm/ComfyUI_Fill-Nodes on GitHub
  2. Issues
  3. License: Apache-2.0
  4. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/filliptm-comfyui-fill-nodes.svg)](https://hysenlabs.com/projects/filliptm-comfyui-fill-nodes)

Was this useful?