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 6 months ago·Updated 9 days ago· 7
WepeNerd/ComfyUI-WepeNerd
Nodes19
On cloudLocal install
CategoryWepeNerd/Image Edit, WepeNerd/Loaders
Stars7
Updated9 days ago

Nodes (19)

Image Edit Align Composite

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

WepeNerd/Image Edit
Image Edit Difference Mask

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

WepeNerd/Image Edit
Image Edit Measure Drift

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

WepeNerd/Image Edit
Load LoRA Masked

The LoRA that only lives where you paint it

WepeNerd/Loaders
Drag Resolution (WepeNerd)

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

WepeNerd/Resolution
Duration Selector (WepeNerd)

Your 111-Frame Video Came Back at 109 Frames. That's the Grid.

WepeNerd/Video
Frame Slicer (WepeNerd)

The two numbers that fix a clip that's almost right

WepeNerd/Video
Liquify Image (WepeNerd)

Push-warp an image right inside the node

WepeNerd/Image
Load Video (Upload) (WepeNerd)

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

WepeNerd/Video
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
Qwen Edit Mask (WepeNerd)

Qwen Edit Has No Mask Input — So Draw One and Show It the Region

WepeNerd/Qwen Edit Align
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
Save Video (WepeNerd)

One file, sound inside, no FFmpeg scavenger hunt

WepeNerd/Video
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
Zoom Crop (WepeNerd)

Zoom Crop Doesn't Zoom, and That's Exactly Why It's Useful

WepeNerd/Image
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 | | Zoom Crop | Remove width/height pixels and pick the kept area with a one-click 5×5 picker | | Load Video (Upload) | Load a clip by frame cap and skip into an IMAGE batch, with audio, transparency mask, model frame presets, a readout of what will load, and a preview that loops the clip | | Save Video | Save an IMAGE batch as MP4 (H.264, H.265, AV1), WebM, ProRes, lossless FFV1, GIF or WebP in one pass, with audio, transparency and the workflow embedded; no FFmpeg executable needed | | Duration Selector | Pick a clip length that is legal for LTX, MiniMax H3, Wan, Hunyuan, Cosmos or Mochi, as frames or seconds kept in sync | | Frame Slicer | Keep a run of frames (start to stop) from an IMAGE batch, like RES4LYF's Frames Slice | | 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 | | Image Edit Align Composite | Automatically align Qwen, Krea2 or other image edits and composite through a supplied or automatic mask | | Image Edit Difference Mask | Align and isolate visual edits, with mask preview and cleanup controls | | Image Edit Measure Drift | Optional measurement for inspecting or reusing an alignment fit | | 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. Pick the clip with skip_first_frames and frame_load_cap (121 by default, 0 for all, which keeps long videos from filling RAM); large skips jump straight there. The node shows what will load before you run it, and the muted preview loops over exactly that clip. A format preset trims the frame count to a model's rule and sets its frame rate. Connect audio downstream to keep the clip's soundtrack, or disable load_audio to skip audio decoding.
  • Save Video: connect images (and audio/mask if you have them) to WepeNerd/Video › Save Video. MP4 · H.264 plays everywhere; pick WebM, ProRes, FFV1, GIF or WebP when you need transparency. Drop the saved file onto the canvas to reload its workflow.
  • 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.
  • Image Edit alignment: under WepeNerd/Image Edit, add Image Edit Align Composite, connect the original to source and the generated edit to edited, then save composite. Affine alignment and a cleaned automatic mask are enabled by default; Measure Drift is optional. Use Image Edit Difference Mask for a mask preview and finer cleanup controls. 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.