PAR Resqueeze (back to plate)
Ship your AI result back to the plate's original dimensions
- image
- image
- info
This is the second half of the anamorphic round trip, and honestly it's the node people forget until their deliverable comes back wrong. You desqueezed the plate to square pixels, ran your AI on a true 2:1 frame, and produced something good. Now the frame has to go back to the plate's original pixel dimensions so it slots into Nuke - or whatever compositor - where the PAR metadata gets re-applied. PAR Resqueeze (MEC) is that return leg: feed it the processed image plus the par_info string from the desqueeze node, and it restores the exact original width and height, no matter what resolution your AI graph happened to leave the frame at.
It lives next to PAR Desqueeze under MEC/Plate in Code2Collapse/ComfyUI-CustomNodePacks, the VFX-plate corner of that 72-node suite (grain match, plate stabilizers, clean-plate extraction, color-science nodes for the Nuke handoff). The two PAR nodes are a matched set in the author's own docs: desqueeze before any AI step, resqueeze after, geometry restored.
How it works
The mechanism is almost boring, and that's the point. The par_info JSON the desqueeze node emitted carries the original plate's orig_width and orig_height alongside the PAR you used. Resqueeze reads those, compares them to the current frame, and resizes with your chosen filter - or passes the image through untouched if it already matches. The info output confirms what was restored: dimensions plus the pixel aspect, so you can sanity-check the handoff.
The useful property is that the round trip is geometry-exact even when the middle changed the resolution. Desqueeze turned 4448×3840 into 7680×3840; your graph might have upscaled it, cropped it, or run an inpaint crop-and-stitch at a different size. None of that matters - resqueeze reads the original numbers out of par_info and lands exactly back on 4448×3840. The pair mirrors Nuke's Reformat pixel-aspect handling, which is the mental model: same thing Nuke does when it carries a format's PAR through to delivery.
The inputs that matter
image- your AI-processed, square-pixel frame.par_info- a required STRING that is wired, not typed. Connect it from the desqueeze node'spar_infooutput and you're done. This is the whole contract: the JSON is machine-authored, and it records the PAR and method you actually used, so you can't desync the two ends by hand.filter- bicubic default; you're downscaling back to the plate here, so if you want a slightly cleaner shrink,areais a fair pick.
Where people get burned
- The "par_info is not valid PARDesqueezeMEC output" error - the node's own message tells you what's wrong: you typed a value or wired a stale string instead of connecting a real desqueeze node. The
par_infoinput is force-input for exactly this reason. Wire it, don't type it. - Output still stretched in Nuke. The resqueeze restores pixel dimensions, not PAR metadata - ComfyUI has no concept of pixel aspect, so the file leaves here at square pixels. Nuke reapplies the PAR via its format. If it looks stretched, check that your Nuke format's PAR matches what you desqueezed with (1.7266 for the ARRI 2:1 case).
- Expecting a lossless pixel round trip. Geometry is restored exactly, but you resampled twice - stretch up to 7680, squeeze back to 4448 - so the final frame is a resample of a resample. That's inherent to the workflow, not a bug; it's the same tax any anamorphic conform pays, and it's why people do the AI work at the full square resolution rather than a downscale.
When to skip it
If your target is square-pixel delivery - a web export, a normal video, anything at PAR 1.0 - don't resqueeze at all. The desqueezed frame is the correct deliverable; the only reason to run this node is because the plate lives in a PAR-carrying pipeline that expects its original pixel shape back. Use it, wire par_info from the desqueeze, and the frame drops into your comp the way it came out of the scanner.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| par_info | STRING | — | |
| filter | COMBO | bicubic | 4 options: bicubic, bilinear, nearest, area |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| image | IMAGE | — |
| info | STRING | — |