This workflow corresponds to n8n.io template #7677 — we link there as the canonical source.
This workflow follows the Form Trigger → HTTP Request recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"id": "PNYUq9YR60V9ZDpj",
"name": "mj",
"tags": [],
"nodes": [
{
"id": "7874a7d7-0078-492f-937a-67b529a99f97",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
1232,
0
],
"parameters": {
"width": 780,
"height": 120,
"content": "## STEP 1 - GET API KEY (YOURAPIKEY)\n- Create an account [here](https://kie.ai/) and obtain API KEY.\n- It will be used in on form submission.\n- Important: Please keep your key safe and do not disclose it to others."
},
"typeVersion": 1
},
{
"id": "22d993e4-94ae-45d6-893f-8c048438a0dc",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
1232,
208
],
"parameters": {
"width": 780,
"height": 180,
"content": "## STEP 2 - Usage Process\n1. **Start Workflow** - Click \"Execute workflow\" button to begin the task.\n2. **Fill Form** - Complete the required fields in the popup form.\n3. **Submit - Click** \"Submit\" button to send your request.\n4. **Close Window** - You can close the form window after successful submission.\n5. **Wait for Generation** - System automatically checks status every 10 seconds.\n6. **Get Results** - Video files will be displayed automatically when generation is complete."
},
"typeVersion": 1
},
{
"id": "a511baf3-1db7-458f-b0fe-e5198028d4b8",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-160,
-80
],
"parameters": {
"color": 3,
"width": 1148,
"height": 1576,
"content": "## Generate AI Images & Videos with KIE.AI Midjourney API\n### Overview\nGenerate high-quality AI images and videos using KIE.AI's Midjourney API through an intuitive form interface. This n8n workflow supports three distinct content creation modes, delivering professional results with automated processing and real-time progress monitoring.\n**Supported Modes:**\n- **Text-to-Image** (`mj_txt2img`): Generate original images from written descriptions\n- **Image-to-Image** (`mj_img2img`): Transform or enhance existing images with AI\n- **Image-to-Video** (`mj_video`): Animate still images into short video clips\nUsers interact only through a simple form interface, requiring no coding skills. After submitting a request, the system automatically calls the KIE.AI API, monitors progress in real-time, and retrieves the final output once ready.\n### Perfect for\nContent creators, designers, marketers, and developers who need to quickly generate diverse AI visual content with automated processing and professional quality results.\n### Prerequisites\n- **KIE.AI Account**: Sign up at [KIE.AI](https://kie.ai) to obtain your free or paid API key.\n- **n8n Instance**: Active n8n instance (cloud or self-hosted) with HTTP Request and form submission capabilities.\n- **AI Prompt Knowledge**: Basic understanding of AI prompts for optimal generation results.\n- **Reference Images** (Optional): Publicly accessible image URLs for image-to-image or image-to-video generation.\n### Quick Setup\n#### 1. **Get API Key**\nRegister at [KIE.AI](https://kie.ai) and generate your API key. Store it securely and never share it publicly.\n#### 2. **Configure Form Fields**\nSet up these fields in your \"On Form Submission\" node:\n- **`tasktype`** (Required): Select generation mode\n - `mj_txt2img` for text-to-image generation\n - `mj_img2img` for image-to-image generation \n - `mj_video` for image-to-video generation\n- **`prompt`** (Required): Text description for your content generation\n- **`imgurl`** (Optional): Image URL array for image-to-image or image-to-video generation\n - **Important**: Leave empty for text-to-image generation (`mj_txt2img`)\n- **`api_key`** (Required): Your KIE.AI API key for authentication\n#### 3. **Test & Use**\n1. Click \"Execute Workflow\" in n8n.\n2. Access the generated form URL.\n3. Fill in your details and submit.\n4. Wait for processing (workflow polls every 10 seconds).\n5. Results will be displayed automatically.\n### Customization Tips\n#### Write Detailed Prompts:\nInclude specific details for better results:\n- **Style**: realistic, anime, cinematic, watercolor, oil painting\n- **Composition**: close-up, wide shot, portrait, landscape\n- **Lighting**: dramatic, soft, neon, natural, studio\n- **Subject Details**: actions, scenes, movements, visual elements\n#### Example Enhanced Prompt:\n\"Cinematic portrait of a cyberpunk character with neon blue lighting, close-up composition, dramatic shadows, futuristic mood\"\n#### Leverage Multiple Modes:\n- Start with text-to-image for initial concepts.\n- Use image-to-image to refine and enhance results.\n- Apply image-to-video to animate your best images.\n- Combine modes for complex creative workflows.\n#### Common Use Cases:\n- Social media content creation.\n- Marketing material development.\n- Product visualization.\n- Storyboarding and prototyping.\n- Creative asset generation.\n### Troubleshooting\n- **API Key Invalid**: Verify your key is correct and active.\n- **Generation Fails**: Check prompt length and content appropriateness.\n- **Slow Processing**: Video generation can take 2-5 minutes; this is normal.\n- **Image URL Issues**: Ensure URLs are publicly accessible and properly formatted.\n**Keywords:** KIE.AI API, AI image generation, AI video generation, text-to-image, image-to-video, automated workflows, n8n template, AI content creation"
},
"typeVersion": 1
},
{
"id": "c4edd10d-0ce7-4431-8e8a-cea2e8a41f67",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
1232,
496
],
"parameters": {
"width": 780,
"height": 552,
"content": "## STEP 3 - Form Parameters\n1. **Prompt** \n - Purpose: Describe the video content you want to generate.\n - Example: \"A dog playing in a park\".\n - Tips:\n Be detailed and specific in describing video content.\n Include actions, scenes, and style information.\n Describe movements and visual elements you want to see.\n More detailed descriptions lead to better results.\n2. **img_url** (Image-to-Video, Optional)\n - Purpose: Provide an image URL for image-to-image or image-to-video generation. Note: If you are using text-to-image generation (mj_txt2img), please do not fill in this parameter.\n - Example: https://file.example.com/your-image.jpg\n - Tips:\n Required for: mj_img2img (image-to-image) and mj_video/mj_video_hd (image-to-video).\n Not needed for: mj_txt2img (text-to-image) - leave this field empty.\n Use a clear and relevant image to guide the generation.\n3. **task_type (Task Type)** \n - Purpose: Select the type of AI generation task you want to perform.\n - Options: mj_txt2img (text-to-image),mj_img2img (image-to-image),mj_video (image-to-video)\nmj_video_hd (image-to-high-definition-video)\n - Tips:Choose mj_video or mj_video_hd for video generation. Choose mj_txt2img for text-to-image generation. Choose mj_img2img for image-to-image generation.\n4. **api_key** (API Key)\n - This is what you get in the first step.\n"
},
"typeVersion": 1
},
{
"id": "2c5110d0-2789-43ba-8097-fe6b415483b2",
"name": "Submit Text Prompt for Video Generation",
"type": "n8n-nodes-base.formTrigger",
"position": [
640,
1584
],
"parameters": {
"options": {},
"formTitle": "AI video generator",
"formFields": {
"values": [
{
"fieldLabel": "prompt"
},
{
"fieldLabel": "img_url"
},
{
"fieldLabel": "task_type",
"placeholder": "mj_txt2img"
},
{
"fieldLabel": "api_key"
}
]
},
"formDescription": "Please fill in the following information to generate your video"
},
"typeVersion": 2.2
},
{
"id": "478b1370-b1c2-476a-83ee-384c23fc6092",
"name": "Send Video Generation Request to KIE.AI API",
"type": "n8n-nodes-base.httpRequest",
"position": [
864,
1584
],
"parameters": {
"url": "https://api.kie.ai/api/v1/mj/generate",
"method": "POST",
"options": {},
"jsonBody": "={\n \"taskType\": \"{{$json.task_type}}\",\n \"speed\": \"fast\",\n \"prompt\": \"{{$json.prompt}}\",\n \"fileUrls\": \"{{$json.img_url ? [$json.img_url] : []}}\",\n \"aspectRatio\": \"16:9\",\n \"version\": \"7\",\n \"variety\": 10,\n \"stylization\": 1,\n \"weirdness\": 1,\n \"waterMark\": \"\",\n \"callBackUrl\": \"https://api.example.com/callback\",\n \"ow\": 500,\n \"videoBatchSize\": 1\n}",
"sendBody": true,
"sendHeaders": true,
"specifyBody": "json",
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "Authorization",
"value": "=Bearer {{$json.api_key}}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "e5612a76-7d1e-46b4-b8e7-ca1accf8e316",
"name": "Wait for Video Processing Completion",
"type": "n8n-nodes-base.wait",
"position": [
1104,
1584
],
"parameters": {
"amount": 10
},
"typeVersion": 1.1
},
{
"id": "7d9755a2-0391-413e-a8fb-b4ac5c78aba1",
"name": "Obtain the generated status",
"type": "n8n-nodes-base.httpRequest",
"position": [
1312,
1584
],
"parameters": {
"url": "https://api.kie.ai/api/v1/mj/record-info",
"options": {},
"sendQuery": true,
"sendHeaders": true,
"queryParameters": {
"parameters": [
{
"name": "taskId",
"value": "={{$json.data.taskId}}"
}
]
},
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "Authorization",
"value": "=Bearer {{$node[\"Submit Text Prompt for Video Generation\"].json[\"api_key\"]}}"
}
]
}
},
"typeVersion": 4.2
},
{
"id": "fa6a595c-9504-40d9-b1ae-10df8b60fcd1",
"name": "Check if Video Generation is Complete",
"type": "n8n-nodes-base.if",
"position": [
1152,
1808
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "loose"
},
"combinator": "and",
"conditions": [
{
"id": "db9a5dec-997b-4c3f-9582-37c9bbeb19ff",
"operator": {
"name": "filter.operator.equals",
"type": "string",
"operation": "equals"
},
"leftValue": "=true",
"rightValue": "={{ $json.data.successFlag == 1 }}"
}
]
},
"looseTypeValidation": true
},
"typeVersion": 2.2
},
{
"id": "94e27cb8-5a53-43f6-9c1a-3b8433f9fb77",
"name": "Format and Display Video Results",
"type": "n8n-nodes-base.set",
"position": [
1520,
1792
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "fa5f375f-cddc-4f7b-a018-67c28015d18b",
"name": "img1",
"type": "string",
"value": "={{ $json.data.resultInfoJson.resultUrls[0].resultUrl }}"
},
{
"id": "8f93e12e-13da-495f-a686-c0abc22f39d9",
"name": "img2",
"type": "string",
"value": "={{ $json.data.resultInfoJson.resultUrls[1].resultUrl }}"
},
{
"id": "9b0893fb-f0ad-4aaa-a709-d32fbe4947a4",
"name": "img3",
"type": "string",
"value": "={{ $json.data.resultInfoJson.resultUrls[2].resultUrl }}"
},
{
"id": "e5301b8c-700e-4d0d-a2c8-1538071cd7e0",
"name": "img4",
"type": "string",
"value": "={{ $json.data.resultInfoJson.resultUrls[3].resultUrl }}"
}
]
}
},
"typeVersion": 3.4
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "212ee606-7da0-4985-b493-7cc97e74f2d3",
"connections": {
"Obtain the generated status": {
"main": [
[
{
"node": "Check if Video Generation is Complete",
"type": "main",
"index": 0
}
]
]
},
"Wait for Video Processing Completion": {
"main": [
[
{
"node": "Obtain the generated status",
"type": "main",
"index": 0
}
]
]
},
"Check if Video Generation is Complete": {
"main": [
[
{
"node": "Format and Display Video Results",
"type": "main",
"index": 0
}
],
[
{
"node": "Wait for Video Processing Completion",
"type": "main",
"index": 0
}
]
]
},
"Submit Text Prompt for Video Generation": {
"main": [
[
{
"node": "Send Video Generation Request to KIE.AI API",
"type": "main",
"index": 0
}
]
]
},
"Send Video Generation Request to KIE.AI API": {
"main": [
[
{
"node": "Wait for Video Processing Completion",
"type": "main",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Generate high-quality AI images and videos using KIE.AI's Midjourney API through an intuitive form interface. This n8n workflow supports three distinct content creation modes, delivering professional results with automated processing and real-time progress monitoring. Supported…
Source: https://n8n.io/workflows/7677/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
This workflow allows you to import any workflow from a file or another n8n instance and map the credentials easily. A multi-form setup guides you through the entire process At the beginning you have t
[n8n] Advanced URL Parsing and Shortening Workflow - Switchy.io Integration. Uses splitInBatches, stickyNote, httpRequest, html. Event-driven trigger; 56 nodes.
[](https://youtu.be/c7yCZhmMjtI)
N8n recently introduced folders and it has been a big improvement on workflow management on top of the tags.
This workflow automates the creation of press releases for music artists releasing a new single. Upload your MP3, fill in basic info, and receive a publication-ready press release saved as a Google Do