--- title: HairStyle Recomendation emoji: 🏃 colorFrom: pink colorTo: indigo sdk: gradio sdk_version: 6.5.1 app_file: app.py pinned: false --- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference # HairStyle Recommendation A men's hairstyle recommendation system powered by OpenRouter API and Nvidia Nemotron vision model. Available as both a CLI tool and a Gradio web interface. ## Features - **Vision Analysis**: Analyzes uploaded photos to recommend suitable hairstyles - **Multiple Interfaces**: CLI tool and modern Gradio web app - **10 Hairstyle Options**: Buzz Cut, Crew Cut, Fade, Undercut, Slick Back, Side Part, Quiff, Pompadour, French Crop, Textured Fringe - **Smart Extraction**: Intelligently extracts recommendations from API responses ## Setup 1. Install dependencies: `ash pip install -r requirements.txt ` ## CLI Usage (HairStyle.py) Run the script with an image path: `ash python HairStyle.py --image "path/to/photo.jpg" --n 3 ` **Arguments:** - --image or -i: Path to image file - --n or -n: Number of recommendations (default: 1) **Output:** JSON array of recommended hairstyle names `json ["Fade", "Undercut", "Crew Cut"] ` ## Web App Usage (app.py) Run the Gradio application: `ash python app.py ` The Gradio interface will open at **http://localhost:7860** and allows you to: - Upload images in multiple formats (.jpg, .jpeg, .png, .bmp) - Adjust number of recommendations with an interactive slider (1-10) - Get instant AI-powered hairstyle suggestions - View results in an easy-to-read format ## Deploy to Hugging Face Spaces 1. Create a new Space on [Hugging Face](https://huggingface.co/spaces) - License: MIT - Select "Docker" OR "Gradio" as the Space SDK 2. Upload these files to your Space repository: - pp.py - equirements.txt 3. The Space will automatically install dependencies and run the app **Note:** The API key is embedded in the code. For production, use Hugging Face Secrets for secure storage. ## Configuration - **API Provider**: OpenRouter (https://openrouter.ai) - **Model**: nvidia/nemotron-nano-12b-v2-vl:free - **API Key**: Already configured in the code (sk-or-v1-...) ## How It Works 1. **Image Upload**: Select a hair photo from your device 2. **Processing**: The image is encoded and sent to the OpenRouter API with Nvidia Nemotron vision model 3. **Analysis**: The AI analyzes the person's features and selects matching hairstyles 4. **Results**: Returns 1-10 hairstyle recommendations based on your selection ## Supported Image Formats - PNG (.png) - JPEG (.jpg, .jpeg) - BMP (.bmp) ## API Response Handling The app uses advanced extraction logic to: - Parse JSON arrays from API responses - Handle reasoning-based outputs - Extract hairstyle names from various text formats - Return accurate recommendations even with complex responses ## Notes - The application uses a free OpenRouter model - Responses are optimized for hairstyle recommendations - Graceful error handling with informative messages - Debug logs available in terminal output ## Troubleshooting If you see "No valid recommendations found": 1. Make sure the image contains a person's face 2. Try a different image with better lighting 3. Check your API key is valid 4. Verify network connectivity to openrouter.ai ## License MIT ## Files - pp.py - Gradio web interface - HairStyle.py - CLI tool - equirements.txt - Python dependencies - est_api.py - API testing utility - README.md - This documentation