LF Nodes
Custom nodes with a touch of extra UX, including: history for primitives, JSON manipulation, logic switches with visual feedback, LLM chat... and more!
Nodes (91)
Overlay one image on another with a slider, and actually see it happen
Blur an entire batch of images at once, by percentage, with filenames intact
A boolean primitive with history and randomization — the toggle that remembers
Gamma, midpoint, and localized lift
Role-play with a local LLM from inside your workflow — no API key required
Pick checkpoints with cover art, or stress-test your whole model folder on autopilot
Making your generations actually show their used resources on CivitAI
Midtone contrast plus sharpening in one pass
Steal the color style from one image and apply it to another, with charts to prove it
A slide-to-compare node for before/after checks
Midpoint control and local edge contrast, not a blunt slider
Where this pack's widgets get their looks (and colors)
Strip the color per channel — the control that a grayscale slider never gives you
A display-only node for booleans, so your graph shows its truth
Make the float on the wire visible — the smallest debugging node in the pack
A debug probe for integer values
See the JSON on the wire without reaching for a text node
Every number and string on your graph, wrapped in one JSON
A string you can actually read
With a preview and CivitAI info
Turn a LoRA filename into prompt keywords, automatically
One substring, pulled out and typed five different ways
Give your images that 35mm texture without leaving the graph
A float slider that remembers your last fifty values
The blur node with a preview, because blur is rarely a surprise
Grab a random key from a JSON object, reproducibly
Pluck a value out of a JSON blob without writing a single line of Python
Ask a local LLM what's in your image, and get a verdict to branch on
Read your image's exposure like a photographer, not a guesser
Generating a batch of placeholder canvases sized to your JSON
Pause mid-workflow and hand-edit the image before it goes on
Flip through your whole batch in the node — a carousel for image lists
LF Nodes' history trick
Ask the image which way it's facing, then branch on the answer
Find the duplicate keyword wrecking your prompt
Prompt building with checkboxes instead of typing
Draw a line on an image, with an honest coordinate system
Chat with a local LLM inside your workflow, then use the answer
Roleplay with a character, get a styled prompt out the other end
Load images from disk and edit them before they touch the model
Load each file exactly once — the batch-processing cheat code
Dump a folder of images into your workflow and actually find the one you want
The local JSON loader that doesn't want your URL
...> prompt and actually get the LoRA
Pulling generation parameters back out of an image file
One picker that loads a LoRA *and* its twin embedding
The LoRA picker that shows you the cover art and spits out a ready-to-paste tag
Applying a color-grade LUT with a live before/after slider
Turn a color transformation into a reusable LUT
Let a local LLM write your docs — no API key needed
One formula string instead of a pile of Add/Multiply nodes
Batch-resize a folder of images without leaving the graph
Get pinged when the render finishes — and requeue from the notification
Parsing keyword-encoded LoRA tags out of a prompt
A weighted coin flip for your workflow
Find-and-replace for prompts, using real Python regex
Hand an LLM your code one function at a time
Aspect-preserving resize by long or short side
Resize to an exact size — crop or pad, your call
Cropping to a square without doing the math yourself
Roll the dice on portrait vs landscape
Pick your sampler from a dropdown that remembers
A SaveImage replacement that actually gets your resources recognized
Writing any JSON blob in your graph to disk
Write that LLM-generated doc to disk, timestamp and all
A scheduler dropdown with history, filtering, and randomization bolted on
Old-photo filter that doesn't commit you to full sepia
20 seeds out of one starting number
Write into a JSON object from the graph — the 'set' half of LF's JSON pair
Randomize the order of your JSON keys — for real this time
Convert anything to a number — and get the sum for free
Every string conversion you'd ever want, in one node
Sort your JSON keys and stop squinting at the tree
A string node that remembers what you typed before
Find-and-replace for your prompt text, no regex required
Mail-merge for prompts
Turning typed text into a real JSON value
A ternary if/else for float values
The lazy image switch that only runs the branch you pick
A boolean switch for any integer in your workflow
Flip between two JSON datasets with one boolean
A boolean switch for text that doesn't make you squint at wires
Track which checkpoints and LoRAs you actually burn time on
An upscaler picker that remembers your last few and can randomize the rest
Twenty fresh seeds per run, straight from your CPU's entropy
A usage dashboard node with zero inputs
A VAE picker with history, wildcard filtering, and a shuffle button
A masonry grid for eyeballing every frame at once
A fast, tweakable dark-edge filter that won't fight the GPU
Concatenate up to ten prompt fragments, optionally in a blender
A JSON text box that catches your typos before the queue does
LF Nodes (Legacy Repository)
MIGRATION PROCESS COMPLETE!
You can start migrating to the new repository whenever you want, I completed the transition and everything seems to working smoothly. This repo will be archived in the next weeks
🚨 This repository is now in legacy mode 🚨
LF Nodes has officially migrated to its new dedicated repository: LF Nodes. This repository will no longer receive new updates, fixes, or features.
Notes:
- Last update: 2025-02-11
- Status of the nodes at this date: Fully functional.
- More info about the migration: See Discussion #145
📢 What Does This Mean?
- ❌ No further development – This repo is now frozen at its last stable release.
- ✅ New repository available – Active development has moved to LF Nodes.
- ⚡ New Features & Improvements – The new repo leverages LF Widgets, a brand-new web components library designed for modularity and scalability.
📜 Archived Documentation
The original README and documentation for this repository have been moved to /docs/legacy_README.md for reference.
💡 Why the Migration?
LF Nodes is evolving to provide:
- A better UI framework with LF Widgets.
- Scalability & future-proofing for upcoming ComfyUI features.
- A cleaner, more maintainable codebase.
🛠 What Now?
The migration process will take some time, as the codebase is being adapted to the new frontend library. Follow the new repository for updates.
- The same nodes will be available, with names and functionalities largely unchanged.
- Frontend improvements will make nodes lighter and more modular.
- Existing workflows remain functional in this repo, but future features will only appear in the new LF Nodes.
This repository will stay accessible until migration is complete. Once some time has passed after the first stable release of LF Nodes, this repo will be archived.