Spaces:
Runtime error
A newer version of the Gradio SDK is available: 6.20.0
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
- 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
Create a new Space on Hugging Face
- License: MIT
- Select "Docker" OR "Gradio" as the Space SDK
Upload these files to your Space repository: - pp.py
equirements.txt
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
- Image Upload: Select a hair photo from your device
- Processing: The image is encoded and sent to the OpenRouter API with Nvidia Nemotron vision model
- Analysis: The AI analyzes the person's features and selects matching hairstyles
- 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":
- Make sure the image contains a person's face
- Try a different image with better lighting
- Check your API key is valid
- 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