{"id":23499916,"url":"https://github.com/dhruvsrikanth/neuralartisticrecreation-cli-tool","last_synced_at":"2025-08-16T19:09:22.211Z","repository":{"id":111259738,"uuid":"437695451","full_name":"DhruvSrikanth/NeuralArtisticRecreation-CLI-Tool","owner":"DhruvSrikanth","description":"A Command Line Tool (or CLI) to perform Neural Style Transfer along with image filtering to produce an artistic recreation of an input image!","archived":false,"fork":false,"pushed_at":"2021-12-16T03:14:47.000Z","size":4490,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-24T00:55:10.778Z","etag":null,"topics":["application","cli","command-line-interface","command-line-tool","deep-learning","machine-learning","neural-networks","neural-style-transfer","python","style-transfer","tensorflow-2","tesnorflow","tool"],"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/DhruvSrikanth.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}},"created_at":"2021-12-13T01:06:08.000Z","updated_at":"2024-06-05T17:17:26.000Z","dependencies_parsed_at":null,"dependency_job_id":"f1d3e6fd-e274-4f7a-9294-6fd23c281b5e","html_url":"https://github.com/DhruvSrikanth/NeuralArtisticRecreation-CLI-Tool","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/DhruvSrikanth/NeuralArtisticRecreation-CLI-Tool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DhruvSrikanth%2FNeuralArtisticRecreation-CLI-Tool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DhruvSrikanth%2FNeuralArtisticRecreation-CLI-Tool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DhruvSrikanth%2FNeuralArtisticRecreation-CLI-Tool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DhruvSrikanth%2FNeuralArtisticRecreation-CLI-Tool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/DhruvSrikanth","download_url":"https://codeload.github.com/DhruvSrikanth/NeuralArtisticRecreation-CLI-Tool/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/DhruvSrikanth%2FNeuralArtisticRecreation-CLI-Tool/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270757939,"owners_count":24640163,"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-08-16T02:00:11.002Z","response_time":91,"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":["application","cli","command-line-interface","command-line-tool","deep-learning","machine-learning","neural-networks","neural-style-transfer","python","style-transfer","tensorflow-2","tesnorflow","tool"],"created_at":"2024-12-25T06:33:04.259Z","updated_at":"2025-08-16T19:09:22.169Z","avatar_url":"https://github.com/DhruvSrikanth.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project - \"Neural Artistic Recreation\"\n\n1. Project Idea - I would like to create an API to enable people to experience the art of their choosing on a more personal level.\n\n2. Project To Do's - \n\t1. Convert an input image to an stylized image by the artist and in the theme of their choosing. The style (artist style and color style) will be used in recreating the input image as a stylized output. This can be done through neural style transfer.\n\n\t2. Apply certain filters (like invert, black-and-white) to the stylized image to further customize the art to the users choosing. \n\n3. Project Execution Plan - \n\t1. By the end of week 1, I will have explored methods for neural style transfer and methods to apply certain filters on images.\n\t2. By the end of week 2, I will have created a pipeline that takes an input image and outputs an image with a filter (by choice) applied to it.\n\t3. By the end of week 3, I will have created a pipeline that performs neural style transfer (users will use the style image of their choice and the input image of their choice in the pipeline).\n\t4. By the end of week 4, I will have integrated both of the above pipelines.\n\t5. By the end of week 5, I will have created a module/package for the entire pipeline. \n\t6. Finally, I will include some \"popular\" style images that users can use if they do not have a style image in mind.\n\n4. Project Demo - \n[Neural Artistic Recreation](https://youtu.be/AJCFO6ot4B8)\n\n---\n\n# User CLI Guide\n\n\u003cbr\u003e\n\nThis tool aims to create an API to enable people to experience the art of their choosing on a more personal level using filters from the **Python Imaging Library** and **Neural Style Transfer**.\n\n\u003cbr\u003e\n\n---\n\n\u003cH3\u003eVideo Demo:\u003c/H3\u003e\n\n\n[Neural Artistic Recreation - Video Demo](https://youtu.be/AJCFO6ot4B8)\n\n\n\u003cH3\u003eSample:\u003c/H3\u003e\n\nThere are samples for an input and corresponding output of the model with different styles present in the **samples** folder.\n\n\u003cH3\u003eReferences\u003c/H3\u003e\n\n\u003cbr\u003e\n\nGiven below are some of references that can be used for better understanding some of the underlying concepts and code used in this tool:  \n\n1. Python Imaging Library: \u003chttps://pillow.readthedocs.io/en/stable/\u003e\n2. Neural Style Transfer: \u003chttps://www.cv-foundation.org/openaccess/content_cvpr_2016/html/Gatys_Image_Style_Transfer_CVPR_2016_paper.html\u003e \n3. Style Transfer with Tensorflow: \u003chttps://www.tensorflow.org/tutorials/generative/style_transfer\u003e\n4. Transfer Learning: \u003chttps://www.tensorflow.org/tutorials/images/transfer_learning\u003e\n\n\u003cbr\u003e\n\n---\n\n\u003cH3\u003eRequirements\u003c/H3\u003e  \n\nAll requirements can be found in the **requirements.txt** file. I would recommend running commenting out all tensorflow and keras related lines as the version required for these packages differs from system to system. For tensorflow and keras, please refer to tensorflow's guide on installing tensorflow, cuda and cudnn for the correct versions for your system. Furthermore, before installing all the requirements, I would recommend creating a virutal environment. I use [venv](https://docs.python.org/3/library/venv.html#module-venv) for this. After pulling this repository into a particular directory of your choice, you may activate your virtual environment and run the following command to install all of the required packages - \n\n```\npip install -r /path/to/requirements.txt\n```\n\nI recommend using a system with an powerful NVIDIA GPU if you want to train the model for a higher number of epochs if you would like to further refine the output.\n\n\u003cbr\u003e\n\n---\n\n\n\u003cH3\u003eUsing the Tool\u003c/H3\u003e  \n\nRun the below command to use the tool - \n\n```\npython main.py --inp_img_path=/path/to/input_image --style_choice=choice_of_style --filter_choice=choice_of_filter --save_path=/path/to/stylized_image\"\n```\n\n\u003cH4\u003eFilter Choices:\u003c/H4\u003e  \n\n1. No Filter\n2. Blur\n3. Contour\n4. Detail\n5. Edge Enhance\n6. Strong Edge Enhance\n7. Emboss\n8. Find Edges\n9. Smooth\n10. Strong Smooth\n11. Sharpen\n\nMore on these filters can be found [here](https://pillow.readthedocs.io/en/stable/reference/ImageFilter.html).\n\n\u003cH4\u003eStyle Choices:\u003c/H4\u003e  \n\n1. No Style\n2. [Piccaso](https://www.wikiart.org/en/pablo-picasso/self-portrait-1907)\n3. [Van Gogh](https://en.wikipedia.org/wiki/The_Starry_Night#/media/File:Van_Gogh_-_Starry_Night_-_Google_Art_Project.jpg)\n4. [Michelangelo](https://en.wikipedia.org/wiki/The_Creation_of_Adam#/media/File:Michelangelo_-_Creation_of_Adam_(cropped).jpg)\n5. [Leonardo Da Vinci](https://en.wikipedia.org/wiki/Mona_Lisa#/media/File:Mona_Lisa,_by_Leonardo_da_Vinci,_from_C2RMF_retouched.jpg)\n6. [Edward Munch](https://upload.wikimedia.org/wikipedia/commons/8/86/Edvard_Munch_-_The_Scream_-_Google_Art_Project.jpg)\n7. [Sandro Botticelli](https://upload.wikimedia.org/wikipedia/commons/thumb/0/0b/Sandro_Botticelli_-_La_nascita_di_Venere_-_Google_Art_Project_-_edited.jpg/2560px-Sandro_Botticelli_-_La_nascita_di_Venere_-_Google_Art_Project_-_edited.jpg)\n\nThese styles can also be viewed in the **styles** directory.\n\n\u003cH4\u003eCustomization:\u003c/H4\u003e  \n\nIf you would like to add more styles, this can be done in the following way:\n\n1. Download the style image of your choice and move this to the **styles** directory.\n2. Open the **styles.py** file inside **src**.\n3. Add a path variable containing the path to the new style image to the file.\n4. Add this variable to the end of the **STYLES** list.\n\nIf you would like to refine your output, this can be done in the following way:\n\n1. Open the **parameters.py** file inside **src**.\n2. Change the **EPOCHS** and **STEPS_PER_EPOCH** variable values. The higher these values are, the more time the tool will take to run as the model will train for a longer period of time, however, this will result in a more refined output.\n\nIf you would like to test out different weights for the different losses or tune the hyperparameters further, this can be done in the following way:\n\n1. Open the **parameters.py** file inside **src**.\n2. Change the parameters and/or hyperparameters to the values you would like to test with the model.\n\n\n\n\u003cbr\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhruvsrikanth%2Fneuralartisticrecreation-cli-tool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdhruvsrikanth%2Fneuralartisticrecreation-cli-tool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdhruvsrikanth%2Fneuralartisticrecreation-cli-tool/lists"}