Node-red-contrib-face-recognition doesnt work!

Hi!
i success to install palette but when i want to get it my picture to train model node-red crashes!!

Welcome to the forum @Erfan

Please copy/paste text rather than screenshot. The bit we need to see is off the top. Please start node red and copy paste everything from the welcome message to the end of the error. Also tell us what hardware and OS you are running on.

Edit, also see this issue against the node.

Hi, i test it both on windows and Linux(ubunto)
this message is from cmd windows:

8 Mar 20:13:56 - [error] undefined
node:internal/modules/cjs/loader:1473
  return process.dlopen(module, path.toNamespacedPath(filename));
                 ^

Error: The module '\\?\C:\Users\Erfan\node_modules\canvas\build\Release\canvas.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 64. This version of Node.js requires
NODE_MODULE_VERSION 115. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
    at Module._extensions..node (node:internal/modules/cjs/loader:1473:18)
    at Module.load (node:internal/modules/cjs/loader:1207:32)
    at Module._load (node:internal/modules/cjs/loader:1023:12)
    at Module.require (node:internal/modules/cjs/loader:1235:19)
    at require (node:internal/modules/helpers:176:18)
    at Object.<anonymous> (C:\Users\Erfan\node_modules\canvas\lib\bindings.js:3:18)
    at Module._compile (node:internal/modules/cjs/loader:1376:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1435:10)
    at Module.load (node:internal/modules/cjs/loader:1207:32)
    at Module._load (node:internal/modules/cjs/loader:1023:12) {
  code: 'ERR_DLOPEN_FAILED'
}

Node.js v20.11.1

8 Mar 20:14:22 - [red] Uncaught Exception:
8 Mar 20:14:22 - [error] UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "Child - child_process exited with code 1 and signal null".

@Colin
Actually this my be the first time I prefer the picture over the code :slight_smile:
I see that the return prompt is for

~Desktop$ 

When I would expect it to be

~/.node-red $

or

~/Desktop/.node-red $

Good day @Erfan
I am the creator of node-red-contrib-facial-recognition
I believe you are trying to install this in the wrong location

I'm not a windows guy. have not used it for over a Decade. So all my advice will be based from the linux command line.

You need to be in your node-red directory before issuing the command

npm install node-red-contrib-facial-recognition

Please make sure of this first. If you want to know how I deduced this, i've ran node stuff from the wrong version directory before and got similar messages. This all leads me to believe you are in the wrong dir.

Also ... is there a reason you are installing via the command line instead of using node-red's pallet/install manager?

NOTE!!!!
I just realized this is not my package.
I created node-red-contrib-facial-recognition
This is for node-red-contrib-face-recognition

Besides the wrong location, there is also the mismatch of some native code.

So it got initially installed with an older version of nodejs.

Try a fresh install in the correct location.

u see ~Desktop$ it is because of when i start to add images into face-recognition it crashes! and send me off and node-red get closed :))

what do you mean? 'correct location??'
i didnt understand i should install older versioin? or newer

Please show what you see when you start node red in a Linux system. The full startup output please from the Welcome to node red message.

Hi

  • because i am winows i use ubuntu in vmware and thats why i use node-red on port 1882 *
erfan@erfan-virtual-machine:~/Desktop$ node-red -p 1882
14 Mar 12:58:58 - [info] 

Welcome to Node-RED
===================

14 Mar 12:58:58 - [info] Node-RED version: v3.1.6
14 Mar 12:58:58 - [info] Node.js  version: v20.11.1
14 Mar 12:58:58 - [info] Linux 6.5.0-21-generic x64 LE
14 Mar 12:58:59 - [info] Loading palette nodes
cpu backend was already registered. Reusing existing backend factory.
Platform node has already been set. Overwriting the platform with [object Object].
14 Mar 12:59:01 - [info] Settings file  : /home/erfan/.node-red/settings.js
14 Mar 12:59:01 - [info] Context store  : 'default' [module=memory]
14 Mar 12:59:01 - [info] User directory : /home/erfan/.node-red
14 Mar 12:59:01 - [warn] Projects disabled : editorTheme.projects.enabled=false
14 Mar 12:59:01 - [info] Flows file     : /home/erfan/.node-red/flows.json
14 Mar 12:59:01 - [warn] 

---------------------------------------------------------------------
Your flow credentials file is encrypted using a system-generated key.

If the system-generated key is lost for any reason, your credentials
file will not be recoverable, you will have to delete it and re-enter
your credentials.

You should set your own key using the 'credentialSecret' option in
your settings file. Node-RED will then re-encrypt your credentials
file using your chosen key the next time you deploy a change.
---------------------------------------------------------------------

14 Mar 12:59:01 - [warn] Encrypted credentials not found
14 Mar 12:59:01 - [info] Server now running at http://127.0.0.1:1882/
14 Mar 12:59:01 - [info] Starting flows
14 Mar 12:59:01 - [info] Started flows
14 Mar 13:00:12 - [error] undefined
14 Mar 13:02:15 - [error] undefined
node:internal/modules/cjs/loader:1473
  return process.dlopen(module, path.toNamespacedPath(filename));
                 ^

Error: The module '/home/erfan/.node-red/node_modules/canvas/build/Release/canvas.node'
was compiled against a different Node.js version using
NODE_MODULE_VERSION 120. This version of Node.js requires
NODE_MODULE_VERSION 115. Please try re-compiling or re-installing
the module (for instance, using `npm rebuild` or `npm install`).
    at Module._extensions..node (node:internal/modules/cjs/loader:1473:18)
    at Module.load (node:internal/modules/cjs/loader:1207:32)
    at Module._load (node:internal/modules/cjs/loader:1023:12)
    at Module.require (node:internal/modules/cjs/loader:1235:19)
    at require (node:internal/modules/helpers:176:18)
    at Object.<anonymous> (/home/erfan/.node-red/node_modules/canvas/lib/bindings.js:3:18)
    at Module._compile (node:internal/modules/cjs/loader:1376:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1435:10)
    at Module.load (node:internal/modules/cjs/loader:1207:32)
    at Module._load (node:internal/modules/cjs/loader:1023:12) {
  code: 'ERR_DLOPEN_FAILED'
}


Node.js v20.11.1

14 Mar 13:02:35 - [red] Uncaught Exception:
14 Mar 13:02:35 - [error] UnhandledPromiseRejection: This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). The promise rejected with the reason "Child - child_process exited with code 1 and signal null".
erfan@erfan-virtual-machine:~/Desktop$ 

Did you follow the directions in the node's README about installing the prerequisites for Canvas?

Canvas

Canvas will be installed correctly providing when using either installation method, however the required packages need to be installed on the system. These are as follows for several common OS's;

see GitHub - thebigpotatoe/node-red-contrib-face-recognition: A wrapper node for the epic Face-API.js library