From: BAAI <huggingface.co/BAAI>Newsgroups: alt.freeweights.textSubject:

Emu3-Gen

Date: 2026-11-15Commit: 40b3bb8Signed: 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-Gensafetensorspermissive
FactsParams8.5BSize34.0 GBFormatssafetensorsTaskany to anyLicenseApache-2.0From sourcepermissive
$ fw get BAAI/Emu3-Gen
# manifest sha256 3c1c93bd5837… · 34.0 GB · 21 files
$ fw verify ./Emu3-Gen BAAI/Emu3-Gen
From sourceHosted (signed)BAAI/Emu3-GenLast check: 2026-11-15 03:45 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:45 UTCpassed

Model card

From the publisher at commit 40b3bb8. 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.
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-Gen_MODEL)
from processing_emu3 import Emu3Processor

# model path
EMU_HUB = "BAAI/Emu3-Gen"
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)

# 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")

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.md4.92 KB7ccdce8ff06920522b0cc22e4a8d739c8a14bc2528b3bc265d128de824587e19
config.json933 Bed4a3ecf95a2de73989782dd55ff11d8d1c5a812459312300f6267d955b7006f
configuration_emu3.py10.4 KB9a7e2c3e6d39c654b88e922d9d2297b28639a8e6b26711ea6ab0783f10038996
emu3.tiktoken2.56 MBb2b1b8dfb5cc5f024bafc373121c6aba3f66f9a5a0269e243470a1de16a33186
emu3_vision_tokens.txt786 KB9113d8c4fe12bc294103df9d46dd28f5c9a1b2f897a20c09f4fd07432b8bdba4
generation_config.json147 Ba729ef4af7cf650b0b7d34d840d7ac3909d19c5d0af1b270ac43afa4da183e8e
model-00001-of-00007.safetensors4.94 GBd6295df26a8fd366a0561f4aa797a85101d896e5f2c02c03326ed51557a9c4cd
model-00002-of-00007.safetensors4.83 GB3ed302cc6f34fbbb4f8dd68edacd805021ecd67dd22d765cda0d507e83e85a94
model-00003-of-00007.safetensors5.00 GBb71025f2b2c1bce4515d0e6da99b2b6336cf36d199c7bb6eb089e0277cc02c45
model-00004-of-00007.safetensors5.00 GBe62ef1c47d998429ed7d614cc9cb95df04d97401186fb370130941c41970018f
model-00005-of-00007.safetensors4.83 GB58cc0da755310212712fabce8581033c6ac6aaaaf0663212784a69f6f4cf014e
model-00006-of-00007.safetensors5.00 GBb3ca138eba17549b2132f722703ed2a4e79d622af1bbcf9eaf0f1a7fbeea14f1
model-00007-of-00007.safetensors4.37 GBadb8abb05929d844ab779f324cf5e4417482e32a018d9fc9df1f3c2da8ddad08
model.safetensors.index.json23.9 KB15cf63b5ebf57dd9c7de63045ed649c38b962abd112c28d86040fcc58ad1d516
modeling_emu3.py62.5 KB0787ff6cb0e188ba516ecd5ee33e91b0021e138e2bbe071e0eb1aad53100443d
processing_emu3.py14.5 KBc2fc2ca9484a92f43ca249614d5a4a51195e8d964283e7e07b077b117c48d971
special_tokens_map.json99 Bfea8d5dbfca581e0e7abee6cf844d5000f9b8efe21168fd2c3284a90ab7efc72
tokenization_emu3.py10.3 KB1cd4ff26092ad2ff0dae460153454e80b4344fa33f51db39baca91dd0fd7847a
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
40b3bb89a9 pinned now2026-11-15 03:45 UTC21 files · 34.0 GB

Use it

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

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
7ccdce8ff06920522b0cc22e4a8d739c8a14bc2528b3bc265d128de824587e19
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-GenDate: 2026-11-15Commit: 40b3bb8Signed: 2DC28CC7B26A283B ✓
Upstream
BAAI/Emu3-Gen
Pinned commit
40b3bb89a9cee99ab0b9deb35dead2e50d6a0d72
Manifest
Emu3-Gen.json · .minisig
Manifest sha256
3c1c93bd5837343dc59d5daa48a63fa655308f8e871ac65e6acb65dcb2fb41f5
Signature
minisign, Ed25519, key 2DC28CC7B26A283B
Created
2026-11-15 03:45 UTC
Generator
freeweights-manifest/0.1.0
Takedowns
None.

How to verify

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

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

Signed manifest
minisign, key 2DC28CC7B26A283B. Emu3-Gen.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