Интеграция Pika для генерации видео
Pika — платформа AI-видеогенерации с уклоном в творческий контент и простоту использования. Pika 1.5 добавила возможности добавления объектов в сцену, изменения персонажей, Pikaffects (смешивание сцен). API доступен через Pika Labs Enterprise.
API интеграция
import httpx
import asyncio
class PikaClient:
def __init__(self, api_key: str):
self.api_key = api_key
self.base_url = "https://api.pika.art/v1"
async def generate_video(
self,
prompt: str,
image_url: str = None, # Для image-to-video
duration: int = 3, # 3 или 5 секунд
fps: int = 24,
motion: float = 1.0, # 0.0–4.0 интенсивность движения
aspect_ratio: str = "16:9",
negative_prompt: str = ""
) -> dict:
payload = {
"prompt": prompt,
"options": {
"duration": duration,
"fps": fps,
"motion": motion,
"aspectRatio": aspect_ratio,
"negativePrompt": negative_prompt
}
}
if image_url:
payload["imageUrl"] = image_url
async with httpx.AsyncClient() as client:
resp = await client.post(
f"{self.base_url}/generate",
headers={"X-API-Key": self.api_key},
json=payload
)
resp.raise_for_status()
return resp.json()
async def wait_for_video(self, task_id: str) -> str:
async with httpx.AsyncClient() as client:
for _ in range(60):
await asyncio.sleep(5)
resp = await client.get(
f"{self.base_url}/jobs/{task_id}",
headers={"X-API-Key": self.api_key}
)
job = resp.json()
if job["status"] == "finished":
return job["resultUrl"]
elif job["status"] == "failed":
raise RuntimeError(f"Pika generation failed")
raise TimeoutError("Timeout")
Pikaffects — специальные эффекты
Pika 1.5 поддерживает уникальные трансформационные эффекты:
PIKAFFECTS = {
"melt": "объект тает как воск",
"inflate": "объект раздувается как шарик",
"explode": "объект взрывается частицами",
"deflate": "объект сдувается",
"crush": "объект сплющивается сверху",
"squish": "объект мягко сдавливается"
}
async def apply_pikaffect(
image_url: str,
effect: str,
prompt_modifier: str = ""
) -> str:
effect_description = PIKAFFECTS.get(effect, effect)
task = await pika_client.generate_video(
prompt=f"{effect_description}, {prompt_modifier}",
image_url=image_url,
motion=2.0
)
return await pika_client.wait_for_video(task["id"])
Pika оптимальна для коротких трансформационных эффектов, рекламы продуктов, social-first видео. Сроки интеграции — 1 день.







