Model reference · open weights

Stable-DiffCoder

Available as managed deployment LLMs ByteDance-Seed Text gen 1 variants 403 dl/mo

Stable-DiffCoder is an open-weight language model from ByteDance-Seed. AxForge deploys and operates it for you on dedicated EU-owned hardware — with the licence handled where one is required.

Available as managed deployment — configured and operated for you on dedicated EU hardware, quoted per deployment.

What it is

MakerByteDance-Seed
TypeLanguage models
TaskText gen
Parameters (lead)8.3B
Runs withtransformers
Based onByteDance-Seed/Stable-DiffCoder-8B-Base
Released2026-01-15
Popularity403 downloads / month
LicenceOpen weights

About

What Stable-DiffCoder is

Introduction

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:

  • Type: Mask Diffusion Language Models
  • Training Stage: Pretraining & Post-training
  • Data Source: Public datasets, synthetic data
  • Context Length: 8192

Model Downloads

Model NameLengthDownloadNotes
Stable-DiffCoder-8B-Base8K🤗 ModelPretrained on our model-centric code data.
👉 Stable-DiffCoder-8B-Instruct8K🤗 ModelInstruction-tuned for alignment with user intent.

Requirements

Current (v5.3.0) transformers is available for inference:

pip install transformers~=5.3.0

Explanation of Inference Parameters

  • steps: Number of steps for diffusion generation
  • gen_length: Maximum length of the generated output
  • block_length: Length of the diffusion block, with a default value of 4
  • temperature: Temperature for generation, with a default value of 0.0
  • remasking: 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 decoding
  • shift: Whether to shift the output to the right by one position (similar to AutoRegressive/AR), default value is False
  • threshold: 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_id

Quickstart

Here 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))

Evaluation

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,

  • Compared with ∼8B AR models:
ModelHumanEvalMBPPMHPPBigCodeBench (Full)BigCodeBench (Hard)LiveCodeBench (v5)
CodeLlama-7B-Instruct40.954.06.725.74.13.6
DeepSeek-Coder-6.7B-Instruct74.474.920.043.815.59.6
CodeQwen1.5-7B-Chat83.577.717.643.615.53.0
Yi-Coder-9B-Chat82.382.026.749.017.617.5
Llama-3.1-8B-Instruct68.370.117.140.513.511.5
OpenCoder-8B-Instruct83.579.130.550.918.917.1
Qwen2.5-Coder-7B-Instruct88.483.526.748.820.317.3
Qwen3-8B84.877.032.851.723.023.5
Seed-Coder-8B-Instruct84.885.236.253.326.424.7
Stable-DiffCoder-8B-Instruct86.685.742.454.831.823.5
  • Compared

From the published model card. Full card on the HuggingFace links in the sidebar.

Using it via the API

Call it like any OpenAI endpoint

Once AxForge deploys stable-diffcoder for you, it answers on the OpenAI-compatible API — the same base URL and keys as every other model. (stable-diffcoder below is illustrative; you get the exact model name on deployment.)

$ curl -sS https://api.axforge.ai/v1/chat/completions \
  -H "Authorization: Bearer $AXFORGE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"stable-diffcoder","messages":[{"role":"user","content":"Hello"}]}'

Create an account — your API key is available in the console. 5M tokens/month currently included with every new account at launch.

© 2026 AxForge · EU-hosted AI infrastructure Pricing Docs Trust Privacy Terms