SeeThrough Generate Layers
The Node That Slices an Anime Character Into Transparent Layers
- image
- layerdiff_model
- layers
- preview
If the See-through pack has a heart, this is it. The loaders just fetch models, the depth and postprocess nodes sort and refine, but SeeThrough Generate Layers is the node where the actual machine learning happens: you feed it one anime illustration and it hands you back twenty-something semantic RGBA layers - front hair, back hair, face, irides, eyebrows, topwear, handwear, footwear, tail, wings, objects - each with real transparency, already separated.
That's the whole pitch of the See-through research project (shitagaki-lab, conditionally accepted to SIGGRAPH 2026), and it got the community's attention for an obvious reason. When it landed in April 2026, the framing on r/StableDiffusion was basically "a free way to get a riggable 2D character without paying $500+ to commission a VTuber model." What used to be days of manually cutting a character out in Photoshop becomes one graph run. One honest caveat before you get excited: the model is trained on VTuber-style anime data, so it wants a single, full-body anime character. A realistic photo in, mangled layers out. That's not a bug, that's the training distribution.
How it works. The layer model is an SDXL-based "LayerDiff" pipeline, which puts it in the direct lineage of lllyasviel's LayerDiffusion. The important consequence for you: the alpha channel is generated by the model, not matted afterward, so hair strands and semi-transparent bits keep correct edges instead of the halo-and-hard-cut you get from background removal. The node runs the image center-padded to a square, generates the body parts, then runs a second refined pass on a cropped head region to get the face/eyes/mouth detail right. None of that is your problem - your job is picking the four numbers on the left.
The inputs that actually matter:
image- your single illustration. Full body, clean background, anime. A busy background confuses the decomposition.layerdiff_model- plug in thelayerdiff_modeloutput from SeeThrough Load LayerDiff Model.seed- default 42. This is real diffusion, so same seed + same image = same layering. Lock it when you find a split you like.resolution- default 1280, step of 64, 512–2048. The image is padded to this square. Higher costs a lot of VRAM and time for modest gains; 1024–1280 is the sane band.num_inference_steps- default 30. More steps = slightly cleaner edges, meaningfully slower. 30 is a good stopping point.
Outputs: layers (type SEETHROUGH_LAYERS) wires straight into SeeThrough Generate Depth - that's the next node in every example workflow. preview (IMAGE) goes to a Preview Image node so you can actually see what you got before you commit to the slower downstream steps.
Installing. Via ComfyUI Manager (search "See-through") or:
cd ComfyUI/custom_nodes
git clone https://github.com/jtydhr88/ComfyUI-See-through.git
cd ComfyUI-See-through
pip install -r requirements.txt
Then restart ComfyUI and load one of the workflows/seethrough-basic.json files from the repo. First run downloads the LayerDiff model from HuggingFace (layerdifforg/seethroughv0.0.2_layerdiff3d) - that's several GB, and at 1280 resolution the run wants roughly 13–16GB VRAM. A 30-step 1280 run is on the order of a couple of minutes on a top-end card and slower from there.
Where people get burned: VRAM. If you're on 8–12GB, don't fight it here - go to the loader node and check cache_tag_embeds (saves ~2GB for free), drop resolution to 1024, and treat group_offload as the last resort because it roughly triples the run time. And if your output looks like a blob of unlabeled parts, check the console: the node prints the tag version and layer count. If it's a partial pass, you usually just need more VRAM headroom or a lower resolution, not a different workflow.
Inputs (5)
| Name | Type | Default | Description |
|---|---|---|---|
| image | IMAGE | — | |
| layerdiff_model | SEETHROUGH_LAYERDIFF_MODEL | — | |
| seed | INT | 420–4294967295 | — |
| resolution | INT | 1280512–2048 | — |
| num_inference_steps | INT | 301–100 | — |
Outputs (2)
| Name | Type | Description |
|---|---|---|
| layers | SEETHROUGH_LAYERS | — |
| preview | IMAGE | — |