Load Image Orient (GeN13)
Load Image Orient (GeN13) exists because your iPhone screenshot loads sideways
- IMAGE
- MASK
You drag a screenshot off your phone into ComfyUI, and the woman you're trying to inpaint is lying on her side. Nothing is corrupt, the file opens fine in Preview, and the built-in Load Image node is cheerfully showing it rotated ninety degrees. You re-export it, you re-screenshot it, you rename it. Same result.
Load Image Orient (GeN13) is a plain image loader with one specific fix: it decodes with Pillow and applies the EXIF orientation tag, and never routes the file through PyAV.
Why the core node gets it wrong
ComfyUI's core Load Image was moved onto a PyAV/ffmpeg decode path so it could handle animated and video-ish files. Part of that path reads frame.rotation and rotates accordingly. On Windows, for an iOS-native PNG that carries an eXIf chunk, PyAV reports the wrong rotation - the pack author measured a value of 135 - and the result is your image turned a quarter turn anticlockwise. Pillow's exif_transpose gets the same file right.
So this isn't a "better loader", it's a compatibility shim with a very narrow job: phone screenshots and phone photos, mostly on Windows. If you don't shoot on iOS, you probably don't need it, and the built-in node is fine.
What you get
The widget surface is deliberately identical to core Load Image - one image dropdown of files in input/, with upload and drag-and-drop. That's not laziness, it's so that swapping the node into an existing workflow doesn't shift widget order and break saved layouts on restore. Same field count, same position.
Outputs:
IMAGE- the decoded image. Multi-frame files (GIF, APNG) come out as a batch, with mismatched frames skipped.MASK- inverted alpha: 1 where the image is transparent, all zeros across the full frame when there's no alpha channel. If your screenshots have no transparency (they won't), the mask is a black rectangle and you can ignore it.
Beyond orientation, the shared decoder in this pack does a couple of sensible things: 16-bit greyscale gets normalised to 0–1, palette images with a transparency entry get a real mask, and cache invalidation uses file path + mtime + size rather than hashing the whole file, so a 40 MB screenshot doesn't cost you anything on a re-queue.
Installing
Manager → search GeN13 → install → restart. Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/heigen13/ComfyUI-GeN13
pip install -r ComfyUI-GeN13/requirements.txt
Pillow, numpy and torch are all already in ComfyUI; the only line in the requirements file is nvidia-ml-py, for the pack's resource monitor. Nothing to download, no model files, no Node.js build.
When it's still sideways
If the image is still rotated after using this node, the file doesn't contain orientation metadata - it has been physically re-encoded into the wrong orientation by whatever app exported it. That's not fixable at load time; rotate it once in an image editor and save the corrected copy, or put a rotate node downstream.
And check whether your workflow actually saved the right node. Community workflows mostly use core Load Image, so if you paste a graph from somewhere and the image looks off, you may be looking at a core node you never replaced. Right-click a core Load / Save / Preview Image in this pack and there's a convert-in-place option - it keeps the links and the settings - which is the fast way to swap one loader for the other without re-dragging wires.
One non-fix worth stating plainly: this node does none of the A1111 parameter reading that Load Image SD does, and Load Image SD uses the same Pillow decoder, so it has the orientation fix too. If you're loading an old A1111 PNG anyway, go straight to that one.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| image | COMBO | Image: a file in the input folder; upload or drag and drop to add one. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| IMAGE | IMAGE | Image: multi-frame files are output as a batch. |
| MASK | MASK | Mask: 1 in transparent areas; all 0 when the image has no alpha channel. |