gyf-gpu / README.md
GetYourFit's picture
Upload folder using huggingface_hub
bdd0a45 verified
|
Raw
History Blame Contribute Delete
1.82 kB
---
title: GYF GPU Lane
emoji: πŸ‘—
colorFrom: indigo
colorTo: pink
sdk: gradio
app_file: app.py
pinned: false
---
# GYF GPU serving lane (HF ZeroGPU)
Free-tier GPU lane for GetYourFit (engineering-doctrine **D7**). Serves the fashion
encoder's GPU embedding as a small JSON API the local GYF stack calls through
`perception.remote.RemoteEncoder`. Only the forward pass runs here β€” retrieval
scoring, ranking, and the M2 bake-off stay on the caller's CPU.
## API
| api_name | input | output |
| --- | --- | --- |
| `/embed_images` | `model_id: str`, `images_b64: list[str]` (base64 PNG) | `{"embeddings": [[...]], "dim": int}` |
| `/embed_texts` | `model_id: str`, `texts: list[str]` | `{"embeddings": [[...]], "dim": int}` |
| `/estimate_skin_tone` | `image_b64: str` (base64 PNG) | `{"skin_tone": "mstN", "undertone": str, "field_confidence": {...}, "model_version": str}` |
| `/estimate_body` | `image_b64: str` (base64 PNG) | `{"measurements": {...}, "region_quality": {...}, "model_confidence": float, "model_version": str}` |
Embeddings are L2-normalized; only Apache-2.0 `encoder` models in `ALLOWED_MODELS`
are served (keep in sync with `models.registry.json`). `/estimate_body` runs BiRefNet
(MIT silhouette) + RTMW (Apache-2.0 whole-body keypoints) and returns
height-normalized torso widths anchored to the shoulder/hip landmarks β€” the
`bodyshape` measurement geometry is vendored from `ml/usermodel/body/measurements.py`
(keep in sync). Both photo lanes abstain (`unknown` / `model_confidence: 0`) when no
plausible subject is found.
## Deploy
See [`docs/deploy/gpu-lane.md`](../../docs/deploy/gpu-lane.md) in the main repo for the
full picture β€” the free Colab path, the local path, and deploying this folder as a remote
serving lane (HF ZeroGPU / RunPod / Modal) behind `GYF_ENCODER_REMOTE_URL`.