Duanyll Nodepack
A collection of custom nodes for ComfyUI
Nodes (65)
The pass-through node that beats ComfyUI's type system
Cut the Detected Region Out, Exactly Where the Box Says
Bridge your own detections into Impact Pack's pipeline
Stitch a Row of Images Into One Canvas and Get Every Tile's Box
Experimental image control you probably don't need yet
Masking out text for cleaner inpainting
Volcengine's Gemini killer, wired into ComfyUI
The key-and-transport hub for gpt-image in ComfyUI
Wiring object-storage uploads into ComfyUI
Exact Diffusers Flux Scheduling, as SIGMAS for Your Sampler
A Diffusers-Style Noise Generator, Seeded and Byte-Reproducible
Pull Any Image Into Your Workflow Without Saving It First
Draw the Boxes So You Can See What the Detection Actually Found
Turn Detected Boxes Into an Inpaint Mask in One Step
Putting readable labels back on images
Turn any object into a readable string without the debug node tax
Loosen the Box Before You Crop, by a Ratio of Its Own Size
Paste Any Image Into a Detected Region, Automatically Resized
A surgical fix for multi-image Kontext
The Loader That Makes Flux Actually Render the Words
Ask Where the Text Would Go Before You Draw It
The loader that refuses to download for you
Pull text encoders from the HF cache by type
FLUX.1 dev without the folder-shuffling
Load CLIP Straight From Your Hugging Face Cache
Load a LoRA From a Hugging Face Repo, No Copying Into Models/Loras
LoRAs from the cache, no CLIP baggage
HiDream-I1's Four Text Encoders, Loaded From Your HF Cache
The Three-Encoder Loader for SD3 and Friends, Minus the Folder Juggling
Load a VAE straight from your Hugging Face cache — no copy-paste into models/vae
Crop back to your real aspect ratio
See exactly where two images differ — as a heatmap, not a number
All four image-diff metrics in one node — MSE, MAE, PSNR, SSIM with a mask
The one-trick contrast fix for washed-out inputs
The gentler sibling of MSE for measuring image difference
The Image MSE node
Letterboxing for models that demand exact sizes
The dB score everyone quotes, in a single node
The metric that agrees with your eyes, if you can get it installed
Face Identity Score, 0-10, Without Training Anything
Pull every match out of a JSON object with a JSONPath query
Get one value out of JSON — the unwrapped sibling of JSON Path Query
Set a value deep inside a structure without touching the rest
The classic sharpness/blur detector, one number out
Stuff few-shot examples into your chat before the model ever answers
The node that actually talks to the LLM — with live streaming on the node
Pin a seed onto the client
The system prompt that seeds every chat
The LLM Client node that turns any OpenAI-compatible API into a ComfyUI brain
Drag a washed-out mask back to full contrast
The Little Node That Feeds the Whole Bounding-Box Toolkit
Union or intersect your detection boxes into one
Gpt-image inpainting and edits straight from your graph
Cloud Image Generation Inside Your Local Graph (Yes, It Needs a Key)
Turn Qwen-VL's JSON bounding boxes into real, usable BBOX values
The parser that tolerates everything LLMs and humans write
Your LLM node talks JSON. This is how you actually catch it.
The Flux edit trick that needs a very specific model
The Patch That Stops Qwen-Image's Text Encoder From Eating Your VRAM
Pulling prompts and configs off disk into the graph
ByteDance's image editor as a ComfyUI node (yes, it's an API)
The small node that builds your prompts out of parts
A language detector for branching workflows
Push Your Output to S3 and Get Back a Public URL
A ComfyUI front-end for Tencent's 80B image model
Duanyll Nodepack
A collection of custom nodes for ComfyUI
[!NOTE] This projected was created with a cookiecutter template. It helps you start writing custom nodes without worrying about the Python setup.
Quickstart
- Install ComfyUI.
- Install ComfyUI-Manager
- Look up this extension in ComfyUI-Manager. If you are installing manually, clone this repository under
ComfyUI/custom_nodes. - Restart ComfyUI.
Features
- A list of features
Develop
To install the dev dependencies and pre-commit (will run the ruff hook), do:
cd duanyll_nodepack
pip install -e .[dev]
pre-commit install
The -e flag above will result in a "live" install, in the sense that any changes you make to your node extension will automatically be picked up the next time you run ComfyUI.
Publish to Github
Install Github Desktop or follow these instructions for ssh.
- Create a Github repository that matches the directory name.
- Push the files to Git
git add .
git commit -m "project scaffolding"
git push
Writing custom nodes
An example custom node is located in node.py. To learn more, read the docs.
Tests
This repo contains unit tests written in Pytest in the tests/ directory. It is recommended to unit test your custom node.
- build-pipeline.yml will run pytest and linter on any open PRs
- validate.yml will run node-diff to check for breaking changes
Publishing to Registry
If you wish to share this custom node with others in the community, you can publish it to the registry. We've already auto-populated some fields in pyproject.toml under tool.comfy, but please double-check that they are correct.
You need to make an account on https://registry.comfy.org and create an API key token.
- [ ] Go to the registry. Login and create a publisher id (everything after the
@sign on your registry profile). - [ ] Add the publisher id into the pyproject.toml file.
- [ ] Create an api key on the Registry for publishing from Github. Instructions.
- [ ] Add it to your Github Repository Secrets as
REGISTRY_ACCESS_TOKEN.
A Github action will run on every git push. You can also run the Github action manually. Full instructions here. Join our discord if you have any questions!