[AAAI 2026] PerTouch: VLM-Driven Agent for Personalized and Semantic Image Retouching
27
stars
17
commits
Python
primary language
Feb 4, 2026
updated
Zewei Chang, Zheng-Peng Duan, Jianxing Zhang, Chun-Le Guo, Siyu Liu
Hyungju Chun, Hyunhee Park, Zikun Liu, Chongyi Li†
†Corresponding Author
Image retouching aims to enhance visual quality while aligning with users' personalized aesthetic preferences. To address the challenge of balancing controllability and subjectivity, we propose a unified diffusion-based image retouching framework called PerTouch.
Our method supports semantic-level image retouching while maintaining global aesthetics. Using parameter maps containing attribute values in specific semantic regions as input, PerTouch constructs an explicit parameter-to-image mapping for fine-grained image retouching. To improve semantic boundary perception, we introduce semantic replacement and parameter perturbation mechanisms during training.
To connect natural language instructions with visual control, we develop a VLM-Driven agent to handle both strong and weak user instructions. Equipped with mechanisms of feedback-driven rethinking and scene-aware memory, PerTouch better aligns with user intent and captures long-term preferences.
⭐ If PerTouch is helpful to your projects, please help star this repo. Thank you! 👈
Clone the repository and navigate to the project directory:
git clone https://github.com/Auroral703/PerTouch.git
cd PerTouch
Create and activate the conda environment:
conda env create -f environment.yaml
conda activate pertouch
Prepare necessary models:
The segmentation method used by our data structure and Agent has been updated to SAM3. Please configure it according to the SAM3 Official Repository or the following operations:
git clone https://github.com/facebookresearch/sam3.git
⚠️ Before using SAM 3, please request access to the checkpoints on the SAM 3 Hugging Face repo. Once accepted, You need to download the corresponding weight of SAM3 and place it in the following path.:
model/sam3/sam3.pt
Additionally, you need to download some of our PerTouch Backbone weights, please refer to the PerTouch Hugging Face repo and place the weights in the following path. The remaining weights will be downloaded automatically when used.
model/ckpt
If you have trouble downloading, try to using the following command:
export HF_ENDPOINT="https://hf-mirror.com"
Our data construction pipeline supports one-click construction of Parameter Maps required for training. You need to store all input images and corresponding images modified by multiple experts in the following path:
PerTouch/
├── data/
│ ├── train/
│ │ ├── Expert/ # Edited results from various experts
│ │ │ ├── Expert A/
│ │ │ ├── Expert B/
│ │ │ └── ...
│ │ ├── Input/ # Corresponding low-quality inputs
│ │ │ ├── Input A/
│ │ │ ├── Input B/
│ │ │ └── ...
│ ├── test/
│ ├── data_preparation.py # Data preparation and normalization
Then execute our data processing pipeline. If the path changes, update the configuration information in the file.
Note: SAM3 is required to run this pipeline.
cd data
python data_preparation.py
Edit hyperparameters in train.sh if needed, then run:
./train.sh
Note: The script is compatible with Weights & Biases (wandb) for logging; make sure the environment is properly configured. Our experiments were conducted in FP32, and the correctness of BF16 and FP16 was not verified.
PerTouch provides a VLM-driven interactive image retouching demo built with Gradio, supporting personalized image retouching through natural language instructions.
Ensure dependencies are installed Complete the Dependencies and Installation section first, and download all required models.
Launch the demo
cd agent
python main.py
Access the interface
The Gradio interface will be available at http://127.0.0.1:7860.
Note: Main configuration options are located in agent/config.py.
If you find our work useful, please consider citing:
@inproceedings{chang2026pertouch,
title = {PerTouch: A Unified Diffusion-based Image Retouching Framework with VLM-driven Agent},
author = {Chang, Zewei and Duan, Zheng-Peng and Zhang, Jianxing and others},
year = 2026,
booktitle = {The 40th Annual AAAI Conference on Artificial Intelligence},
address = {Singapore, Singapore},
}
17 commits
Python
99.9%
[AAAI 2026] PerTouch: VLM-Driven Agent for Personalized and Semantic Image Retouching
27
stars
17
commits
Python
primary language
Feb 4, 2026
updated
Zewei Chang, Zheng-Peng Duan, Jianxing Zhang, Chun-Le Guo, Siyu Liu
Hyungju Chun, Hyunhee Park, Zikun Liu, Chongyi Li†
†Corresponding Author
Image retouching aims to enhance visual quality while aligning with users' personalized aesthetic preferences. To address the challenge of balancing controllability and subjectivity, we propose a unified diffusion-based image retouching framework called PerTouch.
Our method supports semantic-level image retouching while maintaining global aesthetics. Using parameter maps containing attribute values in specific semantic regions as input, PerTouch constructs an explicit parameter-to-image mapping for fine-grained image retouching. To improve semantic boundary perception, we introduce semantic replacement and parameter perturbation mechanisms during training.
To connect natural language instructions with visual control, we develop a VLM-Driven agent to handle both strong and weak user instructions. Equipped with mechanisms of feedback-driven rethinking and scene-aware memory, PerTouch better aligns with user intent and captures long-term preferences.
⭐ If PerTouch is helpful to your projects, please help star this repo. Thank you! 👈
Clone the repository and navigate to the project directory:
git clone https://github.com/Auroral703/PerTouch.git
cd PerTouch
Create and activate the conda environment:
conda env create -f environment.yaml
conda activate pertouch
Prepare necessary models:
The segmentation method used by our data structure and Agent has been updated to SAM3. Please configure it according to the SAM3 Official Repository or the following operations:
git clone https://github.com/facebookresearch/sam3.git
⚠️ Before using SAM 3, please request access to the checkpoints on the SAM 3 Hugging Face repo. Once accepted, You need to download the corresponding weight of SAM3 and place it in the following path.:
model/sam3/sam3.pt
Additionally, you need to download some of our PerTouch Backbone weights, please refer to the PerTouch Hugging Face repo and place the weights in the following path. The remaining weights will be downloaded automatically when used.
model/ckpt
If you have trouble downloading, try to using the following command:
export HF_ENDPOINT="https://hf-mirror.com"
Our data construction pipeline supports one-click construction of Parameter Maps required for training. You need to store all input images and corresponding images modified by multiple experts in the following path:
PerTouch/
├── data/
│ ├── train/
│ │ ├── Expert/ # Edited results from various experts
│ │ │ ├── Expert A/
│ │ │ ├── Expert B/
│ │ │ └── ...
│ │ ├── Input/ # Corresponding low-quality inputs
│ │ │ ├── Input A/
│ │ │ ├── Input B/
│ │ │ └── ...
│ ├── test/
│ ├── data_preparation.py # Data preparation and normalization
Then execute our data processing pipeline. If the path changes, update the configuration information in the file.
Note: SAM3 is required to run this pipeline.
cd data
python data_preparation.py
Edit hyperparameters in train.sh if needed, then run:
./train.sh
Note: The script is compatible with Weights & Biases (wandb) for logging; make sure the environment is properly configured. Our experiments were conducted in FP32, and the correctness of BF16 and FP16 was not verified.
PerTouch provides a VLM-driven interactive image retouching demo built with Gradio, supporting personalized image retouching through natural language instructions.
Ensure dependencies are installed Complete the Dependencies and Installation section first, and download all required models.
Launch the demo
cd agent
python main.py
Access the interface
The Gradio interface will be available at http://127.0.0.1:7860.
Note: Main configuration options are located in agent/config.py.
If you find our work useful, please consider citing:
@inproceedings{chang2026pertouch,
title = {PerTouch: A Unified Diffusion-based Image Retouching Framework with VLM-driven Agent},
author = {Chang, Zewei and Duan, Zheng-Peng and Zhang, Jianxing and others},
year = 2026,
booktitle = {The 40th Annual AAAI Conference on Artificial Intelligence},
address = {Singapore, Singapore},
}
17 commits
Python
99.9%