Model reference · open weights

GenFirst

NEW · this week Image ByteDance-Seed Text→image 1 build Non-commercial 0 dl/mo

GenFirst is an open-weight image model from ByteDance. GenFirst (BF16) weighs 672 MB; the smallest configuration that runs it is RTX 3060 12 GB.

For self-hosting, compare this build's requirements below with the GPU you plan to rent.

  • GenFirst is a text-to-image model developed by ByteDance that uses a latent diffusion approach with a jointly trained VAE.
  • The model is released under the CC BY-NC 4.0 licence, which restricts its use to non-commercial research purposes.

Summary of the ByteDance-Seed/GenFirst model card, 2026-11-04

What it is

Released byByteDance
Released2026-10-29
VRAM672 MB for the weights

What it runs on

Memory and cards for GenFirst (BF16)

672 MBweights, file size
5.0 GBworking memory, one 1024² image
537 MBruntime overhead
CardOne imageMemory
RTX 3060 12 GBfits11.6 GB
RTX 4060 Ti 16 GBfits15.4 GB
RTX 3090 24 GBfits23.4 GB
RTX 4090 24 GBfits23.4 GB
RTX 5090 32 GBfits31.0 GB
L40S 48 GBfits44.0 GB
A100 80 GBfits78.2 GB
H100 80 GBfits78.1 GB
RTX PRO 6000 Blackwell 96 GBfits93.8 GB
DGX Spark (GB10) 128 GB unifiedfits107 GB
H200 141 GBfits138 GB
B200 180 GBfits176 GB

From the model card

What ByteDance says about GenFirst

Read the model card

Generation Before Reconstruction for Stable End-to-End Latent Generative Modeling.

These weights are released under CC BY-NC 4.0: non-commercial research use only, which is stricter than the MIT licence on the code. See Licence and third-party terms before use.

What this is

GenFirst trains a latent VAE jointly with a generative prior without the latent collapse that usually makes such end-to-end training unstable. The method is a two-phase schedule over the prior and entropy weights: phase 1 lets the prior shape the latent geometry, phase 2 drops both weights tenfold so the decoder recovers detail. The result is a latent space that a diffusion prior fits well while remaining a good autoencoder.

This release covers the EiT (diffusion-prior) instantiation. The autoregressive EAR instantiation from the paper is not released.

Two kinds of artifact are published, and they are used together:

  1. End-to-end VAEs — the encoder/decoder produced by the end-to-end stage, each shipped with its latent normalization statistics.
  2. Generative priors — SiT models for class-conditional generation, and MMDiT models for text-to-image, each trained on a frozen VAE from (1).

Model details

Developed byGuangting Zheng, Yiyuan Zhang, Tao Yang, Yunpeng Chen, Rui Zhu, Jiajun Deng, Yanyong Zhang
Model typeLatent diffusion (flow matching / stochastic interpolant) with a jointly trained VAE
Prior architectureSiT-XL and MMDiT-XL: 28 blocks, width 1152, 16 attention heads (~675M parameters)
Text encoder (text-to-image)CLIP-L, frozen, not modified by us
PrecisionWeights released in fp32; sampling tested in bf16
FrameworkPyTorch
Inference codeRequired — see Usage. These are raw .pt checkpoints, not diffusers pipelines.

Class-conditional priors

SiT-XL on a frozen end-to-end VAE. Conditioning is a single integer class label in [0, 999] following the standard 1000-class label ordering; there is no text input. Epoch counts are prior-only training epochs.

CheckpointResolutionVAEgFIDISgFID (guided)IS (guided)Download
EiT, 80 epochs256x256f16d322.79175.41.38271.3checkpoint · weak-20ep
EiT, 480 epochs256x256f16d321.60216.80.988270.7checkpoint · weak-20ep
EiT, 800 epochs256x256f16d321.45226.70.969283.4checkpoint · weak-20ep
EiT, 80 epochs512x512f16d32––1.63278.9checkpoint
EiT, 400 epochs512x512f16d32––1.23286.1checkpoint

The 512 models reuse the 256 f16d32 VAE unchanged and frozen; only the prior is trained at 512.

Text-to-image priors

MMDiT-XL/2 with a frozen CLIP-L text encoder, on a frozen end-to-end FLUX VAE, at 512x512. Scores are overall GenEval and DPG-Bench, with no prompt rewriting. The two variants differ only in which VAE they were trained on.

CheckpointResolutionGenEvalDPG-BenchDownload
EiT T2I, variant A512x5120.898782.60checkpoint · VAE
EiT T2I, variant B512x5120.892082.06checkpoint · VAE

Shared visual latents (generation + understanding)

MMDiT-XL/2 on a frozen Qwen3-VL ViT autoencoder (--vae-arch qwenvit) shaped end-to-end with a generative prior plus representation supervision (SigLIP or VLM-NLL, Table 9 in the paper).

CheckpointVAE bundleSupervisionResolutionrFID ↓PSNR ↑GenEval ↑DPG-Bench ↑Linear Probe Top-1 (%) ↑
shared-latents/siglip/eit-qwenvit-siglip-t2i-512.ptvae/qwenvit-siglip-b256-s2/E2E + SigLIP512x5120.3927.640.9083.7679.25
shared-latents/vlm-nll/eit-qwenvit-vlm-nll-t2i-512.ptvae/qwenvit-nlltrunk-s2/E2E + VLM-NLL512x5120.4627.190.8983.4981.69

Unified text-imag

Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.

How it works

How image models work

Text promptwhat to makeText encoderunderstands itDiffusion stepsdenoise to pixelsImagePNG / JPEGA diffusion model starts from noise and denoises it, guided by your prompt, into a finished image.

Running it yourself

Run it on a rented GPU

Rent a machine by the hour. ComfyUI is installed on it. Open ComfyUI through the tunnel, load the workflow from the model's card on Hugging Face, and choose this file in its Load VAE node.

# on your rented machine (the ssh line is on its page in the console)
# get REPO FILE FOLDER: one file into /workspace/models/FOLDER, where ComfyUI loads it from
get() { hf download "$1" "$2" --local-dir /workspace/hf-files && mkdir -p "/workspace/models/$3" && mv "/workspace/hf-files/$2" "/workspace/models/$3/$4"; }

# the model (641 MB)
get ByteDance-Seed/GenFirst vae/e2e-vae-flux2-sitxl2-auxkl2p5e8-s3-20k/diffusion_pytorch_model.safetensors vae
get ByteDance-Seed/GenFirst vae/e2e-vae-flux2-sitxl2-auxkl2p5e8-s3-20k/e2e-vae-flux2-sitxl2-auxkl2p5e8-s3-20k.safetensors vae

start-comfyui
Renting a GPU: connect, tunnels, ComfyUI
# on your computer, in a second terminal: ComfyUI in your browser at http://localhost:8188
# HOST, PORT and BOOKING are your machine's, from its page in the console
ssh -o HostKeyAlias=axforge-BOOKING -o StrictHostKeyChecking=accept-new -L 8188:localhost:8188 dev@HOST -p PORT
© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms