Model reference · open weights
Stable-DiffCoder is an open-weight language model from ByteDance. Stable-DiffCoder-8B-Instruct (BF16) weighs 16.5 GB; the smallest configuration that runs it is 2× RTX 3060 12 GB.
Summary of the ByteDance-Seed/Stable-DiffCoder-8B-Instruct model card, 2026-10-01
What it is
| Released by | ByteDance |
|---|---|
| Released | 2026-01-15 |
| Parameters | 8.3B |
| VRAM | 16.5 GB for the weights |
What it runs on
| Card | Requests at once | Context max | Memory |
|---|---|---|---|
| 8K each | |||
| RTX 3060 12 GB … RTX 4060 Ti 16 GB 2 smaller cards | — | — | |
| RTX 3090 24 GB | 5 | all 8K | 23.4 GB |
| RTX 4090 24 GB | 5 | all 8K | 23.4 GB |
| RTX 5090 32 GB | 12 | all 8K | 31.0 GB |
| L40S 48 GB | 24 | all 8K | 44.0 GB |
| A100 80 GB | 56 | all 8K | 78.2 GB |
| H100 80 GB | 52 | all 8K | 78.1 GB |
| RTX PRO 6000 Blackwell 96 GB | 67 | all 8K | 93.8 GB |
| DGX Spark (GB10) 128 GB unified | 79 | all 8K | 107 GB |
| H200 141 GB | 108 | all 8K | 138 GB |
| B200 180 GB | 143 | all 8K | 176 GB |
| 2× RTX 3060 12 GB tensor parallel | 4 | all 8K | 11.6 GB a card |
| 2× RTX 4060 Ti 16 GB tensor parallel | 11 | all 8K | 15.4 GB a card |
| 2× RTX 4090 24 GB tensor parallel | 26 | all 8K | 23.4 GB a card |
| 2× RTX 3090 24 GB tensor parallel | 26 | all 8K | 23.4 GB a card |
| Requests at once | 8K tokens each |
|---|---|
| 1 | 18.3 GB |
| 5 | 22.6 GB |
| 8 | 25.9 GB |
| 16 | 34.5 GB |
| 32 | 51.6 GB |
| 64 | 86.0 GB |
One card, with vLLM's small-card settings.
From the model card
We are thrilled to introduce Stable-DiffCoder, which is a strong code diffusion large language model. Built directly on the Seed-Coder architecture, data, and training pipeline, it introduces a block diffusion continual pretraining (CPT) stage with a tailored warmup and block-wise clipped noise schedule.
Under identical architecture and data settings, we systematically analyze and design an efficient diffusion training pipeline that is not only stable but also potentially lifts the model’s performance ceiling. With this recipe, Stable-DiffCoder demonstrates overall performance improvements compared to its autoregressive (AR) counterpart across a broad set of code benchmarks, while any-order modeling improves structured code handling for editing and reasoning, and diffusion-based corruption aids learning for low-resource programming languages.
Notably, with only CPT followed by supervised fine-tuning, Stable-DiffCoder further surpasses many strong ∼8B AR and diffusion-based code models. These results demonstrate that diffusion-based training can improve code modeling quality beyond what AR training alone can achieve, even under tightly controlled data and architecture constraints.
This repo contains the Stable-DiffCoder-8B-Instruct model, which has the following features:
| Model Name | Length | Download | Notes |
|---|---|---|---|
| Stable-DiffCoder-8B-Base | 8K | 🤗 Model | Pretrained on our model-centric code data. |
| 👉 Stable-DiffCoder-8B-Instruct | 8K | 🤗 Model | Instruction-tuned for alignment with user intent. |
Current (v5.3.0) transformers is available for inference:
pip install transformers~=5.3.0
steps: Number of steps for diffusion generationgen_length: Maximum length of the generated outputblock_length: Length of the diffusion block, with a default value of 4temperature: Temperature for generation, with a default value of 0.0remasking: Remasking strategy, optional values are 'low_confidence' or 'random', default value is 'low_confidence' (for principle, refer to LLADA)tokenizer: Tokenizer used for text encoding and decodingshift: Whether to shift the output to the right by one position (similar to AutoRegressive/AR), default value is Falsethreshold: Threshold for decoding (range: 0-1.0), default value is None; a smaller value results in faster decoding speed (for principle, refer to Fast-DLLM)eos_id: ID of the end-of-sequence token, default value is tokenizer.eos_token_idHere is a simple example demonstrating how to load the model and generate code.
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
device = 'cuda'
model = AutoModelForCausalLM.from_pretrained('ByteDance-Seed/Stable-DiffCoder-8B-Instruct', trust_remote_code=True, torch_dtype=torch.bfloat16).to(device).eval()
tokenizer = AutoTokenizer.from_pretrained('ByteDance-Seed/Stable-DiffCoder-8B-Instruct', trust_remote_code=True)
prompt = 'Write a quick sort algorithm.'
m = [{"role": "user", "content": prompt}, ]
prompt = tokenizer.apply_chat_template(m, add_generation_prompt=True, tokenize=False)
input_ids = tokenizer(prompt)['input_ids']
input_ids = torch.tensor(input_ids).to(device).unsqueeze(0)
out = model.generate(input_ids, steps=512, gen_length=512, block_length=4, temperature=0., remasking='low_confidence', tokenizer=tokenizer, shift=False, threshold=None, eos_id=tokenizer.eos_token_id)
print(tokenizer.decode(out[0][input_ids.shape[1]:], skip_special_tokens=True))
Stable-DiffCoder-8B-Instruct has been evaluated on a wide range of coding tasks, including code generation, code reasoning, code editing, achieving stronger performance than a wide range of ∼8B ARs and DLLMs,
| Model | HumanEval | MBPP | MHPP | BigCodeBench (Full) | BigCodeBench (Hard) | LiveCodeBench (v5) |
|---|---|---|---|---|---|---|
| CodeLlama-7B-Instruct | 40.9 | 54.0 | 6.7 | 25.7 | 4.1 | 3.6 |
| DeepSeek-Coder-6.7B-Instruct | 74.4 | 74.9 | 20.0 | 43.8 | 15.5 | 9.6 |
| CodeQwen1.5-7B-Chat | 83.5 | 77.7 | 17.6 | 43.6 | 15.5 | 3.0 |
| Yi-Coder-9B-Chat | 82.3 | 82.0 | 26.7 | 49.0 | 17.6 | 17.5 |
| Llama-3.1-8B-Instruct | 68.3 | 70.1 | 17.1 | 40.5 | 13.5 | 11.5 |
| OpenCoder-8B-Instruct | 83.5 | 79.1 | 30.5 | 50.9 | 18.9 | 17.1 |
| Qwen2.5-Coder-7B-Instruct | 88.4 | 83.5 | 26.7 | 48.8 | 20.3 | 17.3 |
| Qwen3-8B | 84.8 | 77.0 | 32.8 | 51.7 | 23.0 | 23.5 |
| Seed-Coder-8B-Instruct | 84.8 | 85.2 | 36.2 | 53.3 | 26.4 | 24.7 |
| Stable-DiffCoder-8B-Instruct | 86.6 | 85.7 | 42.4 | 54.8 | 31.8 | 23.5 |
Quoted from the model card on Hugging Face. The full card is behind the Hugging Face link above.