🚀 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
許可證。