ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

CameraCtrl提示词工程入门:如何用cameractrl_prompts.json精准控制视频生成内容与种子

CameraCtrl提示词工程入门:如何用cameractrl_prompts.json精准控制视频生成内容与种子 CameraCtrl提示词工程入门如何用cameractrl_prompts.json精准控制视频生成内容与种子【免费下载链接】CameraCtrl项目地址: https://gitcode.com/gh_mirrors/ca/CameraCtrlCameraCtrl 是一款支持相机轨迹控制的文生视频扩散模型基于 Stable Diffusion 1.5 AnimateDiffV3本文带你用官方提示词文件assets/cameractrl_prompts.json精准控制 AI 视频生成内容与随机种子从 JSON 结构拆解、提示词写法规律到固定种子与完整推理命令一次跑通。 一文看懂提示词 轨迹 可控视频CameraCtrl 的输入是三件套缺一不可输入文件示例作用文本提示词assets/cameractrl_prompts.json决定视频生成什么内容相机轨迹assets/pose_files/0f47577ab3441480.txt决定镜头怎么运动随机种子JSON 中的seeds字段固定随机性保证结果可复现轨迹文件每行描述一帧相机的位置与朝向第 1 行为源视频地址推理时自动跳过项目还附带了对应的真实参考视频assets/reference_videos/和轨迹可视化图assets/trajectories_vis/方便你对照相机应该怎么动。 cameractrl_prompts.json 结构拆解提示词与种子一一对应官方示例文件非常简洁核心就是两个等长数组{ prompts: [ A serene mountain lake at sunrise, with mist hovering over the water., A horse is eating grass on the grassland. ], seeds: [ 6426918851609095805, 6426918851609095805 ] }规则很简单第 i 条提示词对应第 i 个种子。推理脚本inference.py按索引逐条配对因此两个数组必须等长。此外 JSON 还支持两种可选写法负面提示词加入negative_prompts数组等长并在命令中加--use_negative_prompt开关用于抑制你不想要的画面元素字典形式prompts元素也可写成{caption: ...}脚本会自动提取其中的caption字段。✍️ 提示词怎么写官方 11 条示例的 4 条规律分析assets/cameractrl_prompts.json里的全部示例从马在草原吃草到精灵宫殿瀑布可以总结出 4 条实用规律一句话 主体 动作 场景。例如 A horse is eating grass on the grassland.画面元素具体、不堆砌用英文描述风格与 Stable Diffusion 训练数据一致长度适中最短 3 个词Turtle swimming in ocean.最长也不超过两行避免生僻词注意副作用输出的 MP4 文件名会直接取提示词空格替换为下划线所以别在提示词里放特殊符号。想生成房地产风格视频项目提供了领域提示词示例assets/cameractrl_prompts_realestate10k.json厨房、浴室、卧室等 10 条室内场景描述配合 RealEstate10K 图像 LoRA通过--image_lora_ckpt加载即可出图。 种子机制详解固定随机性让视频生成可复现换一次种子、换一个视频是扩散模型的基本特性CameraCtrl 把它做成了逐条可指定的精细控制命令中加上--use_specific_seeds开关后脚本会读取 JSON 的seeds数组对每一条提示词单独调用manual_seed(...)再采样不加该开关时随机数生成器以固定初始值顺序推进不同提示词之间互不相同但无法单独复现某一条同一个种子可以复用给不同提示词官方示例中 3 条提示词共用了一个种子方便做同随机性、不同文案的对照实验。 实战建议满意的结果立刻记下它的 seed 写回 JSON下次一键复现不满意就换种子多抽几次。 一键推理命令完整参数与默认值速查先克隆仓库并配置环境git clone https://gitcode.com/gh_mirrors/ca/CameraCtrl然后conda env create -f environment.yaml再执行官方示例命令python -m torch.distributed.launch --nproc_per_node8 --master_port25000 inference.py \ --out_root ./output \ --ori_model_path /path/to/stable-diffusion-v1-5 \ --unet_subfolder unet_webvidlora_v3 \ --motion_module_ckpt /path/to/ADV3_motion_module.ckpt \ --pose_adaptor_ckpt /path/to/CameraCtrl.ckpt \ --model_config configs/train_cameractrl/adv3_256_384_cameractrl_relora.yaml \ --visualization_captions assets/cameractrl_prompts.json \ --use_specific_seeds \ --trajectory_file assets/pose_files/0f47577ab3441480.txt \ --n_procs 8常用参数速查表完整定义见inference.py参数默认值说明--visualization_captions必填提示词文件路径支持 JSON 或 TXT--use_specific_seeds关启用 JSON 中逐条种子--use_negative_prompt关启用 JSON 中负面提示词--trajectory_file必填相机轨迹 txt 文件--n_procs8参与并行的 GPU 数--image_width / --image_height384 / 256输出视频分辨率--video_length16生成帧数--num_inference_steps25去噪步数越大越精细、越慢--guidance_scale14.0提示词遵循强度 进阶技巧多 GPU 任务分配与轨迹调试任务自动切分inference.py会把len(prompts)均分到--n_procs张卡前len(prompts) % n_procs张卡多承担 1 条。官方 11 条提示词 8 卡即 3 张卡各跑 2 条、5 张卡各跑 1 条轨迹可视化跑之前先用tools/visualize_trajectory.py --pose_file_path assets/pose_files/0f47577ab3441480.txt把轨迹画成 3D 图红色箭头表示位移、四面体朝向表示旋转避免盲跑个性化风格通过--personalized_base_model加载第三方写实风模型权重可在同一套提示词工程下切换画面风格换轨迹不换词同一提示词配合assets/pose_files/下不同轨迹文件反复推理即可得到同内容、不同运镜的系列视频这正是相机轨迹控制的价值所在。❓ 常见问题 FAQ问为什么输出视频文件名是一串下划线英文脚本用_.join(caption.split( ))把提示词转为文件名方便对照来源写提示词时避免冒号、斜杠等非法文件名字符即可。问seeds 数量能和 prompts 不一致吗建议严格 1:1。脚本按下标取种子数量不匹配会导致某条提示词取不到种子而报错。问只想快速看效果能少写配置吗可以。除--n_procs改为实际卡数外其余参数分辨率、步数、guidance都有合理默认值直接省略即可。小结掌握assets/cameractrl_prompts.json中prompts与seeds的等长配对关系再配合--use_specific_seeds开关你就能用最少的心智负担稳定复现每一条 CameraCtrl 视频生成结果——这正是提示词工程在可控视频生成中的核心玩法。【免费下载链接】CameraCtrl项目地址: https://gitcode.com/gh_mirrors/ca/CameraCtrl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进