File size: 1,829 Bytes
9dbcb30
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
---
license: apache-2.0
library_name: mlx
tags:
  - mlx
  - mlx-swift
  - super-resolution
  - image-upscaling
  - diffusion
  - quantized
  - apple-silicon
pipeline_tag: image-to-image
---

# SeedVR2-3B (MLX-Swift) — int8

**int8-quantized** MLX-Swift weights for **SeedVR2-3B** (ByteDance, ICLR 2026) — one-step
diffusion **super-resolution**. The **on-device** variant: ~half the size, near-lossless.
For the [`seedvr2-mlx-swift`](https://github.com/xocialize/seedvr2-mlx-swift) package
(MLXEngine / ForgeUpscaler). fp16 base: [`SeedVR2-3B-mlx`](https://huggingface.co/mlx-community/SeedVR2-3B-mlx).

- **Quantization:** transformer DiT Linears int8, group size 64 (the small `vid_in.proj` and the VAE are kept fp16). Declared in `config.json` (`"quantization": {"bits": 8, "group_size": 64}`); the loader applies it automatically.
- **Files:** `transformer.safetensors` (int8, **~3.9 GB** vs 7.9 GB fp16) · `vae.safetensors` (fp16) · `pos_emb.safetensors` · `config.json`.
- **Quality:** int8 `t_out` cosine vs fp16 = **0.9999749** (near-lossless; int4 by contrast degrades this model to ~22.7 dB — use int8 on-device). Reload round-trip cosine **1.0**.

## Usage

```swift
import SeedVR2MLX
let upscaler = try SeedVR2Upscaler(directory: weightsDir)   // detects int8 from config, applies quantize on load
let out = upscaler.upscale(processedImage: img, seed: 42)
```

## Provenance & license

**ByteDance Seed** (*SeedVR2*, ICLR 2026, [ByteDance-Seed/SeedVR](https://github.com/ByteDance-Seed/SeedVR), **Apache-2.0**)
→ fp16 [`numz/SeedVR2_comfyUI`](https://huggingface.co/numz/SeedVR2_comfyUI) → MLX ref
[`filipstrand/mflux`](https://github.com/filipstrand/mflux) → MLX-Swift port + int8 conversion by
**MVS Collective (xocialize)**. Format/precision-converted weights (not a new model); Apache-2.0 applies.