Image Transpose
Flip an image across its diagonal, not its axis
- image
- image_overlay
- IMAGE
An honest flag up front: this node isn't named in WAS's own README node list, and I found nothing in community discussion that pins down its exact behavior in this pack specifically. What follows is grounded in what "transpose" means as a well-established image-processing operation - the same term PIL, NumPy, and most image libraries use for it - not in a confirmed WAS-specific schema.
What transpose actually means
Flip and rotate are the two operations most people already know: flip mirrors across a horizontal or vertical axis, rotate spins around the center. Transpose is a third, less-common operation - it mirrors an image across its diagonal, from one corner to the opposite corner. The practical effect is that width and height swap, the same way transposing a matrix swaps its rows and columns. It's mathematically related to a 90-degree rotation plus a flip combined into one lossless operation, but it's its own distinct primitive in most image toolkits, which is presumably why WAS's sibling Image Flip and Image Rotate nodes don't cover it.
Why you'd reach for it
It's a niche one. The realistic cases: correcting an image that came from a source with swapped row/column orientation (some sensors and file formats store data transposed relative to how you'd expect to view it), or as a building block if you're composing several transform steps and transpose happens to be the shortest path to the orientation you want, compared to chaining a rotate and a flip separately.
The inputs and outputs that matter
An image in, a transposed image out - width and height swapped, content mirrored across the diagonal. Like the flip and rotate, this is a lossless pixel-relabeling operation, not an interpolated one, so there's no quality loss from applying it.
How to install it
Bundled with the full WAS Node Suite:
- ComfyUI Manager - search "WAS Node Suite", install, restart.
- Manual -
cd ComfyUI/custom_nodes && git clone https://github.com/WASasquatch/was-node-suite-comfyui, installrequirements.txt(portable:python_embeded\python.exe -s -m pip install -r requirements.txt), restart.
No model, no heavy dependency - pure pixel geometry.
Common issues & troubleshooting
A transposed image and an un-transposed mask stop lining up. Same rule as flipping and rotating: if you transpose an image but a mask, pose, or ControlNet input tied to it stays in its original orientation, the two no longer correspond. Apply the same transform to both, in the same place in the graph.
It's not the transform you expected. Because this operation is less intuitive than a flip or a 90-degree rotate, it's easy to reach for it thinking it'll do one of those and get a diagonally-mirrored result instead. If the output looks unexpectedly "wrong," check whether Image Flip or Image Rotate is actually the node you meant.
Standard pack caveat: WAS Node Suite has been unmaintained since December 2023, and the recurring issue is the whole suite failing to import after a ComfyUI update. Reinstall requirements.txt against the right Python environment if that hits you.
Inputs (8)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | The background. The result is this image's size, whatever the overlay's. | |
| image_overlay | IMAGE | The image placed on top of the background. | |
| width | INT | 5121–48000 | Width the overlay is scaled to, in pixels, ignoring its own aspect ratio. Must be above 0. |
| height | INT | 5121–48000 | Height the overlay is scaled to, in pixels, ignoring its own aspect ratio. Must be above 0. |
| X | INT | 0-48000–48000 | Horizontal position of the overlay's left edge, in pixels from the left of the background. 0 is flush left; negative values push it off the left edge. |
| Y | INT | 0-48000–48000 | Vertical position of the overlay's top edge, in pixels down from the top of the background. 0 is flush with the top; negative values push it off the top edge. |
| rotation | INT | 0-360–360 | How far to turn the overlay before scaling, in degrees counter-clockwise. Negative values turn it clockwise. The overlay is squeezed back into width by height afterwards, so a rotated overlay comes out narrower than an unrotated one. |
| feathering | INT | 00–4096 | Width of the fade around the overlay's edge, in pixels. 0 gives a hard edge; 32 fades the outer 32 pixels to transparent, which blends the overlay into the background. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | The background with the overlay composited onto it, in RGBA. Nodes that need three channels want Images to RGB after this. |