JanusCoder
[ICLR 2026] JanusCoder: Towards a Foundational Visual-Programmatic Interface for Code Intelligence
Install / Use
/learn @InternLM/JanusCoderREADME
JanusCoder
<!-- [](https://mp.weixin.qq.com/s/naVskQ9btJFkoUyyQVr7zA) --> <!-- [](https://qiushisun.github.io/ScienceBoard-Home/) --> <!-- <a href = "https://zhuanlan.zhihu.com/p/1914038712540574158"><img src="https://img.shields.io/badge/-%E7%9F%A5%E4%B9%8E-%232f6be0" target="_blank"></a> -->JanusCoder: Towards a Foundational Visual-Programmatic Interface for Code Intelligence
🗞️ Updates
- 2026-01-26: JanusCoder is accepted by ICLR 2026! 🎉 We will release more resources soon!
- 2025-11-15: We release data samples of JanusCode-800K, check section Data Samples for more details.
- 2025-10-29: We release the preprint and checkpoints of JanusCoder series 🤗
- 2025-10-07: Initial release of our technical report, code, data samples, and 🌐 Project Page. Check it out! 🚀
[!NOTE]
This release represents the public implementation; the full implementation and data will be made available after internal company policy requirements are met.
📑 Intro
JanusCoder is a suite of open models that establish a unified visual–programmatic interface for multimodal code intelligence. The models (JanusCoder and JanusCoderV) handle text-centric and vision-centric tasks in a single framework—from chart-to-code and web UI generation/editing to dynamic theorem visualizations—and show strong results across public benchmarks, approaching or even surpassing proprietary systems.
<img src="./assets/januscoder_overview.png" alt="overview" style="zoom:80%;" />[!NOTE]
Due to company policy, we need some additional time to release all datasets and checkpoints. If you require access to more data, please feel free to send qiushisun@connect.hku.hk an email.
🤗 Checkpoints
We provide the checkpoints of JanusCoder series on Hugging Face:
| Model Name | Description | Download(Huggingface) | Download(ModelScope) | | ------------------- | -------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | | JanusCoder-8B | 8B text model based on Qwen3-8B. | 🤗 Model | 🤖 Model | | JanusCoder-14B | 14B text model based on Qwen3-14B. | 🤗 Model | 🤖 Model | | JanusCoderV-7B | 7B multimodal model based on Qwen2.5-VL-7B. | 🤗 Model | 🤖 Model | | JanusCoderV-8B | 8B multimodal model based on InternVL3.5-8B. | 🤗 Model | 🤖 Model |
⚙️ Data Synthesis Toolkit
We provide a versatile data synthesis toolkit that generates multimodal code data across heterogeneous domains—ranging from charts and Web UIs to visual artifacts and code-driven animations—while greatly reducing engineering efforts for large-scale corpus creation. 
<img src="./assets/januscoder_data_toolkit.png" alt="overview" style="zoom:80%;" />Since the process of building JanusCode data involves a variety of synthesis pipelines, we provide a few examples here:
Example Workflows:
Extend, refine and derive new text-centric data for chart tasks
python data_synthesis/viscode_extend_synthesis_pipeline.py \
--input-path path/to/source.jsonl \
--output-path path/to/output.jsonl \
--api-timeout [Optional, seconds before timeout for each api request] \
--execution-timeout [Optional, seconds before timeout for each script execution] \
--num-worker [Optional, number of parallel workers] \
--solver-url-base [base url for solver agent] \
--solver-api-key [api key for solver agent] \
--solver-model-name [model name for solver agent] \
--solver-temperature [Optional, model temperature for solver agent] \
--judge-url-base [base url for judge agent] \
--judge-api-key [api key for judge agent] \
--judge-model-name [model name for judge agent] \
--judge-temperature [Optional, temperature for judge agent] \
--total-trial [Optional, total trial of extension]
Extend and derive new text-centric data for visual editing tasks
python data_synthesis/viscode_edit_synthesis_pipeline.py
--input-path path/to/source.jsonl \
--output-path path/to/output.jsonl \
--api-timeout [Optional, seconds before timeout for each api request] \
--execution-timeout [Optional, seconds before timeout for each script execution] \
--num-worker [Optional, number of parallel workers] \
--solver-url-base [base url for solver agent] \
--solver-api-key [api key for solver agent] \
--solver-model-name [model name for solver agent] \
--solver-temperature [Optional, model temperature for solver agent] \
--judge-url-base [base url for judge agent] \
--judge-api-key [api key for judge agent] \
--judge-model-name [model name for judge agent] \
--judge-temperature [Optional, temperature for judge agent] \
--start-index [Optional, start index if you only want to process part of your dataset] \
--end-index [Optional, end index if you only want to process part of your dataset] \
--max-retries [Optional, max exploration retries for each sample]
More scripts will be released soon.
Data Samples:
- We provide text-centric data samples at this link.
- We provide vision-centric data samples at this link.
🧪 Training
We primarily follow the official training pipelines provided. Users can directly refer to the linked repositories for detailed instructions on SFT.
| Our Model | Upstream Base | Training Pipelines | |-------------------|---------------|----------------------------------| | 🤗 JanusCoder-8B | Qwen/Qwen3-8B | Qwen3 GitHub | | 🤗 JanusCoder-14B | Qwen/Qwen3-14B | Qwen3 GitHub | | 🤗 JanusCoderV-7B | Qwen/Qwen2.5-VL-7B-Instruct | Qwen-VL GitHub | | 🤗 JanusCoderV-8B | OpenGVLab/InternVL3_5-8B | InternVL GitHub |
We also provide some typical training configuration file for llamafactory users in training_files.
All our experiments were conducted on interconnected 8× H800 GPUs.
📏 Evaluation
We provide several ready-to-use scripts to quickly reproduce our experimental results. You can replace them with other scripts under the evaluation directory to evaluate different tasks, for example:
bash DesignBench/scripts/designbench_vllm-januscoderv.sh
bash evaluation/ArtifactBench/artifactbench-januscoder.sh
bash evaluation/InteractScience/interactscience-januscoderv.sh
For evaluations on LiveCodeBench-v6, MBPP+: We directly adopt the evaluation scripts provided by OpenCompass.
For evaluations on Artifactbench and Interactscience can be run the instructions in their original repositories. You can fork/clone the original repos to reuse their official environments and configs.
💽 Data Preview
Here we provide data samples of the various data types covered by JanusCode-800K:
the full implementation and data will be made available after internal company policy requirements are met, stay tuned!
📚License
This project is licensed under the Apache 2.0 License. See the LICENSE file for details.
💐Acknowledgement
We thank Fangzhi Xu and Zhangyue Yin for their valuable feedback on improving the manuscript's presentation, and Zichen Ding for the assistance in resolving issues encountered during the training of InternVL 3.5. We are also grateful to Fahd Mirza for creating an nice YouTube video on running JanusCoder locally.
📋 Citation
🫶 If you are interested in our work or find the repository / checkpoints / benchmark / data helpful, please
Related Skills
node-connect
351.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
110.6kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
351.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
351.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
