CATEGORY is now "MachinePaintingNodes/Transform", so it renders as
"MachinePaintingNodes / Transform" in the node menu.
"Rotate" is no longer needed in the category, since the display name
carries it - Transform & Rotate Pro is already found by searching
"rotate", and so is the DESCRIPTION text.
One level deep, consistent with Mask, Filter, Color and Blend. README
updated to match.
"Rotate" is the word people actually search for, and almost nothing in
the ecosystem registers under that name, so keeping it in the display
name is worth more than a tidier one. The node menu now shows
"Transform & Rotate Pro", and the class is TransformRotatePro to match.
The registration key stays MP_ImageTransform on purpose. That key is
what saved workflows and placed nodes reference, so changing it again
would break any node already dropped on a canvas. The key is never
shown in the UI, so there is no cost to leaving it as it is - a comment
in __init__.py records why it differs from the class name.
Category is unchanged at MachinePaintingNodes/Rotate & Scale. README
updated throughout.
None of the nodes showed description text in ComfyUI because ComfyUI
reads obj_class.DESCRIPTION when it builds node_info - it does not read
the class docstring, which is what these nodes had.
Every registered node now carries a one-line DESCRIPTION, kept to
29-67 characters so it fits the limited space in ComfyUI Manager and
the node search results. Image Transform Pro's four-sentence
description is shortened to match.
Descriptions are derived from each node's existing docstring, or from
the README for the five classes that had no docstring
(ImageBlendPro, ColorMatchBlend and the three Boolean switch nodes).
README also updated for the recent changes: the New Nodes table now
lists the real "Rotate & Scale" category, the XY placement direction is
documented on both nodes (positive X right, positive Y up), and the
v2.2.0 changelog records the placement convention, the node outputs and
the MP_ImageTransform internal name.
offset_y was following the raw pixel convention where Y grows downward,
so dragging the slider right pushed the image down. Negated it in
build_matrix so both placement sliders now read the same way: drag
right for right/up, drag left for left/down.
One edit covers both nodes, since Image Transform Pro and Remove
Background Pro share build_matrix.
This is the opposite sign to Photoshop's transform Y field, which is a
deliberate choice: on a centre-zero slider "more" reading as "up" is
more intuitive than matching pixel coordinates.
Category is now "MachinePaintingNodes/Rotate & Scale" - a single
subcategory using "&" rather than "/", which ComfyUI would have split
into nested submenus. Keeps the node one level deep like the rest of
the pack. README heading updated to match.
CATEGORY is now "MachinePaintingNodes/Rotate/Scale", so the node sits
under MachinePaintingNodes > Rotate > Scale in the node menu.
Spaces around the slashes are deliberately omitted: ComfyUI splits
CATEGORY on "/" to build the submenus, and a segment of
"MachinePaintingNodes " with a trailing space would not match the
existing "MachinePaintingNodes" root, creating a second top-level menu.
README node-table heading updated to match.
The node does rotate, scale, move, canvas resize, mask cut-out and
background fill, so "rotate" undersold it. "Transform" is the standard
term for rotate + scale + translate, matches the existing
MachinePaintingNodes/Transform category, matches the pack's "... Pro"
convention, and leaves room for flip / skew / corner-pin later.
image_rotate.py -> image_transform.py
class ImageRotate -> ImageTransformPro
MP_ImageRotate -> MP_ImageTransform
display name -> Image Transform Pro
Also adds a DESCRIPTION attribute. ComfyUI reads DESCRIPTION rather
than the docstring for the node tooltip and indexes it for node search,
so the node is still found by typing "rotate", "scale" or "move" even
though those words are no longer in its name.
Free to rename: the node has never shipped in a release, so no saved
workflow refers to the old key.