支持runninghub并发限制可配置
This commit is contained in:
@@ -24,6 +24,7 @@ comfyui:
|
||||
comfyui_api_key: "" # ComfyUI API key (optional, get from https://platform.comfy.org/profile/api-keys)
|
||||
# Note for Docker users: Use host.docker.internal:8188 (Mac/Windows) or host IP address (Linux)
|
||||
runninghub_api_key: "" # RunningHub API key (required for runninghub workflows)
|
||||
runninghub_concurrent_limit: 1 # Concurrent execution limit for RunningHub (1-10, default 1 for regular members)
|
||||
|
||||
# TTS-specific configuration
|
||||
tts:
|
||||
|
||||
@@ -130,6 +130,7 @@ class ConfigManager:
|
||||
"comfyui_url": self.config.comfyui.comfyui_url,
|
||||
"comfyui_api_key": self.config.comfyui.comfyui_api_key,
|
||||
"runninghub_api_key": self.config.comfyui.runninghub_api_key,
|
||||
"runninghub_concurrent_limit": self.config.comfyui.runninghub_concurrent_limit,
|
||||
"tts": {
|
||||
"default_workflow": self.config.comfyui.tts.default_workflow,
|
||||
},
|
||||
@@ -147,7 +148,8 @@ class ConfigManager:
|
||||
self,
|
||||
comfyui_url: Optional[str] = None,
|
||||
comfyui_api_key: Optional[str] = None,
|
||||
runninghub_api_key: Optional[str] = None
|
||||
runninghub_api_key: Optional[str] = None,
|
||||
runninghub_concurrent_limit: Optional[int] = None
|
||||
):
|
||||
"""Set ComfyUI global configuration"""
|
||||
updates = {}
|
||||
@@ -157,6 +159,8 @@ class ConfigManager:
|
||||
updates["comfyui_api_key"] = comfyui_api_key
|
||||
if runninghub_api_key is not None:
|
||||
updates["runninghub_api_key"] = runninghub_api_key
|
||||
if runninghub_concurrent_limit is not None:
|
||||
updates["runninghub_concurrent_limit"] = runninghub_concurrent_limit
|
||||
|
||||
if updates:
|
||||
self.update({"comfyui": updates})
|
||||
|
||||
@@ -73,6 +73,7 @@ class ComfyUIConfig(BaseModel):
|
||||
comfyui_url: str = Field(default="http://127.0.0.1:8188", description="ComfyUI Server URL")
|
||||
comfyui_api_key: Optional[str] = Field(default=None, description="ComfyUI API Key (optional)")
|
||||
runninghub_api_key: Optional[str] = Field(default=None, description="RunningHub API Key (optional)")
|
||||
runninghub_concurrent_limit: int = Field(default=1, ge=1, le=10, description="RunningHub concurrent execution limit (1-10)")
|
||||
tts: TTSSubConfig = Field(default_factory=TTSSubConfig, description="TTS-specific configuration")
|
||||
image: ImageSubConfig = Field(default_factory=ImageSubConfig, description="Image-specific configuration")
|
||||
video: VideoSubConfig = Field(default_factory=VideoSubConfig, description="Video-specific configuration")
|
||||
|
||||
@@ -50,8 +50,6 @@ from pixelle_video.utils.prompt_helper import build_image_prompt
|
||||
from pixelle_video.services.video import VideoService
|
||||
|
||||
|
||||
# Parallel limit for RunningHub workflows (Call by sequential if set to 1)
|
||||
RUNNING_HUB_PARALLEL_LIMIT = 1
|
||||
|
||||
|
||||
class StandardPipeline(LinearVideoPipeline):
|
||||
@@ -303,10 +301,13 @@ class StandardPipeline(LinearVideoPipeline):
|
||||
(config.media_workflow and config.media_workflow.startswith("runninghub/"))
|
||||
)
|
||||
|
||||
if is_runninghub and RUNNING_HUB_PARALLEL_LIMIT > 1:
|
||||
logger.info(f"🚀 Using parallel processing for RunningHub workflows (max {RUNNING_HUB_PARALLEL_LIMIT} concurrent)")
|
||||
# Get concurrent limit from config (default to 1 for backward compatibility)
|
||||
runninghub_concurrent_limit = self.core.config.get("comfyui", {}).get("runninghub_concurrent_limit", 1)
|
||||
|
||||
if is_runninghub and runninghub_concurrent_limit > 1:
|
||||
logger.info(f"🚀 Using parallel processing for RunningHub workflows (max {runninghub_concurrent_limit} concurrent)")
|
||||
|
||||
semaphore = asyncio.Semaphore(RUNNING_HUB_PARALLEL_LIMIT)
|
||||
semaphore = asyncio.Semaphore(runninghub_concurrent_limit)
|
||||
completed_count = 0
|
||||
|
||||
async def process_frame_with_semaphore(i: int, frame: StoryboardFrame):
|
||||
|
||||
@@ -179,6 +179,16 @@ def render_advanced_settings():
|
||||
f"[{tr('settings.comfyui.runninghub_get_api_key')}]"
|
||||
f"(https://www.runninghub{'.cn' if get_language() == 'zh_CN' else '.ai'}/?inviteCode=bozpdlbj)"
|
||||
)
|
||||
|
||||
# RunningHub concurrent limit
|
||||
runninghub_concurrent_limit = st.number_input(
|
||||
tr("settings.comfyui.runninghub_concurrent_limit"),
|
||||
min_value=1,
|
||||
max_value=10,
|
||||
value=comfyui_config.get("runninghub_concurrent_limit", 1),
|
||||
help=tr("settings.comfyui.runninghub_concurrent_limit_help"),
|
||||
key="runninghub_concurrent_limit_input"
|
||||
)
|
||||
|
||||
# ====================================================================
|
||||
# Action Buttons (full width at bottom)
|
||||
@@ -199,7 +209,8 @@ def render_advanced_settings():
|
||||
config_manager.set_comfyui_config(
|
||||
comfyui_url=comfyui_url if comfyui_url else None,
|
||||
comfyui_api_key=comfyui_api_key if comfyui_api_key else None,
|
||||
runninghub_api_key=runninghub_api_key if runninghub_api_key else None
|
||||
runninghub_api_key=runninghub_api_key if runninghub_api_key else None,
|
||||
runninghub_concurrent_limit=int(runninghub_concurrent_limit)
|
||||
)
|
||||
|
||||
# Only save to file if LLM config is valid
|
||||
|
||||
@@ -195,6 +195,8 @@
|
||||
"settings.comfyui.runninghub_api_key_help": "Visit https://runninghub.ai to register and get API Key",
|
||||
"settings.comfyui.runninghub_hint": "No local ComfyUI? Use RunningHub Cloud:",
|
||||
"settings.comfyui.runninghub_get_api_key": "Get RunningHub API Key",
|
||||
"settings.comfyui.runninghub_concurrent_limit": "Concurrent Limit",
|
||||
"settings.comfyui.runninghub_concurrent_limit_help": "RunningHub concurrent execution limit (1-10), default is 1 for regular members, adjust based on your membership level",
|
||||
"tts.inference_mode": "Synthesis Mode",
|
||||
"tts.mode.local": "Local Synthesis",
|
||||
"tts.mode.comfyui": "ComfyUI Synthesis",
|
||||
|
||||
@@ -195,6 +195,8 @@
|
||||
"settings.comfyui.runninghub_api_key_help": "访问 https://runninghub.ai 注册并获取 API Key",
|
||||
"settings.comfyui.runninghub_hint": "没有本地 ComfyUI?可用 RunningHub 云端:",
|
||||
"settings.comfyui.runninghub_get_api_key": "点此获取 RunningHub API Key",
|
||||
"settings.comfyui.runninghub_concurrent_limit": "并发限制",
|
||||
"settings.comfyui.runninghub_concurrent_limit_help": "RunningHub 并发执行数量(1-10),普通会员默认为1,请根据您的会员等级调整",
|
||||
"tts.inference_mode": "合成方式",
|
||||
"tts.mode.local": "本地合成",
|
||||
"tts.mode.comfyui": "ComfyUI 合成",
|
||||
|
||||
Reference in New Issue
Block a user