SenseNova U1.5 Loader (Final / SFT)
The Loader That Refuses to Load Garbage — SenseNova U1.5 Final / SFT
- MODEL
- CLIP
- VAE
This is where every SenseNova U1.5 workflow starts, so let's be clear about what the model actually is. SenseNova U1.5 is SenseTime's open-weights (Apache 2.0) image model - an 8B "MoT" (mixture-of-transformers) that's genuinely, unusually good at text-dense images: posters, infographics, dashboards, anything where the text has to be right. Community benchmarks put it well ahead of Qwen-Image on those jobs, and people who dismissed the first SenseNova release were mostly being unfair to it. The catch is size: the Final single-file checkpoint is about 50 GB, the SFT (fine-tuned) version about 35 GB, and you need a CUDA card with BF16 and ideally 24 GB VRAM to have a good time. This is not a "try it on your laptop" model.
The SenseNovaU15Loader is that model's CheckpointLoader. It reads a single .safetensors from ComfyUI/models/diffusion_models/ and hands you the three outputs you'd expect: MODEL, CLIP, and VAE.
Why the loader is paranoid (in a good way)
Where most loaders just stuff weights in and pray, this one verifies. It ships an embedded checkpoint contract and checks, before loading: the safetensors metadata format, the config digest, the source repo and revision, the exact file size, and every tensor's name, shape, and dtype. Wrong file, incomplete download, or a mismatched variant and you get a loud, specific error instead of a silent blurry model.
Two things that make it nicer than your average 2026 flow-model loader:
- The CLIP output is SenseNova's own text encoder, bundled in the repo - nothing to download alongside the checkpoint. No hunting for a separate text-encoder file.
- The VAE is a pixel-space placeholder, because this model has no real VAE at all. That's not a bug; it's the architecture. Pixel-space generation is the whole 2026 trend of trading latent compression for edit fidelity - ComfyUI people constantly report these workflows as "broken" because the VAE/CLIP loaders look like they're missing.
The model_name dropdown only lists what's in your diffusion_models/ folder. Pick Final or SFT - they're different training stages and different files, and the loader treats them as such (the 8-step LoRA node downstream will reject SFT).
Install & the one error you'll hit
cd ComfyUI/custom_nodes
git clone https://github.com/T8mars/Comfyui-SenseNova-U1.5-Wrapper-T8.git
or search "SenseNova U1.5 (T8)" in ComfyUI Manager, then restart. No extra Python dependencies - refreshingly rare for a wrapper this size. Manager will not download the model; you pull the checkpoint from the README's Hugging Face link (t8star/SenseNova-U1.5-Comfy) and drop it in models/diffusion_models/ yourself.
The error you'll actually see at some point is checkpoint key mismatch. The fix, per the README: update the pack to 1.3.3+, fully close and restart ComfyUI, and check you don't have two copies of the node sitting in custom_nodes/ (a stale copy gets imported too, and they fight). Verify your file's size/SHA256 against the README's table. Do not bypass the verification - the author's warning is blunt and correct: bypassing it lets a bad checkpoint load and you get blurry, off-color output that's miserable to debug.
A note on the alternatives
If you saw an earlier ComfyUI SenseNova wrapper and bounced off it - the smthemex one with GGUF-only support, bf16 errors, memory creeping up per run, no text-to-image mode - that's a different project, and this pack is the more finished take on the same model. It's not perfect; it's a single dev's wrapper with real CI and real verification, which is more than the field usually gets. Start with the README's recommended settings (50 steps, CFG 4, shift 3, euler/normal) and it behaves.
Inputs (1)
| Name | Type | Default | Description |
|---|---|---|---|
| model_name | COMBO | 0 options: |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| MODEL | MODEL | — |
| CLIP | CLIP | — |
| VAE | VAE | — |