How tencent/weviscut works
WeVisCut turns an article or narration script into an edited multi-minute video through a policy-driven tool loop: the inference orchestrator reads editing state, chooses one action, dispatches a tool, and continues until stitching. The Studio serves that workflow and adds live monitoring, timeline editing, chat revision, rerendering, and rollback. A separate data-construction package records training trajectories and provides campaign operations. The README documents these capabilities; some data-pipeline and Studio internals were not sampled, so their unverified links are omitted.
Main entry points: infer_graph.py Policy Orchestrator · app.py Studio HTTP App · llm.py LLM Client · router.py Edit Router
Components 26
Inference Runtime
- Policy Orchestrator
server/infer_graph.py - Editing State
pipeline/state.py - 9B Model
server/model_loader.py - LLM Client
pipeline/llm.py
Editing Tools
- Article Segmenter
pipeline/tools/segment_article.py - Shot Planner
pipeline/tools/plan_shots.py - Narration TTS
pipeline/tools/generate_audio.py - Footage Retrieval
pipeline/tools/retrieve_visual.py - Template Decoration
pipeline/tools/decorate_shot.py - BGM Search
pipeline/tools/music_search.py - Shot Composer
pipeline/tools/timeline_compose.py - Quality Judges
pipeline/tools/vlm_render_judge.py - Repair Reflection
pipeline/tools/self_reflect.py - Video Stitcher
pipeline/tools/stitch_video.py
Studio
- Studio HTTP App
studio/app.py - Model Access
studio/model_client.py - Runtime Config
studio/config.py - Edit Operations
studio/newvis0907/operations.py - Chat Edit Planner
studio/newvis0907/chat_planner.py - Edit Router
studio/newvis0907/router.py
Trajectory Data
- Pipeline Bridge
data_construct_pipeline/src/longvideo_polar/pipeline_bridge.py - Data Model Client
data_construct_pipeline/src/longvideo_polar/model_client.py - Trajectory Recorder
data_construct_pipeline/src/longvideo_polar/recorder.py - Campaign Control
data_construct_pipeline/src/longvideo_polar/webui/server.py
Other components
- Editor / User
- Article / Script
Connections 27
- Editor / User → Studio HTTP App: starts / edits
studio/app.py - Article / Script → Policy Orchestrator: provides input
README.md - Policy Orchestrator → Editing State: updates state
server/infer_graph.py - Policy Orchestrator → 9B Model: requests decision
server/infer_graph.py - Policy Orchestrator → Article Segmenter: dispatches tool
server/infer_graph.py - Policy Orchestrator → Shot Planner: dispatches tool
server/infer_graph.py - Policy Orchestrator → Narration TTS: dispatches tool
server/infer_graph.py - Policy Orchestrator → Footage Retrieval: dispatches tool
server/infer_graph.py - Policy Orchestrator → Template Decoration: dispatches tool
server/infer_graph.py - Policy Orchestrator → BGM Search: dispatches tool
server/infer_graph.py - Policy Orchestrator → Shot Composer: dispatches tool
server/infer_graph.py - Policy Orchestrator → Quality Judges: dispatches tool
server/infer_graph.py - Policy Orchestrator → Repair Reflection: dispatches tool
server/infer_graph.py - Policy Orchestrator → Video Stitcher: dispatches tool
server/infer_graph.py - Article Segmenter → LLM Client: calls
pipeline/tools/segment_article.py - Shot Planner → LLM Client: calls
pipeline/tools/plan_shots.py - Footage Retrieval → LLM Client: calls
pipeline/tools/retrieve_visual.py - Repair Reflection → LLM Client: calls
pipeline/tools/self_reflect.py - Studio HTTP App → Model Access: uses model access
studio/app.py - Studio HTTP App → Runtime Config: uses configuration
studio/app.py - Studio HTTP App → Edit Router: routes editing
studio/app.py - Edit Router → Edit Operations: calls operations
studio/newvis0907/router.py - Edit Router → Chat Edit Planner: plans chat edits
studio/newvis0907/router.py - Chat Edit Planner → Edit Operations: uses operations
studio/newvis0907/chat_planner.py - Pipeline Bridge → Policy Orchestrator: loads inference loop
data_construct_pipeline/src/longvideo_polar/pipeline_bridge.py - Data Model Client → Trajectory Recorder: records trajectories
data_construct_pipeline/src/longvideo_polar/model_client.py - Campaign Control → Trajectory Recorder: manages campaign data