Package Exports
- @smcgann/node-red-face-detection-plus
- @smcgann/node-red-face-detection-plus/face-detection.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@smcgann/node-red-face-detection-plus) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
@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.
Detected Object
Image Buffer

Image File

⚙️ 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