Install
openclaw skills install @qiushosens/appearance-scoreMulti-face appearance / attractiveness scoring: POST multipart image to Synerunify predict API. Apply when the user asks in English (e.g. face attractiveness score, beauty rating, appearance score for a photo) or Chinese (颜值打分、外观评分、给照片人脸打分).
openclaw skills install @qiushosens/appearance-scorePOSThttps://synerunify.com/api/process/appearance/predictmultipart/form-dataimage (required; image file; use a real image MIME such as image/jpeg)Top level:
code: 200 means successmessage: human-readable status textdata: present on success; may be incomplete on failureInside data:
count: number of scored facessize: { "width", "height" } of the original image in pixelsfaces: array of items with:
region: { x1, y1, x2, y2, width, height } in original-image pixelsscore: float; you may round for displayOn errors or no faces, read message; data.faces may be empty.
curl
curl -sS -X POST "https://synerunify.com/api/process/appearance/predict" \
-F "image=@/path/to/photo.jpg"
Python
import requests
url = "https://synerunify.com/api/process/appearance/predict"
with open("photo.jpg", "rb") as f:
r = requests.post(url, files={"image": ("photo.jpg", f, "image/jpeg")}, timeout=120)
r.raise_for_status()
payload = r.json()
if payload.get("code") != 200:
raise RuntimeError(payload.get("message", "API error"))
faces = payload["data"]["faces"]
scores = [round(f["score"]) for f in sorted(faces, key=lambda x: x["region"]["x1"])]
image; do not append query params; do not switch to JSON/Base64 unless the API docs explicitly say so.region.x1 (left-to-right) before reporting scores.message and the HTTP status first.