๐๏ธ NL Edit
Paint and mask edits, right inside the node graph
- image
- mask
- image
- mask
- image_info_json
NLEdit is the node that turns ComfyUI into a slightly better place to touch up an image: a built-in paint and mask editor that lives in the graph. If you've ever needed to paint out a blemish on a frame, scribble a mask region by hand, or composite a quick retouch, and found yourself opening Photoshop (or cropping up a screenshot and drawing on it), this node is the thing that keeps that work inside your workflow.
The workflow it enables is the one the pack's manual testing describes: fetch an upstream input, draw RGB edits and mask strokes on it, and export the result back into the pipeline - or even into a new NL Read node for further processing. It's a round trip: pull the image in, paint on it, push the corrected image out, all without leaving ComfyUI.
How it works
nl_edit_revision- the node's revision string. It's how the editor tracks the state of your edits, so changes you draw are captured and reloadable. Don't fight it; just be aware it's what makes your edits persist across runs.image- the frame you're editing.mask- optional; a starting mask you can build on with strokes.image_info_json- optional color metadata, carried through so the edited image stays in the managed color pipeline.
Outputs: image (your RGB edits composited), mask (your merged mask strokes), and image_info_json passthrough. The README notes it can also fetch upstream inputs directly and export the current result to a new NL Read node, which is the "keep the loop going" pattern.
Where it sits
Think of it as the manual-fallback node in an otherwise automated graph. The automated path - SAM-based segmentation, inpainting, controlnet masks - handles most cases, but there are always the frames where the model got it wrong and you just want to draw the answer. That's NLEdit's lane. It's also a nice complement to the pack's color pipeline: paint a stroke on a graded frame, and the image_info_json keeps the colorspace honest through the edit.
Install
Standard pack install:
cd ComfyUI/custom_nodes
git clone https://github.com/NOLABEL-VFX/ComfyUI-NL_Nodes
or ComfyUI Manager โ "ComfyUI-NL_Nodes", restart. The editor is part of the pack's JS front-end, so this is one of the nodes where the "restart ComfyUI after install" step actually matters - if the paint UI doesn't show up, it's almost always a stale frontend. Beyond that, no heavy dependencies; it's UI plus tensor plumbing.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| nl_edit_revision | STRING | โ | |
| imageopt | IMAGE | โ | |
| maskopt | MASK | โ | |
| image_info_jsonopt | STRING | โ |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | โ |
| mask | MASK | โ |
| image_info_json | STRING | โ |