新闻详情

新闻详情

首页 / 资讯中心 / 详情

node + nsfwjs 流程记录

发布时间:2026/9/5 15:08:28来源:尧图网络
node + nsfwjs 流程记录
nsfwjs是一个免费开源的图片鉴别插件本地打包尺寸过大不符合预期所以大多数人选择在服务端部署。下面是node版本部署流程笔记仅供参考node服务这里采用的是express框架Express - Node.js web application frameworknpm install express --savensfwjs代码库地址GitHub - infinitered/nsfwjs: NSFW detection on the client-side via TensorFlow.jshttps://github.com/infinitered/nsfwjs建议用管理员权限启动cmd第一步环境准备npm install --global windows-build-tools或npm install -g --production windows-build-tools以上环境准备我个人尝试了多次才执行成功若遇到失败可重试不要着急第二步依赖安装npm install nsfwjs注意下面这个安装需要翻墙里面部分引用资源在外网。大家遇到最多的问题就是这个包安装或者执行失败可尝试用cnpmnpm install tensorflow/tfjs-nodetensorflow/tfjs-node和tensorflow/tfjs两个包是互斥的删除node_modules后重试你可能会用到的包npm i tensorflow/tfjs-node-gpu相关文档tfjs/README.md at master · tensorflow/tfjs · GitHub快速删除庞大的node_modules指令rd /s /q node_modules扩展文档中推荐的另一个模式sharpOutput options - sharp - High performance Node.js image processing (pixelplumbing.com)const getMetadata async (img) { const image await sharp(img).jpeg().metadata(); const { data, info } await sharp(img) .toFormat(jpeg) .raw() .toBuffer({ resolveWithObject: true }); const numChannels 3 const numPixels image.width * image.height const values new Int32Array(numPixels * numChannels) for (let i 0; i numPixels; i) for (let c 0; c numChannels; c) values[i * numChannels c] data[i * 4 c] return tf.tensor3d(values, [image.height, image.width, numChannels], int32) } app.post(/nsfw, upload.single(image), async (req, res) { if (!req.file) res.status(400).send(Missing image multipart/form-data) else { try { const image await getMetadata(req.file.buffer) // const image await convert(req.file.buffer) const predictions await _model.classify(image) image.dispose() res.json(predictions) } catch (error) { res.status(400).send(error) } } })也可以将模型下载到项目中模型发布仓库GitHub - GantMan/nsfw_model: Keras model of NSFW detector
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

Unity 遮挡剔除:钻进 C++ 底层,看看“看不见的东西“是如何被扔掉的 2026/9/5 15:41:35

Unity 遮挡剔除:钻进 C++ 底层,看看“看不见的东西“是如何被扔掉的

引子:一个"诚实到愚蠢"的渲染器 想象你站在一堵厚厚的城墙前。城墙后面是一整座城市——几千栋房子、上万个 NPC、无数的树木和道具。 现在问一个问题:渲染这一帧,GPU 应该画多少东西? 正常人的答案:“当然只画那堵墙啊,墙后面的城市我又看不见。” 但一个…

阅读更多 →
Unity 图集底层揭秘:一张“拼图“如何拯救你的帧率 2026/9/5 15:41:35

Unity 图集底层揭秘:一张“拼图“如何拯救你的帧率

引子:一个让 GPU "累到崩溃"的午后 假设你在做一款 2D 卡牌游戏。界面上有 100 张卡牌,每张卡牌有独立的图片:card_001.png、card_002.png……你满心欢喜地把它们拖进场景,运行—— 帧率从 60 掉到了 20。手机开始发烫,风扇狂转(如果它有风扇的话)。 你百思…

阅读更多 →
开关电源PCB安规距离整改:电气间隙与爬电距离设计指南 2026/9/5 15:41:35

开关电源PCB安规距离整改:电气间隙与爬电距离设计指南

做电源产品开发时,有一类问题在原理图调试阶段基本不会暴露,等到送样认证预检、准备批量试产的时候才集中爆发,那就是PCB上的安规距离。尤其是反激式开关电源这种一次侧直接连接市电、二次侧输出低压隔离电源的板子,初次级之间距离…

阅读更多 →
无人机4G增强图传第三方支架怎么选:避开天线遮挡与散热陷阱 2026/9/5 15:41:35

无人机4G增强图传第三方支架怎么选:避开天线遮挡与散热陷阱

最近看到一条朋友发的动态,说的是大疆Mini 5 Pro加装4G增强图传模块的第三方支架,“这才是我想要的效果”。我特别能理解这种感觉,因为我也经历过完全相反的状态:模块按照说明书装好了,支架锁得也很紧,天线…

阅读更多 →
ISAR成像实战:从Yak-42数据到相位校正算法详解 2026/9/5 15:41:35

ISAR成像实战:从Yak-42数据到相位校正算法详解

简介:本资源是一套面向雷达信号处理初学者与工程实践者的ISAR成像入门实例,聚焦逆合成孔径雷达成像核心流程,特别针对Yak-42飞机实测回波数据开展相位校正与图像重建。压缩包共含2个文件(1个MATLAB脚本、1个.mat数据文件&#xff…

阅读更多 →
高多层高速PCB板材选型与阻抗控制:从信号报错到可靠制造 2026/9/5 15:38:34

高多层高速PCB板材选型与阻抗控制:从信号报错到可靠制造

如果你正在做高速 PCB 设计,大概率遇到过下面这类对话: 硬件工程师:“这块板子阻抗要求比较严,你们能不能做?” PCB 厂:“可以,常规 FR4 就能做。” 板子回来后,高速信号测出眼图…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞