Extensions/ComfyUI-WepeNerd
ComfyUI Extension

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)

By WepeNerd·Created 5 months ago·Updated 3 days ago· 6
WepeNerd/ComfyUI-WepeNerd
Nodes29
On cloudLocal install
CategoryWepeNerd/Qwen Edit Align, WepeNerd/Loaders
Stars6
Updated3 days ago

Nodes (29)

Qwen Edit Align Composite

Your Qwen edit shifted the whole frame by three pixels. This node puts them back.

WepeNerd/Qwen Edit Align
Qwen Edit Difference Mask + Composite

Keep only what Qwen actually changed — and keep the rest of the frame untouched

WepeNerd/Qwen Edit Align
Qwen Edit Measure Drift

How far did Qwen actually move your image? This node gives you the number

WepeNerd/Qwen Edit Align
Load LoRA Masked

The LoRA that only lives where you paint it

WepeNerd/Loaders
3D Product Placement (WepeNerd)

Drop a 3D product onto a photo with your mouse, not a prompt

WepeNerd/3D
Drag Resolution (WepeNerd)

Stop typing resolutions — drag a box to set your output size

WepeNerd/Resolution
Image Captioner (Advanced)

Styles, cleanup rules, and batch output

WepeNerd/Local AI/Advanced
Video Captioner (Advanced)

Native-video captioning when your backend can, frames when it can't

WepeNerd/Local AI/Advanced
Local AI Model (Advanced)

Where the Local AI knobs actually live

WepeNerd/Local AI/Advanced
Local AI Generate

A raw local LLM call, right inside your graph

WepeNerd/Local AI/Advanced
Unload Local AI Model

Give the VRAM back before a heavy generation

WepeNerd/Local AI/Advanced
Local AI Status

Peek at the llama-server you can't see

WepeNerd/Local AI/Advanced
Prompt Enhancer (Advanced)

Style-matched prompt rewriting for Flux, Wan, LTX, H3 or Krea 2

WepeNerd/Local AI/Advanced
H3 Prompt Enhancer

A local LLM compiles them for you

WepeNerd/Local AI
Image Captioner

Caption a whole batch locally, without touching an API

WepeNerd/Local AI
Liquify Image (WepeNerd)

Push-warp an image right inside the node

WepeNerd/Image
Load OBJ (WepeNerd)

Get a 3D model into ComfyUI without touching Blender

WepeNerd/3D
Load Video (Upload) (WepeNerd)

Wan wants 4n+1 frames — this loader hands them over without VHS

WepeNerd/Video
Local AI Model

The four-node local LLM stack starts here

WepeNerd/Local AI
Masked LoRA Image Snapshot (internal)

You shouldn't add this node — here's why it exists

_internal
Paint Mask (WepeNerd)

The brush ComfyUI keeps making you leave the graph to find

WepeNerd/Image
Prompt Enhancer

Local prompt rewriting with real H3 and Krea 2 skills

WepeNerd/Local AI
Resize Image Megapixels (WepeNerd)

One dial, no cropping, no mental arithmetic

WepeNerd/Image
Resolution Suggest (WepeNerd)

A resolution calculator that finally kills the 'not divisible by 64' errors

WepeNerd/Resolution
Sigma Curve (WepeNerd)

Stop accepting whatever the scheduler dropdown gives you

WepeNerd/Sampling
Slider

The semantic LoRA slider

WepeNerd/Utilities
Speedpaint

Sketch it inside the graph instead of opening Krita

WepeNerd/Image
Video Captioner

Auto-captions for your training clips, fully local

WepeNerd/Local AI
Exact Video Frames/FPS (WepeNerd)

Videos that are exactly N frames at exactly M fps

WepeNerd/Video
Readme

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 image upstream 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 images to 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; None preserves its selected count. The preview autoplays muted. Connect audio downstream to keep the selected clip's soundtrack, or disable load_audio to 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. Connect image to image_1 and prompt to prompt on Text Encode Qwen Image 2.1, and set the encoder's resolution to 0. See the guide options.
  • Qwen Edit Align: find the three nodes under WepeNerd/Qwen Edit Align. Connect the original to source and the generated edit to edited on Qwen Edit Difference Mask + Composite. Preview mask or preview, tune threshold, and save composite. 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

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.