Model reference · open weights
Nucleus-Image is an open-weight image model from NucleusAI. Nucleus-Image (BF16) weighs 51.6 GB; the smallest configuration that runs it is L40S 48 GB.
Summary of the NucleusAI/Nucleus-Image model card, 2026-10-01
What it is
| Released by | NucleusAI |
|---|---|
| Released | 2026-03-17 |
| Parameters | 16.9B |
| VRAM | 51.6 GB for the weights |
What it runs on
| Card | One image | Memory |
|---|---|---|
| RTX 3060 12 GB … RTX 5090 32 GB | does not fit | |
| L40S 48 GB | tight (encoders offloaded) | 44.0 GB |
| A100 80 GB | fits | 78.2 GB |
| H100 80 GB | fits | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | fits | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | fits | 107 GB |
| H200 141 GB | fits | 138 GB |
| B200 180 GB | fits | 176 GB |
From the model card
🌐 Website | 🖥️ GitHub | 🤗 Hugging Face | 📑 Tech Report
Nucleus-Image is a text-to-image generation model built on a sparse mixture-of-experts (MoE) diffusion transformer architecture. It scales to 17B total parameters across 64 routed experts per layer while activating only ~2B parameters per forward pass, establishing a new Pareto frontier in quality-versus-efficiency. Nucleus-Image matches or exceeds leading models including Qwen-Image, GPT Image 1, Seedream 3.0, and Imagen4 on GenEval, DPG-Bench, and OneIG-Bench. This is a base model released without any post-training optimization (no DPO, no reinforcement learning, no human preference tuning). All reported results reflect pre-training performance only. We release the full model weights, training code, and dataset, making Nucleus-Image the first fully open-source MoE diffusion model at this quality tier.
diffusers pipeline. Simply enable it with TextKVCacheConfig for automatic speedup with no code changes to the inference loopNucleus-Image is a 32-layer diffusion transformer where 29 of the 32 blocks replace the dense FFN with a sparse MoE layer containing 64 routed experts and one shared expert (the first 3 layers use dense FFN for training stability). Image queries attend to concatenated image and text key-value pairs via joint attention. Text tokens are excluded from the transformer backbone entirely, participating only as KV contributors. This eliminates MoE routing overhead for text and enables full text KV caching across denoising steps.
Routing uses Expert-Choice with a decoupled design: the router receives the unmodulated token representation concatenated with the timestep embedding, while expert MLPs receive the fully modulated representation. This prevents the adaptive modulation scale — which varies by an order of magnitude across timesteps — from collapsing expert selection into timestep-dependent routing, preserving spatial and semantic expert specialization.
| Specification | Value |
|---|---|
| Total parameters | 17B |
| Active parameters | ~2B |
| Architecture | Sparse MoE Diffusion Transformer |
| Layers | 32 |
| Hidden dimension | 2048 |
| Attention heads (Q / KV) | 16 / 4 (GQA) |
| Experts per MoE layer | 64 routed + 1 shared |
| Expert hidden dimension | 1344 |
| Text encoder | Qwen3-VL-8B-Instruct |
| Image tokenizer | Qwen-Image VAE (16ch) |
| Training data | 700M images, 1.5B caption pairs |
| Training curriculum | Progressive resolution (256 → 512 → 1024) |
| Total training steps | 1.7M |
Nucleus-Image achieves state-of-the-art or near state-of-the-art results on all three benchmarks despite activating only ~2B of its 17B parameters per forward pass. All results are from the base model at 1024x1024, 50 inference steps, CFG scale 8.0.
| Benchmark | Score | Highlights |
|---|---|---|
| GenEval | 0.87 | Matches Qwen-Image; leads all models on spatial position (0.85) |
| DPG-Bench | 88.79 | #1 overall; leads in entity (93.08), attribute (92.20), and other (93.62) |
| OneIG-Bench | 0.522 | Surpasses Imagen4 (0.515) and Recraft V3 (0.502); strong style (0.430) |
Install the latest version of diffusers:
pip install git+https://github.com/huggingface/diffusers
Generate images with Nucleus-Image:
import torch
from diffusers import DiffusionPipeline
from diffusers import TextKVCacheConfig
model_name = "NucleusAI/Nucleus-Image"
pipe = DiffusionPipeline.from_pretrained(model_name, torch_dtype=torch.bfloat16)
pipe.to("cuda")
# Enable Text KV caching across denoising steps (integrated into diffusers)
config = TextKVCacheConfig()
pipe.transformer.enable_cache(config)
# Supported aspect ratios
aspect_ratios = {
"1:1": (1024, 1024),
"16:9": (1344, 768),
"9:16": (768, 1344),
"4:3": (1184, 896),
"3:4": (896, 1184),
"3:2": (1248, 832),
"2:3": (832, 1248),
}
prompt = "A weathered lighthouse on a rocky coastline at golden hour, waves crashing against the rocks below, seagulls circling overhead, dramatic clouds painted in shades of amber and violet"
width, height = aspect_ratios["16:9"]
image = pipe(
prompt=prompt,
width=width,
height=height,
num_inference_steps=50,
guidance_scale=4.0,
generator=torch.Generator(device="cuda").manual_seed(42),
).images[0]
image.save("nucleus_output.png")
Nucleus-Image generations of human subjects and portraits, spanning diverse cultures, ages, and artistic styles. From expressive character studies to fine-grained close-ups with intricate skin texture and detail.
Nucleus-Image generations spanning fantasy, surrealism, animation, and the natural world.
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.
Running it yourself
Rent a machine by the hour. Runs as it is with diffusers, on the machine, in Python.
# on your rented machine: pip install diffusers transformers accelerate
import torch
from diffusers import DiffusionPipeline
pipe = DiffusionPipeline.from_pretrained("NucleusAI/Nucleus-Image", torch_dtype=torch.bfloat16).to("cuda")
image = pipe(prompt="a red bicycle on a cobbled street").images[0]
image.save("/workspace/out.png")