diff --git a/apps/application/flow/step_node/image_to_video_step_node/impl/base_image_to_video_node.py b/apps/application/flow/step_node/image_to_video_step_node/impl/base_image_to_video_node.py index fd398dd44..e2a2b3b9a 100644 --- a/apps/application/flow/step_node/image_to_video_step_node/impl/base_image_to_video_node.py +++ b/apps/application/flow/step_node/image_to_video_step_node/impl/base_image_to_video_node.py @@ -15,6 +15,7 @@ from oss.serializers.file import FileSerializer, mime_types from models_provider.tools import get_model_instance_by_model_workspace_id from django.utils.translation import gettext + class BaseImageToVideoNode(IImageToVideoNode): def save_context(self, details, workflow_manage): self.context['answer'] = details.get('answer') @@ -47,7 +48,7 @@ class BaseImageToVideoNode(IImageToVideoNode): last_frame_url = self.get_file_base64(last_frame_url) video_urls = ttv_model.generate_video(question, negative_prompt, first_frame_url, last_frame_url) # 保存图片 - if video_urls is None: + if video_urls is None or video_urls == '': return NodeResult({'answer': gettext('Failed to generate video')}, {}) file_name = 'generated_video.mp4' if isinstance(video_urls, str) and video_urls.startswith('http'): @@ -71,7 +72,7 @@ class BaseImageToVideoNode(IImageToVideoNode): 'history_message': history_message, 'question': question}, {}) def get_file_base64(self, image_url): - try : + try: if isinstance(image_url, list): image_url = image_url[0].get('file_id') if isinstance(image_url, str) and not image_url.startswith('http'): @@ -87,7 +88,6 @@ class BaseImageToVideoNode(IImageToVideoNode): raise ValueError( gettext("Failed to obtain the image")) - def generate_history_ai_message(self, chat_record): for val in chat_record.details.values(): if self.node.id == val['node_id'] and 'image_list' in val: diff --git a/apps/models_provider/impl/aliyun_bai_lian_model_provider/model/ttv.py b/apps/models_provider/impl/aliyun_bai_lian_model_provider/model/ttv.py index cbbb7bdff..10a6fd65a 100644 --- a/apps/models_provider/impl/aliyun_bai_lian_model_provider/model/ttv.py +++ b/apps/models_provider/impl/aliyun_bai_lian_model_provider/model/ttv.py @@ -85,9 +85,8 @@ class GenerationVideoModel(MaxKBBaseModel, BaseGenerationVideo): # --- 异步提交任务 --- rsp = self._safe_call(VideoSynthesis.async_call, **params) if rsp.status_code != HTTPStatus.OK: - maxkb_logger.info('提交任务失败,status_code: %s, code: %s, message: %s' % - (rsp.status_code, rsp.code, rsp.message)) - return None + maxkb_logger.info(f'提交任务失败,status_code: {rsp.status_code}, code: {rsp.code}, message: {rsp.message}') + raise RuntimeError(f'提交任务失败,status_code: {rsp.status_code}, code: {rsp.code}, message: {rsp.message}') maxkb_logger.info("task_id:", rsp.output.task_id) @@ -96,8 +95,10 @@ class GenerationVideoModel(MaxKBBaseModel, BaseGenerationVideo): if status.status_code == HTTPStatus.OK: maxkb_logger.info("当前任务状态:", status.output.task_status) else: - maxkb_logger.error('获取任务状态失败,status_code: %s, code: %s, message: %s' % - (status.status_code, status.code, status.message)) + maxkb_logger.error( + f'获取任务状态失败,status_code: {status.status_code}, code: {status.code}, message: {status.message}') + raise RuntimeError( + f'获取任务状态失败,status_code: {status.status_code}, code: {status.code}, message: {status.message}') # --- 等待任务完成 --- rsp = self._safe_call(VideoSynthesis.wait, task=rsp, api_key=self.api_key) @@ -105,6 +106,5 @@ class GenerationVideoModel(MaxKBBaseModel, BaseGenerationVideo): maxkb_logger.info("视频生成完成!视频 URL:", rsp.output.video_url) return rsp.output.video_url else: - maxkb_logger.error('生成失败,status_code: %s, code: %s, message: %s' % - (rsp.status_code, rsp.code, rsp.message)) - return None + maxkb_logger.error(f'生成失败,status_code: {rsp.status_code}, code: {rsp.code}, message: {rsp.message}') + raise RuntimeError(f'生成失败,status_code: {rsp.status_code}, code: {rsp.code}, message: {rsp.message}')