🎉 Our paper has been accepted by CVPR 2026!
ShowTable is a novel pipeline that synergizes Multimodal Large Language Models (MLLMs) with diffusion models via a progressive self-correcting process for Creative Table Visualization. This task challenges models to generate infographics that are both aesthetically pleasing and faithful to the data points in a given table.
This repository contains the official inference and evaluation implementation of the paper:
ShowTable: Unlocking Creative Table Visualization with Collaborative Reflection and Refinement
The ShowTable pipeline consists of four key stages, we implement all inference process via API or Sever Calling.
- Rewriting: The MLLM reasons over the tabular data to plan an aesthetic visual sketch and rewrites the user prompt. You can find the code in
stages/rewrite_stage.pyandclients/rewrite_client.py. - Generation: The diffusion model creates an initial figure based on the MLLM's sketch. You can find the code in
stages/image_gen_stage.pyandclients/image_gen_client.py. - Reflection: The MLLM assesses the generated output, identifying inconsistencies and formulating precise editing instructions. You can find the code in
stages/judge_stage.pyandclients/judge_client.py. - Refinement: The diffusion model edits the figure based on the reflective feedback to produce the final high-fidelity visualization. You can find the code in
stages/edit_stage.pyandclients/edit_client.py.
The repository also supports the evaluation on our proposed TableVisBench. You can find the code in stages/eval_stage.py and clients/eval_client.py.
Clone the repository and install the required dependencies:
git clone https://github.com/ali-vilab/ShowTable.git
cd ShowTable
pip install -r requirements.txtThe pipeline requires several models to be running. You can start them using the provided scripts in the script/ directory.
For example, to start the Qwen-Image service:
bash script/start_qwen_image.shEnsure you have the necessary model weights and environment configurations set up as per the scripts.
Configuration is managed via YAML files. A sample configuration is provided in configs/example.yaml.
Example configs/example.yaml modification:
data:
prompts_file: "data/eval_data.jsonl"
out_dir: "work_dirs/eval_outputs"
rewrite:
enable: true
provider: "server"
server:
- model: "qwen3"
api_base: "http://your-server-ip:port/v1"
image_gen:
provider: "qwen_image_server"
qwen_image_server:
- api_base: "http://your-server-ip:port"To run the pipeline, use the main.py script with your configuration file:
python main.py -c configs/example.yamlThe repository supports evaluation on TableVisBench. Ensure your data.prompts_file points to the benchmark dataset and run.mode is set to eval. The evaluation metrics include:
- DA: Data Accuracy
- TR: Text Rendering
- RR: Relative Relationship
- AA: Additional Information Accuracy
- AQ: Aesthetic Quality
If you find this work useful, please consider citing our paper:
@article{liu2025showtable,
title={ShowTable: Unlocking Creative Table Visualization with Collaborative Reflection and Refinement},
author={Liu, Zhihang and Bao, Xiaoyi and Li, Pandeng and Zhou, Junjie and Liao, Zhaohe and He, Yefei and Jiang, Kaixun and Xie, Chen-Wei and Zheng, Yun and Xie, Hongtao},
journal={arXiv preprint arXiv:2512.13303},
year={2025}
}