A model zoo for non-Euclidean embedding models (hyperbolic, spherical, product manifolds)
Project description
hyper-models
A model zoo for non-Euclidean embedding models
Hyperbolic · Spherical · Product Manifolds
Why?
- Standardized access to non-Euclidean embedding models
- One catalog surface: model names map to internal loaders such as ONNX or optional torch-backed runtimes
- Simple API —
load()andencode_images()
Installation
uv pip install hyper-models
This base install is the simple path: it stays torch-free and is enough for ONNX-backed catalog entries such as HyCoCLIP and MERU.
For torch-backed checkpoints (for example UNCHA):
uv pip install "hyper-models[ml]"
Usage
import hyper_models
from PIL import Image
# List available models
hyper_models.list_models()
# ['hycoclip-vit-s', 'hycoclip-vit-b', 'meru-vit-s', 'meru-vit-b', 'uncha-vit-s', 'uncha-vit-b']
# Inspect supported internal loader kinds
hyper_models.list_loaders()
# ['onnx', 'uncha-image-torch']
# Load model (auto-downloads from Hugging Face Hub)
model = hyper_models.load("hycoclip-vit-s")
model.geometry # 'hyperboloid'
model.dim # 513
# Encode PIL images
images = [Image.open("image.jpg")]
embeddings = model.encode_images(images) # (1, 513) ndarray
# Get model info
info = hyper_models.get_model_info("hycoclip-vit-s")
info.hub_id # 'mnm-matin/hyperbolic-clip'
info.loader # 'onnx'
info.license # 'CC-BY-NC'
# Low-level: preprocess images yourself
batch = hyper_models.preprocess_images(images) # (B, 3, 224, 224)
embeddings = model.encode(batch)
Architecture
hyper-models is intended to be a timm-like catalog for non-Euclidean models.
- The public abstraction is the catalog entry name, for example
hycoclip-vit-s. - Each entry declares metadata such as geometry, dimensionality, artifact path, and an internal loader kind.
- Internal loaders may differ by model family:
onnxfor exported, torch-free runtimesuncha-image-torchfor raw checkpoints that need a PyTorch image runtime
This keeps callers on one stable API:
model = hyper_models.load("hycoclip-vit-s")
model = hyper_models.load("uncha-vit-b")
Callers do not need to know which internal loader is used, except for optional
dependency installation when choosing entries that need hyper-models[ml].
HyperView integration
HyperView auto-detects hyper-models names and routes them to the hyper-models provider.
import hyperview as hv
dataset = hv.Dataset.from_huggingface(
name="demo",
hf_dataset="uoft-cs/cifar10",
split="train",
image_key="img",
)
# Uses provider='hyper-models' automatically.
space_key = dataset.compute_embeddings(model="uncha-vit-b")
layout_key = dataset.compute_visualization(space_key=space_key, layout="poincare")
HyperView's simple path remains torch-free. If you use the default ONNX-backed
hyper-models entries or the default embed-anything provider, HyperView does
not need PyTorch. PyTorch is only needed when you explicitly select a
torch-backed catalog entry such as uncha-vit-s or uncha-vit-b.
Models
Hyperbolic
| Model | Available | Paper | Code |
|---|---|---|---|
hycoclip-vit-s |
ICLR 2025 | PalAvik/hycoclip | |
hycoclip-vit-b |
ICLR 2025 | PalAvik/hycoclip | |
meru-vit-s |
ICML 2023 | facebookresearch/meru | |
meru-vit-b |
ICML 2023 | facebookresearch/meru | |
uncha-vit-s |
CVPR 2026 | jeeit17/UNCHA | |
uncha-vit-b |
CVPR 2026 | jeeit17/UNCHA | |
hyp-vit |
— | CVPR 2022 | htdt/hyp_metric |
hie |
— | CVPR 2020 | leymir/hyperbolic-image-embeddings |
hcnn |
— | ICLR 2024 | kschwethelm/HyperbolicCV |
Hyperspherical
| Model | Available | Paper | Code |
|---|---|---|---|
megadescriptor (via timm) |
WACV 2024 | WildlifeDatasets/wildlife-datasets | |
sphereface |
— | CVPR 2017 | wy1iu/sphereface |
arcface |
— | CVPR 2019 | deepinsight/insightface |
Product Manifolds
| Model | Available | Paper | Code |
|---|---|---|---|
hyperbolics |
— | ICLR 2019 | HazyResearch/hyperbolics |
Export Tooling
This repo also contains tooling to export PyTorch models to ONNX:
cd export/hycoclip
uv run python export_onnx.py --checkpoint model.pth --onnx model.onnx
See export/hycoclip/README.md for details.
References
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file hyper_models-0.2.0.tar.gz.
File metadata
- Download URL: hyper_models-0.2.0.tar.gz
- Upload date:
- Size: 10.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e23d45d310cdb080035d6e0ddd9cd4f7ce3d37ad4b0e3b6fddd9509e73c4f9c7
|
|
| MD5 |
d936e5bc39b244cbf163a39a22a4ba3a
|
|
| BLAKE2b-256 |
5f39de4cef8a04580543d2a691ef3ff16392e076984feed364a0c6c21ebeb930
|
Provenance
The following attestation bundles were made for hyper_models-0.2.0.tar.gz:
Publisher:
release.yml on Hyper3Labs/hyper-models
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hyper_models-0.2.0.tar.gz -
Subject digest:
e23d45d310cdb080035d6e0ddd9cd4f7ce3d37ad4b0e3b6fddd9509e73c4f9c7 - Sigstore transparency entry: 1280633300
- Sigstore integration time:
-
Permalink:
Hyper3Labs/hyper-models@e9f9281452487ba0a9985c23c871174cbd323750 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/Hyper3Labs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e9f9281452487ba0a9985c23c871174cbd323750 -
Trigger Event:
push
-
Statement type:
File details
Details for the file hyper_models-0.2.0-py3-none-any.whl.
File metadata
- Download URL: hyper_models-0.2.0-py3-none-any.whl
- Upload date:
- Size: 12.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cb53bb34d16ff8234e5513b1c1648267dc3d075ee792f37a0f81f39710850e85
|
|
| MD5 |
92bcf4037371023fc41903d6fd89b199
|
|
| BLAKE2b-256 |
12ddebe820ad86287d29671db4f2967ba5e56df6f081dd8ebd097b112ac4e9a1
|
Provenance
The following attestation bundles were made for hyper_models-0.2.0-py3-none-any.whl:
Publisher:
release.yml on Hyper3Labs/hyper-models
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
hyper_models-0.2.0-py3-none-any.whl -
Subject digest:
cb53bb34d16ff8234e5513b1c1648267dc3d075ee792f37a0f81f39710850e85 - Sigstore transparency entry: 1280633305
- Sigstore integration time:
-
Permalink:
Hyper3Labs/hyper-models@e9f9281452487ba0a9985c23c871174cbd323750 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/Hyper3Labs
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@e9f9281452487ba0a9985c23c871174cbd323750 -
Trigger Event:
push
-
Statement type: