You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

报错NameError: name 'session' is not defined,求批量图片处理代码修复

问题解决:NameError: name 'session' is not defined

错误原因很明确:你调用process函数时传入的session变量从未被初始化。rembg需要先创建一个Session实例来复用模型,避免重复加载提升处理效率。

修正后的完整代码

from PIL import Image
import rembg
from pathlib import Path

def process(session, image, *, size=None, bgcolor='white'):
    "session is a rembg Session, and image is a PIL Image"
    if size is not None:
        image = image.resize(size)
    else:
        size = image.size
    result = Image.new("RGB", size, bgcolor)
    out = rembg.remove(image, session=session)
    result.paste(out, mask=out)
    return result

# 初始化rembg会话,复用模型提升处理效率
session = rembg.new_session()

for path_in in Path(r'C:\Users\test').glob('*.jpg'):
    path_out = path_in.parent / f"{path_in.stem}-out.png"
    if path_out.exists():
        continue
    with Image.open(path_in) as img:
        out = process(session, img, size=(700, 700), bgcolor='#FFFFFF')
        out.save(path_out)

关键修改点

  • 添加session = rembg.new_session():在循环前创建rembg的会话实例,让所有图片处理复用同一个模型,避免重复加载模型浪费资源
  • 确保session变量在调用process时已被定义,直接解决NameError问题

内容的提问来源于stack exchange,提问作者Deidraak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.08 11:45:32