alt.freeweights.olmo / Molmo2-VideoPoint-4B
From: allenai <huggingface.co/allenai>Newsgroups: alt.freeweights.olmoSubject:

Molmo2-VideoPoint-4B

Date: 2026-11-15Commit: 7deb981Signed: 2DC28CC7B26A283B ✓

Video text to text model with 4.9B parameters. Safetensors weights, 19.4 GB in all. Published by allenai under Apache-2.0.

4.9B params19.4GBMolmo2-VideoPoint-4Bsafetensorspermissive
FactsParams4.9BSize19.4 GBFormatssafetensorsTaskvideo text to textLicenseApache-2.0From sourcepermissive
$ fw get allenai/Molmo2-VideoPoint-4B
# manifest sha256 57706b345bbd… · 19.4 GB · 25 files
$ fw verify ./Molmo2-VideoPoint-4B allenai/Molmo2-VideoPoint-4B
From sourceHosted (signed)allenai/Molmo2-VideoPoint-4BLast check: 2026-11-15 03:55 UTC

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

Fine-tune of Qwen3-4B-Instruct-2507.

Works with

Runs with

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

Overview

Size
19.4 GB
Weights
19.4 GB (safetensors)
Parameters
4.9B
Formats
safetensors
Task
video text to text
License
Apache-2.0 (permissive)
Files
25, each with a sha256
Publisher
allenai
Added
2026-11-15
Section
alt.freeweights.olmo
Lineage

Original release from the publisher.

Base model: Qwen/Qwen3-4B-Instruct-2507

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:55 UTCpassed

Model card

From the publisher at commit 7deb981. Shown as plain text with links; images open at the publisher.

Image: Logo for the Molmo2 Project

Molmo2-VideoPoint-4B#

Molmo2 is a family of open vision-language models developed by the Allen Institute for AI (Ai2) that support image, video and multi-image understanding and grounding. Molmo2 models are trained on publicly available third party datasets as referenced in our technical report and Molmo2 data, a collection of datasets with highly-curated image-text and video-text pairs. It has state-of-the-art performance among multimodal models with a similar size. You can find all models in the Molmo2 family here.

Learn more about the Molmo2 family in our announcement blog post.

Molmo2-VideoPoint-4B is based on Qwen3-4B-Instruct and uses SigLIP 2 as vision backbone. Different from the general checkpoints, Molmo2-VideoPoint-4B is finetuned on the Molmo2-VideoPoint data only, after pre-training on pixmo-cap, pixmo-points and tulu's data. It is meant to be used for video pointing and counting only.

Ai2 is commited to open science. The Molmo2 datasets are available here. All other artifacts used in creating Molmo2 (training code, evaluations, intermediate checkpoints) will be made available at a later date, furthering our commitment to open-source AI development and reproducibility.

Quick links:

Quick Start#

Setup Conda Environment#
conda create --name transformers4571 python=3.11
conda activate transformers4571
pip install transformers==4.57.1
pip install torch pillow einops torchvision accelerate decord2 molmo_utils
Pointing Video QA#
from transformers import AutoProcessor, AutoModelForImageTextToText
import torch
from molmo_utils import process_vision_info
import re

model_id="allenai/Molmo2-VideoPoint-4B"

# load the processor
processor = AutoProcessor.from_pretrained(
    model_id,
    trust_remote_code=True,
    dtype="auto",
    device_map="auto"
)

# load the model
model = AutoModelForImageTextToText.from_pretrained(
    model_id,
    trust_remote_code=True,
    dtype="auto",
    device_map="auto"
)

COORD_REGEX = re.compile(rf"<(?:points|tracks).*? coords=\"([0-9\t:;, .]+)\"/?>")
FRAME_REGEX = re.compile(rf"(?:^|\t|:|,|;)([0-9\.]+) ([0-9\. ]+)")
POINTS_REGEX = re.compile(r"([0-9]+) ([0-9]{3,4}) ([0-9]{3,4})")

def _points_from_num_str(text, image_w, image_h, extract_ids=False):
    all_points = []
    for points in POINTS_REGEX.finditer(text):
        ix, x, y = points.group(1), points.group(2), points.group(3)
        # our points format assume coordinates are scaled by 1000
        x, y = float(x)/1000*image_w, float(y)/1000*image_h
        if 0 <= x <= image_w and 0 <= y <= image_h:
            yield ix, x, y


def extract_video_points(text, image_w, image_h, extract_ids=False):
    """Extract video pointing coordinates as a flattened list of (t, x, y) triplets from model output text."""
    all_points = []
    for coord in COORD_REGEX.finditer(text):
        for point_grp in FRAME_REGEX.finditer(coord.group(1)):
            frame_id = float(point_grp.group(1))
            w, h = (image_w, image_h)
            for idx, x, y in _points_from_num_str(point_grp.group(2), w, h):
                if extract_ids:
                    all_points.append((frame_id, idx, x, y))
                else:
                    all_points.append((frame_id, x, y))
    return all_points

messages = [
    {
        "role": "user",
        "content": [
            dict(type="text", text="Point to the penguins."),
            dict(type="video", video="https://storage.googleapis.com/oe-training-public/demo_videos/many_penguins.mp4"),
        ],
    }
]

# process the video using `molmo_utils.process_vision_info`
_, videos, video_kwargs = process_vision_info(messages)
videos, video_metadatas = zip(*videos)
videos, video_metadatas = list(videos), list(video_metadatas)

# apply the chat template to the input messages
text = processor.apply_chat_template(messages, tokenize=False, add_generation_prompt=True)

# process the video and text
inputs = processor(
    videos=videos,
    video_metadata=video_metadatas,
    text=text,
    padding=True,
    return_tensors="pt",
    **video_kwargs,
)

inputs = {k: v.to(model.device) for k, v in inputs.items()}

# generate output
with torch.inference_mode():
    generated_ids = model.generate(**inputs, max_new_tokens=2048)

# only get generated tokens; decode them to text
generated_tokens = generated_ids[0, inputs['input_ids'].size(1):]
generated_text = processor.tokenizer.decode(generated_tokens, skip_special_tokens=True)

# decode video pointing outputs
points = extract_video_points(generated_text, image_w=video_metadatas[0]["width"], image_h=video_metadatas[0]["height"])
print(points)

Evaluations#

We report the accuracy and close accuracy on Molmo2-VideoCountEval here. For details on the evals, refer to our technical report.

ModelAccuracyClose Acc.
GPT-535.850.3
GPT-5 mini29.849.3
Gemini 3 Pro37.153.1
Gemini 2.5 Pro35.856.5
Gemini 2.5 Flash31.948.2
Claude Sonnet 4.527.245.1
Qwen3-VL-4B25.344.3
Qwen3-VL-8B29.647.7
Molmo2-4B34.356.1
Molmo2-8B35.553.3
Molmo2-7B33.250.5
Molmo2-VideoPoint-4B (this model)36.856.5

License and Use#

This model is licensed under Apache 2.0. It is intended for research and educational use in accordance with Ai2’s Responsible Use Guidelines. This model is trained on third party datasets that are subject to academic and non-commercial research use only. Please review the sources to determine if this model is appropriate for your use case.

Files

25 files · 19.4 GBWeights 19.4 GB (safetensors). Sizes and sha256 from the signed manifest.
Show all 25 files with their sha256
FileSizesha256
.gitattributes1.57 KB34448b82c17d60fec9b65b1f093c115ddbaadc04beb1b0140b6bfed2e012a930
README.md6.73 KB14d13d8597c39548baaa532836765b946e0fbb0513d81072e6141cc618901bec
added_tokens.json9.92 KB8bc892fbf3933cf0c00794b0f0fa638ca22429db58d427f71ea953accabbf1e7
chat_template.jinja3.17 KBec66862fda57dc1aef90a21b2a0f64c18a280e2483206449bd251a73b8993101
config.json2.54 KBb098890802cbc0cd1ae5ad120f1529cac521d5b7f2b8fe5ecc40ed94f084736f
configuration_molmo2.py13.9 KB1405b6760579de537521829b9641c8362d5d50e7ef2bdbe3434d2de4a2fc6416
generation_config.json117 B103506d168927632c8f627d470611ec14e5bc38246470173713b5c28762026b0
image_processing_molmo2.py21.1 KB613bc2436936cebb1ebf0bfddda666b5c979573ba503fb904eed6eb56a706181
merges.txt1.67 MB8831e4f1a044471340f7c0a83d7bd71306a5b867e95fd870f74d0c5308a904d5
model-00001-of-00004.safetensors4.89 GB9ca0ae6edd2923a1a6ed4f79b36549c659008993e5ac410d2fcca45a711bb80e
model-00002-of-00004.safetensors4.84 GBf772c58a04fdd099a3198a9c847c25cc9e034e339541fcb13db72df8db312cdb
model-00003-of-00004.safetensors4.84 GB6ca15ae95fc1b027c751f424b0d9dbf0047945d4d60f5e954385524648d2d398
model-00004-of-00004.safetensors4.82 GB555f8f22ddd1dde2d82c19308db152e03a1fc904c74e842bceb9e34de7d589c1
model.safetensors.index.json75.8 KBbc043f680e16ecd6f936ef55bf1979781772d37005192d2f3382385f79e42045
modeling_molmo2.py71.6 KBd3cafcb5300dee41dc9b6d6e8b59e7d3b710bce0408672e8fd78a3bcb28669ce
molmo_2_logo_RGB.png26.7 KBeae441fb7cca5389e030cf2e39cdc16b725b70840cfc075e3982c64b81a11592
preprocessor_config.json555 B026ee03897ff86cb0d3f7c638145a04a253d4c0722fc5bcc3cf996bb0ebed211
processing_molmo2.py16.6 KB61ef1329d8a02caebaa5e5acd07a329fdbf9772e18ff32cd7256c09a3231360b
processor_config.json301 B1a976bcab088bcc4601906c345898558daa18f5e69ec4b1df8ab23a389db8bf2
special_tokens_map.json7.91 KBa4922e884f1f6d82a2ff339c39b2b4e15c437dc85b87816e7c1504d5645e6cd8
tokenizer.json11.5 MB95e80901c901584f416b8fd4349fd60022774b89ba4377626511f0562cc599f7
tokenizer_config.json64.4 KB090037776ede9d6522fbac368c1ce9141518a461828eefac1ab8660bd904fa1e
video_preprocessor_config.json984 B752e78560fc5f32f6c230da7bf3257c20fe20839c16840f3255778da40eff702
video_processing_molmo2.py37.0 KB91c4c6404f58dde3213b060874ce35c7f3695002f761fadf5af3f2515f770ba3
vocab.json2.78 MBca10d7e9fb3ed18575dd1e277a2579c16d108e32f27439684afa0e10b1440910
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
7deb981c9a pinned now2026-11-15 03:55 UTC25 files · 19.4 GB

Use it

$ fw get allenai/Molmo2-VideoPoint-4B
# manifest sha256 57706b345bbd… · 19.4 GB · 25 files
$ fw verify ./Molmo2-VideoPoint-4B allenai/Molmo2-VideoPoint-4B
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/allenai/Molmo2-VideoPoint-4B.json --dir ./Molmo2-VideoPoint-4B $ python3 fw.py verify ./Molmo2-VideoPoint-4B ./allenai__Molmo2-VideoPoint-4B.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download allenai/Molmo2-VideoPoint-4B --revision 7deb981c9a8ac97ef3d18fa72f894cfc33b64030 --local-dir ./Molmo2-VideoPoint-4B

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
14d13d8597c39548baaa532836765b946e0fbb0513d81072e6141cc618901bec
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: allenai <huggingface.co/allenai>Newsgroups: alt.freeweights.olmoSubject: Molmo2-VideoPoint-4BDate: 2026-11-15Commit: 7deb981Signed: 2DC28CC7B26A283B ✓
Upstream
allenai/Molmo2-VideoPoint-4B
Pinned commit
7deb981c9a8ac97ef3d18fa72f894cfc33b64030
Manifest
Molmo2-VideoPoint-4B.json · .minisig
Manifest sha256
57706b345bbd044bdb7f782c9fe668d069582566cd33911b7210933e70a49e07
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 03:55 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/allenai/Molmo2-VideoPoint-4B.json $ curl -O https://freeweights.allternit.com/manifests/allenai/Molmo2-VideoPoint-4B.json.minisig $ minisign -Vm Molmo2-VideoPoint-4B.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

Parent

Qwen/Qwen3-4B-Instruct-2507 · this model is a finetune of it

No model in the catalog names this one as its parent.

Get it
Download
$ HF_ENDPOINT=https://freeweights.allternit.com hf download allenai/Molmo2-VideoPoint-4B
Open in Freeweights Studio

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

Signed manifest
minisign, key 2DC28CC7B26A283B. Molmo2-VideoPoint-4B.json. Provenance. Takedown history: none.
From: bartowski <huggingface.co/bartowski>Subject: allenai_Olmo-3-7B-Instruct-GGUF
From: bartowski <huggingface.co/bartowski>Subject: allenai_Olmo-3-7B-Think-GGUF
From: bartowski <huggingface.co/bartowski>Subject: allenai_Olmo-3.1-32B-Instruct-GGUF
From: bartowski <huggingface.co/bartowski>Subject: allenai_Olmo-3.1-32B-Think-GGUF
From: bartowski <huggingface.co/bartowski>Subject: allenai_olmOCR-2-7B-1025-GGUF
From: bartowski <huggingface.co/bartowski>Subject: allenai_olmOCR-7B-0225-preview-GGUF