Pytorch implementation for reproducing AttnGAN results in the paper AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Adversarial Networks by Tao Xu, Pengchuan Zhang, Qiuyuan Huang, Han Zhang, Zhe Gan, Xiaolei Huang, Xiaodong He. (This work was performed when Tao was an intern with Microsoft Research).
python 3.6+
Pytorch 1.0+
In addition, please add the project folder to PYTHONPATH and pip install
the following packages:
python-dateutil
easydict
pandas
torchfile
nltk
scikit-image
Data
data/
data/birds/
data/coco/
Training
Pre-train DAMSM models:
python pretrain_DAMSM.py --cfg cfg/DAMSM/bird.yml --gpu 0
python pretrain_DAMSM.py --cfg cfg/DAMSM/coco.yml --gpu 1
Train AttnGAN models:
python main.py --cfg cfg/bird_attn2.yml --gpu 2
python main.py --cfg cfg/coco_attn2.yml --gpu 3
*.yml
files are example configuration files for training/evaluation our models.
Pretrained Model
DAMSM for bird. Download and save it to DAMSMencoders/
DAMSM for coco. Download and save it to DAMSMencoders/
AttnGAN for bird. Download and save it to models/
AttnGAN for coco. Download and save it to models/
AttnDCGAN for bird. Download and save it to models/
Sampling
python main.py --cfg cfg/eval_bird.yml --gpu 1
to generate examples from captions in files listed in "./data/birds/example_filenames.txt". Results are saved to DAMSMencoders/
. eval_*.yml
files to generate images from other pre-trained models. Validation
python main.py --cfg cfg/eval_bird.yml --gpu 1
Examples generated by AttnGAN [Blog]
bird example | coco example |
---|---|
Evaluation code embedded into a callable containerized API is included in the eval\
folder.
If you find AttnGAN useful in your research, please consider citing:
@article{Tao18attngan,
author = {Tao Xu, Pengchuan Zhang, Qiuyuan Huang, Han Zhang, Zhe Gan, Xiaolei Huang, Xiaodong He},
title = {AttnGAN: Fine-Grained Text to Image Generation with Attentional Generative Adversarial Networks},
Year = {2018},
booktitle = {{CVPR}}
}
Reference