| Crates.io | nsfw |
| lib.rs | nsfw |
| version | 0.2.0 |
| created_at | 2023-11-05 23:39:29.665331+00 |
| updated_at | 2024-08-01 23:24:09.581268+00 |
| description | A Rust library for detecting NSFW images using a neural network. |
| homepage | https://github.com/fyko/nsfw |
| repository | https://github.com/fyko/nsfw |
| max_upload_size | |
| id | 1026228 |
| size | 180,175 |
nsfw is a library for determining the not-safe-for-work-ness of images.
It is based off of GantMan's model.
Because Cargo has a size limit of 10mb, the pre-trained model cannot be included in the crate. You will need to download it from the release page or download the model yourself and convert it into ONNX
$ gh release download -R Fyko/nsfw --pattern "model.onnx"
# or naviate to the release page and download it manually
See our GitHub Workflow
[dependencies]
image = { version = "0.24.7", default-features = false, features = ["jpeg"] }
nsfw = { version = "0.1.0", default-features = false, features = ["jpeg"] }
use nsfw::{create_model, examine};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let model = create_model(
include_bytes!(concat!(env!("CARGO_MANIFEST_DIR"), "/model.onnx"))
);
let image = image::open(concat!(env!("CARGO_MANIFEST_DIR"), "/might_be_porn.jpg"))?;
let result = examine(&model, &image)?;
println!("{:#?}", result);
Ok(())
}
[dependencies]
image = { version = "0.24.7", default-features = false, features = ["gif"] }
nsfw = { version = "0.1.0", default-features = false, features = ["gif"] }
use nsfw::{examine, MODEL, GifParser};
fn main() -> Result<(), Box<dyn std::error::Error>> {
let model = create_model(
include_bytes!(concat!(env!("CARGO_MANIFEST_DIR"), "/model.onnx"))
);
let path = concat!(env!("CARGO_MANIFEST_DIR"), "/might_be_porn.gif");
let file = BufReader::new(File::open(gif_path)?);
let frames = GifParser::new(GifDecoder::new(file)?, &model);
for frame in frames {
println!("{frame:#?}")
}
Ok(())
}
default - jpeg and pngserde - Enables serialization and deserialization of the model using serde.gif - Enables GIF support for image.jpeg - Enables JPEG support for image.png - Enables PNG support for image.webp - Enables WEBP support for image.| Name | Size | Language | Time |
|---|---|---|---|
| test_porn.gif | 50495726 bytes (50.49 MB) |
Rust | 22.719 seconds |
| test_porn.gif | 50495726 bytes (50.49 MB) |
JavaScript | 219.96 seconds |