feat: 解耦角色与模特并完善模特库

This commit is contained in:
hh
2026-07-13 11:02:30 +08:00
parent 564215dc53
commit fc0f0ca370
22 changed files with 1328 additions and 314 deletions
+6 -6
View File
@@ -996,18 +996,18 @@ export function App() {
const assetId = await submitAndPollAsset(() => api.generateTriview(pipelineProject.id, { portrait_asset_id: portraitAssetId }), "三视图已据立绘生成");
return assetId ? { id: assetId } : null;
}}
onGenerateActor={(prompt) => generateImages({ prompt, mode: "model", count: 1 })}
onUploadActor={(file) => {
onGenerateModel={(prompt) => generateImages({ prompt, mode: "model", count: 1 })}
onUploadModel={(file) => {
const fd = new FormData();
fd.append("file", file);
fd.append("name", file.name);
fd.append("asset_type", "image");
fd.append("category", "person");
// 返回上传后的 Asset(供添加人物工作台进右侧栏做三视图/命名)
fd.append("category", "model_portrait");
// 返回上传后的模特形象 Asset,保存模特时复用它创建 Model。
return action(() => api.uploadAsset(fd), "");
}}
// 流程步骤4 · 添加人物工作台命名:把名字写回该人物资产
onRenameActor={(assetId, name) => action(() => api.updateAsset(assetId, { name }), "")}
// 流程步骤4 · 添加模特工作台命名:同步写回形象资产名称。
onRenameModel={(assetId, name) => action(() => api.updateAsset(assetId, { name }), "")}
onSkipStoryboard={() => action(() => api.skipStoryboard(pipelineProject.id), "已跳过故事板")}
onSubmitVideo={(segmentId, prompt) => action(() => api.submitVideo(pipelineProject.id, { video_segment_id: segmentId, prompt }), "视频片段已提交,生成中…")}
onSubmitAllVideos={(prompt) =>