Spaces:
Running
Running
Add detailed logging for video generation debugging
Browse files- Log video generation request details
- Log image upload status
- Log WaveSpeed API responses
- Update job status messages for better UI feedback
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
src/content_engine/api/routes_video.py
CHANGED
|
@@ -157,8 +157,11 @@ async def generate_video_cloud(
|
|
| 157 |
import random
|
| 158 |
import httpx
|
| 159 |
|
|
|
|
|
|
|
| 160 |
# Route to Higgsfield for Kling 3.0 models
|
| 161 |
if backend == "higgsfield" or model.startswith("kling-3"):
|
|
|
|
| 162 |
return await generate_video_higgsfield(
|
| 163 |
image=image,
|
| 164 |
prompt=prompt,
|
|
@@ -168,6 +171,7 @@ async def generate_video_cloud(
|
|
| 168 |
)
|
| 169 |
|
| 170 |
if not _wavespeed_provider:
|
|
|
|
| 171 |
raise HTTPException(500, "WaveSpeed API not configured")
|
| 172 |
|
| 173 |
job_id = str(uuid.uuid4())[:8]
|
|
@@ -394,9 +398,14 @@ async def _generate_cloud_video(
|
|
| 394 |
import httpx
|
| 395 |
import aiohttp
|
| 396 |
|
|
|
|
|
|
|
|
|
|
| 397 |
try:
|
| 398 |
# Upload image to temporary hosting (WaveSpeed needs URL)
|
|
|
|
| 399 |
image_url = await _wavespeed_provider._upload_temp_image(image_bytes)
|
|
|
|
| 400 |
|
| 401 |
# Resolve model to WaveSpeed model ID
|
| 402 |
from content_engine.services.cloud_providers.wavespeed_provider import VIDEO_MODEL_MAP
|
|
@@ -414,6 +423,9 @@ async def _generate_cloud_video(
|
|
| 414 |
if negative_prompt:
|
| 415 |
payload["negative_prompt"] = negative_prompt
|
| 416 |
|
|
|
|
|
|
|
|
|
|
| 417 |
async with httpx.AsyncClient(timeout=300) as client:
|
| 418 |
resp = await client.post(
|
| 419 |
endpoint,
|
|
@@ -432,6 +444,7 @@ async def _generate_cloud_video(
|
|
| 432 |
return
|
| 433 |
|
| 434 |
result = resp.json()
|
|
|
|
| 435 |
data = result.get("data", result)
|
| 436 |
|
| 437 |
# Check for failed status
|
|
|
|
| 157 |
import random
|
| 158 |
import httpx
|
| 159 |
|
| 160 |
+
logger.info("Video cloud generation request: model=%s, backend=%s, frames=%d", model, backend, num_frames)
|
| 161 |
+
|
| 162 |
# Route to Higgsfield for Kling 3.0 models
|
| 163 |
if backend == "higgsfield" or model.startswith("kling-3"):
|
| 164 |
+
logger.info("Routing to Higgsfield for model: %s", model)
|
| 165 |
return await generate_video_higgsfield(
|
| 166 |
image=image,
|
| 167 |
prompt=prompt,
|
|
|
|
| 171 |
)
|
| 172 |
|
| 173 |
if not _wavespeed_provider:
|
| 174 |
+
logger.error("WaveSpeed provider not configured!")
|
| 175 |
raise HTTPException(500, "WaveSpeed API not configured")
|
| 176 |
|
| 177 |
job_id = str(uuid.uuid4())[:8]
|
|
|
|
| 398 |
import httpx
|
| 399 |
import aiohttp
|
| 400 |
|
| 401 |
+
logger.info("Starting cloud video generation: job=%s, model=%s, image_size=%d bytes", job_id, model, len(image_bytes))
|
| 402 |
+
_video_jobs[job_id]["message"] = "Uploading image..."
|
| 403 |
+
|
| 404 |
try:
|
| 405 |
# Upload image to temporary hosting (WaveSpeed needs URL)
|
| 406 |
+
logger.info("Uploading image to temp host...")
|
| 407 |
image_url = await _wavespeed_provider._upload_temp_image(image_bytes)
|
| 408 |
+
logger.info("Image uploaded: %s", image_url[:80] if image_url else "FAILED")
|
| 409 |
|
| 410 |
# Resolve model to WaveSpeed model ID
|
| 411 |
from content_engine.services.cloud_providers.wavespeed_provider import VIDEO_MODEL_MAP
|
|
|
|
| 423 |
if negative_prompt:
|
| 424 |
payload["negative_prompt"] = negative_prompt
|
| 425 |
|
| 426 |
+
_video_jobs[job_id]["message"] = f"Calling WaveSpeed API ({wavespeed_model})..."
|
| 427 |
+
logger.info("Calling WaveSpeed video API: %s", endpoint)
|
| 428 |
+
|
| 429 |
async with httpx.AsyncClient(timeout=300) as client:
|
| 430 |
resp = await client.post(
|
| 431 |
endpoint,
|
|
|
|
| 444 |
return
|
| 445 |
|
| 446 |
result = resp.json()
|
| 447 |
+
logger.info("WaveSpeed video API response: %s", str(result)[:500])
|
| 448 |
data = result.get("data", result)
|
| 449 |
|
| 450 |
# Check for failed status
|