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/).
|