💪TB | Transcode Latent in Two Steps
The decode-then-encode fallback, with a blur band-aid
- samples
- decoder
- encoder
- LATENT
Sometimes you don't have a purpose-built transcoder, but you still need a latent in a different model's space. 💪TB | Transcode Latent in Two Steps is the pragmatic fallback: instead of a learned latent-to-latent mapping, it does the naive thing - decode to an image with one VAE, re-encode with another - and then papers over the artifacts with a gaussian blur.
The name tells you exactly what happens. Step one: decode your latent with decoder. Step two: encode that image with encoder. The blur_level sits between them to smooth out the noise and ringing that a decode/re-encode cycle tends to inject, because the intermediate "image" between two mismatched VAEs is rarely clean. The source is explicit about it: the blur level is there to "fix artifacts between decoding and encoding."
Inputs
- samples (required) - the latent to convert.
- blur_level (required) - 0 to 5, default 0.5. Higher = more smoothing of the intermediate image. This is the main quality dial: too low and you carry noise through, too high and you blur away detail you wanted to keep.
- decoder and encoder (both optional) - two VAE models. If either is unconnected, the node does nothing and passes the latent straight through.
Output: the transcoded LATENT.
When to use it vs. Transcode Latent
This is the lower-tech sibling. The single-step TranscodeLatent needs a real transcoder model - fast and clean, but you have to have one. Two Steps needs nothing but two VAEs you already own, which makes it the flexible option for one-off conversions between arbitrary models. The cost is quality: a decode→blur→encode pass is exactly the lossy cycle a transcoder exists to avoid, so treat Two Steps as "good enough to experiment," not "as good as the direct route."
In the standard TinyBreaker graph you generally won't need it, since the pack's loader supplies a transcoder for the base↔refiner hop. Reach for it when you're bridging into or out of the TinyBreaker ecosystem with some other model's VAE, or when your transcoder file is missing and you just need to keep the pipeline moving.
Install
cd ComfyUI/custom_nodes
git clone https://github.com/martin-rizzo/ComfyUI-TinyBreaker
or via ComfyUI Manager, then restart. No pip dependencies in this pack. Model files (tinybreaker_prototype1.safetensors, t5xxl_fp8_e4m3fn.safetensors) are the real requirement, and here you also need the two VAEs you plan to bridge. Start blur at the 0.5 default and move it only if you can see the artifact it's supposed to remove - most people never need to touch it.
Inputs (4)
| Name | Type | Default | Description |
|---|---|---|---|
| samples | LATENT | The latent to be transcoded. | |
| blur_level | FLOAT | 0.50–5 | — |
| decoderopt | VAE | A VAE model used for decoding in the first step. | |
| encoderopt | VAE | A VAE model used for encoding in the second step. |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| LATENT | LATENT | The transcoded latent. |