English | 简体中文
This project is based on the Paddlepaddle framework to reproduce SinGAN, a new unconditional generation model that can be learned from a single natural image. This model contains a fully convolution pyramid structure of GANs, and each GANs is responsible for learning different patch distributions on images of different proportions. This allows for the generation of new samples of arbitrary size and aspect ratio, with significant variability, while maintaining the global structure and fine texture of the training image. Compared with previous single image generation schemes, this method is not limited to texture images and has no conditions (that is, to generate samples from noise).
Paper:
- [1] Shaham T R, Dekel T, Michaeli T. Singan: Learning a generative model from a single natural image[C]//Proceedings of the IEEE/CVF International Conference on Computer Vision. 2019: 4570-4580.
Reference project:
The link of aistudio:
- notebook:https://aistudio.baidu.com/aistudio/projectdetail/2298194
- Scrip:https://aistudio.baidu.com/aistudio/projectdetail/2298194
Model Weight Download Address:(Baiduyun code:ipbt)
Any image can be used as a training set, and this project provides some images to train with. Images
-
Hardware: GPU, CPU
-
Framework:
- PaddlePaddle >= 2.0.0
# clone this repo
git clone https://github.com/icey-zhang/paddle_SinGAN.git
cd paddle_SinGAN-main
Installation dependency
sh init.sh
- single machine training
python train.py --input_name colusseum.png
- train distributed and use multi machine training:
python3 -m paddle.distributed.launch --log_dir=./debug/ --gpus '0,1,2,3' train.py --input_name colusseum.png
- random_samples
python eval.py --input_name colusseum.png --mode random_samples --gen_start_scale 0
Note: To use the full model, specify that the pyramid structure generation starts at level 0 (gen_start_scale), starts at level 2, specifies that it is 1, and so on.
- random samples in arbitrary sizes
python eval.py --input_name colusseum.png --mode random_samples_arbitrary_sizes --scale_h 2 --scale_v 1
- test with pre-training weight
Download the pre-training weights in the main directory, then run the above command, notice where the weights are placed, detailed information can be seen in code structure and [Pre training model](#63-Pre training model)
./paddle_SinGAN-main
├─TrainedModels
├─config
├─dataset
├─models
├─Input
├─Output
│ run.sh
│ eval.py
│ init.sh
| README_cn.md
| README.md
│ requirement.txt
│ train.py
Parameters related to training can be set in train.py
, as follows:
Parameters | default | description |
---|---|---|
input_dir | Input/Images, Mandatory | The path to the image |
input_name | None, Mandatory | The name of the image |
mode | train, Mandatory | Mode |
Parameters related to test can be set in test.py
, as follows:
Parameters | default | description |
---|---|---|
input_dir | Input/Images, Mandatory | The path to the image |
input_name | None, Mandatory | The name of the image |
mode | None, Mandatory | Random samples or random samples with arbitrary sizes |
gen_start_scale | None, Mandatory | The beginning of the pyramid |
scale_h | None, Optional | Adjust the scale of the image |
scale_v | None, Optional | Adjust the scale of the image |
-
Model Weight Download: Baiduyun:Pre training model 提取码:ipbt
-
Model Weight Information
./paddle_SinGAN-main
├─TrainedModels #Model storage location
├─colusseum #Image name
├─scale_factor=0.750000,alpha=10 #Reflect the scale of pyramid size change
├─0 #Pyramid structure layer (layer 0))
├─netD.pdparams #The weight of the discriminator
├─netG.pdparams #The weight of the generator
├─z_opt.paparams #- Random noise for training
├─real_scale.png #Original picture downsampling
├─G(z_opt).png #Image generated with z opt noise
├─fake_samples.png #Image generated from another arbitrary random noise
For other information about the model, please refer to the following table:
information | description |
---|---|
Author | Jiaqing Zhang、Kai jiang |
Date | 2021.08 |
Framework version | Paddle 2.1.2 |
Application scenarios | Image Generation |
Support hardware | GPU、CPU |
Download link | Pre training model code:ipbt |
Online operation | botebook、Script |