{"id":23042989,"url":"https://github.com/cjunwon/spotify-image-generator","last_synced_at":"2025-04-03T01:19:13.801Z","repository":{"id":154042818,"uuid":"583228650","full_name":"cjunwon/Spotify-Image-Generator","owner":"cjunwon","description":"Generates personalized cover art images based on user's top artists","archived":false,"fork":false,"pushed_at":"2023-01-10T00:21:32.000Z","size":11466,"stargazers_count":2,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-08T15:32:50.594Z","etag":null,"topics":["dall-e","image-generator","object-detection","openai","spotify","spotipy","tensorflow","tensorflow-lite","tensorflow2"],"latest_commit_sha":null,"homepage":"","language":"Jupyter Notebook","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/cjunwon.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":"2022-12-29T06:30:34.000Z","updated_at":"2025-01-16T23:06:00.000Z","dependencies_parsed_at":null,"dependency_job_id":"20fda1f7-9269-4fc8-b309-8725d18dd72d","html_url":"https://github.com/cjunwon/Spotify-Image-Generator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjunwon%2FSpotify-Image-Generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjunwon%2FSpotify-Image-Generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjunwon%2FSpotify-Image-Generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cjunwon%2FSpotify-Image-Generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cjunwon","download_url":"https://codeload.github.com/cjunwon/Spotify-Image-Generator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246916999,"owners_count":20854559,"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","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":["dall-e","image-generator","object-detection","openai","spotify","spotipy","tensorflow","tensorflow-lite","tensorflow2"],"created_at":"2024-12-15T20:38:10.201Z","updated_at":"2025-04-03T01:19:13.768Z","avatar_url":"https://github.com/cjunwon.png","language":"Jupyter Notebook","readme":"# Spotify Image Generator\n \nGenerates personalized cover art based on user data.\n\n\n## TABLE OF CONTENTS\n\n* [Background](#background)\n* [Objective](#objective)\n* [Tools and Packages](#tools)\n* [Model Implementation](#model-implementation)\n* [Conclusion](#conclusion)\n* [Challenges and Future Work](#challenges-and-futurework)\n\n\u003chr\u003e\n\n## BACKGROUND \nSpotify defaults to a simple collage of four album covers as cover art for a playlist created by user. In order to change the playlist cover art, the user has to select and upload their personal images through their desktop Spotify application. In order to help this selection process, this project generates a completely new cover art based on the user's music preferences.\n\n\u003chr\u003e\n\n## OBJECTIVE \n* Collect user data\n  * Pull user data using Spotify API\n  * Use Spotify API functions to specify queries\n  * Parse through JSON format output to gather necessary data\n* Test different image generator models\n  * Find objects within cover art using TensorFlow object detection\n  * Implement Artistic Style Transfer with TensorFlow Lite\n  * Implement OpenAI's DALL·E2 model\n\n\u003chr\u003e \n\n## TOOLS\n**Language Used:** Python\n\u003ctable style=\"width:100%\"\u003e\n  \u003ctr\u003e\n    \u003cth\u003eTask\u003c/th\u003e\n    \u003cth\u003eTechnique\u003c/th\u003e \n    \u003cth\u003eTools/Packages Used\u003c/th\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eData Collection\u003c/td\u003e\n    \u003ctd\u003eUser top artists, artists' top song, top song's album, album's cover art data extraction through Spotify API\u003c/td\u003e \n    \u003ctd\u003eSpotify API (Spotipy)\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eData Pre-processing\u003c/td\u003e\n    \u003ctd\u003eSorted JSON output into lists\u003c/td\u003e \n    \u003ctd\u003enumpy\u003c/td\u003e\n  \u003c/tr\u003e\n  \u003ctr\u003e\n    \u003ctd\u003eModel Implementation\u003c/td\u003e\n    \u003ctd\u003eExtracted objects within cover art using TensorFlow object detection. Implmented Artistic Style Transfer with TensorFlow Lite \u0026 OpenAI's DALL-E2 model to generate user-specific cover art.\u003c/td\u003e \n    \u003ctd\u003eTensorFlow, DALL·E 2\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\u003cbr\u003e\n\n## MODEL-IMPLEMENTATION\n\n\u003ch3\u003eSpotify API Connection\u003c/h3\u003e\n(Authenticate user's Spotify account) \u003cbr\u003e\n↓\n\u003ch3\u003eSpotipy Queries\u003c/h3\u003e\n(Extract and store as lists: User's top artists → artist's top song → album that the top song belongs to → cover art for each album) \u003cbr\u003e\n↓\n\u003ch3\u003eTest Artistic Style Transfer with TensorFlow Lite\u003c/h3\u003e\n(Pull sample cover arts using Spotipy and demonstrate Artistic Style Transfer implementation and functionality) \u003cbr\u003e\n↓\n\u003ch3\u003eTensorFlow object detection\u003c/h3\u003e\n(Find prevelant objects within selected top cover art using object detection. Store output into lists.) \u003cbr\u003e\n↓\n\u003ch3\u003eOpenAI's DALL·E 2 model\u003c/h3\u003e\n(Use object output list from above step to generate a sentence/prompt for the DALL·E 2 model to process.)\n↓\n\u003ch3\u003eApply Artistic Style Transfer with TensorFlow Lite\u003c/h3\u003e\n(Run the DALL·E 2 output image through Artistic Style Transfer model to generate final image) \u003cbr\u003e\n\n## CONCLUSION \n\nAlthough the end result of the models did not succeed in creating what we may consider 'artistic' or 'stylistic' art, this project set up a scalable framework for future improvement and also demonstrated the power and relative simplicity of recent development in image generation using deep learning.\n\n\u003chr\u003e\n\n\n## CHALLENGES-AND-FUTUREWORK \n\n* Extract genres for each song/album that was fed into the model, and use adjectives associated with the genre or song/album title as part of the prompt for the DALL·E 2 model. This may provide more context for the model to work with and may produce a greater variety as output.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcjunwon%2Fspotify-image-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcjunwon%2Fspotify-image-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcjunwon%2Fspotify-image-generator/lists"}