ComfyUI Video Actor Extract
Paketprofil
README
从视频中自动检测、追踪、识别所有出场人物,输出每个人物的绿幕抠图视频和出镜元数据。
核心能力:
Quellen
3 QuellenQuellenauszüge
1 AuszugSource context: Repo ahkimkoo/ComfyUI-VideoActorExtract
┌─────────────────────────────────────────────────────────────────────┐
│ VideoActorExtractor Node │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ IMAGE batch (VHS LoadVideo) │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ PersonSegmenter │ YOLOv8-seg, 逐帧人物分割 │
│ │ (每帧检测) │ 输出: [(detection_idx, bool_mask), ...] │
│ └──────┬───────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ MaskTracker │ 质心距离追踪, 帧间关联 │
│ │ (帧间追踪) │ 输出: {actor_id: [(frame_idx, bool_mask, area)]} │
│ └──────┬───────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ IdentityCluster│ InsightFace 人脸特征 + 贪心聚类 │
│ │ (身份合并) │ 约束: 共现互斥 + 跨时段合并 │
│ └──────┬───────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ SegmentBuilder │ 连续段构建, 小间隙插值 │
│ │ (段构建) │ 输出: {actor_id: [segment_frames, ...]} │
│ └──────┬───────┘ │
│ │ │
│ ▼ │
│ ┌──────────────┐ │
│ │ Merger │ cv2.VideoWriter 编码 + JSON 生成 │
│ │ (视频输出) │ 输出: actor_X.mp4 + actor_info.json │
│ └──────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────┘
| 模块 | 文件 | 功能 |
|---|---|---|
| PersonSegmenter | pipeline/segmenter.py | YOLOv8-seg 人物分割,输出像素级掩码 |
| MaskTracker | pipeline/mask_tracker.py | 质心距离追踪,将同一人的连续帧关联为 track |
| IdentityCluster | pipeline/identity.py | InsightFace 人脸识别 + 贪心聚类,合并同一个人 |
| SegmentBuilder | nodes/actor_extractor.py | 连续段构建,小间隙帧插值 |
| Merger | pipeline/merger.py | 视频编码 + JSON 元数据生成 |
| VideoActorExtractor | nodes/actor_extractor.py | ComfyUI 主节点,编排整个管线 |
输入: {track_id: [FrameRecord, ...]}
输出: {track_id: "actor_0", ...}
算法:
1. 对每个 track 采样最多 30
Knoten in diesem Paket
2 Knoten (Plural)Verifiziert 11. Sept.
Verifiziert 11. Sept.