| 1 | # 动作迁移 |
| 2 | |
| 3 | 动作迁移对应 `action_transfer` pipeline。它接收一张角色/人物参考图片、一段动作视频和提示词,调用支持动作迁移能力的视频模型生成结果。 |
| 4 | |
| 5 | ## 请求 |
| 6 | |
| 7 | ```bash |
| 8 | curl -X POST "http://localhost:8000/api/pipelines/action_transfer/tasks" \ |
| 9 | -H "Content-Type: application/json" \ |
| 10 | -d '{ |
| 11 | "prompt_text": "让参考图片中的角色完成动作视频中的舞蹈动作,保持人物身份一致", |
| 12 | "image_path": "/absolute/path/to/person.png", |
| 13 | "video_path": "/absolute/path/to/action.mp4", |
| 14 | "video_model": "wan2.7-videoedit", |
| 15 | "video_ratio": "9:16", |
| 16 | "duration": 5, |
| 17 | "negative_prompt": "" |
| 18 | }' |
| 19 | ``` |
| 20 | |
| 21 | ## 参数说明 |
| 22 | |
| 23 | | 参数 | 必填 | 默认 | 说明 | |
| 24 | |------|------|------|------| |
| 25 | | `prompt_text` | ✅ | | 动作迁移效果描述 | |
| 26 | | `image_path` | ✅ | | 参考图片路径,可使用上传接口返回的 `file_path` | |
| 27 | | `video_path` | ✅ | | 动作视频路径,可使用上传接口返回的 `file_path` | |
| 28 | | `video_model` | | `wan2.7-videoedit` | 需支持 `action_transfer` 能力 | |
| 29 | | `duration` | | `5` | 目标视频时长 | |
| 30 | | `video_ratio` | | `9:16` | 视频比例 | |
| 31 | | `resolution` | | | 可选分辨率 | |
| 32 | | `negative_prompt` | | | 负向提示词 | |
| 33 | | `watermark` | | | 是否保留模型水印 | |
| 34 | | `prompt_extend` | | | 是否启用模型提示词扩展 | |
| 35 | |
| 36 | ## 上传媒体 |
| 37 | |
| 38 | ```bash |
| 39 | curl -X POST "http://localhost:8000/api/upload_media" \ |
| 40 | -F "file=@/path/to/person.png" |
| 41 | |
| 42 | curl -X POST "http://localhost:8000/api/upload_media" \ |
| 43 | -F "file=@/path/to/action.mp4" |
| 44 | ``` |
| 45 | |
| 46 | 把响应中的 `file_path` 分别填入 `image_path` 和 `video_path`。 |
| 47 | |
| 48 | ## 产物 |
| 49 | |
| 50 | 产物目录: |
| 51 | |
| 52 | ```text |
| 53 | video-claw/backend/code/result/task/{task_id}/ |
| 54 | ``` |
| 55 | |
| 56 | 常见产物: |
| 57 | |
| 58 | | 文件 | 说明 | |
| 59 | |------|------| |
| 60 | | `input_image.*` | 复制后的参考图片 | |
| 61 | | `input_video.*` | 复制后的动作视频 | |
| 62 | | `final.mp4` | 动作迁移生成视频 | |
| 63 | | `request.json` | 请求参数和产物路径 | |
| 64 | |
| 65 | ## 响应 |
| 66 | |
| 67 | ```json |
| 68 | { |
| 69 | "task_id": "20260429_170348_a281f881", |
| 70 | "pipeline": "action_transfer", |
| 71 | "status": "pending", |
| 72 | "metadata_url": "/api/tasks/20260429_170348_a281f881", |
| 73 | "output_dir": "/.../backend/code/result/task/20260429_170348_a281f881" |
| 74 | } |
| 75 | ``` |
| 76 | |
| 77 | 任务完成后查询: |
| 78 | |
| 79 | ```bash |
| 80 | curl "http://localhost:8000/api/tasks/{task_id}" |
| 81 | ``` |
| 82 | |
| 83 | `output.video_path` 指向生成视频。 |
| 84 | |
| 85 | ## 模型能力筛选 |
| 86 | |
| 87 | ```bash |
| 88 | curl "http://localhost:8000/api/models?media_type=video&ability=action_transfer&verified_only=true" |
| 89 | ``` |
| 90 | |
| 91 | ## 前端入口 |
| 92 | |
| 93 | ```text |
| 94 | http://localhost:3000/pipelines/action-transfer |
| 95 | ``` |
| 96 | |
| 97 | 前端支持通过文件管理器上传参考图片和动作视频。 |
| 98 | |
| 99 | ## 注意事项 |
| 100 | |
| 101 | 1. 动作迁移不支持标题/字幕叠加。 |
| 102 | 2. 输入图片和动作视频的主体差异过大时,身份保持可能变差。 |
| 103 | 3. 任务状态中的产物会展示图片、视频和音频;日志不会直接显示在任务状态面板中。 |
| 104 |