n8n + CreativeAI: AI Image & Video in Your Workflows
Add AI image and video generation to any n8n workflow using a simple HTTP Request node. Our API is fully OpenAI-compatible β if you've used DALL-E or GPT in n8n, you already know how.
Why CreativeAI for n8n Workflows?
Multi-Model Failover
If one provider goes down, your workflow doesn't. Automatic failover across GPT Image, Flux, Seedream, and more.
OpenAI-Compatible Format
Standard /v1/images/generations endpoint. Works with n8n's HTTP Request node out of the box.
Images + Video from One API
Generate images AND videos. No need for separate API providers in your workflow.
Gemini / Sora Migration
Gemini 3 Pro shutting down? Sora going away? Switch to CreativeAI with zero workflow changes.
Prerequisites
Image Generation (HTTP Request Node)
Add an HTTP Request node to your workflow with these settings:
| Method | POST |
| URL | https://api.creativeai.run/v1/images/generations |
| Authentication | Header Auth β Authorization: Bearer YOUR_API_KEY |
| Content-Type | application/json |
| Body Type | JSON |
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 {{ $json.data[0].url }} in subsequent nodes to reference the generated image URL. The model_actual field tells you which model served the request (useful for debugging).
Transparent PNG (Sprites, Logos, Stickers)
Add "background": "transparent" to your request body. Perfect for game assets, product cutouts, or logo generation workflows.
{
"model": "dall-e-3",
"prompt": "Cute cartoon cat mascot, clean vector style",
"size": "1024x1024",
"background": "transparent",
"n": 1
}Video Generation (Async + Polling)
Video generation is asynchronous. You submit a request, get an id, then poll for completion at /v1/video/generations/{id} or skip polling entirely with a webhook. In n8n, use a second HTTP Request node plus a Wait node, or route completion into a webhook trigger.
Step A: Submit Video Request
| Method | POST |
| URL | https://api.creativeai.run/v1/video/generations |
{
"model": "kling-v3",
"prompt": "Drone aerial shot of coastal cliffs at golden hour, cinematic",
"duration": 5,
"aspect_ratio": "16:9",
"webhook_url": "https://your-automation.app/webhooks/creativeai/video"
}Immediate Response
{
"id": "gen_abc123",
"status": "pending",
"model": "kling-v3"
}Step B: Poll for Completion
| Method | GET |
| URL | https://api.creativeai.run/v1/video/generations/{{ $json.id }} |
{
"id": "gen_abc123",
"status": "completed",
"output_url": "https://cdn.creativeai.run/videos/abc123.mp4",
"duration": 5,
"aspect_ratio": "16:9",
"model": "kling-v3",
"model_actual": "kling-v3"
}Polling tip: Video generation takes 30-120 seconds depending on the model and duration. In n8n, add a Wait node (20-30s) between submit and poll, or use a loop that retries every 15 seconds until status === "completed". For production flows, prefer webhook_url so you don't burn executions on polling.
Buyer-Proof Recipe: Image β Video in n8n
This is the workflow API buyers keep asking for: generate or fetch a product image, pass its public URL into /v1/video/generations, then deliver the finished MP4 to Shopify, Airtable, Slack, or your CRM.
Minimal n8n Flow
Manual Trigger
β HTTP Request: Generate image (/v1/images/generations)
β HTTP Request: Animate image (/v1/video/generations)
β Wait (20-30s) OR Webhook trigger
β HTTP Request: Check status (/v1/video/generations/{{ $json.id }})
β IF status === "completed"
β Send video URL to Slack / Airtable / Shopify / CRMAnimate the image
{
"model": "seedance-1.5-pro",
"image_url": "{{ $json.data[0].url }}",
"prompt": "Slow cinematic push-in, soft studio reflections, premium product ad",
"duration": 5,
"aspect_ratio": "16:9",
"webhook_url": "https://your-automation.app/webhooks/creativeai/video"
}Good fit: ecommerce product spins, listing-photo animation, before/after reveal clips, and ad-creative variants. If your first node already has an image URL, you can skip image generation and go straight to video.
Example: Social Media Image Workflow
Automatically generate social media images from captions. Connect a trigger (RSS, webhook, schedule) β Function node β HTTP Request β post to social media.
Workflow Structure
Function Node (Build Prompt)
// n8n Function node β build request from trigger data
const caption = $input.first().json.caption;
const style = $input.first().json.style || "modern minimalist";
return {
json: {
model: "dall-e-3",
prompt: `Social media graphic for: ${caption}. Style: ${style}. Clean, professional, suitable for Instagram.`,
size: "1024x1024",
n: 1
}
};Available Models
Image Models
- Popular
dall-e-3β GPT Image (OpenAI) - Best
flux-proβ Flux Pro (Black Forest) - Budget
seedream-3.0β Seedream (ByteDance) - Premium
ideogram-v3β Ideogram V3
Video Models
- Popular
kling-v3β Kling V3 Pro - Best
kling-o3-proβ Kling O3 Pro - Fast
seedance-1.5β Seedance 1.5 (ByteDance)
Rate Limits & Concurrency
| Tier | Image Requests/min | Video Requests/min | Concurrent |
|---|---|---|---|
| Free | 10 | 3 | 5 |
| Pay-as-you-go | 30 | 10 | 15 |
| Enterprise | Custom | Custom | Custom |
For print-on-demand or batch workflows, the pay-as-you-go tier supports 30 concurrent image generations β enough for most production workloads. Need more? Contact us.
Migrating from Gemini or Sora?
If your n8n workflow uses Gemini 3 Pro (shutting down March 9) or Sora (shutting down March 13), CreativeAI is a drop-in replacement. Just change the URL and API key in your HTTP Request node β no other changes needed.