首页 > 其他分享 >在浏览器上使用transformers.js运行(WebGPU)RMBG-1.4进行抠图(背景移除)

在浏览器上使用transformers.js运行(WebGPU)RMBG-1.4进行抠图(背景移除)

时间:2024-08-28 11:37:23浏览次数:10  
标签:1.4 transformers onnx js env 移除 model RMBG

在浏览器上使用transformers.js运行(WebGPU)RMBG-1.4进行抠图(背景移除)

说明:

准备

下载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: falseAutoModel.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

标签:1.4,transformers,onnx,js,env,移除,model,RMBG
From: https://www.cnblogs.com/shizidushu/p/18384326

相关文章

  • Origin2024图表中如何直接移除异常点?
    平时我们在使用Origin绘图后,可能会发现有一两个「异常点」,这个时候,我们可能会返回工作表,将异常的数据去除,但可能不知道是哪个数据,因为图和数据有时候不太好对应起来;本期给大家分享做好图之后直接选择移除异常点功能,并且数据表中的数据也会相应的去除,是一个很方便的操作;操作步骤:......
  • FL Studio 24.1.1.4239最新中文版crack下载
    FLStudio24.1.1.4239中文版是一款备受赞誉的数字音频工作站,它以其强大的功能和用户友好的界面赢得了音乐制作者的喜爱。在这篇文章中,我将向您介绍这款软件的主要特点和优势,以及如何利用它来创作出令人惊叹的音乐作品。FLStudio24.1.1.4239中文版具有直观的用户界面设计,使......
  • 10大秘籍!FL Studio24.1.1.4239中文版功能介绍,轻松上手音乐制作!
    FLStudio24.1.1.4239中文版是一款备受赞誉的数字音频工作站,它以其强大的功能和用户友好的界面赢得了音乐制作者的喜爱。在这篇文章中,我将向您介绍这款软件的主要特点和优势,以及如何利用它来创作出令人惊叹的音乐作品。FLStudio21汉化版下载网盘链接:https://pan.quark.cn/......
  • 【HuggingFace Transformers】BertSelfAttention源码解析
    BertSelfAttention源码解析1.BertSelfAttention类介绍1.1关键组件1.2主要方法2.BertSelfAttention类源码解析(核心简版)3.BertSelfAttention类源码解析1.BertSelfAttention类介绍BertSelfAttention类是BERT模型的核心组件之一,主要负责实现多头自注意力......
  • 力扣: 移除链表元素
    文章目录需求虚拟头结点法原头结点法结尾需求给你一个链表的头节点head和一个整数val,请你删除链表中所有满足Node.val==val的节点,并返回新的头节点。示例1:输入:head=[1,2,6,3,4,5,6],val=6输出:[1,2,3,4,5]示例2:输入:head=[],val=1输......
  • 给自己复盘的随想录笔记-移除元素
    双指针法双指针法(快慢指针法): 通过一个快指针和慢指针在一个for循环下完成两个for循环的工作。定义快慢指针快指针:寻找新数组的元素,新数组就是不含有目标元素的数组慢指针:指向更新新数组下标的位置相关题目删除有序数组中的重复项解题思路:解法:双指针首先注意数组......
  • SOA架构开发小助手PAVELINK.SOA-Converter V1.4.2新版本发布
    PAVELINK.SOA-Converter转换工具,用于衔接基于SOA的控制器设计、开发及测试过程中所常见的各类软件工具。PAVELINK.SOA-Converter能提供IDL及服务矩阵等文件的语法及规则检查,自动化完成多种不同格式IDL文件之间的转换,以及其它常用的各类型格式文件转换。 PAVELINK.SOA-Converter......
  • BT5 2011.4.社会工程学.1.JAVA
    4.社会工程学工具 内容简介第一部分:JavaAppletAttackMethod第二部分:CredentialHarvesterAttackMethod 第一部分JavaAppletAttackMethod 拓扑介绍 SET介绍TheSETisanadvanced,multi-function,andeasytousecomputerassistedsocialengineering......
  • ViT 原理解析 (Transformers for Image Recognition at Scale)
    ViT原理解析(TransformersforImageRecognitionatScale)原创 小白 小白研究室 2024年06月10日21:09 北京如何将transformer应用到图像领域Transformer模型最开始是用于自然语言处理(NLP)领域的,NLP主要处理的是文本、句子、段落等,即序列数据。视觉领域处理的......
  • vSphere5.11.4.VUM
    第四部分vmwareupdatemanagervmwareupdatemanager的介绍vumisatooldesignedtohelpvmwareadministratorsautomateandstreamlinetheprocessofapplyingupdates,whichcouldbepatchesorupgrades(升级和打补丁),totheirvsphereenvironment.vumisfully......