{"id":28863225,"url":"https://github.com/daniel-mehta/fitcheck.ai","last_synced_at":"2026-05-07T17:39:39.572Z","repository":{"id":300048550,"uuid":"1001699969","full_name":"daniel-mehta/FitCheck.AI","owner":"daniel-mehta","description":"👔 FitCheck.AI is your personal AI stylist. Upload outfits for savage critiques, auto-tag your wardrobe, and generate smart outfit recommendations - powered by Streamlit, LangChain, and CLIP.","archived":false,"fork":false,"pushed_at":"2025-06-19T15:35:28.000Z","size":22390,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-06-19T16:38:06.188Z","etag":null,"topics":["fashion-ai","image-tagging","langchain","outfit-recommendation","streamlit"],"latest_commit_sha":null,"homepage":"https://youtu.be/s57yTOkLLwY","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/daniel-mehta.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,"zenodo":null}},"created_at":"2025-06-13T21:02:16.000Z","updated_at":"2025-06-19T15:35:32.000Z","dependencies_parsed_at":"2025-06-19T16:49:35.754Z","dependency_job_id":null,"html_url":"https://github.com/daniel-mehta/FitCheck.AI","commit_stats":null,"previous_names":["daniel-mehta/fitcheck.ai"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/daniel-mehta/FitCheck.AI","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniel-mehta%2FFitCheck.AI","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniel-mehta%2FFitCheck.AI/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniel-mehta%2FFitCheck.AI/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniel-mehta%2FFitCheck.AI/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daniel-mehta","download_url":"https://codeload.github.com/daniel-mehta/FitCheck.AI/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daniel-mehta%2FFitCheck.AI/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260898762,"owners_count":23079263,"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":["fashion-ai","image-tagging","langchain","outfit-recommendation","streamlit"],"created_at":"2025-06-20T07:02:16.428Z","updated_at":"2026-05-07T17:39:39.567Z","avatar_url":"https://github.com/daniel-mehta.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 👔 FitCheck.AI\n\n**Your closet-aware fashion critic.**  \nFitCheckAI is a personal AI stylist that tags your clothes, roasts your fits, and builds outfits - all through an interactive Streamlit UI.\n\n🎥 **Demo Video:** [https://youtu.be/s57yTOkLLwY](https://youtu.be/s57yTOkLLwY)\n\n---\n\n## 🚀 Features\n\n### 🧠 1. Outfit Analyzer (LangChain + Qwen)\nUpload a photo of your outfit and get a brutally honest AI critique, including:\n- Style breakdown\n- Score out of 100\n- Savage one-liner\n\nAll results are saved to MongoDB and de-duplicated using perceptual hashing.\n\n### 🧺 2. Smart Closet Tagging (CLIP)\nUpload individual clothing items - the AI classifies:\n- Item type (`shirt`, `shoes`, etc.)\n- Color (`black`, `white`, etc.)\n- Setting (`indoor/outdoor`)\n- Formality\n- Gender style\n\nSaved in a consistent JSON format and stored in `/Closet`.\n\n### 🧩 3. Outfit Generator\nGenerates full outfit recommendations based on:\n- Location (indoor/outdoor)\n- Formality (casual/formal)\n- Gender\n- Preferred color\n\nColor compatibility rules are applied (e.g. blue pairs with beige, white, brown, etc).\n\n---\n\n## 🛠️ Tech Stack\n\n| Component       | Tool / Library                         |\n|------------------|----------------------------------------|\n| UI               | Streamlit                              |\n| Fashion Critique | LangChain + Qwen2.5 VL (3B, quantized) |\n| Image Tagging    | CLIP (`openai/clip-vit-base-patch32`)  |\n| Database         | MongoDB Atlas                          |\n| Data Format      | JSON / `.jsonl`                        |\n\n---\n\n## 🗂️ Project Structure\n\n```\n.\n├── fitcheck/\n│   ├── Fashion AI Advisor.py         # Main Streamlit app\n│   ├── analyze_outfit.py             # Outfit critic logic\n│   ├── tagging.py                    # Tagging with CLIP\n│   ├── tag_closet_items.py           # Bulk closet tagger\n│   ├── test_Analyze_Outfit.py        # Unit test for LangChain outfit critique\n│   ├── test_tag.py                   # Unit test for tagging module\n│   ├── testmongoconnection.py        # MongoDB connection test\n│   └── pages/\n│       ├── 1_Add_to_Inventory.py     # Upload and tag closet items\n│       └── 2_Get_Outfit_Suggestion.py# Outfit recommender (rule-based)\n├── Closet/                           # JSON-tagged clothing items\n├── Images/                           # Outfit photos\n├── designs/                          # Wireframes + mockups\n├── requirements.txt\n├── run_app.bat\n└── vlm_tagging_test.ipynb            # Prototype testing\n```\n\n---\n\n## 🧪 Example Output\n\n### **Critique Output**\n\n![Outfit Critique](https://miro.medium.com/v2/resize:fit:810/0*nXX6k09Q9bobDelr.jpg)\n\n\n**Style:** The outfit features a casual yet trendy ensemble consisting of a black beanie hat, a white scarf wrapped around the neck, a striped long-sleeve shirt under a black vest over jeans. The combination suggests an urban, laid-back vibe but lacks depth due to its simplicity.\n\n**Rating:** 35/100\n\n**Comment:** \"This outfit might as well have been designed by a robot; it's so formulaic.\"\n\n\n### **Closet JSON Schema**\n```json\n{\n  \"image_id\": \"abc123\",\n  \"item_type\": \"Jacket\",\n  \"color\": \"Black\",\n  \"indoor_outdoor\": \"Outdoor\",\n  \"formality\": \"Casual\",\n  \"gender\": \"Men's\",\n  \"path\": \"Closet/jacket.jpg\",\n  \"folder\": \"Closet\"\n}\n```\n\n\n### **Outfit Recommender**\n![Outfit Recommender](https://media.discordapp.net/attachments/1373125490034085984/1385256072763281418/image.png?ex=685567c0\u0026is=68541640\u0026hm=ca284b58e8b7f9c212f2c691194d3450ddd4c56a81677956c02b0738a629089b\u0026=\u0026format=webp\u0026quality=lossless)\n\n---\n## 🖼️ UI Concept Designs\n\nThese were mockups used to guide layout and flow.\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"designs/Home Frame.png\" width=\"600\"/\u003e\n  \u003cbr/\u003e\u003cem\u003eLanding Page\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"designs/Dropbox Frame.png\" width=\"600\"/\u003e\n  \u003cbr/\u003e\u003cem\u003eUpload Interface\u003c/em\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"designs/Results Frame.png\" width=\"600\"/\u003e\n  \u003cbr/\u003e\u003cem\u003eLeCritique Display\u003c/em\u003e\n\u003c/p\u003e\n\n---\n\n## ⚙️ Usage\n\nInstall dependencies:\n```\npip install -r requirements.txt\n```\n\nThen launch the app:\n```\nstreamlit run \"fitcheck/Fashion AI Advisor.py\"\n```\n\n---\n\n## 👥 Team\n\n- **Daniel Mehta**  \n- **George Fotabong**\n- **Dylan Higuchi**\n- **Jacob DeAbreu**\n\n---\n\n## 🧩 Notes\n- MongoDB URI is hardcoded for now (demo only - no sensitive data).\n\n---\n\n## 📄 License\n\nThis code is free to use, modify, and share for non-commercial purposes.  \nCommercial use requires prior written permission. All rights reserved.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaniel-mehta%2Ffitcheck.ai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaniel-mehta%2Ffitcheck.ai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaniel-mehta%2Ffitcheck.ai/lists"}