ComfyUI-WepeNerd
Custom node pack featuring an interactive visual resolution picker and resolution suggestion tool with real-time dimension readout and divisor snapping. (Description by CC)
Nodes (29)
Your Qwen edit shifted the whole frame by three pixels. This node puts them back.
Keep only what Qwen actually changed — and keep the rest of the frame untouched
How far did Qwen actually move your image? This node gives you the number
The LoRA that only lives where you paint it
Drop a 3D product onto a photo with your mouse, not a prompt
Stop typing resolutions — drag a box to set your output size
Styles, cleanup rules, and batch output
Native-video captioning when your backend can, frames when it can't
Where the Local AI knobs actually live
A raw local LLM call, right inside your graph
Give the VRAM back before a heavy generation
Peek at the llama-server you can't see
Style-matched prompt rewriting for Flux, Wan, LTX, H3 or Krea 2
A local LLM compiles them for you
Caption a whole batch locally, without touching an API
Push-warp an image right inside the node
Get a 3D model into ComfyUI without touching Blender
Wan wants 4n+1 frames — this loader hands them over without VHS
The four-node local LLM stack starts here
You shouldn't add this node — here's why it exists
The brush ComfyUI keeps making you leave the graph to find
Local prompt rewriting with real H3 and Krea 2 skills
One dial, no cropping, no mental arithmetic
A resolution calculator that finally kills the 'not divisible by 64' errors
Stop accepting whatever the scheduler dropdown gives you
The semantic LoRA slider
Sketch it inside the graph instead of opening Krita
Auto-captions for your training clips, fully local
Videos that are exactly N frames at exactly M fps
ComfyUI-WepeNerd
Resolution tools, painting and image warping, and spatial LoRA masks for ComfyUI.
| Tool | What it does | |---|---| | Drag Resolution | Set dimensions visually with aspect-ratio and divisor controls | | Resolution Suggest | Calculate dimensions from a target size or scale factor | | Resize Image Megapixels | Resize an image batch to a target area without cropping | | Load Video (Upload) | Sample video into an IMAGE batch with frame controls, optional audio, VHS presets, and an autoplaying preview | | Speedpaint | Sketch from a blank canvas or imported image and output an IMAGE | | Paint Mask | Paint a MASK over an uploaded or connected image and pass the IMAGE downstream | | Liquify Image | Push-warp files or connected IMAGE batches with editable strokes and full-resolution output | | Qwen Edit Mask | Paint where a Qwen-Image 2.1 edit should happen and get a guided reference image, mask and prompt | | Qwen Edit Measure Drift | Measure translation or affine drift between a source and an edit | | Qwen Edit Align Composite | Align an edited image and composite through a supplied or automatic mask | | Qwen Edit Difference Mask + Composite | Detect visual edits, clean up the difference mask, and preserve source pixels outside it | | Sigma Curve | Draw a SIGMAS schedule by dragging points on a graph, with presets and exact numeric entry | | Slider | Map a compact FLOAT control to your preferred strength range | | Load LoRA Masked · Beta | Apply spatial LoRA/LoKr regions to native Krea2 models |
Installation
From your ComfyUI custom_nodes directory:
git clone https://github.com/WepeNerd/ComfyUI-WepeNerd.git
Using the Python environment that runs ComfyUI:
python -m pip install -r ComfyUI-WepeNerd/requirements.txt
Restart ComfyUI and refresh the browser. This pack uses Pillow, numpy, SciPy, and PyAV, plus Torch supplied by ComfyUI. It does not install GPU wheels, models, or external runtimes.
Quick start
Open the example workflow. Resolution Suggest controls Speedpaint's width and height; paint and click Queue to preview the result. Connect Speedpaint to VAE Encode to use it in a generation workflow.
- Speedpaint: choose New for a blank background. Load runs a connected
imageupstream and imports its first image; without a connection it opens the file picker. You can also drop an image onto the canvas. Use round or square brushes, colour, size, opacity, and pressure-to-size controls. Toggle the eraser (E) to restore the loaded image or blank background; B returns to painting. Ctrl/Cmd+Z undoes; Shift+Ctrl/Cmd+Z redoes; Alt-click samples a colour. - Resolution tools: choose a divisor that matches your model's required dimensions. Megapixel resizing retains the whole image, with small aspect changes possible from rounding.
- Load Video (Upload): upload/select a video under WepeNerd/Video and
connect
imagesto an IMAGE input. Set frame rate, skip, stride, and cap as needed. Zero frame rate preserves source frames; zero cap loads all selected frames. Format presets can trim the batch;Nonepreserves its selected count. The preview autoplays muted. Connectaudiodownstream to keep the selected clip's soundtrack, or disableload_audioto skip audio decoding. - Liquify: load an image, or connect IMAGE and Queue once to see its preview. Drag to warp, use Undo/Redo, then Queue to render at the source resolution. Try the Liquify example.
- Masked LoRA: connect a native Krea2 MODEL, select a LoRA, and open Edit mask. Empty masks have no effect. This node is specific to Krea2 and remains in Beta.
- Qwen Edit Mask: open or drop an image (or connect IMAGE and click Load input),
paint the area to change, and type the edit in
instruction. Connectimagetoimage_1andprompttoprompton Text Encode Qwen Image 2.1, and set the encoder'sresolutionto 0. See the guide options. - Qwen Edit Align: find the three nodes under WepeNerd/Qwen Edit Align.
Connect the original to
sourceand the generated edit toeditedon Qwen Edit Difference Mask + Composite. Previewmaskorpreview, tunethreshold, and savecomposite. Pixels where the final mask is zero are copied exactly from the source. See the controls and limits.
See the node guide for controls, inputs, outputs, and limitations.
Saving paintings
Speedpaint supports dimensions from 64 to 4096 pixels and PNG, JPEG, or WebP imports. It has file import rather than an upstream IMAGE socket. Resizing painted work resizes the whole composition with Lanczos.
Paintings are stored in ComfyUI/input/wepenerd_speedpaint. Copy that folder with
your workflows when moving machines. Standard Save/Export and Queue wait for
pending writes. Undo and redo share a 30-operation / 128 MiB history budget;
history does not persist after reloading.
Compatibility
Tested with ComfyUI 0.34.0, frontend 1.51.10, Python 3.12, and Windows. Browser and CPU/CUDA layer checks are included; physical tablet behavior and full-model Krea2 image fidelity have not been comprehensively validated.
Masked LoRA supports native floating-point and INT8 ConvRot Krea2. Spatial masks can influence pixels outside the painted region through attention and denoising. A full mask does not necessarily match a global LoRA loader. See the node guide for unsupported model and adapter formats.
More WepeNerd tools
- LocalAI: local prompt enhancement and captioning.
- Experimental: 3D and video utilities.
The packages can be installed independently. Use current versions when combining them; the older all-in-one core includes duplicate nodes.
Liquify is included in core from 0.2.0. If you also have Experimental installed, update it to 0.2.0 or newer before restarting ComfyUI. Existing Liquify nodes and saved paintings keep their IDs and outputs.
Report an issue with a minimal workflow and the relevant console output. Licensed under MIT.