forked from 77media/video-flow
修复草图生成失败卡住问题
This commit is contained in:
parent
182712b80a
commit
fe879931ea
@ -215,11 +215,14 @@ export function useWorkflowData({}: UseWorkflowDataProps = {}) {
|
||||
// 如果有已完成的数据,同步到状态
|
||||
if (task.task_name === 'generate_character' && task.task_result && task.task_result.data) {
|
||||
let realCharacterResultData = task.task_result.data.filter((item: any) => item.image_path);
|
||||
if (task.task_status === 'COMPLETED') {
|
||||
if (task.task_status === 'COMPLETED' || task.task_status === 'FAILED') {
|
||||
realCharacterResultData = taskCurrent.roles.data.filter((item: any) => item.status !== 0);
|
||||
}
|
||||
taskCurrent.roles.total_count = task.task_result.total_count;
|
||||
if (task.task_status !== 'COMPLETED' || taskCurrent.roles.total_count !== realCharacterResultData.length) {
|
||||
if (task.task_status === 'FAILED' && taskCurrent.roles.total_count === realCharacterResultData.length) {
|
||||
continue;
|
||||
}
|
||||
taskCurrent.currentStage = 'character';
|
||||
// 正在生成角色中 替换角色数据
|
||||
const characterList = [];
|
||||
@ -227,7 +230,7 @@ export function useWorkflowData({}: UseWorkflowDataProps = {}) {
|
||||
characterList.push({
|
||||
name: character.character_name,
|
||||
url: character.image_path,
|
||||
status: character.image_path ? 1 : (task.task_status === 'COMPLETED' ? 2 : 0),
|
||||
status: character.image_path ? 1 : ((task.task_status === 'COMPLETED' || task.task_status === 'FAILED') ? 2 : 0),
|
||||
type: 'role'
|
||||
});
|
||||
}
|
||||
@ -242,11 +245,15 @@ export function useWorkflowData({}: UseWorkflowDataProps = {}) {
|
||||
|
||||
if (task.task_name === 'generate_sketch' && task.task_result && task.task_result.data) {
|
||||
let realSketchResultData = task.task_result.data.filter((item: any) => item.image_path);
|
||||
if (task.task_status === 'COMPLETED') {
|
||||
if (task.task_status === 'COMPLETED' || task.task_status === 'FAILED') {
|
||||
realSketchResultData = taskCurrent.scenes.data.filter((item: any) => item.status !== 0);
|
||||
}
|
||||
taskCurrent.scenes.total_count = task.task_result.total_count;
|
||||
if (task.task_status !== 'COMPLETED' || taskCurrent.scenes.total_count !== realSketchResultData.length) {
|
||||
console.log('task.task_status', task.task_status, 'taskCurrent.scenes.total_count', taskCurrent.scenes.total_count, 'realSketchResultData.length', realSketchResultData.length);
|
||||
if (task.task_status === 'FAILED' && taskCurrent.scenes.total_count === realSketchResultData.length) {
|
||||
continue;
|
||||
}
|
||||
taskCurrent.currentStage = 'scene';
|
||||
// 正在生成草图中 替换 sketch 数据
|
||||
const sketchList = [];
|
||||
@ -254,7 +261,7 @@ export function useWorkflowData({}: UseWorkflowDataProps = {}) {
|
||||
sketchList.push({
|
||||
url: sketch.image_path,
|
||||
script: sketch.sketch_name,
|
||||
status: sketch.image_path ? 1 : (task.task_status === 'COMPLETED' ? 2 : 0),
|
||||
status: sketch.image_path ? 1 : ((task.task_status === 'COMPLETED' || task.task_status === 'FAILED') ? 2 : 0),
|
||||
type: 'scene'
|
||||
});
|
||||
}
|
||||
@ -562,9 +569,10 @@ export function useWorkflowData({}: UseWorkflowDataProps = {}) {
|
||||
return newState;
|
||||
});
|
||||
|
||||
// 设置是否需要获取流式数据
|
||||
// setNeedStreamData(taskCurrent.status !== 'COMPLETED');
|
||||
setNeedStreamData(true);
|
||||
// 设置是否需要获取流式数据 如果任务已完成 或者 有正在生成的视频 则需要获取流式数据
|
||||
// 判断是否有正在生成的视频
|
||||
const isGeneratingVideo = taskCurrent.videos.data.some((item: any) => item.video_status === 0);
|
||||
setNeedStreamData(taskCurrent.status !== 'COMPLETED' || isGeneratingVideo);
|
||||
|
||||
} catch (error) {
|
||||
console.error('初始化失败:', error);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user