Rotate
The Comfy Node That Rotates Images Without Running Anything
- image
- image
This is the most boring node in ComfyTV, and that's a compliment. Rotate takes an image, spins it by an angle, and hands it back. No model, no VRAM, no download, no Run button - it's one of the handful of ComfyTV stages that does its work entirely in your browser and updates the preview the instant you drag the slider. In a pack full of ~190 stages that sometimes feel like they're rebuilding Nuke, it's refreshing to get a node that's just correctly boring.
It belongs to the image stage family under ComfyTV/Image, the instant browser-side tools (crop, mirror, grid split) that ComfyTV deliberately keeps out of the render queue. The workflow benefit is subtle but real: because it doesn't touch the backend, you can rotate a picked frame mid-flow - say, after an auto-spawned Image Picker hands you a sideways generation - and every downstream stage immediately consumes the rotated snapshot without re-running anything upstream. That snapshot model (each stage's output is saved and flowed downstream) is the whole ComfyTV thesis, and Rotate is the cleanest example of it.
The one input that matters
angle - an integer in degrees from -180 to 180, default 0, and positive means clockwise. That's the entire parameter surface, plus the optional image input. Output is image, a COMFYTV_IMAGE ready to wire into another stage or a Compose/Bridge node. The three force_run_token / project_id / parent_output_id fields in the schema are ComfyTV plumbing for project tracking - the frontend sets them, you ignore them.
One honest caveat: because this is a browser-side rotation (a single angle step of 1°), it's for straightening and 90° turns, not for precision fine-rotation animation work - that's what the keyframed Transform nodes in the video suite are for. If your picture is 0.4° off, this is perfect; if you need a rotating title card, reach elsewhere.
Install
It ships inside ComfyTV, so you get it with the pack:
cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyTV
Restart ComfyUI and it's under the ComfyTV → Image menu. ComfyUI Manager users can just search "ComfyTV". If you're on ComfyUI Desktop or macOS, don't trust the relative cd - read the startup log for the running instance path and clone into that exact custom_nodes directory (and fix the nested ComfyTV/ComfyTV/ layout if you see one). The pack adds no Python dependencies, so there's nothing else to install.
Common issues
- It rotates, but my downstream stage still shows the old image. Re-run the stage that consumes it - downstream stages read the upstream snapshot from when they last ran. That's by design.
- I want to rotate a video, not an image. Wrong node - this one is image-only (
COMFYTV_IMAGEin/out). The video suite has its own rotate stage for footage.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| force_run_token | INT | 00–2147483647 | Internal — bumped on Run to invalidate ComfyUI's input cache. |
| project_id | STRING | Internal — populated by the projectStore on the frontend. | |
| parent_output_id | INT | 00–2147483647 | Internal — lineage parent set by spawn handlers on the frontend. |
| angle | INT | 0-180–180 | Rotation angle in degrees (-180 to 180, positive = clockwise). |
| imageopt | COMFYTV_IMAGE | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| image | COMFYTV_IMAGE | — |