Vision-Agents 实时视频风格迁移:5 分钟让摄像头画面变成动画
2026/9/20 19:48:36 网站建设 项目流程

Vision-Agents 实时视频风格迁移:5 分钟让摄像头画面变成动画

【免费下载链接】Vision-AgentsOpen Vision Agents by Stream. Build voice and vision agents quickly with any model or video provider. Uses Stream's edge network for ultra-low latency.项目地址: https://gitcode.com/GitHub_Trending/vi/Vision-Agents

Vision-Agents 是 Stream 出品的开源框架,用来快速搭建语音和视觉智能体。它的 Decart 插件可以把你的摄像头画面做实时视频风格迁移,普通视频通话瞬间变成动画风格,你只需要一个 API Key 和十几行代码。

当视频通话碰上实时风格迁移 🎬

场景很直观:你开着一场视频通话,对方看到的不是一张真实的人脸,而是一个随你动作、表情同步的动画角色,背景也一并被"重绘"成动画里的场景。全程不离线渲染、不上传视频文件,画面延迟低到可以正常对话。

上图为 mirage 模型的实时风格迁移演示:画面里的人被逐帧转换成插画风格,动作保持不变,风格逐帧跟随。这正是RestylingProcessor跑在通话里的效果。

实时视频风格迁移的最短跑通路径

先 clone 仓库:git clone https://gitcode.com/GitHub_Trending/vi/Vision-Agents,进入plugins/decart/example目录后,用uv sync一次性装好依赖(示例已声明好 vision-agents 及 openai、decart、elevenlabs、deepgram、getstream 等插件)。

接着创建.env文件,填入两家的密钥:

DECART_API_KEY=your_decart_key STREAM_API_KEY=your_stream_key STREAM_API_SECRET=your_stream_secret

然后写最小可运行代码,核心就是把处理器挂到 Agent 上:

from vision_agents.core import Agent, Runner, User from vision_agents.plugins import decart, getstream, openai processor = decart.RestylingProcessor( initial_prompt="Studio Ghibli animation style", model="lucy_2_rt", ) llm = openai.LLM(model="gpt-5") agent = Agent( edge=getstream.Edge(), agent_user=User(name="Styled AI", id="agent"), instructions="Be helpful", llm=llm, processors=[processor], )

跑起来后,uv run decart_example.py run会创建一场通话并在浏览器打开演示界面,你进线后摄像头画面就会被实时转成吉卜力风格,LLM 还能正常跟你语音对话。完整写法参考 plugins/decart/example/decart_example.py。

一帧视频如何变成动画:原理速览

不用了解细节也能看懂的链路是这样的:RestylingProcessor拿到你的本地视频轨道后,通过 WebSocket 把帧持续推给 Decart 的实时推理接口;服务端模型按你给的初始提示词(比如 "Studio Ghibli animation style")逐帧重绘,再把处理后的帧沿同一条连接发回来;处理器把这些帧包装成一条全新的视频轨道发布到通话里。你看到的"动画版自己",就是这条轨道。

提示词在这里就是"风格旋钮"——它决定了每一帧往哪个方向重绘。除了文本,还支持在连接时传一张参考图(initial_image,接受字节、本地路径、URL、data URI 或 base64),画面会以图中元素为基准来生成,这是后面"换装"能力的基础。连接断开时处理器会自动重连,通话中途掉线不用手动恢复。

运行时换风格:动态提示词的进阶玩法 ⚡

初始风格只是起点,真正有意思的是运行中随时换。把下面这段注册为 LLM 的工具函数后,用户用嘴说"把画面变成暴风雨之夜",LLM 就会调用它改风格:

@llm.register_function( description="Change the video style prompt" ) async def change_style(prompt: str) -> str: await processor.update_prompt(prompt) return f"Style changed to {prompt}"

效果是:提示词一变,接下来推流的每一帧都按新风格渲染,画面平滑过渡,不用重连。update_state(prompt=..., image=...)还能把提示词和参考图一起原子替换,官方示例就靠它做"虚拟试穿"——你说"给我穿上超人装",画面里的人就换装,不会出现新旧状态混杂的半更新帧。

实时视频风格迁移适合谁用

  • 做视频通话产品的团队:给通话加一层"特效滤镜",且是生成式的,不是套模板。
  • 内容创作者和主播:直播画面实时转风格,节目形态直接拉开差距。
  • 互动应用开发者:让 LLM 根据对话内容驱动画面变化,把"聊天"变成"演出"。
  • 想试生成式视频但不想自建推理链路的开发者:一条 WebSocket 连接替代整个管线。

完整文档见 plugins/decart/README.md。下一步建议直接打开plugins/decart/example跑通示例,再按你自己的风格提示词和参考图改造,半小时就能出自己的版本。

【免费下载链接】Vision-AgentsOpen Vision Agents by Stream. Build voice and vision agents quickly with any model or video provider. Uses Stream's edge network for ultra-low latency.项目地址: https://gitcode.com/GitHub_Trending/vi/Vision-Agents

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询