{"id":20847361,"url":"https://github.com/johnsutor/emoji-painter","last_synced_at":"2026-02-18T07:31:01.184Z","repository":{"id":241208297,"uuid":"801288746","full_name":"johnsutor/emoji-painter","owner":"johnsutor","description":"Paint with emojis. ","archived":false,"fork":false,"pushed_at":"2024-06-01T14:45:51.000Z","size":11793,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-30T21:45:36.652Z","etag":null,"topics":["accelerate","deep-learning","deep-neural-networks","image-generation","pytorch"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/johnsutor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","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":"2024-05-16T00:16:06.000Z","updated_at":"2025-05-10T16:39:19.000Z","dependencies_parsed_at":"2024-05-23T02:37:47.880Z","dependency_job_id":"31f131c0-67df-4071-ab70-2d1b30e4b7c6","html_url":"https://github.com/johnsutor/emoji-painter","commit_stats":null,"previous_names":["johnsutor/emoji-painter"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/johnsutor/emoji-painter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnsutor%2Femoji-painter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnsutor%2Femoji-painter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnsutor%2Femoji-painter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnsutor%2Femoji-painter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/johnsutor","download_url":"https://codeload.github.com/johnsutor/emoji-painter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/johnsutor%2Femoji-painter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29572383,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T06:19:27.422Z","status":"ssl_error","status_checked_at":"2026-02-18T06:18:44.348Z","response_time":162,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["accelerate","deep-learning","deep-neural-networks","image-generation","pytorch"],"created_at":"2024-11-18T02:19:44.777Z","updated_at":"2026-02-18T07:31:01.167Z","avatar_url":"https://github.com/johnsutor.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🎨 Emoji Painter\n[![Replicate Demo](https://img.shields.io/badge/Replicate%20Demo-8A2BE2)](https://replicate.com/johnsutor/emoji-painter)\n![License](https://img.shields.io/github/license/johnsutor/emoji-painter\n)\n\n![Side by Side](./images/side-by-side.jpg)\nThis repo includes the code for teaching a model to paint using emojis. You can provide \nimages or emojis to paint with, and it will attempt to recreate images using emojis.\n\nMuch of this code is adopted from the [Paint Transformer](https://github.com/Huage001/PaintTransformer) paper. In this code base, I treat emojis like \"brushes\", and use a Gumbel Softmax-based lookup to choose an emoji to paste to the canvas during training (similar to how attention uses a softmax to select keys during training).\n\n## 💻 Demo \nPlease visit [here](https://replicate.com/johnsutor/emoji-painter) for the demo application. Try adjusting the scale of the image for more detail (though, be warned, you very likely will run out of memory based on the GPU you are using).\n\n## ⚠️ Caveats \nOutputs don't always look very similar to the target image. Also, the emojis are often placed at 45 degree angles. I'll work on some fine-tuning in the near future to make sure there's a fair amout of variety (perhaps with sampling) in the angle the emojis are placed at. \n\n## 🛣️ Roadmap\n- [x] Add sampling to the angle to promote variability in rotation \n- [x] Try a neural loss for pixel-wise loss \n- [ ] Train to generate using other versions of shapes \n- [ ] Document training procedure\n- [ ] Try using a spectral loss","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnsutor%2Femoji-painter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjohnsutor%2Femoji-painter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjohnsutor%2Femoji-painter/lists"}