@smcgann/node-red-face-vectorization-plus
Version:
Face Image Vectorization Node for Node-RED
113 lines (108 loc) • 3.5 kB
HTML
<script type="text/javascript">
function validateInputType(v) {
const returnType = Number(v);
if (returnType == 0) {
this._def.inputLabels = ["Single Face Image"];
} else if (returnType == 1) {
this._def.inputLabels = ["Face Image Array"];
}
return true;
}
function validateReturnType(v) {
const returnType = Number(v);
if (returnType == 0) {
$("#path-form").css("display", "none");
$("#method-form").css("display", "none");
this.outputs = 1;
} else if (returnType == 1) {
$("#path-form").css("display", "block");
$("#method-form").css("display", "block");
this.outputs = 0;
}
return true;
}
RED.nodes.registerType("face-vectorization-plus", {
category: "AI VISION",
color: "#1AE5BE",
defaults: {
name: { value: "" },
data: {
value: "payload",
required: true,
validate: RED.validators.typedInput("dataType")
},
dataType: { value: "msg" },
inputType: {
value: "0",
validate: validateInputType
},
returnType: {
value: "0",
validate: validateReturnType
},
method: { value: "0" },
path: { value: "" },
},
inputs: 1,
outputs: 1,
paletteLabel: "Face Vectorization Plus",
icon: "status.svg",
label: function () {
return this.name || "Face Vectorization";
},
inputLabels: ["Single Face Image"],
outputLabels: ["Face Vector Array"],
oneditprepare: function () {
$('#node-input-data').typedInput({
default: 'msg',
typeField: $("#node-input-dataType"),
types: ['msg']
});
}
});
</script>
<script type="text/html" data-template-name="face-vectorization-plus">
<div class="form-row">
<label for="node-input-name"><i class="fa fa-tag"></i> Name </label>
<input type="text" id="node-input-name" placeholder="Name" />
</div>
<div class="form-row">
<label style="padding-top: 8px" for="node-input-data"><i class="fa fa-ellipsis-h"></i> Property</label>
<input type="text" id="node-input-data" style="width:70%">
<input type="hidden" id="node-input-dataType">
</div>
<div class="form-row">
<label for="node-input-inputType"
><i class="fa fa-file"></i> Input Type
</label>
<select type="text" id="node-input-inputType">
<option value="0">Single Image</option>
<option value="1">Image Array</option>
</select>
</div>
<div class="form-row">
<label for="node-input-returnType"
><i class="fa fa-file"></i> Return Type
</label>
<select type="text" id="node-input-returnType">
<option value="0">Array of Arrays</option>
<option value="1">Text File</option>
</select>
</div>
<div class="form-row" id="path-form">
<label for="node-input-path"><i class="fa fa-folder"></i> Path </label>
<input type="text" id="node-input-path" />
</div>
<div class="form-row" id="method-form">
<label for="node-input-method"
><i class="fa fa-database"></i> Method
</label>
<select type="text" id="node-input-method">
<option value="0">Overwrite</option>
<option value="1">Add</option>
</select>
</div>
</script>
<script type="text/html" data-help-name="face-vectorization-plus">
<p>A node that converts the face image payloads into vector data</p>
</script>