在浏览器上使用transformers.js运行(WebGPU)RMBG-1.4进行抠图(背景移除)
在浏览器上使用transformers.js运行(WebGPU)RMBG-1.4进行抠图(背景移除)
说明:
- 首次发表日期:2024-08-28
- 官方Github仓库地址: https://github.com/xenova/transformers.js/tree/main/examples/remove-background-client
准备
下载onnx模型文件: https://huggingface.co/briaai/RMBG-1.4/tree/main/onnx, 有3个onnx模型文件:
- model.onnx
- model_fp16.onnx
- model_quantized.onnx
Clone仓库并打开示例文件夹:
git clone https://github.com/xenova/transformers.js.git
cd transformers.js/examples/remove-background-client
创建public/models/briaai/RMBG-1.4/onnx
文件夹,并将下载的模型文件放入。
运行tree public/
,可以看到:
public/
└── models
└── briaai
└── RMBG-1.4
└── onnx
├── model.onnx
├── model_fp16.onnx
└── model_quantized.onnx
安装项目依赖:
npm install
推理
修改main.js文件中的env配置,使用本地模型:
env.allowLocalModels = true;
有很多可用的env配置,详见 https://huggingface.co/docs/transformers.js/api/env
以下是我测试过得配置(仅测试,不需要在main.js中修改):
env.remoteHost = 'https://hf-mirror.com';
env.allowRemoteModels = false;
// 默认会读取之前的缓存,如果之前的缓存是错的,需要清空浏览器缓存,或者使用该配置不使用浏览器缓存
env.useBrowserCache = false;
使用model_quantized.onnx
默认使用的模型文件名为model_quantized.onnx,不需要做任何修改。
使用model.onnx
修改main.js,添加quantized: false
到AutoModel.from_pretrained
:
const model = await AutoModel.from_pretrained('briaai/RMBG-1.4', {
// Do not require config.json to be present in the repository
config: { model_type: 'custom' },
quantized: false
// model_file_name: 'model_fp16',
// quantized: false
});
使用model_fp16.onnx
修改main.js,AutoModel.from_pretrained
部分如下:
const model = await AutoModel.from_pretrained('briaai/RMBG-1.4', {
// Do not require config.json to be present in the repository
config: { model_type: 'custom' },
model_file_name: 'model_fp16',
quantized: false
});
运行
npm run dev
然后打开浏览器,等待状态从Loading model...变为Ready后,上传图片
添加日志查看使用的模型文件
修改node_modules/@xenova/transformers/src/utils/hub.js
中的getModelFile
函数,添加日志打印localPath:
let requestURL = pathJoin(path_or_repo_id, filename);
let localPath = pathJoin(env.localModelPath, requestURL);
console.log("localPath: ", localPath);
npm run build
npm run preview
浏览器打开链接,F12显示开发者工具,可以看到日志:
localPath: /models/briaai/RMBG-1.4/onnx/model_fp16.onnx
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人