Documentation Index
Fetch the complete documentation index at: https://docs.viggle.ai/llms.txt
Use this file to discover all available pages before exploring further.
Using an AI agent? Copy the docs link for full API context:
https://docs.viggle.ai/llms-full.txt
Rendering modes
On-Demand
Preprocessed
Import Templates
Send an image + video in one request.On-demand renders cost 1 credit/second of output video. No separate character charge.
import requests, time
API_KEY, BASE = "YOUR_API_KEY", "https://apis.viggle.ai"
h = {"Authorization": f"Bearer {API_KEY}"}
job = requests.post(f"{BASE}/api/render", headers=h, files={
"ref_image": open("character.png", "rb"),
"driving_video": open("dance.mp4", "rb"),
}).json()
while True:
s = requests.get(f"{BASE}/api/render/{job['job_id']}").json()
if s["status"] == "complete": break
time.sleep(3)
video = requests.get(s["cdn_url"])
open("output.mp4", "wb").write(video.content)
On-Demand Guide
Render options, polling, and error handling
Create character (1 credit) + scene (free) once, then render with IDs for lower latency.import requests
API_KEY, BASE = "YOUR_API_KEY", "https://apis.viggle.ai"
h = {"Authorization": f"Bearer {API_KEY}"}
char = requests.post(f"{BASE}/api/characters/preprocess", headers=h,
files={"image": open("character.png", "rb")}, data={"name": "My Character"}).json()
scene = requests.post(f"{BASE}/api/scenes/preprocess", headers=h,
files={"video": open("dance.mp4", "rb")}, data={"name": "Dance"}).json()
job = requests.post(f"{BASE}/api/render", headers=h, data={
"character_id": char["character_id"], "scene_id": scene["scene_id"],
}).json()
Preprocessing Guide
Polling, download, and asset reuse
Use templates from viggle.ai instead of uploading a driving video.import requests
API_KEY, BASE = "YOUR_API_KEY", "https://apis.viggle.ai"
h = {"Authorization": f"Bearer {API_KEY}", "Content-Type": "application/json"}
scene = requests.post(f"{BASE}/api/scenes/import", headers=h,
json={"template_id": "TEMPLATE_ID_FROM_VIGGLE"}).json()
Import Templates Guide
Hot Picks, multi-person templates, character mapping
Model
V4_Preview (default) or V3_Preview (legacy). Pass model on render or scene preprocess requests.
Quick start
Pick a mode
Use the Rendering modes tabs: On-Demand (fastest first render), Preprocessed (~3x faster at scale), or Import Templates.
Render
POST /api/render — poll GET /api/render/{job_id} every 3-5s until complete, then use cdn_url to download.
Resources
Discord Community
Support and discussions
API Reference
Full endpoint documentation
Pricing
1 credit/sec — about $0.01/sec