需求通常是这样的:把这段视频里的司机换成我的人,位置、姿势一样,车、路、光线和镜头原样保留。这就是人物替换,它和「用一张照片生成新视频」不同:原片提供动作、构图和节奏,模型只重建那个人。
Wan 3.0 用全能参考模式一次调用就能完成。原片作为参考视频传入,新人物作为参考图传入,提示词里按「视频1」「图1」「图2」称呼它们。不需要蒙版、不需要跟踪,也不用另外做一遍换脸。
按顺序说三件事:换掉谁(视频1里的人,或者司机、主播、舞者)、换成谁(图1里的人)、什么不能变。最后一部分最关键。把你在意的东西逐项写出来 —— 车辆、内饰、背景、光线、镜头角度与运动、动作和节奏 —— 因为没写到的,模型都可能「顺手改进」。
如果有同一个人的多张照片,全部传上去并在提示词里说明:「图1、图2、图3 是同一个人的不同角度」。正面、四分之三侧、侧面三张图,能在人物转头时让脸和服装保持一致。尽量让照片的取景和原片一致 —— 全身镜头配全身照。
如果原片带着字幕或水印、不想被带到新视频里,最后加一句要求去掉画面上的文字。
这个技巧现在被复制最多的用法是 AI 开车大片:一段电影感的豪车驾驶视频,把司机换成你照片里的人,车、路和镜头都不动。它在 2026 年 9 月的 Instagram 和 YouTube 上爆火。4 条现成提示词、驾驶视频怎么选、一条多少钱,都在专门的页面里。
带参考视频时,Wan 3.0 按同一个每秒单价对「输入视频秒数 + 输出秒数」计费,两者合计上限 30 秒。duration 设为 -1 时输出与原片等长,所以账单约等于「原片时长 × 2 × 单价」。Prime 档跑同样的任务快约 6 倍,价格约 1.5 倍。参考图不额外收费。
| 分辨率 | 标准档 每秒 | Prime 每秒 | 9 秒原片,标准档(计费 18 秒) |
|---|---|---|---|
| 480P | $0.045 | $0.068 | $0.81 |
| 720P | $0.09 | $0.14 | $1.62 |
| 1080P | $0.18 | $0.28 | $3.24 |
参考视频须为 1 到 15 秒,输入加输出不超过 30 秒,长素材要先剪短。标准档一段 720P 通常要 4 到 10 分钟;prime 能缩到一分钟左右。一段视频里只有一个人最稳定 —— 人多了模型得猜你指的是谁。
真人照片可能被上游的内容审核拒掉,暴露的服装也会。手部接触物体的地方 —— 方向盘、杯子、话筒 —— 是输出里最弱的部分。只替换已同意的人,也绝不要用它让某人看起来做了或说了他没做过的事。
如果只需要让人物跟着原片动作动、背景用你自己的,或者想要更低的单价,Wan 2.2 Animate 的 replace 模式(480P $0.0742/秒,只按参考视频秒数计费)是更轻的选择。
cURL
curl -X POST https://api.apimodels.app/v1/video/generations \
-H "Authorization: Bearer $APIMODELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan-3.0-video",
"prompt": "Replace the driver in video 1 with the person in figure 1 and figure 2 (the same person from two angles). Keep their face, hair, build and clothing exactly as in the figures. Keep everything else from video 1 unchanged: the car, the interior, the road, the lighting, the camera angle and movement, the driving motion and the timing.",
"reference_video_urls": ["https://your-bucket.example/driving-shot.mp4"],
"reference_image_urls": ["https://your-bucket.example/person-front.jpg", "https://your-bucket.example/person-side.jpg"],
"resolution": "720P",
"mode": "standard",
"duration": -1
}'
# -> {"data": {"taskId": "..."}} then GET /v1/video/generations?task_id=...Python
import requests, time, os
API = "https://api.apimodels.app/v1/video/generations"
H = {"Authorization": f"Bearer {os.environ['APIMODELS_API_KEY']}"}
TEMPLATE = (
"Replace the person in video 1 with the person shown in {figs}"
"{same}. Keep their face, hair, build and clothing exactly as in the "
"reference. Keep everything else from video 1 unchanged: movements, gestures "
"and timing, camera framing and motion, lighting, background and setting."
)
def swap(video_url, image_urls, resolution="720P", mode="standard"):
figs = ", ".join(f"figure {i + 1}" for i in range(len(image_urls)))
same = " (the same person from different angles)" if len(image_urls) > 1 else ""
r = requests.post(API, headers=H, json={
"model": "wan-3.0-video",
"prompt": TEMPLATE.format(figs=figs, same=same),
"reference_video_urls": [video_url],
"reference_image_urls": image_urls,
"resolution": resolution, "mode": mode,
"duration": -1, # output length follows the reference clip
}).json()
task = r["data"]["taskId"]
while True:
s = requests.get(API, headers=H, params={"task_id": task}).json()["data"]
if s["state"] in ("completed", "failed"):
return s
time.sleep(15)能。用 Wan 3.0 把视频作为参考视频、新人物的照片作为参考图发过去,提示词写「把视频1里的人换成图1里的人,其余保持不变」。动作、镜头和场景都来自原片。
在提示词里把它们列为必须保持不变的:车辆、内饰、道路、地点、背景、光线、镜头角度、镜头运动和动作节奏。你点名的东西,模型保留得比没提到的可靠得多。
在 apimodels.app 上 720P 标准档约 $1.80:10 秒输入加 10 秒输出,每秒 $0.09。480P 约 $0.90,1080P 约 $3.60。Prime 贵约 1.5 倍、快约 6 倍。
有的话用多张。同一个人不同角度的 2 到 4 张照片,并在提示词里说明是同一个人,能在人物转身时保持脸和服装稳定。人物基本正对镜头的镜头,一张清晰的正面照就够。
不一样。换脸只改脸,保留原来的身体和服装。人物替换会按参考图重建整个人 —— 脸、发型、身材和服装,新人物要完全换个样子时就该用它。