File size: 1,867 Bytes
10cd774
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
41
42
43
44
45
46
47
48
49
50
51
52
---
license: apache-2.0
library_name: braindecode
tags:
- eeg
- foundation-model
- braindecode
pipeline_tag: feature-extraction
---

# ZUNA (braindecode re-host)

Faithful re-host of the **ZUNA** EEG foundation-model encoder weights for use with
[braindecode](https://github.com/braindecode/braindecode).

- **Original model:** [`Zyphra/ZUNA`](https://huggingface.co/Zyphra/ZUNA)
- **Original code:** https://github.com/Zyphra/zuna
- **Paper:** Warner, C., Mago, J., Huml, J.R., Osman, M. and Millidge, B. (2026).
  *ZUNA: Flexible EEG Superresolution with Position-Aware Diffusion Autoencoders.*
  arXiv:2602.18478
- **Original authors (Zyphra):** Chris Warner, Jonas Mago, Jon Huml, et al.
- **License:** Apache-2.0 (inherited from the upstream release)

## Why this re-host

The braindecode `ZUNA` port loads these weights through
`ZUNA.from_pretrained(...)`. Re-hosting under the `braindecode` org gives a
stable, permanent location that the library can point to by default, so the
integration does not depend on the upstream repository staying unchanged. The
weights file is **bit-identical** to the upstream checkpoint (same SHA-256);
only the filename is normalised to the standard `model.safetensors`.

## What is (and is not) pretrained

These are the pretrained **encoder** weights (a position-aware diffusion
autoencoder trained for EEG superresolution). The braindecode wrapper adds a
**classification head that is randomly initialised** and must be fine-tuned on
your downstream task — loading these weights alone does not give a trained
classifier.

## Usage

```python
from braindecode.models import ZUNA

# Defaults to this repo (braindecode/ZUNA); n_chans / n_outputs are montage-
# and task-dependent and must be supplied.
model = ZUNA.from_pretrained(n_chans=19, n_outputs=4)

# Inputs are 5 s EEG windows sampled at 256 Hz (n_times = 1280).
```