Armando Fortes Tianyi Wei Chindanai Trakantannarong Shangchen Zhou Xingang Pan
S-lab, Nanyang Technological University
ThinkDrag interprets sparse drag handles as semantic edits
It can reason about the intended transformation before generating.
ThinkDrag is a drag-based image editing method built on a unified multimodal model. Rather than treating drags as geometric displacements, it interprets them as semantic transformations and can optionally produce a visual reasoning trace before generating the edit. To support this, we construct a training dataset of semantic drag transformations paired with reasoning traces, and introduce DragBench++, a benchmark of challenging drag-based editing scenarios with reference edits.
- [2026.10] This repo is created.
- Release DragBench++
- Release Dataset
- Release Model Weights
- Release Inference Code
Semantic transformations. Same input and drag handles across drag-based image editing methods.
Reasoning-guided edits. ThinkDrag can first infer the intended edit from the handles, then use that reasoning trace to guide generation.
Dataset. Synthetic image pairs are filtered, matched with semantic keypoints, and paired with reasoning chains.
Model. Drags are represented as structured text tokens and Drag Endpoint Markers in a unified multimodal model.
If you find our work useful, please consider giving this repo a ⭐ to support our work and citing the following paper:
@article{fortes2026thinkdrag,
title = {ThinkDrag: Semantic Drag-Based Image Editing with Visual Reasoning},
author = {Fortes, Armando and Wei, Tianyi and Trakantannarong, Chindanai and Zhou, Shangchen and Pan, Xingang},
journal = {arXiv preprint arXiv:2610.13316},
year = {2026}
}This project is licensed under NTU S-Lab License 1.0. Redistribution and use should follow this license.
We would like to thank the drag-based editing community and the many works that paved the way for this one since Drag Your GAN. In particular, we compare against DragDiffusion, DragNoise, DragLoRA, FastDrag, GeoDrag, InstantDrag & LightningDrag.
We also thank the following projects that made this work possible:




