Nodes/TK ComfyUI See Through/SeeThrough Export Spine
ComfyUI Node

SeeThrough Export Spine

From PNG to a Spine 2D skeleton project in one node

By tackcrypto1031·Created 6 months ago·Updated 5 months ago· 12
SeeThrough Export Spine
  • parts
  • spine_json_path
filename_prefixseethrough_spine
spine_version4.2.28
output_path

If you've ever decomposed an anime character into 20-plus layers and then stared at them wondering how they become a riggable character, this is the node that closes the gap. It takes the SEETHROUGH_PARTS output of a PostProcess chain and writes an actual Spine 2D skeleton project - a .json you open straight in the Spine editor, plus a folder of cropped layer PNGs - with coordinates, draw order and file names already laid out.

It's the last stop in the pack's Spine prep workflow: PostProcess → Layer Rename → Layer Filter → Export Spine. It's also the fork's most distinctive feature: upstream ComfyUI-See-through stopped at PSD, and this export path is what the fork added for game-animation people.

How it works

The node walks every layer in the parts container, saves each one as a cropped PNG into an images/ subfolder, and builds a Spine skeleton JSON around them. Two details are worth knowing because they're invisible until they bite:

  • Coordinate conversion. The layers exist in image space (Y-down, top-left origin). ExportSpine converts every layer's center to Spine space - Y-up, origin at bottom-center of the canvas - so the character actually lands where it should when you open the file. No manual repositioning.
  • Draw order comes from depth. Slots are sorted by each layer's depth_median (computed back in PostProcess), back-to-front, so hair and background parts don't fight the character's face for z-order.

The JSON uses the standard Spine structure - a single root bone, one slot per layer, a default skin, an empty setup animation - so you're not getting a rig, you're getting a clean starting scene where everything is positioned and named.

The inputs that matter

  • parts - the SEETHROUGH_PARTS container. Wire it from PostProcess, or through Layer Rename/Layer Filter if you want the exported names and contents cleaned up first.
  • filename_prefix (default seethrough_spine) - the name of the project folder and JSON. The node appends a timestamp and ID, so repeated exports don't clobber each other.
  • spine_version (default 4.2.28) - a string written into the skeleton's skeleton.spine field. Set it to match your Spine editor version so newer editors don't warn about schema drift.
  • output_path (optional, default empty) - empty means ComfyUI's default output/ folder; set it to something like D:/my_project/spine_assets to export straight into your project.

The single output is spine_json_path, the path to the written JSON - useful for scripting, mostly just confirmation. This is an output node, so it always runs and the cache works backward from it.

Why you'd pick this over PSD import

Spine Professional (3.6+) can import PSDs directly, and for a one-off that's genuinely simpler. This node wins in two cases: Spine Essential users (PSD import is a Pro feature, and the JSON path works in all versions), and automated pipelines where you want consistent, pre-filtered, pre-renamed output without hand-tidying a PSD. For a one-shot character in Spine Pro, honestly, just use Save PSD. For a repeatable batch pipeline, this is the node.

Installation

Comes with the tk_seethrough pack - ComfyUI Manager, search "See Through," or:

cd ComfyUI/custom_nodes
git clone https://github.com/tackcrypto1031/tk_seethrough.git
cd tk_seethrough
pip install -r requirements.txt

Restart ComfyUI; the nodes sit under the SeeThrough category. ExportSpine itself needs no extra model downloads - by the time you reach it, the heavy lifting (layer generation, depth, post-process) already happened upstream. The one gotcha: the tag names in your parts must match what you expect on disk, and Layer Rename's defaults are what the images get named, so run it first if you care about file names.

CategorySeeThrough

Inputs (4)

NameTypeDefaultDescription
partsSEETHROUGH_PARTS
filename_prefixSTRINGseethrough_spine
spine_versionSTRING4.2.28Spine editor version string for the skeleton JSON.
output_pathoptSTRINGCustom output directory path. Leave empty to use ComfyUI default output folder.

Outputs (1)

NameTypeDescription
spine_json_pathSTRING