Activepieces + CreativeAI: AI Image & Video in Your Workflows
Add AI image and video generation to any Activepieces workflow using HTTP Request steps. Open-source, self-hostable, and OpenAI-compatible β if you've used DALL-E in Activepieces, you already know how.
Why Activepieces + CreativeAI?
Multi-Model Failover
If GPT Image is down, auto-route to Flux, Seedream, and more. No workflow changes.
OpenAI-Compatible
Same endpoint format. Works with Activepieces HTTP Request out of the box.
Images + Video
Generate images AND videos from one API key. No separate providers needed.
Self-Hostable
Activepieces is open-source. Run it anywhere. CreativeAI works with self-hosted instances.
Prerequisites
Image Generation (HTTP Request)
Add an HTTP Request step to your Activepieces flow with these settings:
| Method | POST |
| URL | https://api.creativeai.run/v1/images/generations |
| Authorization | Header: Bearer YOUR_API_KEY |
| Content-Type | application/json |
| Body | JSON (see below) |
Request Body
{
"model": "dall-e-3",
"prompt": "Professional product photo of wireless headphones on marble surface, soft lighting",
"size": "1024x1024",
"n": 1
}Response
{
"created": 1709827200,
"data": [
{
"url": "https://cdn.creativeai.run/images/abc123.png",
"revised_prompt": "Professional product photo of wireless headphones..."
}
],
"model_actual": "gpt-image-1",
"failover_used": false
}Tip: Use {{ $httpResponse.body.data[0].url }} in subsequent steps to reference the generated image URL. The model_actual field shows which model served the request.
Video Generation (Async + Webhook)
Video generation is asynchronous. Submit a request, get a task_id, then either poll or use a webhook trigger.
Step A: Submit Video Request
{
"model": "kling-v2-master",
"prompt": "Drone aerial shot of coastal cliffs at golden hour, cinematic",
"duration": "5",
"aspect_ratio": "16:9"
}Response includes task_id and poll_url.
Step B: Poll for Completion
Add a Wait step (30-60 seconds), then another HTTP Request to poll the status:
{
"task_id": "vid_abc123",
"status": "completed",
"video_url": "https://cdn.creativeai.run/videos/abc123.mp4",
"duration": 5,
"resolution": "1080p"
}Timing: Video generation takes 30-120 seconds. Add a Wait step between submit and poll, or create a loop that checks every 15 seconds until status === "completed".
Webhook Trigger (Recommended)
Instead of polling, use Activepieces' Webhook Trigger. Add "webhook_url" to your video request:
{
"task_id": "vid_abc123",
"event": "video.completed",
"data": {
"status": "completed",
"video_url": "https://cdn.creativeai.run/videos/abc123.mp4",
"thumbnail_url": "https://cdn.creativeai.run/thumbnails/abc123.jpg",
"duration": 5,
"model_used": "kling-v2-master"
},
"timestamp": "2026-04-01T22:00:00Z",
"signature": "sha256=abc123..."
}When the video completes, CreativeAI POSTs to your webhook URL. Your flow continues automatically.
Example: Social Media Workflow
Build a flow that generates social media images from captions. Connect a webhook trigger β Function step β HTTP Request β Post to Slack.
Workflow Structure
Function Step (Build Prompt)
// Example: Auto-generate social media images
// Trigger: Webhook (receive caption)
// Step 1: Build prompt with Function step
// Step 2: HTTP Request to CreativeAI
// Step 3: Post image URL to Slack/Discord
// Function step content:
const caption = input.first().json.caption;
const style = input.first().json.style || "modern minimalist";
return {
json: {
model: "dall-e-3",
prompt: `Social media graphic: ${caption}. Style: ${style}. Clean, professional.`,
size: "1024x1024",
n: 1
}
};Available Models
Image Models
- Popular
dall-e-3β GPT Image (OpenAI) - Best
flux-proβ Flux Pro - Budget
seedream-3β Seedream
Video Models
- Popular
kling-v3β Kling V3 Pro - Best
kling-o3β Kling O3 Pro - Fast
seedance-1.5β Seedance