Nodes/was-node-suite-comfyui/Image Displacement Warp
ComfyUI Node Runs on cloud

Image Displacement Warp

Push pixels around using a second image as a map

By WASasquatch·Created 3 years ago·Updated about a year ago· 1,812
Image Displacement Warp

      This node distorts an image by shoving its pixels around according to a second image - the displacement map. The WAS README puts it exactly: "Warp a image by a displacement map image by a given amplitude." If you've used the displace filter in Photoshop or a displacement modifier in Blender, it's the same concept: a grayscale (or color) map tells each pixel which way and how far to move, and the amplitude controls how strong the shove is.

      It's a creative/technical effect node, not an everyday one, but it unlocks looks that are a pain to get otherwise: wrapping an image onto an implied surface, heat-haze and water-ripple distortions, glitch and melt effects, or driving a subtle animated warp when you vary the amplitude across frames. Feed it a depth map (say from the MiDaS node in this same pack) as the displacement source and you can fake a pseudo-3D parallax push - the depth-estimation notes describe this exact trick, warping an image along its depth to sell the illusion of dimensionality.

      How it works

      Each pixel in your input gets displaced based on the corresponding value in the map. Brighter or darker regions of the map push pixels more or less, and in a direction determined by the map's values, scaled by the amplitude you set. Low amplitude gives you a gentle ripple; high amplitude tears the image apart. The map is doing the steering; amplitude is doing the volume.

      The inputs and outputs that matter

      • The image in - what you're warping.
      • The displacement map in - the second image that dictates where pixels move. This is the creative lever; swap the map, change the whole effect. A noise texture ripples, a depth map parallaxes, a gradient smears.
      • Amplitude - how hard the displacement pushes. The README names this one explicitly.
      • The warped image out - wire it to a save or a further filter.

      I'm naming amplitude from the README and describing the two image inputs from the node's stated job rather than a formal schema, so I won't invent extra widgets.

      How to install it

      Part of the WAS Node Suite:

      • ComfyUI Manager: search was-node-suite-comfyui, install, restart.
      • Manually: cd ComfyUI/custom_nodes && git clone https://github.com/WASasquatch/was-node-suite-comfyui/, then pip install -r requirements.txt against your ComfyUI Python, and restart.

      Pure pixel operation - no model download for the warp itself (though if you're generating the displacement map with MiDaS, that node downloads its weights).

      Common issues

      Amplitude is the whole ballgame, and too much is the classic mistake. Push it hard and the image tears - pixels get displaced past the edges and you get stretched smears and empty gaps. Subtlety reads as "textured surface"; excess reads as "broken." The depth-estimation notes make the same point about parallax generally: keep the motion subtle, because past a certain point the image starts tearing and there's no pixel data to fill the gaps it reveals.

      Second: the displacement map should generally match the image's dimensions. A mismatched map can produce lopsided or unexpected warping, since the node is reading map values position-by-position against the image. Resize the map to the image first if they differ.

      And the pack caveat: WAS Node Suite has been retired since December 2023 - used everywhere, unmaintained. If a ComfyUI update makes every WAS node vanish with an "Import Failed", that's suite-level dependency drift, not this node. Re-run requirements.txt against the correct Python environment (or the bundled install.bat) and restart.

      Categoryx

      Inputs (0)

      No inputs

      Outputs (0)

      No outputs