JavaScript
Integrating Nudeny API into your JavaScript project is a breeze, thanks to its comprehensive documentation and well-organized codebase. Regardless of whether you're working with client-side or backend JavaScript (NodeJS), Nudeny API offers seamless implementation process.
Basic Client-side JavaScript implementation
To use Nudeny API in your client-side JavaScript code, you will first need to create an HTML form that allows users to upload files:
<form id="nudeny-form" method="POST">
<input type="file" name="files" />
<input type="submit" />
</form>
Next, you can use JavaScript to access the form and submit it to the Nudeny API for classification. The following code uses the Fetch API to send the form data as a POST request to the Nudeny API server running on endpoint POST /classify
:
const form = document.getElementById("nudeny-form");
form.addEventListener("submit", (event) => {
event.preventDefault();
const formData = new FormData(form);
fetch("http://ec2-18-136-200-224.ap-southeast-1.compute.amazonaws.com/classify/", {
method: "POST",
body: formData,
})
.then((response) => response.json())
.then((data) => console.log(data))
.catch((error) => console.log(error));
});
The code above attaches an event listener to the form's submit button. When the button is clicked, it prevents the default form submission behavior and instead sends a POST request to the Nudeny API server with the form data. The server will classify the uploaded file(s) and return the result as a JSON object. The code then logs the result to the console.
Here's an example of what the result JSON object might look like:
{
Prediction: [
{
filename: "sample-image.jpg",
class: "nude",
},
],
},
If you prefer to use the async/await syntax in JavaScript, you can use the following code instead:
form.addEventListener("submit", async (event) => {
event.preventDefault();
const formData = new FormData(form);
try {
const response = await fetch("http://ec2-18-136-200-224.ap-southeast-1.compute.amazonaws.com/classify/", {
method: "POST",
body: formData,
});
const data = await response.json();
console.log(data);
} catch (error) {
console.log(error);
}
});
This code does the same thing as the previous example, but uses the async
and await
keywords to handle the asynchronous nature of the Fetch API.
Nudeny Implementation using Node JS
To integrate Nudeny API into your Node.js project, you can install the nudeny
package using the Node Package Manager (NPM). First, open the terminal and run the following command:
npm install nudeny
After installing nudeny
, you can require it in your code using the require
keyword:
const nudeny = require('nudeny')
Next, you can create an array of file paths or URLs that you want to classify:
WARNING
Some images used in this example contains nudity.
const PATHS = [
"./images/4f6e821141824b9ef81f82e7cf341288.jpg",
"./images/1661045266_4-titis-org-p-nude-male-posing-chastnaya-erotika-5.jpg",
"./images/84359657870617d4692b724f4935ac5b.jpg",
"./images/mch05.jpg",
"./images/s-l1600.jpg",
"./images/View_of_Pacific_Star_Building_at_Gil_Puyat_Avenue_as_of_June_2015.jpg",
"./images/Wainwright_124825_2.JPG.jpg",
"./images/Wild-Chameleon-Reptile-With-Beautiful-Colors-400x300.jpg",
];
const URLS = [
"https://filesamples.com/samples/image/jfif/sample1.jfif",
"https://w7.pngwing.com/pngs/895/199/png-transparent-spider-man-heroes-download-with-transparent-background-free-thumbnail.png",
"http://digitalcommunications.wp.st-andrews.ac.uk/files/2019/04/JPEG_compression_Example.jpg",
"https://filesamples.com/samples/image/jpeg/sample_640%C3%97426.jpeg",
"https://people.math.sc.edu/Burkardt/data/bmp/blackbuck.bmp",
"https://static-ca-cdn.eporner.com/gallery/XI/9y/GKjer8q9yXI/770450-completely-nude-p.jpg",
"https://external-preview.redd.it/v6wIR5kXQvzMKryDJfDmEqt0so9TLuNE0XN1Ps73O-M.jpg?auto=webp&v=enabled&s=d21bbcd1707686d4a63447fb8e5ab6e10111470d",
"https://external-preview.redd.it/sxXLzNmT8CM9klV5vAzLKy9gIJKDfyK4Kfg0G4lLzXc.jpg?auto=webp&v=enabled&s=147af31c35a1cf56645dd9592f4ed03cad38b0c1",
];
Classification
classify
To classify images in the PATHS
array, you can use the nudeny.classify()
method.
Parameters
Name | Data Type | Description |
---|---|---|
paths | array | Array of image file paths. |
Return value promise
Example:
nudeny.classify(PATHS)
.then((response) => console.log(response.data))
.catch((error) => console.log(error));
classifyURL
To classify images in the URLS
array, you can use the nudeny.classifyUrl()
method.
Parameters
Name | Data Type | Description |
---|---|---|
urls | array | Array of image url source. |
Return value promise
Example:
nudeny.classifyUrl(URLS)
.then((response) => console.log(response.data))
.catch((error) => console.log(error));
classifyMultiPartForm
Parameters
Name | Data Type | Description |
---|---|---|
form | object | Multipart/form data containing image files. |
Return value promise
Example:
To send form data using Node.js, you will need to install the form-data
package:
npm install form-data
const FormData = require("form-data");
const formData = new FormData();
const fs = require("fs");
PATHS.forEach((path) => {
const stream = fs.createReadStream(path);
formData.append("files", stream);
});
nudeny
.classifyMultiPartForm(formData)
.then((response) => console.log(response.data))
.catch((error) => console.log(error));
Here, we're creating a new FormData
object and adding each file in the PATHS
array to it using a forEach
loop. We're using the fs
(file system) module in Node.js to create a read stream for each file and adding it to the FormData
object.
Finally, we're passing the FormData
object to the classifyMultiPartForm
method of the nudeny
object. This method sends a multi-part form to the Nudeny API for censoring. If the API call is successful, the response data is logged to the console. If there's an error, the error is logged to the console.
Detection
The implementation for the detection is similar to the classification. First, you can detect images in the PATHS
array like this:
detect
Parameters
Name | Data Type | Description |
---|---|---|
paths | array | Array of image file paths. |
Return value promise
Example:
nudeny
.detect(PATHS)
.then((response) => console.log(response.data))
.catch((error) => console.log(error));
detectUrl
To detect images from URLS
, you can use the following code.
Parameters
Name | Data Type | Description |
---|---|---|
urls | array | Array of image url source. |
Return value promise
Example:
nudeny
.detectUrl(URLS)
.then((response) => console.log(response.data))
.catch((error) => console.log(error));
Example:
detectMultiPartForm
Parameters
Name | Data Type | Description |
---|---|---|
form | object | Multipart/form data containing image files. |
Return value promise
Example:
If you want to send form data using Node.js, you will need to install the form-data
package:
npm install form-data
Then, you can use the following code to detect images from multiple paths:
const FormData = require("form-data");
const formData = new FormData();
const fs = require("fs");
PATHS.forEach((path) => {
const stream = fs.createReadStream(path);
formData.append("files", stream);
});
nudeny
.detectMultiPartForm(formData)
.then((response) => console.log(response.data))
.catch((error) => console.log(error));
In this code, we create a new FormData
object and append each file in the PATHS
array to it. Then, we pass the formData
object to the detectMultiPartForm
method to detect images from multiple paths. The response is then logged to the console if successful, or an error message is logged if there was an error.
Censorship
The nudeny
package also provides methods for censoring inappropriate content in images. The implementation for the censoring is similar to the classification and detection methods:
censor
This method will censor inappropriate content in the images specified by the PATHS
array.
Parameters
Name | Data Type | Description |
---|---|---|
paths | array | Array of image file paths. |
Return value promise
Example:
nudeny
.censor(PATHS)
.then((response) => console.log(response.data))
.catch((error) => console.log(error));
censorUrl
If you want to use URLs instead of local files, you can use the censorUrl
method. This method will censor inappropriate content in the images specified by the URLS
array.
Parameters
Name | Data Type | Description |
---|---|---|
urls | array | Array of image url source. |
Return value promise
Example:
nudeny
.censorUrl(URLS)
.then((response) => console.log(response.data))
.catch((error) => console.log(error));
censorMultiPartForm
Parameters
Name | Data Type | Description |
---|---|---|
form | object | Multipart/form data containing image files. |
Return value promise
Example: If you want to use a multi-part form to send the images to be censored, you can use the censorMultiPartForm
method:
const FormData = require("form-data");
const formData = new FormData();
const fs = require("fs");
PATHS.forEach((path) => {
const stream = fs.createReadStream(path);
formData.append("files", stream);
});
nudeny
.censorMultiPartForm(formData)
.then((response) => console.log(response.data))
.catch((error) => console.log(error));
This method will censor inappropriate content in the images specified by the FormData
object, which is created by appending the files from the PATHS
array.