{"id":15563282,"url":"https://github.com/anastassia-b/neural-algorithm-artistic-style","last_synced_at":"2025-10-28T00:47:28.538Z","repository":{"id":93275395,"uuid":"118409579","full_name":"anastassia-b/neural-algorithm-artistic-style","owner":"anastassia-b","description":"🎨 Convolutional neural network implementation to generate content-and-style transferred images. ","archived":false,"fork":false,"pushed_at":"2018-03-14T20:48:25.000Z","size":11702,"stargazers_count":23,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-28T00:47:19.190Z","etag":null,"topics":["art","convolutional-neural-networks","deep-learning","keras"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anastassia-b.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-01-22T05:14:27.000Z","updated_at":"2024-08-25T05:20:04.000Z","dependencies_parsed_at":"2023-03-12T01:00:34.049Z","dependency_job_id":null,"html_url":"https://github.com/anastassia-b/neural-algorithm-artistic-style","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/anastassia-b/neural-algorithm-artistic-style","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anastassia-b%2Fneural-algorithm-artistic-style","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anastassia-b%2Fneural-algorithm-artistic-style/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anastassia-b%2Fneural-algorithm-artistic-style/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anastassia-b%2Fneural-algorithm-artistic-style/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anastassia-b","download_url":"https://codeload.github.com/anastassia-b/neural-algorithm-artistic-style/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anastassia-b%2Fneural-algorithm-artistic-style/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":281366877,"owners_count":26488696,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-27T02:00:05.855Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["art","convolutional-neural-networks","deep-learning","keras"],"created_at":"2024-10-02T16:20:58.050Z","updated_at":"2025-10-28T00:47:28.534Z","avatar_url":"https://github.com/anastassia-b.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A Neural Algorithm of Artistic Style\n\n[\"A Neural Algorithm of Artistic Style\"](https://arxiv.org/abs/1508.06576)\n (Gatys, et al. 2015) is the source to this project idea. The implementation of this content-and-style transfer network is a collaboration with [@ruggeri](https://github.com/ruggeri).\n\n\n## Implementation\n\nThe goal of this project is to transfer the style of an artwork to the content of a photograph. We use the VGG recognition network and the paper's clever perspective on understanding the \"style\" of an artwork (similar to an image's \"texture\").\n\n## Results\n\n#### 1\n![milan-style](/docs/result_milan.jpg)\n\n**Figure 1:** Content is captured from the Duomo di Milano image. Styles from Cézanne and Monet are transferred with some success. I decide to experiment more with hyper-parameters to tune the model.\n\n#### 2\n![shrine-style](/docs/result_shrine.jpg)\n\n**Figure 2:** Content: Itsukushima Shrine, Style: Cézanne. Learning rate: 10.0, Epochs: 3000. This takes 25 minutes to train on AWS EC2 instance-- performance is what I want to improve next.\n\n#### 3\n![starry-style](/docs/result_starry-night.jpg)\n\n**Figure 3:** Content: Tubingen. Style: Van Gogh. I saved the image after every 100 epochs as the model trained, obtaining the learning process in action!\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"/docs/starry_tubingen_ab.gif\"\u003e\n\u003c/p\u003e\n\n#### 4\n![mit-klimt](/docs/result_mit_klimt.jpg)\n\n**Figure 4:** Content: MIT Photograph. Style: Klimt. I played around and increased the preference for content over style up to 25.\n\n## Future Directions\n\n* [\"Perceptual Losses for Real-Time Style Transfer and Super-Resolution\"](https://arxiv.org/abs/1603.08155) (Johnson, et al. 2016)\n* Speed up style transfer by training a network that generates the style transferred images. This will use a deep convolutional generator network (along with batch normalization and residual blocks).\n\n\n## Reference\nVGG16 Summary:\n* Total params: 14,714,688\n* Trainable params: 0\n* Non-trainable params: 14,714,688\n\n|Layer (type) |                Output Shape   |           Param # |\n| --- | --- | --- |\n|input_1 (InputLayer)  |       (None, 768, 1024, 3)  |    0   |\n|block1_conv1 (Conv2D)  |      (None, 768, 1024, 64)  |   1792    |  \n|block1_conv2 (Conv2D)    |    (None, 768, 1024, 64)  |   36928     |\n|block1_pool (MaxPooling2D)  | (None, 384, 512, 64)    |  0         |\n|block2_conv1 (Conv2D)   |     (None, 384, 512, 128)   |  73856     |\n|block2_conv2 (Conv2D)   |     (None, 384, 512, 128)   |  147584    |\n|block2_pool (MaxPooling2D)  | (None, 192, 256, 128)  |   0        |\n|block3_conv1 (Conv2D)    |    (None, 192, 256, 256)  |   295168   |\n|block3_conv2 (Conv2D)    |    (None, 192, 256, 256)   |  590080    |\n|block3_conv3 (Conv2D)    |    (None, 192, 256, 256)  |   590080    |\n|block3_pool (MaxPooling2D) |  (None, 96, 128, 256)  |    0         |\n|block4_conv1 (Conv2D)   |     (None, 96, 128, 512)  |    1180160   |\n|block4_conv2 (Conv2D)    |    (None, 96, 128, 512)   |   2359808   |\n|block4_conv3 (Conv2D)    |    (None, 96, 128, 512)   |   2359808   |\n|block4_pool (MaxPooling2D) |  (None, 48, 64, 512)    |   0         |\n|block5_conv1 (Conv2D)     |   (None, 48, 64, 512)    |   2359808   |\n|block5_conv2 (Conv2D)     |   (None, 48, 64, 512)    |   2359808   |\n|block5_conv3 (Conv2D)    |    (None, 48, 64, 512)    |   2359808   |\n|block5_pool (MaxPooling2D) |  (None, 24, 32, 512)    |   0         |\n|global_average_pooling2d_1 |( (None, 512)            |   0         |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanastassia-b%2Fneural-algorithm-artistic-style","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanastassia-b%2Fneural-algorithm-artistic-style","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanastassia-b%2Fneural-algorithm-artistic-style/lists"}