添加taskid逻辑

This commit is contained in:
puke
2025-10-28 21:15:46 +08:00
parent dd98e1b254
commit d9d501d849
7 changed files with 241 additions and 51 deletions

View File

@@ -90,6 +90,8 @@ class TTSService(ComfyBaseService):
rate: Optional[str] = None,
volume: Optional[str] = None,
pitch: Optional[str] = None,
# Output path
output_path: Optional[str] = None,
**params
) -> str:
"""
@@ -107,6 +109,7 @@ class TTSService(ComfyBaseService):
rate: Speech rate (e.g., "+0%", "+50%", "-20%")
volume: Speech volume (e.g., "+0%")
pitch: Speech pitch (e.g., "+0Hz")
output_path: Custom output path (auto-generated if None)
**params: Additional parameters
Returns:
@@ -148,6 +151,7 @@ class TTSService(ComfyBaseService):
rate=rate,
volume=volume,
pitch=pitch,
output_path=output_path,
**params
)
else:
@@ -161,6 +165,7 @@ class TTSService(ComfyBaseService):
rate=rate,
volume=volume,
pitch=pitch,
output_path=output_path,
**params
)
@@ -171,6 +176,7 @@ class TTSService(ComfyBaseService):
rate: Optional[str] = None,
volume: Optional[str] = None,
pitch: Optional[str] = None,
output_path: Optional[str] = None,
**params
) -> str:
"""
@@ -182,6 +188,7 @@ class TTSService(ComfyBaseService):
rate: Speech rate (default: +0%)
volume: Speech volume (default: +0%)
pitch: Speech pitch (default: +0Hz)
output_path: Custom output path (auto-generated if None)
**params: Additional parameters (e.g., retry_count, retry_delay)
Returns:
@@ -191,8 +198,13 @@ class TTSService(ComfyBaseService):
logger.info(f"🎙️ Using edge-tts (local SDK)")
# Generate temp file path
output_path = get_temp_path(f"{uuid.uuid4().hex}.mp3")
# Generate output path (use provided path or auto-generate)
if output_path is None:
output_path = get_temp_path(f"{uuid.uuid4().hex}.mp3")
else:
# Ensure parent directory exists
import os
os.makedirs(os.path.dirname(output_path), exist_ok=True)
# Call edge-tts with output_path to save directly
try:
@@ -223,6 +235,7 @@ class TTSService(ComfyBaseService):
rate: Optional[str] = None,
volume: Optional[str] = None,
pitch: Optional[str] = None,
output_path: Optional[str] = None,
**params
) -> str:
"""
@@ -237,10 +250,11 @@ class TTSService(ComfyBaseService):
rate: Speech rate (workflow-specific)
volume: Speech volume (workflow-specific)
pitch: Speech pitch (workflow-specific)
output_path: Custom output path (downloads if URL returned)
**params: Additional workflow parameters
Returns:
Generated audio file path/URL
Generated audio file path (local if output_path provided, otherwise URL)
"""
logger.info(f"🎙️ Using ComfyUI workflow: {workflow_path}")
@@ -303,6 +317,25 @@ class TTSService(ComfyBaseService):
logger.error("No audio file generated")
raise Exception("No audio file generated by workflow")
# If output_path provided and audio_path is URL, download to local
if output_path and audio_path.startswith(('http://', 'https://')):
import httpx
import os
# Ensure parent directory exists
os.makedirs(os.path.dirname(output_path), exist_ok=True)
logger.info(f"Downloading audio from {audio_path} to {output_path}")
async with httpx.AsyncClient() as client:
response = await client.get(audio_path)
response.raise_for_status()
with open(output_path, 'wb') as f:
f.write(response.content)
logger.info(f"✅ Generated audio (ComfyUI): {output_path}")
return output_path
logger.info(f"✅ Generated audio (ComfyUI): {audio_path}")
return audio_path