LCS Load Data
The boring node every LCS workflow starts with (and why the first run takes forever)
- vae
- lcs_data
The pack's front door
Every node in ComfyUI-LCS needs the little bundle of data this node produces. It's one input, one output, zero sliders - the most boring node in the pack, and also the one you'll forget about until something breaks.
The pack is facok's unofficial community implementation of "The Latent Color Subspace" (ICML 2026). The research claim: color in a diffusion model's latent patch space lives in a 3D subspace, while the remaining 61 dimensions carry structure and detail. Steer those 3 dimensions during sampling and you can re-color a generation training-free - no LoRA, no post-process pass. But before you can steer, you need the basis, and computing it is exactly what LCS Load Data does.
What it actually does
Feed it a VAE. The node fingerprints the VAE's decoder weights (a hash of the first decoder weight tensor) and looks for a cached calibration file named after that fingerprint in the pack's data/ folder. Cache hit → load instantly. Cache miss → run calibration.
Calibration is PCA on real VAE encodings: it encodes 512 solid-color 512×512 images through your VAE, projects the patches into latent patch space, and finds the 3D basis that captures essentially all the color variance. That's 512 VAE encodes, which is why the first run looks frozen. It isn't - give it a minute. The result is saved to disk, so every run after is instant.
The one input that matters
There's only one: vae - and it matters more than it looks. Calibration is cached per-VAE, keyed by that decoder fingerprint. Swap to a different VAE and the node quietly re-computes the basis on the next queue. That's a feature, because the LCS basis genuinely differs per VAE. It also means the slow first run comes back every time you change VAEs.
Install
ComfyUI Manager (search "LCS", the pack title is "ComfyUI-LCS") or the manual route:
cd ComfyUI/custom_nodes
git clone https://github.com/facok/ComfyUI-LCS.git
Then restart ComfyUI. Dependencies are einops and safetensors, which a stock ComfyUI almost certainly already has.
Wiring it in
lcs_data plugs into the lcs_data input on LCS Color Intervene, LCS Color Batch, LCS Tone Adjust, LCS Color Anchor, or LCS Preview Colors. The README's basic chain:
LCS Load Data → LCS Color Intervene → KSampler
The author tests against FLUX, FLUX2.klein, z-image, Wan (qwen-image), and LTX2.3. Since everything is per-VAE, any model with a compatible VAE should work.
Gotchas
- First run after install or a VAE swap is slow. That's calibration, not a hang. Subsequent runs are effectively free.
- Don't run two calibrations at once. If you feed two different VAE branches, you're paying for two full 512-image calibrations. Reuse one
lcs_datawire. - Watch the console. The slow run prints
[LCS Calibration]progress lines; if you see a silent node with no log output, something's actually wrong rather than just slow.
Wire this once, stop thinking about it. Everything else in the pack is downstream of it.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| vae | VAE | VAE model (calibration is cached per-VAE) |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| lcs_data | LCS_DATA | — |