File size: 7,124 Bytes
e7fac1c
 
827964d
 
 
 
 
 
 
 
 
 
e7fac1c
827964d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
---
license: openrail++
base_model: stabilityai/stable-diffusion-2-1-base
tags:
  - controlnet
  - stable-diffusion
  - diffusion
  - radio-map
  - wireless-communications
  - pytorch-lightning
  - research
  - "arxiv:2608.09357"
---

# ControlRadio

## Prompt-Driven Controllable Diffusion for Cross-Modal Radio Map Generation

**Kangjun Liu · Xiying Pan · Shuhang Zhang · Xiang Xiang · Ke Chen · Yaowei Wang**

[Paper](https://arxiv.org/abs/2608.09357) · [HTML](https://arxiv.org/html/2608.09357v1) · [PDF](https://arxiv.org/pdf/2608.09357) · [Code](https://github.com/AkonLau/ControlRadio) · [RadioMapSeer](https://radiomapseer.github.io/)

ControlRadio is a prompt-driven controllable diffusion framework for cross-modal radio map generation. It combines natural-language descriptions with environmental layouts, including building morphology, transmitter locations, and optional dynamic-object cues, to synthesize structurally consistent and propagation-plausible radio maps.

> This repository hosts the pretrained weights. Training, evaluation, and inference code is maintained in the [ControlRadio GitHub repository](https://github.com/AkonLau/ControlRadio).

<p align="center">
  <img src="assets/controlradio_framework.png" alt="ControlRadio framework" width="100%">
</p>

## Model Description

ControlRadio builds on [Stable Diffusion 2.1 Base](https://huggingface.co/stabilityai/stable-diffusion-2-1-base) and introduces:

- prompt-guided semantic conditioning with a frozen OpenCLIP text encoder;
- a Layout-Aware ControlNet for building, transmitter, and optional car conditions;
- a Noise Controller for controlling the latent prior used at inference time; and
- decoupled two-stage fine-tuning of a radio-domain VAE followed by the U-Net and ControlNet.

The released files are PyTorch Lightning checkpoints used by the research code. They are not standalone Diffusers or Transformers checkpoints and cannot be loaded directly with `from_pretrained()`.

## Released Checkpoints

| Model | Setting | `--carsInput` | Checkpoint | Size |
|---|---|---:|---|---:|
| ControlRadio-SRM | Static radio maps without cars | `no` | [`epoch=99-step=337499.ckpt`](experiments/prompt_v6/RadioMapSeer_RadioDiff-Seer-no-carsInput/control_sd21_3ch_1e-05_3_100_sd_tune_seed1230/lightning_logs/version_0/checkpoints/epoch=99-step=337499.ckpt) | 13.7 GB |
| ControlRadio-DRM | Dynamic radio maps with cars | `yes` | [`epoch=99-step=506249.ckpt`](experiments/prompt_v6/RadioMapSeer_RadioDiff-Seer-carsInput/control_sd21_3ch_1e-05_3_100_sd_tune_seed1230/lightning_logs/version_0/checkpoints/epoch=99-step=506249.ckpt) | 13.7 GB |

Each experiment directory also contains the corresponding `hparams.yaml`. Keep the downloaded directory structure unchanged because the evaluation and inference scripts construct checkpoint paths from the command-line configuration.

## Installation and Download

Clone the code repository and create the reference environment:

```bash
git clone https://github.com/AkonLau/ControlRadio.git
cd ControlRadio
conda env create -f environment.yaml
conda activate control
```

Install a Hugging Face Hub CLI version compatible with the reference Transformers environment, then download both checkpoints into the project root:

```bash
pip install "huggingface_hub>=0.30,<1.0"
hf download akon1995/ControlRadio --include "experiments/**" --local-dir .
```

The resulting layout is:

```text
ControlRadio/
`-- experiments/
    `-- prompt_v6/
        |-- RadioMapSeer_RadioDiff-Seer-no-carsInput/
        |   `-- control_sd21_3ch_1e-05_3_100_sd_tune_seed1230/
        |       `-- lightning_logs/version_0/checkpoints/
        |           `-- epoch=99-step=337499.ckpt
        `-- RadioMapSeer_RadioDiff-Seer-carsInput/
            `-- control_sd21_3ch_1e-05_3_100_sd_tune_seed1230/
                `-- lightning_logs/version_0/checkpoints/
                    `-- epoch=99-step=506249.ckpt
```

## Evaluation and Inference

For both checkpoints, use the following checkpoint-selection arguments:

```text
--simulation Seer
--prompt_type v6
--batch_size 3
--learning_rate 1e-5
--max_epochs 100
--sd_locked False
--seed 1230
```

Select ControlRadio-SRM with `--carsInput no` or ControlRadio-DRM with `--carsInput yes`. Use `--test_simulation DPM`, `IRT2`, or `IRT4` to select the evaluation target. The paper uses Noise Controller settings `--means -0.1 --vars 0.001` selected on the validation set.

See the [GitHub evaluation and inference instructions](https://github.com/AkonLau/ControlRadio#evaluation-and-inference) for complete commands and data preparation.

## Results

<p align="center">
  <img src="assets/controlradio_results.png" alt="Qualitative ControlRadio results" width="90%">
</p>

Results reported in the paper on the RadioMapSeer benchmark are:

| Scenario | RMSE ↓ | NMSE ↓ | PSNR ↑ | SSIM ↑ |
|---|---:|---:|---:|---:|
| SRM (DPM without cars) | **0.0166** | **0.0024** | **35.86** | **0.9787** |
| DRM (DPM with cars) | **0.0180** | **0.0028** | **35.29** | **0.9759** |
| IRT4 (without cars) | **0.0210** | **0.0040** | **33.46** | **0.9688** |

## Training Data

The models were trained and evaluated with [RadioMapSeer](https://radiomapseer.github.io/). The code follows the paper's map-level split: maps 0–499 for training, 500–599 for validation, and 600–700 for testing. Refer to the dataset provider for its terms and documentation.

## Intended Use and Limitations

ControlRadio is released for research on prompt- and layout-conditioned radio-map generation. The reported results compare generated maps with WinProp-derived references on simulated, previously unseen layouts.

- The released checkpoints have not been validated as replacements for site-specific electromagnetic solvers or field measurements.
- Performance should not be interpreted as sim-to-real validation or strict electromagnetic equivalence.
- Predictions depend on data preprocessing, prompt construction, coordinate conventions, and inference settings matching the released code.
- Users are responsible for validating generated maps before applying them to safety-critical or operational wireless-network decisions.

## License

The model weights are released under the `openrail++` license metadata, consistent with the [Stable Diffusion 2.1 Base](https://huggingface.co/stabilityai/stable-diffusion-2-1-base) foundation model. The ControlRadio source code is separately released under the [MIT License](https://github.com/AkonLau/ControlRadio/blob/main/LICENSE).

## Citation

```bibtex
@article{liu2026controlradio,
  title   = {ControlRadio: Prompt-Driven Controllable Diffusion for Cross-Modal Radio Map Generation},
  author  = {Liu, Kangjun and Pan, Xiying and Zhang, Shuhang and Xiang, Xiang and Chen, Ke and Wang, Yaowei},
  journal = {arXiv preprint arXiv:2608.09357},
  year    = {2026}
}
```

## Acknowledgements

This work builds upon [ControlNet](https://github.com/lllyasviel/ControlNet), [Stable Diffusion](https://github.com/CompVis/stable-diffusion), [OpenCLIP](https://github.com/mlfoundations/open_clip), and [RadioMapSeer](https://radiomapseer.github.io/).