UniSpace PR-DINOv2 class-conditional DiT

Lossless EMA inference component from yjb6/UniSpace, revision 0f0fdf941329f570be65e6c6549b8452e1f967b1, source file encoders/pr-dinov2-dit.pt. Native source/config revision: f73f8720c72c82e0fe468bb4f8f72b0e2b9a11d7.

This is the separately released ImageNet class-conditioned generator, not the full Qwen3-8B UniSpace multimodal MoT. It does not accept language prompts or perform visual question answering.

Included and latent contract

The trained 28+2-layer DiTwDDTHead, complete positional/timestep/class embeddings, heads, original float32 EMA values, matching per-token/per-dimension PR-DINOv2 normalization statistics, exact original transport/sampler implementation and configuration are included. Optimizer and online training copies are excluded.

The input/output latent is B x 896 x 16 x 16: 768 semantic channels plus 128 reconstruction channels from the matching PR-DINOv2 unified tokenizer. This is not an SD/FLUX VAE latent. normalization.safetensors retains the exact original mean and variance, each [256,896]; normalization uses sqrt(var + 1e-5) without reducing token positions or channels. The compatible tokenizer is extracted separately; its decoder is required to obtain RGB.

Offline usage

import torch
from component import load_model, load_statistics, make_sampler
model = load_model('/path/to/package')
stats = load_statistics('/path/to/package')
x = torch.randn(1, 896, 16, 16)
labels = torch.tensor([207])  # ImageNet 0..999; 1000 is the learned null label
with torch.inference_mode():
    velocity = model(x, torch.tensor([0.6]), labels)
    # Use original transport, time direction/shift and endpoint conventions.
    trajectory = make_sampler('/path/to/package')(x, model, y=labels)

normalize / denormalize accept the original [B,256,896] token order or its [B,896,16,16] grid view. Guidance preserves the native all-896-channel CFG formula and configured time interval. The native sampler uses descending shifted times with sqrt(229376/4096); its original nonzero endpoint and num_steps time-point convention are retained. Do not substitute an SD3 or SANA scheduler.

Validation and scope

verify_release.py checks every selected EMA tensor SHA256, strict original architecture loading, all 30 layers on the trained 16x16 grid, matched normalization and layout/inversion, explicit-softmax attention parity, class/null conditioning, native CFG, the exact shifted time grid and a short native torchdiffeq Euler trajectory. See validation.json for measured results. Small synthetic feature fixtures are used; no FID, language-conditioned generation, or RGB decode claim is made for this package.

The 13.4 GB training checkpoint contains EMA, online model and optimizer states. Only EMA storage blocks are fetched and converted to sharded safetensors without changing payload precision or values. Original selected ZIP CRCs and per-tensor/output SHA256 are checked; no whole-source-file LFS verification is claimed. tensor_mapping.json documents removal of the top-level ema. namespace.

Notices

Original MIT license and third-party notices are included. DINOv2 and all inherited component terms remain applicable; see LICENSE and THIRD_PARTY.md.

Matching complete visual tokenizer: gatilin/unispace_pr_dinov2_visual_tokenizer. Both extractions use the same original normalization statistics and source revision.

Downloads last month
24
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Collection including gatilin/unispace_pr_dinov2_class_conditional_dit