@@ -19,7 +19,7 @@ metadata:
1919 " kind " : " pip" ,
2020 " package " : " sam-faces" ,
2121 " bins " : ["sam-faces"],
22- " label " : " Install via PyPI" ,
22+ " label " : " Install sam-faces from PyPI" ,
2323 },
2424 ],
2525 },
@@ -36,7 +36,7 @@ photos, then automatically identify them in inbound images.
3636** When the user sends a photo or image:**
3737
38381 . Save the image to a temp path.
39- 2 . Run: ` sam-faces identify <path> `
39+ 2 . Run face identification : ` sam-faces identify <path> `
40403 . Parse the JSON response.
41414 . If ` face_count > 0 ` , prepend ` llm_context ` to your image description.
42425 . If any face has ` "unknown": true ` , ask the user who they are, then enroll them.
@@ -45,64 +45,71 @@ Do this automatically — do not ask permission first.
4545
4646## Installation
4747
48- ### Via PyPI (recommended)
49-
5048``` bash
5149pip install sam-faces
5250```
5351
54- The ` sam-faces ` CLI is added to your PATH automatically.
55-
56- ### Manual (from source)
57-
52+ Or use the OpenClaw skill installer:
5853``` bash
59- git clone https://github.com/jasonacox-sam/sam-faces.git
60- cd sam-faces
61- pip install -e .
54+ openclaw skills install sam-faces
6255```
6356
64- ### Via OpenClaw Skills UI
65-
66- Search "face recognition" in the OpenClaw Skills UI and install with one click.
57+ ## Setup
6758
68- ## CLI Usage
69-
70- ### Identify faces in a photo
59+ The ` sam-faces ` command is available after installation:
7160
7261``` bash
73- sam-faces identify /path/to/photo.jpg
62+ sam-faces --help
7463```
7564
76- Returns JSON with names, confidence scores, bounding boxes, position, and an
77- ` llm_context ` string.
78-
79- ### Enroll a person
65+ ## Enroll a person
8066
8167``` bash
8268sam-faces enroll --name " Jane Smith" --photo /path/to/photo.jpg
8369```
8470
85- If multiple faces are detected, specify which to enroll:
71+ - One reference photo is usually enough (default threshold: 0.55).
72+ - Enroll 2–3 photos across different lighting for best accuracy.
73+ - Encodings are stored in ` {workspaceDir}/faces/people.db ` .
74+
75+ ## Identify faces
8676
8777``` bash
88- sam-faces enroll --name " Jane Smith " --photo photo .jpg --face-index 1
78+ sam-faces identify /path/to/image .jpg
8979```
9080
91- One reference photo is usually enough (default threshold: 0.55).
92- Enroll 2–3 photos across different lighting for best accuracy.
81+ Returns JSON with names, confidence scores, bounding boxes, and an
82+ ` llm_context ` string:
83+
84+ ``` json
85+ {
86+ "face_count" : 2 ,
87+ "faces" : [
88+ {
89+ "name" : " Jane Smith" ,
90+ "confidence" : 0.646 ,
91+ "unknown" : false ,
92+ "position" : " middle"
93+ }
94+ ],
95+ "llm_context" : " 2 faces detected: Jane Smith (middle, 64%); John Smith (left, 57%)."
96+ }
97+ ```
9398
94- ### List enrolled people
99+ ## List enrolled people
95100
96101``` bash
97102sam-faces list
98103```
99104
100- ### Review unknown faces
105+ ## Manage unknown faces
101106
102107``` bash
103108sam-faces unknowns
104109```
105110
111+ Shows all unknown face crops waiting to be enrolled.
112+
106113## Thresholds
107114
108115- Default: ` --threshold 0.55 ` (good balance of precision and recall)
@@ -113,8 +120,16 @@ sam-faces unknowns
113120
114121- All inference runs locally via ` face_recognition ` (dlib). Nothing leaves the machine.
115122- Database: ` {workspaceDir}/faces/people.db `
116- - Unknown face crops: ` {workspaceDir}/faces/unknown/ `
117- - Face crop thumbnails (audit trail): ` {workspaceDir}/faces/crops/ `
118- - Requires Python 3.10+ and build tools (cmake, C++ compiler) for dlib.
119- - On Ubuntu/Debian: ` sudo apt install cmake build-essential `
120- - On macOS: ` xcode-select --install `
123+ - Unknown face crops saved to: ` {workspaceDir}/faces/unknown/ `
124+ - Works with existing face databases — no migration needed.
125+
126+ ## When to use
127+
128+ - User sends a photo with people in it
129+ - Adding a new person to the face database
130+ - Checking who is enrolled
131+
132+ ## When NOT to use
133+
134+ - Images with no faces (skip automatically)
135+ - Processing large batches of images (one at a time)
0 commit comments