Below, the terminal commands are provided to run different SinGAN functionalities. For running BLIP and the Text-to-Image models, use the provided corresponding .ipynb files.
python -m pip install -r requirements.txt
This code was tested with python 3.6, torch 1.4
Please note: the code currently only supports torch 1.4 or earlier because of the optimization scheme.
To train SinGAN model, put the desired training image under Input/Images, and run
python main_train.py --input_name <input_file_name>
This will also use the resulting trained model to generate random samples starting from the coarsest scale (n=0).
To run this code on a cpu machine, specify --not_cuda when calling main_train.py
To generate random samples from any starting generation scale, please first train SinGAN model on the desired image (as described above), then run
python random_samples.py --input_name <training_image_file_name> --mode random_samples --gen_start_scale <generation start scale number>
pay attention: for using the full model, specify the generation start scale to be 0, to start the generation from the second scale, specify it to be 1, and so on.
To generate random samples of arbitrary sizes, please first train SinGAN model on the desired image (as described above), then run
python random_samples.py --input_name <training_image_file_name> --mode random_samples_arbitrary_sizes --scale_h <horizontal scaling factor> --scale_v <vertical scaling factor>
To transfer a paint into a realistic image, and run the command
python paint2image.py --input_name <training_image_file_name> --ref_name <paint_image_file_name> --paint_start_scale <scale to inject>
Here as well, different injection scale will produce different editing effects. The coarsest injection scale equals 1.
Advanced option: Specify quantization_flag to be True, to re-train only the injection level of the model, to get a on a color-quantized version of upsampled generated images from the previous scale. For some images, this might lead to more realistic results.