CPA Plate
The Tiny Node That Decides How Much RAM Your Shot Eats
- images
- plate
Matting a 250-frame 1080p shot is a memory problem wearing a machine-learning costume. The weights are the flashy part; the thing that actually kills your render on a 16 GB machine is that ComfyUI holds every frame of your plate in memory as float32 RGBA - about 8 MB a frame at 1080p, so two gigabytes for the plate alone before any model has woken up, and four times that at 4K.
CPA Plate (class ComfyProAlpha_Plate) is the two-line answer to that, and it's the first real stage in the pack's internal graph. Its whole job is: take frames [start, start+count) of the connected images and store them as uint8. That's the 4x cut - and it's free, because the plate is 8-bit display-referred imagery anyway by the time it gets here; the float values were conventional, not information.
It's an internal node, flagged deprecated so it stays out of the node menu, and you'll normally only see it in the expanded graph. But it's also the clearest example in the pack of a design principle worth stealing: the stages that reason about masks are not the same stages that reason about colour. Plate is uint8. The masks are float16. The precision-critical links stay float32.
How it works
images comes in as a float32 batch. start is a 0-based index into that batch, count is how many frames from there. The conversion runs in slices of 16 frames - clamp(0,1) * 255, rounded to uint8 - specifically so there's never a full-float32 temporary copy of the whole batch sitting alongside the output. On a long shot that slice buffer is the difference between fitting and not.
Output is plate: the frame slice, uint8, [N,H,W,C].
Two things about this node are worth flagging because they're the kind of thing you only learn by staring at a graph:
count is not "0 means everything." It's a literal slice: images[start:start+count]. Leave it at the default 0 and you get an empty batch. The generator always passes a real count (frames from your pick to the end of the range), so this only bites when you hand-wire the node - which, given it's hidden from the menu, means almost never, but now you know why an empty plate downstream produces a strange error rather than an obvious one.
This output isn't for LTX. The plate feeds CPA Refine (which needs the pixels to run ViTMatte) and CPA Depth (v13's front/back tiebreak). Anything that feeds the generative pass goes through CPA ChunkPad, which converts back to float32 and pads. The README's engineering notes are blunt about why: one memory optimisation once rounded the isolated plate by a single 8-bit level and LTX turned that into a visibly different sample. So the rule in this pack is that whatever touches the sampler stays at full precision, and everything else gets quantised to save RAM.
Output and where it goes
One output, plate, wired into CPA Refine as its plate input, and into CPA Depth when overlap mode is on.
Note the asymmetry, because it looks like a bug when you first read the graph: CPA Refine gets the uint8 plate, but CPA Isolate gets the original float images plus a start offset, not this node's output. Isolate reads one frame at a time and inpaints the background from unrounded colours, which is exactly the kind of precision-sensitive operation the rule above is protecting.
Install
It ships with the pack - nothing extra. Manager → Install via Git URL → https://github.com/rik-python/ComfyUI-Comfy-Pro-Alpha-Generator.git, or by hand:
cd ComfyUI/custom_nodes
git clone https://github.com/rik-python/ComfyUI-Comfy-Pro-Alpha-Generator.git
pip install -r ComfyUI-Comfy-Pro-Alpha-Generator/requirements.txt
Restart afterwards, and reload the browser tab: the pack's UI is a web script and the browser caches it.
When it shows up in your problems
If you're out of RAM on a long 4K shot, this node is already doing its job and the fix is elsewhere: split the shot into runs of ~100 frames with first/last on Load Plate Sequence, disconnect the generator's comp output, or switch native-resolution edges off. RAM grows with shot length no matter how tight the stages are, and the pack's own measurements put a 242-frame 4K shot at 97 GB with native edges on.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| images | IMAGE | — | |
| start | INT | 0 | — |
| count | INT | 0 | — |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| plate | IMAGE | — |