ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

qwen-vl-utils 像素控制实战:3 个参数把视觉输入管住

qwen-vl-utils 像素控制实战:3 个参数把视觉输入管住 qwen-vl-utils 像素控制实战3 个参数把视觉输入管住【免费下载链接】Qwen3-VLQwen3-VL is the multimodal large language model series developed by Qwen team, Alibaba Cloud.项目地址: https://gitcode.com/GitHub_Trending/qw/Qwen3-VLQwen2.5-VL 是 Qwen 团队的多模态大模型系列而 qwen-vl-utils 像素控制决定了这些视觉数据真正进入模型前的 token 消耗一张 4K 图、一段 5 分钟视频不经处理直接喂给process_vision_info很容易把上下文撑爆。这篇文章只讲三件事——单张图的像素预算、视频的帧数与每帧尺寸、解码后端的环境变量以及常见的报错怎么解。一条命令装完并完成首次图像推理本节解决什么问题本地图片以最小配置送入模型需要哪几步。pip install qwen-vl-utils安装完成后入口函数是process_vision_info它接收 Chat 格式的messages遍历其中所有视觉条目输出可直接传给AutoProcessor的images与videos。from qwen_vl_utils import process_vision_info messages [ {role: user, content: [ {type: image, image: file:///path/to/your/image.jpg}, {type: text, text: Describe this image.}, ]} ] images, videos process_vision_info(messages)images是 PIL 图像列表videos是 TCHW 张量列表无视频时为None两者直接作为参数传入processor(text..., imagesimages, videosvideos)即可。如何限制单张图像的像素预算本节解决什么问题在保留宽高比的前提下让图像总像素落进你设定的区间。核心函数是smart_resize(height, width, factor, min_pixelsNone, max_pixelsNone)它同时满足三个约束两边均能被factor整除、总像素落在[min_pixels, max_pixels]、宽高比尽量不变。未显式传参时上下限由内部常量推导上限为 16384 个 token 对应的像素数下限为 4 个 token。超上限按floor等比缩小低于下限按ceil等比放大若长宽比超过 200:1 会直接抛出ValueError。from qwen_vl_utils import smart_resize h_bar, w_bar smart_resize(2160, 3840, factor28, max_pixels1280 * 28 * 28)返回值是已对齐到factor的(h_bar, w_bar)总像素不会超过你传入的上限。在实际调用中每个图像条目可以通过**min_pixels**、**max_pixels**覆盖默认预算也可以直接用**resized_height**与**resized_width**锁定输出尺寸——注意这两者仍会经过smart_resize对齐最终值未必与传入值完全一致。如何设置视频帧数与每帧尺寸本节解决什么问题一段视频该抽多少帧以及如何避免帧数把上下文打满。smart_nframes(ele, total_frames, video_fps)支持两种互斥写法**nframes**直接指定帧数自动取整为偶数FRAME_FACTOR 2**fps**按给定采样率抽帧缺省 2.0结果被**min_frames**默认 4与**max_frames**默认 768夹住再向下取偶数且不超过原视频总帧数。若最终帧数小于 2 或大于total_frames会抛出ValueError。帧数确定后每帧尺寸由smart_resize进一步压缩每帧上限为 768 个 token 对应的像素数同时受总预算约束——total_pixels缺省取MODEL_SEQ_LEN * factor² * 0.9除以帧数后得到单帧实际可用的像素上限。ele {type: video, video: file:///path/to/video1.mp4, fps: 1.0, min_frames: 8, max_frames: 64}以fps1.0、max_frames64为例一段 10 分钟视频最多产出 64 帧且帧数越多每帧像素自动越小长视频不会因此撑爆上下文。Qwen2.5-VL 场景下建议给process_vision_info传return_video_kwargsTrue把返回的video_kwargs展开进processor(...)。如何固定视频解码后端与环境变量本节解决什么问题不改代码的前提下锁定解码器并调优线程数。get_video_reader_backend()的选择顺序是FORCE_QWENVL_VIDEO_READER环境变量 → torchcodec → decord → torchvision兜底结果经lru_cache缓存任意后端抛异常时会打 warning 并降级回 torchvision。环境变量缺省值作用FORCE_QWENVL_VIDEO_READER空自动探测强制指定后端可选decord/torchvision/torchcodecTORCHCODEC_NUM_THREADS8torchcodec 后端的 FFmpeg 解码线程数MODEL_SEQ_LEN128000上下文长度上限参与视频总像素预算的计算常见报错与快速解法absolute aspect ratio must be smaller than 200→ 图像长宽比超过 200:1先裁剪或填充再送入。nframes should in interval [2, total_frames]→ 指定fps换算出的帧数越界调低fps或改用nframes。Only accept either fps or nframes→ 两者同时传入了保留其一。The given max_pixels[...] exceeds limit[...]warning→ 设定的max_pixels超过上下文预算推导的上限代码会自动截断确需更大预算时调高MODEL_SEQ_LEN。torchvision 0.19.0 读 http 路径的 warning → 升级 torchvision或改用本地文件路径。qwen-vl-utils 只解决以什么尺寸和帧数送入模型这一层不介入模型推理本身落地时建议先用短视频配合较小的max_pixels验证 token 消耗再逐步放开参数。【免费下载链接】Qwen3-VLQwen3-VL is the multimodal large language model series developed by Qwen team, Alibaba Cloud.项目地址: https://gitcode.com/GitHub_Trending/qw/Qwen3-VL创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表