SeeThrough Post Process
The Node That Splits Eyes, Ears, and Hair Into Front and Back
- layers_depth
- parts
- preview
Raw layer decomposition gets you maybe twenty flat cutouts. If you've ever rigged anything in Live2D, you know that's not enough - you need a left eye and a right eye, a left ear and a right ear, and hair split into front and back strands, or your character looks like a paper doll that can only pivot as a single piece. SeeThrough Post Process is the node that takes the depth-tagged layers from the previous step and does all that smart splitting, turning raw decomposition into actual riggable parts. It's where the pack earns its "30+ layers" boast (the community counts ~23 base layers, more once you split by side and depth).
How it works. It reads the per-layer depth maps and does three classic computer-vision jobs:
- Left/right splitting - via connected-component analysis. Eyes (and eyebrows, which ride along), ears, and handwear get separated into
-l/-rparts based on their positions. - Hair front/back split - the interesting one. It clusters the hair's depth values with KMeans into two clusters, then inpaints each half so the strands under the split look finished instead of hollow.
- Depth ordering - it computes a
depth_medianper part and tweaks the ordering so face features composite correctly (nose and mouth sit on the face, ears go behind it). That median is the value that later drives draw order in the PSD and in the layer editor.
The inputs:
layers_depth- thelayers_depthoutput from SeeThrough Generate Depth. Non-negotiable; this node needs the depth maps, not just the images.tblr_split- defaulttrue. Split symmetric parts (eyes, ears, handwear) into left/right. Turn it off if you want the unsplit "eyes" as one layer - some workflows genuinely want that for a single-piece blink.use_lama- defaulttrue. This is the sneaky one. It uses a LaMa inpainting network for the hair split, which gives cleaner results than OpenCV. "Falls back to OpenCV if disabled" is the tooltip, but the real behavior is worth knowing: on the first hair split, LaMa downloads a ~700MBlama_large_512px.ckptfrom HuggingFace (the AnimeMangaInpainting repo) viatorch.hub- a download the README never mentions. If it fails or you're offline, PostProcess catches the error and quietly keeps the hair as one unsplit layer.
Outputs: parts (type SEETHROUGH_PARTS) - the finished, split, depth-ordered part set. This is the money output: it feeds either SeeThrough Save PSD (Photoshop/Live2D route) or SeeThrough Parts To Layers (ComfyUI's built-in layer editor route). preview (IMAGE) shows the blended reconstruction and is your sanity check before you pay for an export.
Installing. It's part of the ComfyUI-See-through pack; install via Manager (search "See-through") or clone + pip install -r requirements.txt from the repo. See the SeeThrough Generate Layers article for the exact commands.
Where people get burned: three things, in order of frequency. First, the hidden LaMa download - if your first run stalls right at the hair step, that's it, and disabling use_lama skips it entirely (OpenCV's inpainter is fine for most anime, honestly). Second, hair split silently failing and leaving one giant hair layer - check the console for "Hair clustering failed... keeping as-is"; it usually means the depth map for that image was too flat to cluster, and a lower resolution_depth upstream can help. Third, layers ordering weird in the preview - that's expected until PostProcess runs, because it's the node doing the ordering.
Inputs (3)
| Name | Type | Default | Description |
|---|---|---|---|
| layers_depth | SEETHROUGH_LAYERS_DEPTH | — | |
| tblr_split | BOOLEAN | true | Split symmetric parts (eyes, ears, handwear) into left/right |
| use_lama | BOOLEAN | true | Use LaMa inpainting for hair splitting (better quality). Falls back to OpenCV if disabled. |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| parts | SEETHROUGH_PARTS | — |
| preview | IMAGE | — |