chore: Merge upstream/main with RunningHub 48G support and FAQ improvements

This commit is contained in:
empty
2026-01-06 17:48:02 +08:00
12 changed files with 1828 additions and 2138 deletions

View File

@@ -131,6 +131,7 @@ class ConfigManager:
"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,
"runninghub_instance_type": self.config.comfyui.runninghub_instance_type,
"tts": {
"default_workflow": self.config.comfyui.tts.default_workflow,
},
@@ -149,7 +150,8 @@ class ConfigManager:
comfyui_url: Optional[str] = None,
comfyui_api_key: Optional[str] = None,
runninghub_api_key: Optional[str] = None,
runninghub_concurrent_limit: Optional[int] = None
runninghub_concurrent_limit: Optional[int] = None,
runninghub_instance_type: Optional[str] = None
):
"""Set ComfyUI global configuration"""
updates = {}
@@ -161,6 +163,9 @@ class ConfigManager:
updates["runninghub_api_key"] = runninghub_api_key
if runninghub_concurrent_limit is not None:
updates["runninghub_concurrent_limit"] = runninghub_concurrent_limit
if runninghub_instance_type is not None:
# Empty string means disable (treat as None for storage)
updates["runninghub_instance_type"] = runninghub_instance_type if runninghub_instance_type else None
if updates:
self.update({"comfyui": updates})

View File

@@ -74,6 +74,7 @@ class ComfyUIConfig(BaseModel):
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)")
runninghub_instance_type: Optional[str] = Field(default=None, description="RunningHub instance type (optional, set to 'plus' for 48GB VRAM)")
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")

View File

@@ -120,6 +120,10 @@ class PixelleVideoCore:
kit_config["api_key"] = comfyui_config["comfyui_api_key"]
if comfyui_config.get("runninghub_api_key"):
kit_config["runninghub_api_key"] = comfyui_config["runninghub_api_key"]
# Only pass instance_type if it has a non-empty value
instance_type = comfyui_config.get("runninghub_instance_type")
if instance_type and instance_type.strip():
kit_config["runninghub_instance_type"] = instance_type
return kit_config

View File

@@ -231,6 +231,7 @@ class ComfyBaseService:
self,
comfyui_url: Optional[str] = None,
runninghub_api_key: Optional[str] = None,
runninghub_instance_type: Optional[str] = None,
) -> Dict[str, Any]:
"""
Prepare ComfyKit configuration
@@ -238,6 +239,7 @@ class ComfyBaseService:
Args:
comfyui_url: ComfyUI URL (optional, overrides config)
runninghub_api_key: RunningHub API key (optional, overrides config)
runninghub_instance_type: RunningHub instance type (optional, overrides config)
Returns:
ComfyKit configuration dict
@@ -262,6 +264,16 @@ class ComfyBaseService:
if final_rh_key:
kit_config["runninghub_api_key"] = final_rh_key
# RunningHub instance type (priority: param > global config > env)
# Only pass if non-empty value
final_instance_type = (
runninghub_instance_type
or self.global_config.get("runninghub_instance_type")
or os.getenv("RUNNINGHUB_INSTANCE_TYPE")
)
if final_instance_type and final_instance_type.strip():
kit_config["runninghub_instance_type"] = final_instance_type
logger.debug(f"ComfyKit config: {kit_config}")
return kit_config