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),仅供参考