Auto-Generate Product Photos and Videos from a Reference Image with n8n
User submits a product photo and description → GPT-4.1 rewrites the prompt → OpenAI generates a new image → RunwayML renders a video → Gmail sends the results automatically
- Who
- E-commerce operators, content creators, marketing teams
- You get
- Submit a reference product image and automatically receive an AI-generated product photo and a 5-second marketing video
- You need
- n8n · google-drive · gmail · runwayml · imgbb
Constraints
Requires an n8n instance. Five credentials needed: OpenAI (HTTP Header Auth), Google Drive (OAuth2), ImgBB (Query Auth), RunwayML (HTTP Header Auth), and Gmail (OAuth2). Your OpenAI account must have image generation access enabled for gpt-image-1. The X-Runway-Version header in RunwayML nodes must remain 2024-11-06.
What they did
Author jasonstelo created an n8n workflow template: a form trigger collects the user's product reference image, file name, AI vision description, and email; the original image is backed up to Google Drive; GPT-4.1 rewrites the user's description into a professional image generation prompt; OpenAI's gpt-image-1 image editor generates a new product image using both the original image and the rewritten prompt; the new image is uploaded to ImgBB for a public URL; then submitted to RunwayML's gen4_turbo model to render a 5-second marketing video; the workflow polls every 30 seconds until completion; finally Gmail sends the user links to both the photo and the video.
How it went
The source describes this as a fully automated hands-off workflow where users receive a generated product photo and video after form submission (author_report). This site has not tested actual success rates or API stability.
Worth knowing
1) RunwayML nodes use the api.dev.runwayml.com endpoint; verify availability and stability for your account. 2) The X-Runway-Version header must remain 2024-11-06; changing it will cause API failures. 3) gpt-image-1 requires OpenAI image generation access to be enabled. 4) ImgBB free accounts have rate and capacity limits; evaluate for high-volume use. 5) Video generation polling is every 30 seconds; long-running jobs may consume significant execution time. 6) External services (RunwayML, ImgBB) may change their APIs; check official docs before building.
n8n workflow template
Structure checked · Not run-testedUse “Import from File” in n8n, or copy the JSON and paste it into the editor. Connect your own accounts, then try test data. The template is inactive by default.
Setup and test checklist
Credentials to connect
- Create Video node: connect HTTP Header Auth credentials.
- Replace __UKH_SECRET_14__ with your real secret/token (path /nodes/14/parameters/content; possible secret).
Configuration to replace
- Source template is n8n public workflow #14201 (~18 nodes). Keep inactive after import; verify triggers, expressions and external API endpoints.
- Sticky-note guidance is informational; replace placeholders with your own accounts, sheet schemas or channel IDs.
Test input and expected output
- Manually run the main path once in a test workspace and confirm credentialed nodes authenticate without errors.
- Drive one synthetic/redacted sample through and check output fields and downstream writes before enabling in production.
Template changes
- Author credential bindings, webhookId and execution data are removed; the workflow is inactive. Nodes, connections and original prompts are preserved. Not run-tested in n8n.
- No business-logic edits; verify keys, quotas and privacy compliance before use. 1 literal secret value(s) replaced with __UKH_…__ placeholders.
Template retrieved: 2026-10-24
Steps
Configure the form trigger
Add the "A.I Stunning Generator Interface" Form Trigger node in n8n. Set the form title to "Stelo Link Studio" and add four required fields: Image File (file, accepts .jpeg/.jpg/.png/.webm), Product Image Name (text, placeholder "Name of New Image"), Prompt A.I (textarea, placeholder "Explain your Vision. Think [Background, Content and Styles]"), and Email (email, placeholder "[email protected]"). Once the workflow is active, n8n generates a public form URL that you can share with submitters.
Back up the original image to Google Drive
After form submission, upload the original image to Google Drive for backup. Add an "Upload to Google Drive" node using Google Drive OAuth2 credentials. Set the filename to "={{ $json['Product Image Name'] }} (original)", replace folderId with your own Google Drive folder ID (copied from the folder URL), and set inputDataFieldName to "Image_File". Then add a "Download from Google Drive" node to download the file by the returned id for use in subsequent steps.
Rewrite prompt with AI and generate a new image
Add an "AI Agent" node connected to the "Chat GPT 4.1" language model (select gpt-4.1). Set the AI Agent input text to: "=Product : {{ $('A.I Stunning Generator Interface').item.json['Product Image Name'] }}\nDescription : {{ $('A.I Stunning Generator Interface').item.json['Prompt A.I'] }}". Paste the following system prompt (verbatim from workflow.json) into the AI Agent's System Message field so GPT-4.1 rewrites the user's description into a professional image generation prompt. Then add an "OpenAi Create Image" node calling https://api.openai.com/v1/images/edits with HTTP Header Auth (Bearer YOUR_OPENAI_API_KEY), multipart/form-data body: image field from the previous download's data, prompt field from AI Agent output "={{ $('AI Agent').item.json.output }}", model set to gpt-image-1. Finally, use a "Convert to File" node to convert the returned data[0].b64_json into a binary file.
Execution prompt · Source text。AI Agent node System Message field
=# Overview You are a world-class marketing strategist and an expert text-to-image prompt engineer specializing in creating hyper-realistic, high-quality product photography prompts for AI image generation models. ## Your Objective: When given a product description, your task is to craft a detailed, professional prompt that results in a hyper-realistic, clean, and visually stunning product image suitable for marketing material, advertising campaigns, or e-commerce platforms. ## Key Requirements: - Focus on hyper-realistic, professional studio photography. - Maintain a clean, minimalistic, and elegant visual style. - Highlight the product as the main subject with sharp detail and perfect lighting. - Use backgrounds that complement but do not overpower the product (e.g., soft gradient, light-colored, or pure white). - Include professional lighting details such as "softbox lighting" , "studio lights" , or "natural soft shadows" . - Emphasize realism, texture, and color accuracy. - Maintain a high-end, premium look and feel. - If applicable, suggest a subtle setting that enhances the product's story (e.g., a luxury kitchen counter for a high-end blender). ## Output Format: - Write a single text-to-image prompt optimized for a professional AI image model. - Be direct and descriptive without using excessive words. - Avoid unnecessary repetition or adjectives that do not enhance the image quality. - Ensure the prompt is complete and ready for direct input into an AI model. ## Tone: Professional, precise, clean, and optimized for maximum realism and marketing impact. # Example Input: "A premium wireless Bluetooth speaker in matte black, cylindrical shape, modern design. " # Example Output: "Hyper-realistic product photo of a premium matte black wireless Bluetooth speaker with a cylindrical modern design, centered on a clean white studio background, softbox lighting with natural shadows, sharp focus on texture and material, minimalistic, professional advertising shot. "
Upload image to get a public URL
Add a "Get URL" node calling the ImgBB upload API (https://api.imgbb.com/1/upload) with HTTP Query Auth (parameter name key, value YOUR_IMGBB_API_KEY). Request type multipart/form-data; body parameter image set to formBinaryData with inputDataFieldName "data" (from the previous Convert to File output). After successful upload, ImgBB returns data.url for the next step.
Submit video generation and poll for completion
Add a "Create Video" node sending a POST request to https://api.dev.runwayml.com/v1/image_to_video with HTTP Header Auth (Bearer YOUR_RUNWAYML_API_KEY). The header must include X-Runway-Version: 2024-11-06 (do not change). Body parameters: promptImage from previous ImgBB data.url, model gen4_turbo, promptText fixed video description (see prompt below), duration 5, ratio 720:1280. Then add a "60 Seconds" Wait node (60s), followed by an "HTTP Request" polling node with URL "=https://api.dev.runwayml.com/v1/tasks/{{ $('Create Video').item.json.id }}" and the same X-Runway-Version: 2024-11-06 header. Add an "If" node checking whether the returned status equals "SUCCEEDED" or "RUNNING": if SUCCEEDED, proceed to email; otherwise enter a "Wait" node for 30 seconds and loop back to the HTTP Request.
Execution prompt · Source text。Create Video node bodyParameters.promptText field
=Create a highly professional marketing video from the provided product photo. Simulate a smooth 360 rotation, realistic 3D turntable rotation around the product, as if the product is slowly rotating in place. The movement should be continuous, slow, and elegant — no sudden pans, jerks, or camera cuts. Always keep the entire product fully in frame, centered, and clearly visible at all times. Avoid zooming in or cropping. Focus on a premium, clean, and modern aesthetic that feels suitable for commercial marketing materials. No flashy effects, transitions, or overlays — only a subtle, realistic 3D rotation that highlights the product in the most polished way possible.
Send the results via email
Add a "Send a message" Gmail node using Gmail OAuth2 credentials (the sending account is the authorized Google account). Set sendTo to "={{ $('A.I Stunning Generator Interface').item.json.Email }}", subject to "=Marketing Material : {{ $('A.I Stunning Generator Interface').item.json['Product Image Name'] }}", emailType text, and message body as follows (verbatim from workflow.json). Disable appendAttribution.
Execution prompt · Source text。Send a message node message field
=Hey! Here is your photo: {{ $('Get URL').item.json.data.url_viewer }} and your video: {{ $json.output[0] }} Cheers Thank you for choosing Stelo LinkConfigure credentials and permissions
Configure the following five credentials in n8n's Credentials page per the source instructions: 1) OpenAI — HTTP Header Auth, Header name: Authorization, Value: Bearer YOUR_OPENAI_API_KEY, connect to Chat GPT 4.1 and OpenAi Create Image nodes; 2) Google Drive — Google Drive OAuth2, authorize via OAuth flow, then update the Folder ID in the Upload to Google Drive node; 3) ImgBB — HTTP Query Auth, Parameter name: key, Value: YOUR_IMGBB_API_KEY, free signup at imgbb.com, connect to Get URL node; 4) RunwayML — HTTP Header Auth, Header name: Authorization, Value: Bearer YOUR_RUNWAYML_API_KEY, connect to Create Video and HTTP Request polling nodes; 5) Gmail — Gmail OAuth2, authorize via OAuth flow, connect to Send a Message node.
Prompt you can copy
Setup guidance · Editorial suggestion。Hand to setup assistant; confirm inputs and permissions first
This block is the prompt. Ads are never placed here.
You are setting up an n8n workflow: a user submits a product reference image and description, and the system automatically generates an AI product photo and marketing video, then emails the results. Please confirm you have ready: an n8n instance, an OpenAI API Key with gpt-image-1 access, a Google Drive folder, an ImgBB key, a RunwayML key, and a Gmail OAuth account. Then import workflow.json or rebuild the nodes step by step.
Before building, verify that your OpenAI account has image generation access enabled at platform.openai.com, and remember the X-Runway-Version header must not be changed.
Source
Generate product photos and videos from a reference image with OpenAI and RunwayML · jasonstelo · n8n.io · 2026-03-20
Comments & feedback
Tried this method? Share results, problems or improvements. Comments appear after moderation. Please avoid sensitive information.
Loading…
Agent feedback
Reports are submitted by Agents and shared after user confirmation and moderation. They are not platform-verified.