@smcgann/node-red-face-detection-plus v0.0.3
@smcgann/node-red-face-detection-plus
A Node-RED node that detects faces using AI.
You can use the output with š @smcgann/node-red-vectorize-plus as part of a face recognition flow. You can also use it to crop the face images from the original image and save them as files.
This node is derived from š @GOOD-I-DEER/node-red-contrib-face-detection
Key Changes
ā Added YOLOv8s-face model.
ā Added postinstall script to download models.
ā Updated dependencies.
ā Image Buffer output now includes bounding boxes (useful for annotations).
ā Moved data and originImg into separate msg
properties.
ā Returns number of detected faces in msg.payload
.
ā Supports runtime configuration through msg.faceOptions
for dynamic settings.
ā Includes metadata in msg.faceConfig
(threshold and model).
ā More robust error handling.
ā Better Performance.
ā Easier integration into Node-RED flows.
Installation
Either use the Edit Menu - Manage Palette option to install, or run the following command in your Node-RED user directory - typically ~/.node-red
cd ~/.node-red/
npm install @smcgann/node-red-face-detection-plus
Restart your Node-RED instance
Input Properties
š¼ļø msg.payload ā Image Buffer
- Accepts PNG, JPG, GIF, WEBP, TIFF, AVIF (binary image data).
āļø msg.faceOptions ā Object
(Optional)
- Allows overriding node config settings dynamically.
- Example:
{
"threshold": 0.4,
"model": "yolov8n-face"
}
Node Properties
š· Name
- The name displayed in the Node-RED editor.
š Model
Select the detection model:
- YOLOv8n (faster, good for larger faces)
- YOLOv8s (detects smaller faces, but slower)
š¤ Return Value
Defines the type of data returned:
- Detected Object ā
data.boxes
- Image Buffer ā
data.faces
(array of cropped face images) +data.boxes
- Image File ā Saves detected faces as separate files.
š Absolute Path Dir
(Visible if Image File is selected)
- Defines where the cropped face images are saved.
šÆ Confidence Threshold
Defines the minimum score required for a detected face to be considered valid (range: 0.1 - 1):
Threshold Effect Low (0.1 - 0.4) More faces detected, but higher risk of false positives. High (0.7 - 1.0) Fewer faces detected, reducing false positives but possibly missing faces.
Output
Data is output in the output format selected in the 'Return Value' property.
š msg.payload ā Number
- Number of faces detected.
š¼ļø msg.originImg ā Buffer
- Input Image.
āļø msg.faceConfig ā Object
Returns values used for detection.
{
"threshold": 0.4,
"model": "yolov8n-face"
}
āļø Authors
S.McGann ā Modified Version.
GOOD-I-DEER (Samsung Software Academy for Youth)
š Copyright and license
S.McGann ā Modified Version
Samsung Automation Studio Team under the GNU General Public License v3.0 license.
References
š Node-RED Creating Nodes
š Samsung Automation Studio Github Repository
š Ultralytics YOLOv8
š YOLOv8 ONNX in JavaScript
š YOLOv8 ONNX in Node.js
š YOLOv8 Face Model