fix: 图生视频节点进度解析兼容百分号格式,K26/K3/Seedance统一走cf-api异步接口,K26新增seed参数

- 修复 K_video_image2video.py 进度值 "10%" 解析报错:rstrip('%') 后 float→int 安全转换
- K26 节点拆分为图生视频/首尾帧两个独立节点,删除旧的合并节点 K_video.py
- K26/K3 视频节点及 Seedance 客户端统一改用 get_async_api_base_url (cf-api.o1key.com)
- K3 节点模式选项从 标准/专家 改为 720p/1080p,与后端一致
- K_video_image2video.py 和 K_video_firstlast.py 新增 ComfyUI 原生 seed 参数

Co-Authored-By: Claude Opus 4.6 <[email protected]>
This commit is contained in:
o1key
2026-05-07 09:48:24 +08:00
co-authored by Claude Opus 4.6
parent 844401dbb2
commit 1a813bfd1d
10 changed files with 333 additions and 49 deletions
+8 -3
View File
@@ -62,8 +62,9 @@ except ImportError:
DEBUG_LOG_ENABLED = False
REQUEST_LOG_ENABLED = False
_POLL_INTERVAL = 2 # 轮询间隔(秒)
_MAX_WAIT_TIME = 900 # 单任务最大等待时间(秒)
_POLL_INTERVAL = 2 # 轮询间隔(秒)
_INTERRUPT_CHECK_INTERVAL = 0.1 # 取消检查间隔(秒)
_MAX_WAIT_TIME = 900 # 单任务最大等待时间(秒)
def _images_to_tensor_safe(images: List[Image.Image], node_label: str) -> torch.Tensor:
@@ -374,7 +375,11 @@ class NanoBananaV2:
friendly_msg = self._friendly_error(error_msg)
raise RuntimeError(f"任务失败: {friendly_msg}")
elif status in ("SUBMITTED", "IN_PROGRESS"):
await asyncio.sleep(_POLL_INTERVAL)
# 分段 sleep,每 0.1 秒检查一次取消信号
sleep_iterations = int(_POLL_INTERVAL / _INTERRUPT_CHECK_INTERVAL)
for _ in range(sleep_iterations):
self._check_interrupt()
await asyncio.sleep(_INTERRUPT_CHECK_INTERVAL)
else:
raise RuntimeError(f"未知任务状态: {status}")