WorkRally 场次与剧集工作流
详细说明 WorkRally 的 project、series、shot 结构,以及场次创建、角色识别、模型配置、批量生成、结果查询和多场次工作流。
结构关系
- 项目 `project` 是最上层容器。
- 剧集 `series` 归属项目。
- 场次 `shot` 或 `story` 归属剧集,是图像和动画提示词的核心承载单元。
- `image_prompt` 决定关键帧画面,`animation_prompt` 决定动效与运镜。
标准工作流
shot-workflow.shbash
# 1. 创建项目
PROJECT_ID=$(workrally project create "我的短番" -o json | jq -r '.project_id')
# 2. 创建剧集
SERIES_ID=$(workrally series create --project-id $PROJECT_ID --name "第一集" -o json | jq -r '.series_id')
# 3. 批量创建场次
workrally shot create --series-id $SERIES_ID --json-list '[
{"image_prompt":"古风庭院全景","animation_prompt":"镜头缓推"},
{"image_prompt":"两位侠客对峙","animation_prompt":"推近脸部特写"}
]'
# 4. 识别角色
workrally shot recognize --project-id $PROJECT_ID --series-id $SERIES_ID
# 5. 配置模型
workrally shot image-models -o json
workrally shot video-models -o json
workrally shot set-model --series-id $SERIES_ID --video-provider <N> --duration 5 --aspect-ratio 16:9
# 6. 批量生成
STORY_IDS=$(workrally shot list --series-id $SERIES_ID -o json | jq -r '[.story_list[].story_id] | join(",")')
workrally shot generate-image --story-ids "$STORY_IDS"
workrally shot generate-video --story-ids "$STORY_IDS"
# 7. 按场次查结果
workrally shot get-result --story-id <story_id> --type image --watch
workrally shot get-result --story-id <story_id> --type video --watch如果你是从小说、剧本或故事分镜进入,建议先在外部用 LLM 拆成场景段落,再批量写入 `shot create --json-list`。
场次专用模型配置
set-model.shbash
# 场次专用模型接口
workrally shot image-models -o json # 取 models[].en_name
workrally shot video-models -o json # 取 models[].provider
# 推荐写法:用 provider 让 CLI 自动补 mode=9
workrally shot set-model --story-ids st_1,st_2 --video-provider 1 --duration 5 --aspect-ratio 16:9
# 图片模型
workrally shot set-model --story-ids st_1,st_2 --image-model <en_name> --aspect-ratio 16:9- 视频推荐用 `--video-provider`,CLI 会自动拼成 `mode=9 + provider`。
- 图片模型从 `models[].en_name` 里选。
- 比例、时长、音效支持都取决于模型动态返回结果。
角色识别
`shot recognize` 会根据 `image_prompt` 和 `animation_prompt` 分别识别角色并写回对应字段。 如果你两个提示词都写了,就会有两路识别结果;只写一路,就只识别那一路。
结果查询
`shot generate-image` 和 `shot generate-video` 只代表“提交成功”,它们不是画布任务轮询模式。 结果查询必须走 shot get-result --story-id <id> --type image|video。
- `state = all_done` 表示该场次该类型已经没有进行中任务。
- `doing_count`、`done_count`、`failed_count` 可以直接看当前进度。
- `--watch` 会自动按间隔轮询直到结束。