This model transforms people's faces into a comic.
Using the PyTorch library, the pix2pix GAN architecture was implemented:
- U-net was used as a generator for images with a resolution of 128x128;
- A classical neural network with convolution in the last layer (PathGAN architecture) was used as a discriminator
Comic faces (paired, synthetic) was used as a dataset:
![](https://private-user-images.githubusercontent.com/83812505/252494014-8f0af1e5-5587-468f-acb5-d8ad4796d8a1.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0NTk2NDUsIm5iZiI6MTczOTQ1OTM0NSwicGF0aCI6Ii84MzgxMjUwNS8yNTI0OTQwMTQtOGYwYWYxZTUtNTU4Ny00NjhmLWFjYjUtZDhhZDQ3OTZkOGExLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDE1MDkwNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWMxMTc5ZWFkZGZjNTA0NGQwOWNiZGU4MTZhMDFjZGJhNDkwNWE5NzZiOGE5YzE5YWRmMmIzM2ZlMTFlNGMyOGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.QaQ_VvRKvbQ_H969CycVJkYThuYs3rgkqGifBztr_W8)
During the training, nn.L1Loss() (Mean Absolute Error) and nn.BCEWithLogitsLoss() were used.
torch.optim.Adam() was used as optimazer.
Start training:
![](https://private-user-images.githubusercontent.com/83812505/252170521-fc63c7f4-4458-4df1-816c-29df34af849d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0NTk2NDUsIm5iZiI6MTczOTQ1OTM0NSwicGF0aCI6Ii84MzgxMjUwNS8yNTIxNzA1MjEtZmM2M2M3ZjQtNDQ1OC00ZGYxLTgxNmMtMjlkZjM0YWY4NDlkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDE1MDkwNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM0MWMxYWU5NGU3N2UyOWViMDJlZGYwNzY1NjQxNGVhNDMwNzE4ZDU5NDA2ZDM1YzEzZTQzMTk1N2E0Y2RmN2UmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.dUFlPeme_KrBVFgsDbtmwSsM--ZIUL_rAffOVpCatgg)
During training:
![](https://private-user-images.githubusercontent.com/83812505/252167418-a4f9b0d0-c8c9-443b-9a9a-46907e37691c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0NTk2NDUsIm5iZiI6MTczOTQ1OTM0NSwicGF0aCI6Ii84MzgxMjUwNS8yNTIxNjc0MTgtYTRmOWIwZDAtYzhjOS00NDNiLTlhOWEtNDY5MDdlMzc2OTFjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDE1MDkwNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI0YTY3NDRlYWFhY2FiYmZhNWY3OTRjYjBjZTQyN2M5NzM5NGRmM2VhMjFiMTMxNDYyYTI3MzhlNzhiYzE0NjcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.FAxBa9MsHDON4MYCIXAz48mlurAODib7rqKfv85-Zf8)
End of training:
![](https://private-user-images.githubusercontent.com/83812505/252167341-37097430-adc7-400d-beba-9e0ecae1b6c9.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0NTk2NDUsIm5iZiI6MTczOTQ1OTM0NSwicGF0aCI6Ii84MzgxMjUwNS8yNTIxNjczNDEtMzcwOTc0MzAtYWRjNy00MDBkLWJlYmEtOWUwZWNhZTFiNmM5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDE1MDkwNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM3OTIyZDY2MGJlMzJmNWFlYzY3Nzg1ZTBiNzJlZmU0MzE3NzhmMWU0YzJjOWY2YTFmZDczOTIwNGYyYzAwZmYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.nhV_PqVLuVmRe0_ilu7EP9N6B3ZOnM0GM2XMyW_EujU)
In the arguments of the load_model method, after the model, specify the paths to the discriminator and generator weights
Run file bot.py
- In console of your computer
- In cell of notebook (.ipynb) (example:
!python3 /kaggle/input/gan-tg-bot/bot.py
)
To get started, write "/start"
![](https://private-user-images.githubusercontent.com/83812505/252492280-e48b17e6-5458-4e51-8b89-41b81e385ba3.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0NTk2NDUsIm5iZiI6MTczOTQ1OTM0NSwicGF0aCI6Ii84MzgxMjUwNS8yNTI0OTIyODAtZTQ4YjE3ZTYtNTQ1OC00ZTUxLThiODktNDFiODFlMzg1YmEzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDE1MDkwNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUyZjExNjk0ZWFiZGU4Y2I4NDk0MjhkOGMyNDdmNTIzNjI2MTUxMWQxZDA4ZjRiOWZhZDFmMTQ2ZTFkMWM5ZDkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.eyrmTrZmKA9TMi-RL1MW8H9kLxNJ51-gfvhC4k0O4A4)
![](https://private-user-images.githubusercontent.com/83812505/252497448-4d8c4e87-64f8-48e0-aab3-fc3d9ef902d4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk0NTk2NDUsIm5iZiI6MTczOTQ1OTM0NSwicGF0aCI6Ii84MzgxMjUwNS8yNTI0OTc0NDgtNGQ4YzRlODctNjRmOC00OGUwLWFhYjMtZmMzZDllZjkwMmQ0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTMlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjEzVDE1MDkwNVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIxNDkyNTZlYmMyZGU4ODBhNmIzMTc1MmVhNmIxNTY5NWUzNjg1MmE0OWJiODMwMjdiMzA0ZDc1NTViZTdkNjkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.oYgkc7ktXe2VYVtRbVro7OBLqlKQhUrpez1A83rYnRE)