alt.freeweights.text / Emu3-Stage1
From: BAAI <huggingface.co/BAAI>Newsgroups: alt.freeweights.textSubject:

Emu3-Stage1

Date: 2026-11-15Commit: 083e245Signed: 2DC28CC7B26A283B ✓

Any to any model with 8.5B parameters. Safetensors weights, 34.0 GB in all. Published by BAAI under Apache-2.0.

8.5B params34.0GBEmu3-Stage1safetensorspermissive
FactsParams8.5BSize34.0 GBFormatssafetensorsTaskany to anyLicenseApache-2.0From sourcepermissive
$ fw get BAAI/Emu3-Stage1
# manifest sha256 ddb82edcd8bc… · 34.0 GB · 21 files
$ fw verify ./Emu3-Stage1 BAAI/Emu3-Stage1
From sourceHosted (signed)BAAI/Emu3-Stage1Last check: 2026-11-15 03:58 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
34.0 GB
Weights
34.0 GB (safetensors)
Parameters
8.5B
Formats
safetensors
Task
any to any
License
Apache-2.0 (permissive)
Files
21, each with a sha256
Publisher
BAAI
Added
2026-11-15
Section
alt.freeweights.text
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:58 UTCpassed

Model card

From the publisher at commit 083e245. Shown as plain text with links; images open at the publisher.

Emu3: Next-Token Prediction is All You Need#

Emu3 Team, BAAI

| Project Page | Paper | 🤗HF Models | github

| Demo |

Image: arch.

We introduce Emu3, a new suite of state-of-the-art multimodal models trained solely with next-token prediction! By tokenizing images, text, and videos into a discrete space, we train a single transformer from scratch on a mixture of multimodal sequences.

Emu3 excels in both generation and perception#

Emu3 outperforms several well-established task-specific models in both generation and perception tasks, surpassing flagship open models such as SDXL, LLaVA-1.6 and OpenSora-1.2, while eliminating the need for diffusion or compositional architectures.

Image: comparison.

Highlights#
  • Emu3 is capable of generating high-quality images following the text input, by simply predicting the next vision token. The model naturally supports flexible resolutions and styles.
  • Emu3 shows strong vision-language understanding capabilities to see the physical world and provides coherent text responses. Notably, this capability is achieved without depending on a CLIP and a pretrained LLM.
  • Emu3 simply generates a video causally by predicting the next token in a video sequence, unlike the video diffusion model as in Sora. With a video in context, Emu3 can also naturally extend the video and predict what will happen next.
Model Information#

The Emu3-Stage1 model is the pre-trained weights of the first stage of the pre-training process of Emu3. The pre-training process of Emu3 is conducted in two stages. In the first stage, which does not utilize video data, training begins from scratch with a context length of 5120 for text and image data. The model supports image captioning and can generate images at a resolution of 512x512. You can use our training scripts for further instruction tuning for more image generation and perception tasks.

Quickstart#
from PIL import Image
from transformers import AutoTokenizer, AutoModel, AutoImageProcessor, AutoModelForCausalLM
from transformers.generation.configuration_utils import GenerationConfig
from transformers.generation import LogitsProcessorList, PrefixConstrainedLogitsProcessor, UnbatchedClassifierFreeGuidanceLogitsProcessor
import torch

import sys
sys.path.append(PATH_TO_BAAI_Emu3-Stage1_MODEL)
from processing_emu3 import Emu3Processor

# model path
EMU_HUB = "BAAI/Emu3-Stage1"
VQ_HUB = "BAAI/Emu3-VisionTokenizer"

# prepare model and processor
model = AutoModelForCausalLM.from_pretrained(
    EMU_HUB,
    device_map="cuda:0",
    torch_dtype=torch.bfloat16,
    attn_implementation="flash_attention_2",
    trust_remote_code=True,
)

tokenizer = AutoTokenizer.from_pretrained(EMU_HUB, trust_remote_code=True, padding_side="left")
image_processor = AutoImageProcessor.from_pretrained(VQ_HUB, trust_remote_code=True)
image_tokenizer = AutoModel.from_pretrained(VQ_HUB, device_map="cuda:0", trust_remote_code=True).eval()
processor = Emu3Processor(image_processor, image_tokenizer, tokenizer, chat_template="{image_prompt}{text_prompt}")

# Image Generation
# prepare input
POSITIVE_PROMPT = " masterpiece, film grained, best quality."
NEGATIVE_PROMPT = "lowres, bad anatomy, bad hands, text, error, missing fingers, extra digit, fewer digits, cropped, worst quality, low quality, normal quality, jpeg artifacts, signature, watermark, username, blurry."

classifier_free_guidance = 3.0
prompt = "a portrait of young girl."
prompt += POSITIVE_PROMPT

kwargs = dict(
    mode='G',
    ratio="1:1",
    image_area=model.config.image_area,
    return_tensors="pt",
    padding="longest",
)
pos_inputs = processor(text=prompt, **kwargs)
neg_inputs = processor(text=NEGATIVE_PROMPT, **kwargs)

# prepare hyper parameters
GENERATION_CONFIG = GenerationConfig(
    use_cache=True,
    eos_token_id=model.config.eos_token_id,
    pad_token_id=model.config.pad_token_id,
    max_new_tokens=40960,
    do_sample=True,
    top_k=2048,
)

h = pos_inputs.image_size[:, 0]
w = pos_inputs.image_size[:, 1]
constrained_fn = processor.build_prefix_constrained_fn(h, w)
logits_processor = LogitsProcessorList([
    UnbatchedClassifierFreeGuidanceLogitsProcessor(
        classifier_free_guidance,
        model,
        unconditional_ids=neg_inputs.input_ids.to("cuda:0"),
    ),
    PrefixConstrainedLogitsProcessor(
        constrained_fn ,
        num_beams=1,
    ),
])

# generate
outputs = model.generate(
    pos_inputs.input_ids.to("cuda:0"),
    GENERATION_CONFIG,
    logits_processor=logits_processor,
    attention_mask=pos_inputs.attention_mask.to("cuda:0"),
)

mm_list = processor.decode(outputs[0])
for idx, im in enumerate(mm_list):
    if not isinstance(im, Image.Image):
        continue
    im.save(f"result_{idx}.png")


# Multimodal Understanding
text = "The image depicts "
image = Image.open("assets/demo.png")

inputs = processor(
    text=text,
    image=image,
    mode='U',
    padding="longest",
    return_tensors="pt",
)
GENERATION_CONFIG = GenerationConfig(
    pad_token_id=tokenizer.pad_token_id,
    bos_token_id=tokenizer.bos_token_id,
    eos_token_id=tokenizer.eos_token_id,
    max_new_tokens=1024,
)

 outputs = model.generate(
     inputs.input_ids.to("cuda:0"),
     GENERATION_CONFIG,
     attention_mask=inputs.attention_mask.to("cuda:0"),
 )
 outputs = outputs[:, inputs.input_ids.shape[-1]:]
 answers = processor.batch_decode(outputs, skip_special_tokens=True)
 for ans in answers:
     print(ans)

Files

21 files · 34.0 GBWeights 34.0 GB (safetensors). Sizes and sha256 from the signed manifest.
Show all 21 files with their sha256
FileSizesha256
.gitattributes1.52 KB11ad7efa24975ee4b0c3c3a38ed18737f0658a5f75a0a96787b576a78a023361
README.md6.29 KB47ef6eb3f1b84e900ab9ef355d8b8b375ef746b61e69879bc9e2158572e15176
config.json933 B854bb4a821fcc82f2f76c9ca12068585dd7f0e7f613a4db2b611b31f0f7433b8
configuration_emu3.py10.4 KB9a7e2c3e6d39c654b88e922d9d2297b28639a8e6b26711ea6ab0783f10038996
emu3.tiktoken2.56 MBb2b1b8dfb5cc5f024bafc373121c6aba3f66f9a5a0269e243470a1de16a33186
emu3_vision_tokens.txt786 KB9113d8c4fe12bc294103df9d46dd28f5c9a1b2f897a20c09f4fd07432b8bdba4
generation_config.json147 Ba729ef4af7cf650b0b7d34d840d7ac3909d19c5d0af1b270ac43afa4da183e8e
model-00001-of-00007.safetensors4.94 GBb6751121ee8993e123ae603009635121e40a2477fa423febd4c1dc3179b7fcd0
model-00002-of-00007.safetensors4.83 GBd7a35bfa83ab2d59b0d7d7ad3434fc29fd5c2220415ebb7aba7261c244563ec2
model-00003-of-00007.safetensors5.00 GB8711e493ab415613d4dc9bcb337477b1c906525df4c71372a807458812f74a22
model-00004-of-00007.safetensors5.00 GB7e8a20d1c4c99791588d866feada7fd4bb2a926fddcad9e09dc2b104cf979bc8
model-00005-of-00007.safetensors4.83 GB4a7b698c0ad6a2082ac0bd492146590572d7592a9ba794b64feb08c93c5f0d36
model-00006-of-00007.safetensors5.00 GB2c31f03b191dacc6f5606d85b54625f54ef517cb000b613aa1d82282f6cfe1b5
model-00007-of-00007.safetensors4.37 GBe80fc6314ee041748aa97368bf00cc26e72b6a0659be3cebe7d2e24d35913637
model.safetensors.index.json23.9 KB15cf63b5ebf57dd9c7de63045ed649c38b962abd112c28d86040fcc58ad1d516
modeling_emu3.py62.5 KB0787ff6cb0e188ba516ecd5ee33e91b0021e138e2bbe071e0eb1aad53100443d
processing_emu3.py14.5 KB32d85b44088a86353fee6c6a3f05e08edb748476ee4174b9c1053a7f835981d1
special_tokens_map.json99 Bfea8d5dbfca581e0e7abee6cf844d5000f9b8efe21168fd2c3284a90ab7efc72
tokenization_emu3.py10.1 KBeeca8e95d2aa9cb2a905a13ced92c3ead1c1faf5b44e4724257879178d883c2c
tokenizer_config.json364 Ba05ad31c77abb65f2ddc34d093407c48c3be0f3aef8c15a4c580dfaa7127db0b
utils_emu3.py2.33 KB254a4234563ff62d8747dcebf02bc6bbc249140b979109d0d290ce3e9759efa3
VersionsEach time the pinned upstream commit or file list changed in this repo. Newest first.
Upstream commitDateContents
083e245ab5 pinned now2026-11-15 03:58 UTC21 files · 34.0 GB

Use it

$ fw get BAAI/Emu3-Stage1
# manifest sha256 ddb82edcd8bc… · 34.0 GB · 21 files
$ fw verify ./Emu3-Stage1 BAAI/Emu3-Stage1
fw.pyChecks the signature and every sha256, tries each source in order, resumes.
$ python3 fw.py get https://freeweights.allternit.com/manifests/BAAI/Emu3-Stage1.json --dir ./Emu3-Stage1 $ python3 fw.py verify ./Emu3-Stage1 ./BAAI__Emu3-Stage1.json
hfThe Hugging Face CLI with one setting. Same repo id.
$ HF_ENDPOINT=https://freeweights.allternit.com hf download BAAI/Emu3-Stage1 --revision 083e245ab5a4a3de4992d6da04238c96958ec141 --local-dir ./Emu3-Stage1

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
47ef6eb3f1b84e900ab9ef355d8b8b375ef746b61e69879bc9e2158572e15176
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: BAAI <huggingface.co/BAAI>Newsgroups: alt.freeweights.textSubject: Emu3-Stage1Date: 2026-11-15Commit: 083e245Signed: 2DC28CC7B26A283B ✓
Upstream
BAAI/Emu3-Stage1
Pinned commit
083e245ab5a4a3de4992d6da04238c96958ec141
Manifest
Emu3-Stage1.json · .minisig
Manifest sha256
ddb82edcd8bc3c641540f5a030b150dc3c37bbb946e78df887fbeab3cdd8ba33
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 03:58 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

$ curl -O https://freeweights.allternit.com/manifests/BAAI/Emu3-Stage1.json $ curl -O https://freeweights.allternit.com/manifests/BAAI/Emu3-Stage1.json.minisig $ minisign -Vm Emu3-Stage1.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 BAAI/Emu3-Stage1
Open in Freeweights Studio

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

Signed manifest
minisign, key 2DC28CC7B26A283B. Emu3-Stage1.json. Provenance. Takedown history: none.
From: laion <huggingface.co/laion>Subject: a2-rl-e2egit_large-50-32B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-large-15-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_e2egit-v2-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_pymethods2test-large-80-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_exp_rpt_unitsyn-python-large-10-8B
From: laion <huggingface.co/laion>Subject: a3-rl-DCAgent_mix_h2_language_proportional-65-8B