Vision-Agents 实战用 Decart 插件把实时视频风格化接入语音 Agent【免费下载链接】Vision-AgentsOpen Vision Agents by Stream. Build voice and vision agents quickly with any model or video provider. Uses Streams edge network for ultra-low latency.项目地址: https://gitcode.com/GitHub_Trending/vi/Vision-Agents视频会议里AI 智能体如果能直接重绘你的摄像头画面——你说一句换成吉卜力动画风画面立刻跟着变再补一句给我穿件外套就是一次虚拟试装——整个通话不用切场景。这就是 Vision-Agents 的 Decart 插件要解决的事它把 Decart 的生成式实时重绘 API 接进框架的处理器链路RestylingProcessor接管用户视频轨道把帧发给 Decart 重绘再把结果发回通话智能体还可以通过对话随时改风格、换参考图。插件内部把 WebSocket 连接、帧队列、断线重连这些脏活都封装好了业务代码只需要回答一个问题什么时候、换成什么风格。本文从安装开始讲完参数配置、对话换风格的实战写法再拆开它的帧流转与容错逻辑最后给一份避坑清单。最快安装与启动两行代码挂载实时重绘插件要求 Python 3.10依赖vision-agents核心库和decart0.0.34,0.0.36官方 SDK见 plugins/decart/pyproject.toml。装法二选一uv add vision-agents[decart] # 或者 uv add vision-agents-plugins-decart能跑起来的最小例子from vision_agents.core import User, Agent from vision_agents.plugins import getstream, gemini, decart styled decart.RestylingProcessor( initial_promptStudio Ghibli animation style, ) agent Agent( edgegetstream.Edge(), agent_userUser(nameStudio Bot), instructionsBe helpful, llmgemini.Realtime(), processors[styled], )关键挂载点只有一个processors[styled]。用户加入通话并发布视频轨道时框架自动走处理链路你不需要手动管连接和帧搬运。RestylingProcessor继承自 base_processor.py 里的VideoProcessorPublisher同时扮演两个角色作为VideoProcessor接收原始轨道实现process_video/stop_processing作为VideoPublisher把重绘后的轨道发回通话实现publish_video_track。插件必须拿到 Decart API Key两种给法环境变量DECART_API_KEY或构造参数api_key...。源码里是先取参数、再回退环境变量两者都没有时构造函数直接抛ValueError所以别指望延迟到运行时才发现缺 key。参数默认值说明哪些不用动哪些必须改RestylingProcessor.__init__的全部参数见 decart_restyling_processor.py参数默认值什么时候需要动它api_keyNone必须经参数或DECART_API_KEY提供否则构造失败modellucy_2_rt要换 Decart 实时模型时才改Lucy 系列支持参考图initial_promptCyberpunk city几乎必改——这是第一帧就生效的风格描述initial_imageNone想让参考图从首帧就生效时传入enhanceTrue想关掉风格描述的自动增强时才设FalsemirrorTrue前置摄像头默认镜像关掉前摄才改width/height1280/720源码标注为模型偏好分辨率一般保持默认**kwargs—透传给DecartClient一般用不上三个值得单独说清楚的行为enhance是 prompt 的一部分不是本地开关。连接时它和initial_prompt、initial_image一起装进ModelState下发之后每次update_state也会带它见 decart_restyling_processor.py 的_connect_to_decart与update_state。initial_image支持五种形态bytes、本地文件路径、http(s) URL、data URI、base64 字符串。源码里ImageInput bytes | str | Path字符串形式由 SDK 解析。width/height决定的是输出端DecartVideoTrack按这个尺寸收帧尺寸不符的帧会被自动缩放而不是改模型输入。实战让 Agent 用一句话换风格、换服装想让风格跟着对话走就把更新接口注册成 LLM 工具function calling即让模型在对话中主动调用你定义的函数llm.register_function(description把视频换成指定风格) async def apply_style(style_text: str) - str: await styled.update_prompt(style_text) return doneupdate_prompt是update_state的快捷方式只管 prompt。要同时换 prompt 和参考图用update_state——一次调用把两项打包下发画面不会出现风格变了、服装没变的中间态await styled.update_state( promptA person in a leather jacket, imagehttps://example.com/jacket-ref.png, )完整可运行的虚拟试装助手在 plugins/decart/example/decart_example.pyCOSTUMES字典预置了服装条目每条对应一段 prompt 加一张参考图 URLLLM 优先调change_costume(name)换预设服装查不到再走change_outfit(description, image_url)的自由描述路径——有参考图 URL 就update_state没有就退化成纯 prompt 的update_prompt。运行方式与所需 API Key 见 plugins/decart/example/README.mduv run decart_example.py run起一个带浏览器演示页的通话。两点补充update_state要求prompt和image至少给一个否则抛ValueError如果此刻还没连上 Decart调用会静默返回不报错但也不生效。帧是怎么流转的断线后靠什么自愈数据流按顺序走五步用户发布视频轨道框架回调process_video存入当前轨道触发首次连接连接进行中有_connecting标志加锁重复调用不会二次建连。RealtimeClient.connect通过 WebSocket 连上 Decart Realtime API随连接下发初始状态prompt enhance 参考图并注册connection_change与error两个事件。Decart 开始回传重绘流后_on_remote_stream回调启动收帧协程循环recv()拉帧。每帧经DecartVideoTrack.add_frame做尺寸校验后写入一个容量为 2 的最新帧队列VideoLatestNQueue尺寸不符先缩放。通话侧从DecartVideoTrack.recv()取帧最多等 33 毫秒约 30fps 一帧的周期超时就回吐上一帧并刷新 PTS保证画面平稳不卡顿。容错与清理同样有明确设计实现见 decart_video_track.py轨道构造时先生成一张深色占位帧重绘帧没到达之前画面不黑。_should_reconnect只认两类可恢复错误websockets.ConnectionClosedError以及错误消息里含 connection / disconnect / timeout 的DecartSDKError。_on_error据此启动重连协程_processing_loop再每秒轮询一次做兜底事件驱动加轮询双保险。参与者离开触发stop_processing断开连接Agent 关闭时close()依次断开 Decart 连接、停止轨道、取消收帧/处理/重连三个后台协程、关闭DecartClient不留悬挂任务。⚠️ 重连只覆盖连接类错误。invalid api key这类配置错误不会触发自愈得改完 key 重启进程。避坑清单部署场景统一用DECART_API_KEY环境变量注入密钥别写进代码update_state在未连接时是静默 no-op——想生效就得在用户加入、连接建立之后再调用参考图用本地路径时路径相对运行目录解析容器挂载点要对得上width/height只影响发布端的缩放别指望靠它改变模型输出分辨率set_mirror只更新处理器本地的mirror标志镜像表现取决于调用方如何使用该值插件本身不会替你翻转画面。【免费下载链接】Vision-AgentsOpen Vision Agents by Stream. Build voice and vision agents quickly with any model or video provider. Uses Streams edge network for ultra-low latency.项目地址: https://gitcode.com/GitHub_Trending/vi/Vision-Agents创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考 SEO 优化官网定制响应式建站教育培训建站