Nodes/Extra Models for ComfyUI/Sana Resolution Conditioning
ComfyUI Node

Sana Resolution Conditioning

Telling Sana what canvas it's painting for

By city96·Created 3 years ago·Updated 2 years ago· 538
Sana Resolution Conditioning
  • cond
  • cond
width1024
height1024

Sana is Nvidia's small, fast diffusion transformer - 0.6B and 1.6B parameter variants, Gemma2 as the text encoder instead of CLIP or T5, and a heavily compressed 32-channel, /32 latent space that needs its own dedicated VAE. Worth knowing before you invest time here: this pack's own README carries a caution banner recommending you try the official fork maintained by the Sana developers instead, because "many people have had issues" with this implementation. That lines up with what's actually out there - one recent report describes the Sana checkpoint loader in this pack showing an unusable "null" field and only recognizing the original 0.6B/1.6B checkpoints, not the newer Sana1.5 releases. Treat this as workable for the original models if you're patient, not a maintained path to whatever Sana ships next.

This node is Sana's resolution micro-conditioning step.

What it does

If you've used SDXL, you've already seen this trick: SDXL bakes the target width and height into the conditioning itself, not just into the latent's shape, so the model has explicit information about the canvas it's generating for. Sana does the same thing - it was trained across multiple resolution "buckets," and this node injects the target resolution into the conditioning signal so generation behaves correctly at whichever bucket you're aiming for.

  • cond - your CONDITIONING, from Sana Text Encode.
  • width / height - INT, default 1024, range 08192. These should match the actual latent size you're generating at - ideally one of Sana's trained resolution buckets rather than an arbitrary number (pair this with Sana Resolution Select to get a valid pair automatically).

Output: cond - feed straight into your KSampler in place of plain text conditioning.

Installing it

Part of the whole ComfyUI_ExtraModels pack (ComfyUI Manager: search "Extra Models for ComfyUI," or git clone https://github.com/city96/ComfyUI_ExtraModels into custom_nodes plus pip install -r requirements.txt, then restart). Sana itself needs: the checkpoint from the Sana Hugging Face repo, Gemma2 loaded through this pack's Gemma Loader node (auto-downloads from Hugging Face - the 4-bit quantized model on CPU is recommended if you're low on memory), and Sana's own dedicated VAE (not a standard SD/SDXL VAE - its 32-channel latent needs a matching one, downloaded and renamed per the README).

Common issues

Feeding this node an arbitrary width/height pair rather than one of Sana's actual trained buckets is the most likely source of bad output - soft, warped, or just off-model results. Use Sana Resolution Select to pick a valid pair instead of typing numbers by hand.

Beyond that, given the pack's own stated caution about Sana support quality, if something breaks in a way that doesn't look like a setup mistake on your end, it's worth checking whether the official Sana devs' fork already has it fixed before sinking hours into debugging this implementation specifically.

CategoryExtraModels/Sana

Inputs (3)

NameTypeDefaultDescription
condCONDITIONING
widthINT10240–8192
heightINT10240–8192

Outputs (1)

NameTypeDescription
condCONDITIONING