Spaces:
Running
Running
Upload app.py
Browse files
app.py
CHANGED
|
@@ -420,21 +420,25 @@ def narrate_scene_cloned(client, text, voice_id, language, lang_config, translat
|
|
| 420 |
def generate_video_happyhorse_app(prompt, api_key, duration=5, aspect="16:9", image_url=None):
|
| 421 |
"""Generate video via happyhorse.app."""
|
| 422 |
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 423 |
payload = {
|
| 424 |
"model": "happyhorse-1.0/video",
|
| 425 |
"prompt": prompt,
|
| 426 |
-
"mode":
|
| 427 |
"duration": duration,
|
| 428 |
"aspect_ratio": aspect,
|
| 429 |
"sound": False,
|
| 430 |
}
|
| 431 |
-
if
|
| 432 |
-
# Only pass public URLs, not data URIs (happyhorse.app may not support data URIs)
|
| 433 |
payload["image_urls"] = [image_url]
|
| 434 |
|
| 435 |
generate_url = HAPPYHORSE_PROVIDERS["happyhorse.app"]["generate"]
|
| 436 |
print(f"[HappyHorse] Submitting to {generate_url}")
|
| 437 |
-
print(f"[HappyHorse]
|
| 438 |
|
| 439 |
resp = http_requests.post(generate_url, json=payload, headers=headers, timeout=60)
|
| 440 |
print(f"[HappyHorse] Submit response: {resp.status_code}")
|
|
|
|
| 420 |
def generate_video_happyhorse_app(prompt, api_key, duration=5, aspect="16:9", image_url=None):
|
| 421 |
"""Generate video via happyhorse.app."""
|
| 422 |
headers = {"Authorization": f"Bearer {api_key}", "Content-Type": "application/json"}
|
| 423 |
+
|
| 424 |
+
mode = "text-to-video"
|
| 425 |
+
if image_url and not image_url.startswith("data:"):
|
| 426 |
+
mode = "image-to-video"
|
| 427 |
+
|
| 428 |
payload = {
|
| 429 |
"model": "happyhorse-1.0/video",
|
| 430 |
"prompt": prompt,
|
| 431 |
+
"mode": mode,
|
| 432 |
"duration": duration,
|
| 433 |
"aspect_ratio": aspect,
|
| 434 |
"sound": False,
|
| 435 |
}
|
| 436 |
+
if mode == "image-to-video":
|
|
|
|
| 437 |
payload["image_urls"] = [image_url]
|
| 438 |
|
| 439 |
generate_url = HAPPYHORSE_PROVIDERS["happyhorse.app"]["generate"]
|
| 440 |
print(f"[HappyHorse] Submitting to {generate_url}")
|
| 441 |
+
print(f"[HappyHorse] Payload: {json.dumps(payload)[:300]}")
|
| 442 |
|
| 443 |
resp = http_requests.post(generate_url, json=payload, headers=headers, timeout=60)
|
| 444 |
print(f"[HappyHorse] Submit response: {resp.status_code}")
|