{"id":13588798,"url":"https://github.com/blenderskool/color-pop","last_synced_at":"2025-03-22T15:30:56.530Z","repository":{"id":47291300,"uuid":"234941280","full_name":"blenderskool/color-pop","owner":"blenderskool","description":"🌈 Automatic Color Pop effect on any image inspired by Google Photos","archived":false,"fork":false,"pushed_at":"2023-03-03T12:11:07.000Z","size":915,"stargazers_count":26,"open_issues_count":8,"forks_count":3,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-18T13:15:38.511Z","etag":null,"topics":["bodypix","color-pop","firebase","google-photos","mask","segmentation","tensorflowjs"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/blenderskool.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":"2020-01-19T17:56:14.000Z","updated_at":"2023-07-30T21:24:23.000Z","dependencies_parsed_at":"2024-10-28T13:49:59.329Z","dependency_job_id":null,"html_url":"https://github.com/blenderskool/color-pop","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/blenderskool%2Fcolor-pop","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blenderskool%2Fcolor-pop/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blenderskool%2Fcolor-pop/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/blenderskool%2Fcolor-pop/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/blenderskool","download_url":"https://codeload.github.com/blenderskool/color-pop/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244978493,"owners_count":20541862,"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":["bodypix","color-pop","firebase","google-photos","mask","segmentation","tensorflowjs"],"created_at":"2024-08-01T15:06:56.360Z","updated_at":"2025-03-22T15:30:56.118Z","avatar_url":"https://github.com/blenderskool.png","language":"TypeScript","funding_links":[],"categories":["TypeScript"],"sub_categories":[],"readme":"# 🌈 Color Pop\n\nThe Color Pop(aka Color splash) effect makes the subject(usually a person) stand out from the rest of the image.\nThe subject remains in color, but the background is made black and white. This gives a pleasant look in most cases.\n\nThis app applies color pop effect on human subjects and supports images with many people.  \n[Here's an article](https://medium.com/@AkashHamirwasia/color-pop-effect-using-bodypix-and-tensorflow-js-a584ddc48a02)\nthat I wrote explaining the working of this project at a basic level.\n\n## Examples\n### Image with one person\n![Imgur](https://i.imgur.com/e9f0avV.jpg)\n\u003cp align=\"center\"\u003e\n  Original left, Color pop right.\n\u003c/p\u003e\n\n### Image with many people\n![Imgur](https://i.imgur.com/BwbQ57L.jpg)\n\u003cp align=\"center\"\u003e\n  Original left, Color pop right.\n\u003c/p\u003e\n\n## Behind the scenes\nIt uses [Tensorflow.js](https://www.tensorflow.org/js) and the\n[BodyPix](https://github.com/tensorflow/tfjs-models/tree/master/body-pix) model to create segmentation masks\naround people in images.\n\nIt can be accessed using the `colorpop` cloud function once the project is deployed on [Firebase](https://firebase.google.com).\n\n## Deployment\nInstructions to [deploy this project on Firebase](https://github.com/blenderskool/color-pop/tree/master/functions)\n\n## Options for `colorpop` cloud function\nThe `colorpop` is an HTTP cloud function which can be accessed by making a `POST` request with the binary image data\nas the body of the request, along with following optional query params\n\n| Param | Expected data                    | Description |\n|:-----:|:--------------------------------:| ----------- |\n| model | `mobilenet`(default) or `resnet` | The model to use for segmentation.\u003cbr\u003eMobilenet is faster but less accurate.\u003cbr\u003eResnet is slower but more accurate |\n\n#### Example cURL command\n```bash\ncurl --location --request POST 'http://{CLOUD_FUNCTION_HOST_URL}/colorpop?model=mobilenet' \\\n--header 'Content-Type: image/jpeg' \\\n--data-binary 'test.jpg' \\\n--output 'output.jpeg'\n```\n\n## History\nAchieving this effect manually is quite simple. It involves creating a mask around the subject and dropping the color\nof the background ([Example using Photoshop](https://www.youtube.com/watch?v=OuObv9Agdow)).\nWhile it is simple, doing this manually has the following issues:\n- Tedious and time-consuming.\n- Poor results for complex subjects.\n- Not all applications(especially mobile apps) support masking.\n\nGoogle announced the color pop effect for its Photos app in [Google IO 2018](https://www.youtube.com/watch?v=xjPEnpLwMUU\u0026feature=youtu.be\u0026t=2m53s)\nand although it does an incredible job of detecting the subject and applying the effect, it applies it automatically\nonly to some images. Certain conditions have to be met before the color pop effect even shows up in the editing options\nof the Photos app.\n\nThis inspired me to build this tool which makes it as easy as Google Photos to apply the color pop effect\non photos with people in it, without needing any manual work.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblenderskool%2Fcolor-pop","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fblenderskool%2Fcolor-pop","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fblenderskool%2Fcolor-pop/lists"}