The audit compared every node against ComfyUI core and the major packs; this lands its outcomes in one branch. On-node visual editing (the old Codex-pack interaction, rebuilt): - New Load Image + Pad: image loader with whole-edge pad dragging on the node canvas, align-to-multiple rounding, and a megapixel target that rescales the source before padding so the mask seam stays binary. - Pad Image gains the same handle canvas, fed by an execution-time snapshot of its input; wireframe with diagnostic empty states before the first run. Widgets, outputs, and saved workflows unchanged. - Image Crop + Rotate + Pad's compact panel is now a live stage - crop, pad, and rotate handles on the node, one shared implementation with the full-screen editor so the two surfaces cannot drift. Feature gaps closed against the ecosystem: - Crop For Inpaint: target_megapixels, selectable rescale_algorithm (recorded in the stitcher for the paste-back), and extend_* inputs that grow the frame itself for outpainting. - Save Video: format choice - mp4 h264, mp4 h265, webm vp9 with Opus (resampled to 48 kHz); CRF drives all three. - Load Video: every_nth thinning (fps output divides to match) and a max_frames cap that ends the decode early. - LoRA Loader: saved stack templates behind a bar button, and a console warning when a LoRA's base-model family disagrees with the checkpoint. - LM Studio Chat: history in/out for multi-turn chains and a json_schema widget for structured replies. - Drop Shadow: multiply blend and a shadow_mask output. Align Image: offset outputs for un-aligning after sampling. Color Match: first_frame reference mode as a one-node video flicker fix. Removed (backed up in git history): Select Frame Range and the Video Bundle family - core ImageFromBatch and the core VIDEO wire now cover both jobs. Dead NODE_ID module variables cleaned out of every node file. 455 Python tests, 216 JS tests, validate_nodes.py green on 19 node files.
1.7 KiB
1.7 KiB
Image Crop + Rotate + Pad
Loads an image and applies one reusable rotate → crop → pad transform. Click Open editor for the full-screen canvas; normal queued and API execution use the saved widget values without needing the editor.
Controls
- image: Image picker/upload from ComfyUI's input folder.
- rotation_degrees: Clockwise rotation before crop and padding.
- crop_aspect_ratio: Free crop, source ratio, or a fixed ratio.
- crop_x / crop_y / crop_width / crop_height: Crop in rotated-image pixels. Width and height
0mean the full available dimension. - pad_left / pad_top / pad_right / pad_bottom: New pixels around the crop.
- feather: Feathers the mask into kept pixels and fades the image edge into the fill color, so outpaints blend instead of ending at a hard seam.
- canvas_multiple: Rounds the final canvas up by adding the minimum extra pixels to the right and bottom.
- fill_color:
#RRGGBBor three RGB values used for generated pixels.
Outputs
- image: BHWC float image batch. Animated image frames receive the identical transform.
- mask: BHW generated-area mask combining source transparency, empty rotation corners, and padding.
Editor gestures
Drag cyan squares to resize the crop, drag inside to move it, orange diamonds to add padding, and the green handle to rotate. Hold Shift while rotating to snap to 15 degrees. Use the wheel to zoom and middle mouse or Alt-drag to pan. The same handles work directly on the node's compact preview (fit-only there — the wheel keeps zooming the graph); zoom and pan are editor-only.
The node performs no network requests and writes no files beyond a normal user-initiated ComfyUI upload.