🚀 wuchendi/MODNet (Matting Objective Decomposition Network)
实时无Trimap人像抠图模型
本项目是用于人像抠图的MODNet
模型,支持使用transformers.js
库进行推理,可实现实时无Trimap的人像抠图功能。
🚀 快速开始
安装依赖
首先,你需要使用PNPM安装@huggingface/transformers
库:
pnpm add @huggingface/transformers
运行示例代码
使用以下代码,结合wuchendi/MODNet
模型进行人像抠图:
import { AutoModel, AutoProcessor, RawImage } from '@huggingface/transformers'
async function main() {
try {
console.log('üöÄ Initializing MODNet...')
console.log('üì¶ Loading model...')
const model = await AutoModel.from_pretrained('wuchendi/MODNet', {
dtype: 'fp32',
progress_callback: (progress) => {
if (progress.progress) {
console.log(`Model loading progress: ${(progress.progress).toFixed(2)}%`)
}
}
})
console.log('‚úÖ Model loaded successfully')
console.log('üîß Loading processor...')
const processor = await AutoProcessor.from_pretrained('wuchendi/MODNet', {})
console.log('‚úÖ Processor loaded successfully')
const url = 'https://res.cloudinary.com/dhzm2rp05/image/upload/samples/logo.jpg'
console.log('üñºÔ∏è Loading image:', url)
const image = await RawImage.fromURL(url)
console.log('‚úÖ Image loaded successfully', `Dimensions: ${image.width}x${image.height}`)
console.log('üîÑ Preprocessing image...')
const { pixel_values } = await processor(image)
console.log('‚úÖ Image preprocessing completed')
console.log('üéØ Generating alpha matte...')
const startTime = performance.now()
const { output } = await model({ input: pixel_values })
const inferenceTime = performance.now() - startTime
console.log('‚úÖ Alpha matte generated', `Time: ${inferenceTime.toFixed(2)}ms`)
console.log('üíæ Saving output...')
const mask = await RawImage.fromTensor(output[0].mul(255).to('uint8')).resize(image.width, image.height)
await mask.save('src/assets/mask.png')
console.log('‚úÖ Output saved to assets/mask.png')
} catch (error) {
console.error('‚ùå Error during processing:', error)
throw error
}
}
main().catch(console.error)
示例结果
输入图像 |
输出掩码 |
 |
 |
📄 许可证
本项目采用Apache-2.0
许可证。