Sana Checkpoint Loader
Sana Checkpoint Loader
- model
Before you spend an hour wiring up Sana in this pack, read this part: the pack's own README has a caution box on the Sana section that basically says "a lot of people have had problems with this - try the fork by the Sana devs instead, it auto-downloads the models for you." A ground-up rewrite is reportedly in progress but wasn't ready as of the version this article is based on. That's an unusually candid thing for a maintainer to put in their own README, and it's not idle caution - real threads show people installing this pack for the official Nvidia Sana ComfyUI workflow, hitting errors, and eventually being told by other users the workflow was actually built against the fork, not the base repo. One person summed up the annoyance well: "I use ExtraModels for other stuff so I'm unwilling to try using the fork" - which is the exact bind you're in if you already run PixArt or DiT through this pack and don't want to juggle two versions of the same node set.
So: if you only care about Sana, seriously consider the fork first. If you're here because you already use ExtraModels for PixArt or DiT and want to add Sana without disrupting that setup, this node is your path - just go in knowing the author flagged it as rough.
What Sana is, briefly. Nvidia's Sana uses Gemma2 2B as its text encoder (a genuinely unusual choice - most models of its era used T5 or CLIP) and a heavily compressed latent space that needs its own custom VAE rather than the standard SD one.
Inputs. Two, both required. ckpt_name is a dropdown populated from your checkpoints folder - empty until you've actually placed a file there. model picks the Sana size: SanaMS_600M_P1_D28 or SanaMS_1600M_P1_D20. Match this to whichever checkpoint you actually downloaded.
Output. MODEL, wired into your KSampler.
Getting the pieces, per the README. Download weights from the Sana HuggingFace repo into your checkpoints folder, then load them here with the model dropdown matching. You'll separately need the Gemma Loader node for the text encoder (it auto-downloads the requested Gemma model from HuggingFace once you pick it), and one of the two custom VAEs - either from the Sana diffusers repo or mit-han-lab's DC-AE - renamed and dropped in your VAE folder, loaded through ExtraVAELoader. Then use either Empty Sana Latent Image or Empty DCAE Latent Image for your starting latent.
Installing the pack. ComfyUI Manager: search "Extra Models for ComfyUI." Manual:
cd ComfyUI/custom_nodes
git clone https://github.com/city96/ComfyUI_ExtraModels
then pip install -r requirements.txt in your venv and restart.
Troubleshooting. If you're following one of the official Sana sample workflows and hitting node/loading errors that look like a version mismatch, that's the fork issue described above - the workflows floating around from the Sana team assume the fork's node set, not this repo's. Beyond that, a mismatched VAE (wrong file for the vae_type you picked in ExtraVAELoader) is the other common failure mode, and it tends to look like garbage output rather than a clean error.
Inputs (2)
| Name | Type | Default | Description |
|---|---|---|---|
| ckpt_name | COMBO | 0 options: | |
| model | COMBO | 2 options: SanaMS_600M_P1_D28, SanaMS_1600M_P1_D20 |
Outputs (1)
| Name | Type | Description |
|---|---|---|
| model | MODEL | — |