添加taskid逻辑
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user