forked from 77media/video-flow
处理文生和图生提示词
This commit is contained in:
parent
2b4208fb41
commit
6d94867eab
@ -3,7 +3,7 @@ import { BASE_URL } from './constants'
|
|||||||
// 创建 axios 实例
|
// 创建 axios 实例
|
||||||
const request: AxiosInstance = axios.create({
|
const request: AxiosInstance = axios.create({
|
||||||
baseURL: BASE_URL, // 设置基础URL
|
baseURL: BASE_URL, // 设置基础URL
|
||||||
timeout: 10000, // 请求超时时间
|
timeout: 300000, // 请求超时时间
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
},
|
},
|
||||||
|
|||||||
@ -37,7 +37,7 @@ export type ConvertScenePromptResponse = ApiResponse<ConvertScenePromptData>;
|
|||||||
export const convertScenePrompt = async (
|
export const convertScenePrompt = async (
|
||||||
request: ConvertScenePromptRequest
|
request: ConvertScenePromptRequest
|
||||||
): Promise<ConvertScenePromptResponse> => {
|
): Promise<ConvertScenePromptResponse> => {
|
||||||
return post<ConvertScenePromptResponse>('/video_flow/convert-scene-prompt', request);
|
return post<ConvertScenePromptResponse>('/video_flow/convert-scene-prompts', request);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@ -20,6 +20,7 @@ import { ProjectTypeEnum, ModeEnum, ResolutionEnum } from "@/api/enums";
|
|||||||
import { createScriptProject, CreateScriptProjectRequest } from "@/api/script_project";
|
import { createScriptProject, CreateScriptProjectRequest } from "@/api/script_project";
|
||||||
import { createScriptEpisode, CreateScriptEpisodeRequest } from "@/api/script_episode";
|
import { createScriptEpisode, CreateScriptEpisodeRequest } from "@/api/script_episode";
|
||||||
import { getUploadTokenWithDomain, uploadToQiniu } from "@/api/common";
|
import { getUploadTokenWithDomain, uploadToQiniu } from "@/api/common";
|
||||||
|
import { convertScriptToScene, convertVideoToScene } from "@/api/video_flow";
|
||||||
|
|
||||||
const JoyrideNoSSR = dynamic(() => import('react-joyride'), {
|
const JoyrideNoSSR = dynamic(() => import('react-joyride'), {
|
||||||
ssr: false,
|
ssr: false,
|
||||||
@ -104,38 +105,67 @@ export function CreateToVideo2() {
|
|||||||
const handleCreateVideo = async () => {
|
const handleCreateVideo = async () => {
|
||||||
if (videoUrl || inputText) {
|
if (videoUrl || inputText) {
|
||||||
try {
|
try {
|
||||||
// 确定项目类型
|
let convertResponse;
|
||||||
const projectType = activeTab === 'script' ? ProjectTypeEnum.SCRIPT_TO_VIDEO : ProjectTypeEnum.VIDEO_TO_VIDEO;
|
|
||||||
|
|
||||||
// 构建项目数据并调用API
|
// 根据选中的选项卡调用相应的API
|
||||||
const projectData: CreateScriptProjectRequest = {
|
if (activeTab === 'script') {
|
||||||
project_type: projectType,
|
// 剧本模式:调用convertScriptToScene (第43-56行)
|
||||||
mode: selectedMode,
|
if (!inputText.trim()) {
|
||||||
resolution: selectedResolution
|
alert('请输入剧本内容');
|
||||||
};
|
return;
|
||||||
|
}
|
||||||
|
convertResponse = await convertScriptToScene(inputText);
|
||||||
|
} else {
|
||||||
|
// 视频模式:调用convertVideoToScene (第56-69行)
|
||||||
|
if (!videoUrl) {
|
||||||
|
alert('请先上传视频');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
convertResponse = await convertVideoToScene(videoUrl);
|
||||||
|
}
|
||||||
|
|
||||||
const projectResponse = await createScriptProject(projectData);
|
// 检查转换结果
|
||||||
|
if (convertResponse.code === 0) {
|
||||||
|
console.log('转换成功:', convertResponse.data);
|
||||||
|
console.log('任务ID:', convertResponse.data.task_id);
|
||||||
|
console.log('预估时间:', convertResponse.data.estimated_time, '秒');
|
||||||
|
|
||||||
if (projectResponse.code === 0 && projectResponse.data.id) {
|
// 确定项目类型
|
||||||
const projectId = projectResponse.data.id;
|
const projectType = activeTab === 'script' ? ProjectTypeEnum.SCRIPT_TO_VIDEO : ProjectTypeEnum.VIDEO_TO_VIDEO;
|
||||||
|
|
||||||
// 创建剧集数据
|
// 构建项目数据并调用API
|
||||||
const episodeData: CreateScriptEpisodeRequest = {
|
const projectData: CreateScriptProjectRequest = {
|
||||||
|
project_type: projectType,
|
||||||
|
mode: selectedMode,
|
||||||
|
resolution: selectedResolution
|
||||||
};
|
};
|
||||||
|
|
||||||
// 调用创建剧集API
|
const projectResponse = await createScriptProject(projectData);
|
||||||
const episodeResponse = await createScriptEpisode(episodeData);
|
|
||||||
|
|
||||||
if (episodeResponse.code === 0) {
|
if (projectResponse.code === 0 && projectResponse.data.id) {
|
||||||
// 成功创建后跳转到work-flow页面
|
const projectId = projectResponse.data.id;
|
||||||
router.push('/create/work-flow');
|
|
||||||
|
// 创建剧集数据
|
||||||
|
const episodeData: CreateScriptEpisodeRequest = {
|
||||||
|
};
|
||||||
|
|
||||||
|
// 调用创建剧集API
|
||||||
|
const episodeResponse = await createScriptEpisode(episodeData);
|
||||||
|
|
||||||
|
if (episodeResponse.code === 0) {
|
||||||
|
// 成功创建后跳转到work-flow页面
|
||||||
|
router.push('/create/work-flow');
|
||||||
|
} else {
|
||||||
|
alert(`创建剧集失败: ${episodeResponse.msg}`);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
alert(`创建剧集失败: ${episodeResponse.msg}`);
|
alert(`创建项目失败: ${projectResponse.msg}`);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
alert(`创建项目失败: ${projectResponse.msg}`);
|
alert(`转换失败: ${convertResponse.msg}`);
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
console.error('创建过程出错:', error);
|
||||||
alert("创建项目时发生错误,请稍后重试");
|
alert("创建项目时发生错误,请稍后重试");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user