An open API service indexing awesome lists of open source software.

https://github.com/NJUVISION/ResULIC

[ICML 2025] Ultra Lowrate Image Compression with Semantic Residual Coding and Compression-Aware Diffusion
https://github.com/NJUVISION/ResULIC

Last synced: 4 months ago
JSON representation

[ICML 2025] Ultra Lowrate Image Compression with Semantic Residual Coding and Compression-Aware Diffusion

Awesome Lists containing this project

README

          

Ultra Lowrate Image Compression with Semantic Residual Coding and Compression-aware Diffusion


Anle Ke1·
Xu Zhang1·
Tong Chen1·
Ming Lu1·
Chao Zhou2·
Jiawen Gu2·
Zhan Ma1   


1 Nanjing University   2Kuaishou Technology 


🌐 Project Page
📃 Paper




## :book: Table Of Contents
- [✨ Visual Results](#visual_results)
- [⏳ Train](#computer-train)
- [😀 Inference](#inference)
- [🌊 TODO](#todo)
- [❤ Acknowledgement](#acknowledgement)
- [🙇‍ Citation](#cite)

## ⚙️ Environment Setup

```bash
- conda create -n ResULIC python=3.10
- conda activate ResULIC
- pip install -r requirements.txt
```

## ✨ Visual Results




## ⏳ Train

**Note:** The numbers in the yaml filenames (e.g., `1_1_1`) represent $\lambda_{\text{diffusion}}$, $\lambda_{\text{mse}}$, and $\lambda_{\text{bpp}}$ respectively.

#### Stage 1: Initial Training

1. **Download Pretrained Model**
Download the pretrained **Stable Diffusion v2.1** model into the `./weight` directory:
```bash
wget https://huggingface.co/stabilityai/stable-diffusion-2-1-base/resolve/main/v2-1_512-ema-pruned.ckpt --no-check-certificate -P ./weight

2. **Modify the configuration file**`./configs/train_zc_eps.yaml` and `./configs/model/stage1/xx.yaml` accordingly.

3. Start training.
```
bash stage1.sh
```
#### Stage 2:

1. Modify the configuration file `./configs/train_stage2.yaml` and `./configs/model/stage2/xx.yaml` accordingly.

2. Start training.
```
bash stage2.py
```

## 😀 Inference


1. W/o Srr, W/o Pfo.

```
CUDA_VISIBLE_DEVICES=2 python inference_win.py \
--ckpt xx \
--config /xx/xx.yaml \
--output xx/ \
--ddim_steps x \
--ddim_eta 0 \
--Q x.0 \
--add_steps x00
```

2. W/ Srr, W/o Pfo.
```
CUDA_VISIBLE_DEVICES=2 python inference_res.py \
--ckpt xx \
--config /xx/xx.yaml \
--output xx/ \
--ddim_steps x \
--ddim_eta 0 \
--Q x.0 \
--add_steps x00
```

## 🌊 TODO
- [x] Release code
- [x] Release quantitative metrics (👾The quantitative metrics for ResULIC presented in our paper can be found in [indicator](/indicator).)
- [ ] Release pretrained models (Coming soon)

## ❤ Acknowledgement
This work is based on [ControlNet](https://github.com/lllyasviel/ControlNet), [ControlNet-XS](https://github.com/vislearn/ControlNet-XS), [DiffEIC](https://github.com/huai-chang/DiffEIC), and [ELIC](https://github.com/JiangWeibeta/ELIC), thanks to their invaluable contributions.

## 🙇‍ Citation

If you find our work useful, please consider citing:

```bibtex
@inproceedings{Ke2025resulic,
author = {Ke, Anle and Zhang, Xu and Chen, Tong and Lu, Ming and Zhou, Chao and Gu, Jiawen and Ma, Zhan},
title = {Ultra Lowrate Image Compression with Semantic Residual Coding and Compression-aware Diffusion},
booktitle = {International Conference on Machine Learning},
year = {2025}
}
```