
rembg 人像分割抠图教程3行代码抠出证件照级透明背景【免费下载链接】rembgRembg is a tool to remove images background项目地址: https://gitcode.com/GitHub_Trending/re/rembgrembg 是一个开源的人像分割与抠图工具一行命令就能把照片背景抹掉。本文用它内置的人像专用模型 BiRefNet-Portrait只用 3 行 Python 代码就能把人物从背景里抠出来再换成白底、调好发丝边缘直接得到一张能冲印的证件照。全文带你走完四个环节看效果对比、跑通代码、调参数、选模型。处理前后对比一眼看出抠图效果先看效果。下面两张图用的是同一张原图第一张是原始照片第二张是 rembg 抠完背景后的结果——人物被完整保留背景变成纯透明通道可以直接叠到任何底色上。处理前带背景的原始人像照片处理后背景已移除输出带透明通道的 PNG3 行代码跑通人像抠图先装依赖CPU 环境一行命令即可pip install rembg[cpu]核心逻辑只有几行。new_session负责加载指定模型remove执行抠图并返回带 alpha 通道的图片from PIL import Image from rembg import new_session, remove session new_session(birefnet-portrait) # 人像专用会话首次自动下载权重 result remove(Image.open(examples/anime-girl-1.jpg), sessionsession) result.save(output_portrait.png) # 保存透明背景 PNG几个要点不传session时默认用u2net通用模型处理人像边缘会偏糊。权重文件首次运行自动下载缓存在用户主目录的.u2net文件夹下之后直接复用不再下载。人像模型的官方权重取自动态训练到第 150 轮epoch_150的检查点见 模型源码。为什么人像专用模型发丝更干净同样是这张图我分别用通用模型u2net和人像专用birefnet-portrait各跑了一次结果如下。通用 u2net 模型整体轮廓准确但发丝与边缘偏生硬BiRefNet-Portrait 人像模型发丝与边缘过渡更细腻区别在于训练数据侧重。通用模型面对的是万物场景而人像模型专门针对人脸、发丝、皮肤这类细节做过优化处理头发时更不容易把细发当成背景丢光。一键换白底 发丝级边缘参数证件照最常用的一步是换纯色底加平滑边缘。bgcolor直接铺背景色post_process_mask做形态学后处理去锯齿alpha_matting用前景/背景阈值把半透明发丝算得更准# 换白底 平滑边缘一张证件照一步到位 result remove( Image.open(examples/anime-girl-1.jpg), sessionsession, bgcolor(255, 255, 255, 255), # 白底RGBA 格式 post_process_maskTrue, # 形态学后处理去边缘锯齿 alpha_mattingTrue, # alpha 抠图提升发丝精度 alpha_matting_foreground_threshold270, alpha_matting_background_threshold20, alpha_matting_erode_size11, )下面是remove函数几个关键参数的对照完整参数见 使用文档参数默认值证件照建议值作用bgcolorNone透明(255,255,255,255)指定背景色None保留透明post_process_maskFalseTrue后处理掩码平滑边界alpha_matting_foreground_threshold240270越高越倾向保留前景alpha_matting_background_threshold1020越低越倾向判为背景alpha_matting_erode_size1011腐蚀结构尺寸控制边缘收缩批量处理整文件夹批量处理时最忌讳每张图都重建一次会话——remove不传session时每次都会重新加载模型几十张图下来光加载就费不少时间。正确做法是会话只建一次循环里复用import os from PIL import Image from rembg import new_session, remove session new_session(birefnet-portrait) # 模型只加载一次 for name in os.listdir(input_photos/): if name.endswith((.jpg, .png)): img Image.open(os.path.join(input_photos/, name)) remove(img, sessionsession).save( os.path.join(output/, name) )不想写脚本的话命令行更省事rembg p 输入目录 输出目录可以一次跑完整个文件夹加-w参数还会进入监听模式文件夹里新增的图自动处理。模型选型速查表rembg 内置了 18 个模型人像场景挑这几个就够了模型名适用场景特点birefnet-portrait证件照、人像写真发丝与边缘最精细本文主角u2net_human_seg全身人像、动作照速度快专注人体分割isnet-anime动漫人物针对二次元画风优化birefnet-general-lite通用场景求快精度与速度的折中u2net万物通用默认模型综合表现挑选原则很简单要冲印精度就选birefnet-portrait图多机器慢就换lite或u2net换速度。完整模型清单和new_session用法见 使用文档。要点总结抠图核心就两个函数new_session加载模型、remove执行抠图批量时传session复用可省掉重复加载的耗时。人像边缘想干净就换birefnet-portrait别用默认u2net。白底证件照加bgcolor(255,255,255,255)发丝发虚就开alpha_matting并把前景阈值上调到 270。权重首次自动下载到.u2net目录重复运行不重新下载。环境要求 Python 3.11 及以上CPU 版用pip install rembg[cpu]即可。项目地址git clonehttps://gitcode.com/GitHub_Trending/re/rembg【免费下载链接】rembgRembg is a tool to remove images background项目地址: https://gitcode.com/GitHub_Trending/re/rembg创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考