Downloads · 30 days
26
1% of all-time downloads
ceyda/butterfly_cropped_uniq1K_512
butterfly_cropped_uniq1K_512 is a unconditional image generation model from ceyda. Use it for the unconditional image generation task on the model card, and read the license before you ship it in a product. It is set up for transformers. The card lists the license as mit.
Based on paper: Towards Faster and Stabilized GAN Training for High-fidelity Few-shot Image Synthesis
Downloads · 30 days
26
1% of all-time downloads
All-time downloads
5K
Public
Repo size
3.9 GB
Likes
5
Public
Click a slice to open those files.
.pt155 MB · 100%
From the Hugging Face model README
Based on paper: Towards Faster and Stabilized GAN Training for High-fidelity Few-shot Image Synthesis
which states: "Notably, the model converges from scratch with just a few hours of training on a single RTX-2080 GPU, and has a consistent performance, even with less than 100 training samples"
also dubbed the Light-GAN model. This model was trained using the script here which is adapted from the lucidrains repo.
Differently from the script above, I used the transforms from the official repo. Because our training images were already cropped and aligned. official paper implementation repo
transform_list = [
transforms.Resize((int(im_size),int(im_size))),
transforms.RandomHorizontalFlip(),
transforms.ToTensor(),
transforms.Normalize(mean=[0.5, 0.5, 0.5], std=[0.5, 0.5, 0.5])
]
Intended for fun & learning~
import torch
from huggan.pytorch.lightweight_gan.lightweight_gan import LightweightGAN # install the community-events repo above
gan = LightweightGAN.from_pretrained("ceyda/butterfly_cropped_uniq1K_512")
gan.eval()
batch_size = 1
with torch.no_grad():
ims = gan.G(torch.randn(batch_size, gan.latent_dim)).clamp_(0., 1.)*255
ims = ims.permute(0,2,3,1).detach().cpu().numpy().astype(np.uint8)
# ims is [BxWxHxC] call Image.fromarray(ims[0])
1000 images are used, while it was possible to increase this number, we didn't have time to manually curate the dataset.
& also wanted to see if it was possible to do low data training as mention in the paper.
More details are on the data card
Trained on 2xA4000s for ~1day. Can see good results within 7-12h. Importans params: "--batch_size 64 --gradient_accumulate_every 4 --image_size 512 --mixed_precision fp16" Training logs can be seen here
calculated FID score on 100 images. results for different checkpoints are here
but can't say it is too meaningful (due to the shortcomings of FID score)
Play with the demo
Made during the huggan sprint.
Model trained by: Ceyda Cinarel https://twitter.com/ceyda_cinarel
Additional contributions by Jonathan Whitaker https://twitter.com/johnowhitaker