Skip to main content

Specialized agent for facial and hair analysis

Project description

Facial Vision Agent

PyPI PyPI - Python Version CI License

Facial Vision Agent is an AI-powered library for analyzing facial morphology and hair characteristics from images using vision models and vision-capable LLMs.

This package focuses on visual feature extraction — it identifies facial proportions and prominent features and analyzes hair type, length, density and condition. It is designed to be used as a Python package and integrated into larger systems as an agent that processes image analysis tasks.

Key features

  • Facial feature detection: face shape, proportions, forehead, eyebrows, eyes, nose, mouth, chin and jawline.
  • Hair analysis: type (straight/wavy/curly/coily), length, approximate color, density and condition.
  • Confidence metrics for each analysis stage.
  • Lightweight API designed for automated testing and CI-driven publishing.

Installation

Developer / editable install:

python -m pip install -e .[dev]

Install from PyPI (when published):

pip install facial-vision-agent

Quick start

from facial_vision_agent import FacialVisionAgent
from agent_core_framework import AgentTask

agent = FacialVisionAgent(openrouter_api_key="YOUR_API_KEY")

# Full image analysis
task = AgentTask(type="analyze_image", payload={"image_path": "photo.jpg"})
response = agent.process(task)
print(response.data)

Payload formats

The agent accepts two ways to provide the image in the AgentTask payload:

  • image_path: filesystem path to an image file (e.g. "photo.jpg").
  • base64_image: a Base64-encoded string of the image (e.g. when the image is uploaded from a frontend).

Priority and behavior:

  • If base64_image is present in the payload, the agent will use that string directly.
  • If only image_path is provided, the agent will read the file and convert it to Base64 internally.
  • If neither field is present, the agent will return an error (the current tests expect the message: "Image path is required").

Examples:

# Using filesystem path (legacy)
task = AgentTask(type="analyze_image", payload={"image_path": "photo.jpg"})

# Using Base64 directly
task = AgentTask(type="analyze_image", payload={"base64_image": "<BASE64_STRING_HERE>"})

Note on Data URIs:

  • We recommend sending only the Base64 portion (without the data:image/…;base64, prefix). If you send a full data URI, strip the prefix before calling the agent.

Testing

Run the test suite locally:

python -m pytest

Publishing to TestPyPI (manual)

  1. Bump the version in pyproject.toml (e.g. to 0.2.0).
  2. Build distributions:
python -m build
  1. Upload to TestPyPI (create a TestPyPI API token first):
python -m twine upload --repository-url https://test.pypi.org/legacy/ dist/*

Notes on CI

A GitHub Actions workflow (.github/workflows/publish-testpypi.yml) is included in this repository. To enable automated publishing to TestPyPI, add your TestPyPI token as a repository secret named TEST_PYPI_API_TOKEN and run the workflow manually or by pushing a test tag.

Contributing

Contributions are welcome. Please open an issue or a pull request. Follow the existing code style, add tests for new behavior, and keep changes focused and small.

License

MIT — see the LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

facial_vision_agent-0.3.0.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

facial_vision_agent-0.3.0-py2.py3-none-any.whl (10.5 kB view details)

Uploaded Python 2Python 3

File details

Details for the file facial_vision_agent-0.3.0.tar.gz.

File metadata

  • Download URL: facial_vision_agent-0.3.0.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for facial_vision_agent-0.3.0.tar.gz
Algorithm Hash digest
SHA256 8d84b19ee753c074eaced429ea09b36f510701124cbfb01180197d28b42ebd91
MD5 91fda447aea3acdd1a59c724731c852c
BLAKE2b-256 5dc6bc441cab42fafc4d8c21f25a1e29f57d636883ad6167604bfd2615834598

See more details on using hashes here.

File details

Details for the file facial_vision_agent-0.3.0-py2.py3-none-any.whl.

File metadata

File hashes

Hashes for facial_vision_agent-0.3.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 7c36af2e67fae4694496bcc7e1bfd30a3789ea0e7aaeee3be340e12a40bdeb98
MD5 cfbe6eb14c341675df14732d9d5661bc
BLAKE2b-256 057655614ad3966580394016b112cdae87d064cf0b67edc8ceb3684443b5586b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page