fix: clarify storyboard video candidate generation

This commit is contained in:
2026-05-19 13:50:46 +08:00
parent ce4ff74b7d
commit e6d957fcab
4 changed files with 49 additions and 37 deletions

View File

@@ -6214,7 +6214,7 @@ def _enqueue_storyboard_videos(job: Job, frame: KeyFrame, req: GenerateStoryboar
bg.add_task(render_storyboard_video, *task_args)
else:
threading.Thread(target=render_storyboard_video, args=task_args, daemon=True).start()
update(job, generated_videos=items + job.generated_videos, message=f"视频抽卡已提交 · 分镜 {frame.index + 1} · {count} ")
update(job, generated_videos=items + job.generated_videos, message=f"视频候选已提交 · 分镜 {frame.index + 1} · {count} ")
return ids
@@ -6239,7 +6239,7 @@ def _batch_generate_worker(job_id: str, req: BatchGenerateStoryboardReq) -> None
count = max(1, min(12, int(req.count_per_row or 4)))
concurrency = max(1, min(8, int(req.concurrency or 4)))
frames = list(job.frames)
update(job, message=f"整片一键抽卡已启动 · 0/{len(frames)}", error="")
update(job, message=f"整片视频候选生成已启动 · 0/{len(frames)}", error="")
done = 0
def submit_one(frame: KeyFrame) -> None:
@@ -6274,15 +6274,15 @@ def _batch_generate_worker(job_id: str, req: BatchGenerateStoryboardReq) -> None
)
_enqueue_storyboard_videos(job, frame, video_req, None)
except Exception as e:
update(job, error=f"分镜 {frame.index + 1} 抽卡失败:{str(e)[:220]}")
update(job, error=f"分镜 {frame.index + 1} 候选生成失败:{str(e)[:220]}")
finally:
done += 1
update(job, message=f"整片一键抽卡进行中 · {done}/{len(frames)}")
update(job, message=f"整片视频候选生成中 · {done}/{len(frames)}")
with ThreadPoolExecutor(max_workers=concurrency) as executor:
futures = [executor.submit(submit_one, frame) for frame in frames]
wait(futures)
update(job, message=f"整片一键抽卡已提交 · {len(frames)}/{len(frames)} 条 · 每条 {count} ")
update(job, message=f"整片视频候选已提交 · {len(frames)}/{len(frames)}分镜 · 每条 {count} 个候选")
@app.post("/jobs/{job_id}/storyboard/batch-generate-all", response_model=Job)
@@ -6294,7 +6294,7 @@ def batch_generate_all_storyboard(job_id: str, req: BatchGenerateStoryboardReq)
if not job.frames:
raise HTTPException(400, "no frames to generate")
threading.Thread(target=_batch_generate_worker, args=(job_id, req), daemon=True).start()
update(job, message=f"整片一键抽卡已启动 · {len(job.frames)} 条 · 每条 {max(1, min(12, int(req.count_per_row or 4)))} ")
update(job, message=f"整片视频候选生成已启动 · {len(job.frames)}分镜 · 每条 {max(1, min(12, int(req.count_per_row or 4)))} 个候选")
return job