alt.freeweights.vision / PE-Core-S-16-384
From: timm <huggingface.co/timm>Newsgroups: alt.freeweights.visionSubject:

PE-Core-S-16-384

Date: 2026-11-15Commit: 3249a38Signed: 2DC28CC7B26A283B ✓

Zero shot image classification model. Safetensors weights, 703 MB in all. Published by timm under Apache-2.0.

vision703MBPE-Core-S-16-384safetensorspermissive
FactsParamsnot statedSize703 MBFormatssafetensorsTaskzero shot image classificationLicenseApache-2.0From sourcepermissive
$ fw get timm/PE-Core-S-16-384
# manifest sha256 00e08ba31c8b… · 703 MB · 10 files
$ fw verify ./PE-Core-S-16-384 timm/PE-Core-S-16-384
From sourceHosted (signed)timm/PE-Core-S-16-384Last check: 2026-11-15 03:23 UTC

Get help: custom fine-tune or private deploy. We review your setup before we quote.

Works with

Runs with

Ranked by fit to this model (safetensors), then by GitHub stars.

Overview

Size
703 MB
Weights
349 MB (safetensors)
Parameters
not stated
Formats
safetensors
Task
zero shot image classification
License
Apache-2.0 (permissive)
Files
10, each with a sha256
Publisher
timm
Added
2026-11-15
Section
alt.freeweights.vision
Lineage

Original release from the publisher.

Where these bytes come from
Publisher at the pinned commitโ†’You

Sources are tried in order. A file counts only when its size and sha256 match the manifest. Sources are checked when you ask for them, not on a timer.

Sources
BadgeHostLast checkResult
From sourcehuggingface.co2026-11-15 03:23 UTCpassed

Model card

From the publisher at commit 3249a38. Shown as plain text with links; images open at the publisher.

Model card for PE-Core-S-16-384#

This is an OpenCLIP (image + text) remaped version of the the original

[\[๐Ÿ“ƒ Tech Report\]](https://arxiv.org/abs/2504.13181) [\[๐Ÿ“‚ PE Github (original weights)\]](https://github.com/facebookresearch/perception_models/) [\[๐Ÿ“‚ OpenCLIP Github (these weights)\]](https://github.com/mlfoundations/open_clip)

Perception Encoder (PE) is a state-of-the-art encoder for image and video understanding trained via simple vision-language learning. It was introduced in "Perception Encoder: The best visual embeddings are not at the output of the network".

Model Developer: Meta

Model Overview: Perception Encoder (PE) is a family of large-scale vision encoder models with state-of-the-art performance on a large variety of vision tasks. By using a robust contrastive pretraining recipe and finetuning on synthetically aligned videos, PE not only outperforms all existing models on classification and retrieval, but it also internally produces strong, general features that scale for downstream tasks. PE unlocks the ability for large-scale contrastive pretraining to transfer to downstream tasks with alignment tuning to capitalize on those general features.

Image: image

Perception Encoder: Core#

PE core is our base model trained with our robust image pretraining schedule and finetuned on the data generated by our synthetic video data engine.

Model Configurations#

PE core curently comes in 3 sizes. PE core G is the main checkpoint, with L and B models distilled from it.

ScaleTowerParamsWidthDepthMLPHeadsCLIP DimResolution / Context Len
B/16Vision0.09B768123072121024224px
Text0.31B102424409616102432 tokens
L/14Vision0.32B1024244096161024336px
Text0.31B102424409616102432 tokens
G/14Vision1.88B1536508960161280448px
Text0.47B128024512020128072 tokens

All PE core models use an attention pooling block with 8 heads on top of the vision tower. The L and B models additionally have a class token for global aggregation. See the paper for more details.

Model Performance#

PE core obtains extremely strong results across the board on zero-shot image classification and retrieval as well as zero-shot video classification and retrieval. We present a sample of its performance across those domains below.

| Model | Checkpoint | IN-1k | IN-v2 | IN-A | ObjectNet | COCO-T2I | Kinetics-400 | VTT-T2I

|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|:---:|

| T/16 384px | PE-Core-T-16-384 | 62.1 | 54.7 | 21.1 | 43.9 | 33.0 | 41.5 | 28.8 |

| S/16 384px | PE-Core-S-16-384 | 72.7 | 65.0 | 49.5 | 60.0 | 42.6 | 55.0 | 39.3 |

| B/16 224px | PE-Core-B-16 | 78.4 | 71.7 | 62.4 | 71.9 | 50.9 | 65.6 | 47.6 |

| L/14 336px | PE-Core-L-14-336 | 83.5 | 77.9 | 89.0 | 84.7 | 57.1 | 73.4 | 50.3 |

| G/14 448px | PE-Core-bigG-14-448 | 85.4 | 80.2 | 92.6 | 88.2 | 58.1 | 76.9 | 51.2 |

PE core performs particularly well on the hard benchmarks such as ObjectNet and ImageNet-A.

How to use#

Image and Text Feature extraction with a Trained Model#

import torch
from urllib.request import urlopen
from PIL import Image
import open_clip

model_id = 'hf-hub:timm/PE-Core-S-16-384'
model, _, preprocess = open_clip.create_model_and_transforms(model_id)
tokenizer = open_clip.get_tokenizer(model_id)

image = Image.open(urlopen(
    'https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/beignets-task-guide.png'
))
image = preprocess(image).unsqueeze(0)

labels_list = ["a dog", "a cat", "a donut", "a beignet"]
text = tokenizer(labels_list, context_length=model.context_length)

with torch.no_grad(), torch.cuda.amp.autocast():
    image_features = model.encode_image(image, normalize=True)
    text_features = model.encode_text(text, normalize=True)
    text_probs = (100.0 * image_features @ text_features.T).softmax(dim=-1)

zipped_list = list(zip(labels_list, [100 * round(p.item(), 3) for p in text_probs[0]]))
print("Label probabilities: ", zipped_list)

You can find more details in the original GitHub repo and the OpenCLIP repo.

Citation#

If you find our code useful for your research, please consider citing:

@article{bolya2025PerceptionEncoder,
  title={Perception Encoder: The best visual embeddings are not at the output of the network},
  author={Daniel Bolya and Po-Yao Huang and Peize Sun and Jang Hyun Cho and Andrea Madotto and Chen Wei and Tengyu Ma and Jiale Zhi and Jathushan Rajasegaran and Hanoona Rasheed and Junke Wang and Marco Monteiro and Hu Xu and Shiyu Dong and Nikhila Ravi and Daniel Li and Piotr Doll{\'a}r and Christoph Feichtenhofer},
  journal={arXiv},
  year={2025}
}

@article{cho2025PerceptionLM,
  title={PerceptionLM: Open-Access Data and Models for Detailed Visual Understanding},
  author={Jang Hyun Cho and Andrea Madotto and Effrosyni Mavroudi and Triantafyllos Afouras and Tushar Nagarajan and Muhammad Maaz and Yale Song and Tengyu Ma and Shuming Hu and Hanoona Rasheed and Peize Sun and Po-Yao Huang and Daniel Bolya and Suyog Jain and Miguel Martin and Huiyu Wang and Nikhila Ravi and Shashank Jain and Temmy Stark and Shane Moon and Babak Damavandi and Vivian Lee and Andrew Westbury and Salman Khan and Philipp Kr\"{a}henb\"{u}hl and Piotr Doll{\'a}r and Lorenzo Torresani and Kristen Grauman and Christoph Feichtenhofer},
  journal={arXiv},
  year={2025}
}

Files

10 files ยท 703 MBWeights 349 MB (safetensors). Sizes and sha256 from the signed manifest.
Hide all 10 files with their sha256
FileSizesha256
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
README.md6.50 KB9f17b2b90c9d3a492ec2ed83234d21663d1514a999e2f03834748085b5bcec82
merges.txt525 KB9fd691f7c8039210e0fced15865466c65820d09b63988b0174bfe25de299051a
open_clip_config.json598 B2e53cd74e5cf6201f4355bf8bff6f486afa2c9cf9c8f0382e190f3ee1a80174b
open_clip_model.safetensors349 MB440da04ea6f08f5ce07b2e7118735660c7a71f981bdf3edde8e8b15f28d660b0
open_clip_pytorch_model.bin349 MB32ea7d3a967d7eb3a707eaff0fc8c29d4a98468ad3463bf36c7b9ccbe9a72988
special_tokens_map.json588 B2cdb3b8331a60c92fc1e55a13e9fd61fd2293c5a51275fdcccd62b780052530e
tokenizer.json3.64 MB43d4281659ce30b6aca2c7485944b3d73925bb7f87c7234daf3b6b094a6d618c
tokenizer_config.json736 B39bae5313c2da6467866dee758e754d69f0e302a875027b142531cb9c51c7c28
vocab.json862 KB5047b556ce86ccaf6aa22b3ffccfc52d391ea4accdab9c2f2407da5b742d4363
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
3249a38eb1 pinned now2026-11-15 03:23 UTC10 files ยท 703 MB

Use it

$ fw get timm/PE-Core-S-16-384
# manifest sha256 00e08ba31c8b… · 703 MB · 10 files
$ fw verify ./PE-Core-S-16-384 timm/PE-Core-S-16-384
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/timm/PE-Core-S-16-384.json --dir ./PE-Core-S-16-384 $ python3 fw.py verify ./PE-Core-S-16-384 ./timm__PE-Core-S-16-384.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download timm/PE-Core-S-16-384 --revision 3249a38eb1c432ec19231c6fe1774acb6a4e4efe --local-dir ./PE-Core-S-16-384

License

Name
Apache License 2.0
Id
Apache-2.0
Class
Permissive
Redistribution
yes
Listing
Hosted (signed)
Decided
License as declared by the publisher. No person read it. 2026-11-15
Text in
README.md
Text sha256
9f17b2b90c9d3a492ec2ed83234d21663d1514a999e2f03834748085b5bcec82
Terms gate
No extra terms beyond the license.

Read the license text

Licenses are checked against the license table. A custom license passes only after a person reads it.

Provenance

From: timm <huggingface.co/timm>Newsgroups: alt.freeweights.visionSubject: PE-Core-S-16-384Date: 2026-11-15Commit: 3249a38Signed: 2DC28CC7B26A283B ✓
Upstream
timm/PE-Core-S-16-384
Pinned commit
3249a38eb1c432ec19231c6fe1774acb6a4e4efe
Manifest
PE-Core-S-16-384.json ยท .minisig
Manifest sha256
00e08ba31c8b6912d05f5535076dc5be8ee4a116501121d12a2fbe457a718078
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 03:23 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/timm/PE-Core-S-16-384.json $ curl -O https://freeweights.allternit.com/manifests/timm/PE-Core-S-16-384.json.minisig $ minisign -Vm PE-Core-S-16-384.json -P RWQ7KGqyx4zCLXtUFOqvfv8L3g+8fpKJ1FsuxPyOYMF+4KufbUxKq1Oq $ shasum -a 256 <file> # compare with the Files tab

A manifest whose signature fails must be rejected. A file whose size or sha256 does not match must be discarded. Verify a download

Model tree

No related models in this catalog.Nothing here lists this model as its parent, and it names no parent.
Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download timm/PE-Core-S-16-384
Open in Freeweights Studio

Pull, verify and run it in the Allternit app on Desktop, web or phone.

Signed manifest
minisign, key 2DC28CC7B26A283B. PE-Core-S-16-384.json. Provenance. Takedown history: none.
From: dima806 <huggingface.co/dima806>Subject: ai_vs_real_image_detection
From: legekka <huggingface.co/legekka>Subject: AI-Anime-Image-Detector-ViT
From: onnx-community <huggingface.co/onnx-community>Subject: AI-Anime-Image-Detector-ViT-ONNX
From: AICodexLab <huggingface.co/AICodexLab>Subject: answerdotai-ModernBERT-base-ai-detector
From: onnx-community <huggingface.co/onnx-community>Subject: answerdotai-ModernBERT-base-ai-detector-ONNX
From: onnx-community <huggingface.co/onnx-community>Subject: bart-large-cnn-ONNX