{"id":21518092,"url":"https://github.com/seanvelasco/memegraph","last_synced_at":"2026-06-23T03:31:35.734Z","repository":{"id":234977828,"uuid":"789808805","full_name":"seanvelasco/memegraph","owner":"seanvelasco","description":"Meme search and discovery engine using OpenAI CLIP and Salesforce BLIP","archived":false,"fork":false,"pushed_at":"2024-11-06T07:57:21.000Z","size":2138,"stargazers_count":9,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-22T03:49:19.249Z","etag":null,"topics":["catlip","clip","corenet","memes","mlx","openai","search-algorithm","siglip","transformer"],"latest_commit_sha":null,"homepage":"https://memegraph.sean.app","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/seanvelasco.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":"2024-04-21T16:01:22.000Z","updated_at":"2025-04-11T14:29:39.000Z","dependencies_parsed_at":"2024-05-17T21:24:41.377Z","dependency_job_id":"03a52e24-65eb-46e0-a6bc-e5d863c1bb5d","html_url":"https://github.com/seanvelasco/memegraph","commit_stats":null,"previous_names":["seanvelasco/memegraph"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/seanvelasco/memegraph","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanvelasco%2Fmemegraph","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanvelasco%2Fmemegraph/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanvelasco%2Fmemegraph/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanvelasco%2Fmemegraph/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seanvelasco","download_url":"https://codeload.github.com/seanvelasco/memegraph/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanvelasco%2Fmemegraph/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34674702,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-23T02:00:07.161Z","response_time":65,"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":["catlip","clip","corenet","memes","mlx","openai","search-algorithm","siglip","transformer"],"created_at":"2024-11-24T00:50:06.477Z","updated_at":"2026-06-23T03:31:35.719Z","avatar_url":"https://github.com/seanvelasco.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg src=\"./static/favicon.svg\" width=\"150\"\u003e\u003c/img\u003e\n\n# Memegraph\n\nMemegraph is a search engine and recommendation system for memes using OpenAI CLIP and Salesforce BLIP.\n\nSearch memes in natural langauge, explore memes with the same template, and discover memes that are visually similar.\n\n### Don't know the name of a meme? Just describe the meme!\n\n![Guy Thinking In Bed meme](https://img.sean.app/memegraph_thinking_in_bed_meme.png)\n\n### Discover memes about your favorite topics\n\n![The Office memes](https://img.sean.app/memegraph_the_office.png)\n\n### Looking for THAT obscure meme? Look it up!\n\n![Memes about Spongebob and Myers-Briggs Type Indicator (MBTI)](https://img.sean.app/memegraph_as_mbti.png)\n\n### Discover similar memes\n\n![Boardroom meme](https://img.sean.app/memegraph_boardroom.png)\n\n### New way to browse memes\n\n![Memegraph home](https://img.sean.app/memegraph_home.png)\n\n## Development\n\n\u003e [!IMPORTANT]  \n\u003e This app uses MLX to run CLIP. To generate embeddings, a device with an Apple Silicon processor is needed. For non-Apple Silicon devices, the app can still run, provided there are already images and embeddings in the database, but it will not be able to search for memes by image similarity.\n\nInstall dependencies\n\n```bash\npip install -r requirements.txt\n```\n\nModify scripts in `/scripts` to point to your images directory, blob storage, and Postgres database.\n\nGenerate image embeddings and generate image captions\n\n```bash\npython main.py\n```\n\nRun the app in development\n\n```bash\npython app.py\n```\n\nRun the app in production\n\n```bash\nwaitress-serve app:app\n```\n\n## Data\n\nAll memes were retrieved from the top 1000 posts of all time on [Reddit's meme subreddits](https://www.reddit.com/t/memes) using [PRAW](https://praw.readthedocs.io/en/stable/) on the Reddit's API free tier.\n\n### Notes from the author\n\nPython is not my primary language and I'm new to machine learning, so I greatly appreciate and welcome constructive feedback!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseanvelasco%2Fmemegraph","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseanvelasco%2Fmemegraph","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseanvelasco%2Fmemegraph/lists"}