Huashu Design
alchaincyf · Skill
Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…
An n8n workflow that turns a competitor’s video ad, your product photo and your website into a prompt for a 12-second ad of your own. Its Sora 2 render step stopped working when OpenAI removed Sora 2 in September 2026.
Competitor video ad remade for your brand is an n8n workflow in the Marketing & SEO category, listed by Mindket. It is free. This is version 1, last updated on . Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.
Ad form
It starts when someone sends the Sora 2 Video Ad Form with:
A shot list, brand notes and a ready video prompt, plus the clip once you swap in a current video model
What you need before you start.
Video analysis and writing
Runs gemini-2.5-pro to break the ad into shots, write the brand notes and write the video prompt.
NeedsGemini API key, in a Gemini credential and a Header Auth credential
Web scraping
Reads your brand’s website and OpenAI’s Sora 2 prompting guide as clean text.
NeedsFirecrawl API key, in a Bearer Auth credential
Video generation
Made the 12-second clip with sora-2 in the file, a model OpenAI removed on 24 September 2026.
NeedsOpenAI API key, only for the original video nodes
Checked by Mindket on 13 Nov 2026
This n8n workflow takes a competitor’s video ad and works out how to make one like it for your brand. You send the ad, a photo of your product and your website through a form. Gemini 2.5 Pro breaks the ad into shots, and Firecrawl reads your site. Gemini then writes brand notes and a prompt for a 12-second vertical ad with no text on screen. The file’s last step sends that prompt and your photo to OpenAI’s Sora 2. OpenAI removed Sora 2 on 24 September 2026, so that step fails today. Twenty-five nodes run it.
Brand marketers and agencies who study what works for rivals and want a draft of their own version quickly. It also suits anyone who wants an ad taken apart shot by shot. Skip it if you want a finished video with no n8n work. The render step needs rebuilding first.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Direct-to-consumer brands | Brand marketers | Send a rival’s best ad with a photo of their own product | A pet food brand sends a rival’s treat ad and gets a prompt built around its own bag. |
| Marketing agencies | Creative strategists | Read the shot breakdown before a pitch | A strategist brings the shot list of a client’s rival ad to the briefing. |
| Performance marketing | Media buyers | Remake rival ads that have run for months as prompts for test versions | A buyer turns three long-running rival ads into prompts to test. |
| Online retail | Shop owners | Send their own past ads to get prompts for new cuts | A shop sends its best clip from last season and gets a new prompt in the same rhythm. |
You need solid n8n for this one: three kinds of credential, and a replacement video step you build yourself. Its author puts setup at about 11 minutes, which leaves that step out.
Any n8n that can reach Google’s Gemini API and Firecrawl will run the analysis and the writing. The video needs a service of your choice.
Edit Image needs GraphicsMagick, which n8n’s Docker image hasGet it saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Plan the video step before you import it.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own |
| Google AI Studio | A Gemini API key, used twice: in a Gemini credential and in a header named x-goog-api-key |
| Firecrawl | An account and its API key, for a Bearer Auth credential |
| A video service | One that is still offered, to take the place of the Sora 2 nodes |
| Your inputs | The rival ad as an MP4, a photo of your product and your website’s address |
workflow.json.Google Gemini (PaLM) API credential and select it in gemini-2.5-pro.x-goog-api-key, with the same key as its value, and select it in analyze_video_ad.fetch_sora2_prompting_guide and fetch_site_details.Edit Image with calls to your video service. The prompt is in set_sora2_prompt_result, and the photo is the file data.Open the form, attach the rival’s ad and one product photo, type your web address and send it. The form confirms at once while the run goes on. When it ends, open the run under Executions to read what each step wrote.
| To change | Where |
|---|---|
| Length | The 12-second rule in build_sora2_prompt, and the length your video step asks for |
| Frame | The width and height in Edit Image, 720 by 1280 in the file |
| Brand notes | The seven sections in build_guidelines_prompt |
| Shot list | The format in set_ad_analysis_prompt |
| The ad’s rules | build_sora2_prompt, which asks for the exact product, no other products and no text on screen |
A coffee brand sends a rival’s clip of someone making iced coffee at home, a photo of its own cold brew bottle and its website.
| Output | Node | What it holds |
|---|---|---|
| Shot list | set_ad_analysis_result | The rival clip’s style and message, then every cut with its timing, camera, sound and spoken line |
| Brand notes | write_guidelines | Seven sections, from the brand’s essence to its ad angles |
| Video prompt | set_sora2_prompt_result | The rival’s story retold with the cold brew bottle, paced for 12 seconds |
With a working video step, the photo and that prompt become the new clip. As imported, the run stops at generate_sora2_video.
If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. Two paths start at the form. The long one handles the ad and the writing, the short one gets your photo ready, and they meet at merge. Run one test, then open each chain node to see the prompt it was sent and the text it wrote.
For experts. Gemini is called two ways here, and one input the prompt names never arrives.
| Node | What it does | What to know |
|---|---|---|
analyze_video_ad | A raw call to Gemini’s generateContent, the ad inline | Its own Header Auth credential, and a MIME type fixed to video/mp4 |
write_guidelines | A Gemini chain on your site | Firecrawl’s page text never reaches it, only data.metadata.title |
write_sora2_prompt | A Gemini chain on the shot list, the notes and the guide | Its prompt names a product image that only the video step receives |
fetch_sora2_prompting_guide | A Firecrawl scrape of OpenAI’s cookbook page | Runs on every submission, and a failed scrape leaves the guide empty |
The video step is retired, and two gaps in the prompts change what you get.
{{ $json.data.json.content }} under the title line in build_guidelines_prompt so Gemini reads the pageEdit Image ignores the photo’s proportions, so crop it to 9:16 firstAn n8n workflow. You send a competitor's video ad, a photo of your product and your brand's website through a form.
Gemini breaks the ad down shot by shot, Firecrawl reads your site, and Gemini writes brand notes and a prompt for a
12-second vertical ad with your product in it. The last step sends that prompt to OpenAI's Sora 2.
Read this first: OpenAI removed Sora 2 and its Videos API on 24 September 2026, so the five nodes that make the video
no longer work as imported. Everything before them still runs. See "The video step" below.
workflow.json: the workflow as n8n exports it, 25 nodes, one of them a sticky note that holds only the workflow'sREADME.md: these notes.https://www.example.com/.Edit Image node needs GraphicsMagick on a server of your own,gemini-2.5-pro.workflow.json.Google Gemini (PaLM) API credential with your key, and select it in gemini-2.5-pro.x-goog-api-key, with the same key as its value. Select it in analyze_video_ad,fetch_sora2_prompting_guide andfetch_site_details.generate_sora2_video, get_video_status and get_video.The form confirms at once, and the run goes on behind it. Open the run under Executions to read the shot breakdown, the
brand notes and the prompt, and to get the video when the last step works.
generate_video_trigger1 is the form, titled Sora 2 Video Ad Form, with three fields: Ad Video File,Product Image and Brand Website URL.convert_video_to_base_64 turns the ad into text. set_ad_analysis_prompt holds the instructions for a shot list, andanalyze_video_ad sends both to gemini-2.5-pro in one request, marked as video/mp4.set_ad_analysis_result keeps Gemini's answer: an overall style, the core message, then each shot with its timing,fetch_sora2_prompting_guide has Firecrawl read OpenAI's Sora 2 prompting guide from its cookbook, andfetch_site_details has it read your website. Both carry on if Firecrawl fails.build_guidelines_prompt and write_guidelines turn the site into brand notes in seven sections, from the brand'sbuild_sora2_prompt and write_sora2_prompt combine the shot list, the brand notes and the guide into one prompt forset_sora2_prompt_result keeps it.convert_image_to_base_64 reads your product photo. merge and aggregate put it and the prompt in oneconvert_base64_image_to_binary and Edit Image turn the photo into a 720 by 1280 JPEG.generate_sora2_video posts the prompt and the photo to OpenAI's /v1/videos with sora-2, 12 seconds, at the same size.delay waits 15 seconds, get_video_status asks again, and check_status loops until the status is completed.get_video then downloads the file.gemini-2.5-pro is the model of both writing chains, and analyze_video_ad calls the same model by its address.
The prompt the workflow writes is in set_sora2_prompt_result, and the resized photo leaves Edit Image as a file
named data. To get a video again, replace generate_sora2_video, delay, get_video_status, check_status andget_video with nodes for a video model that is still offered and takes a prompt and a starting picture. Veo is one
option, through Google's Gemini API or a reseller such as Kie.ai. Check its accepted lengths and sizes: the prompt is
written for 12 seconds, and the photo is sized for a vertical frame.
build_sora2_prompt, and seconds in generate_sora2_video. Change both together.size in generate_sora2_video and the width and height in Edit Image.build_guidelines_prompt.set_ad_analysis_prompt.build_sora2_prompt, which ask for exact product looks, no othergenerate_video_trigger1. If you rename a file field, change the node that reads it:Ad_Video_File in convert_video_to_base_64 and Product_Image in convert_image_to_base_64.sora-2 and the Videos API as removed ongenerate_sora2_video fails, so the run stops there.build_guidelines_prompt inserts $json.data.metadata.title, not the page$json.data.json.content, so Gemini guesses the rest. Add the content expression under thebuild_sora2_prompt asks it to study the product image, but only text reachesEdit Image resizes the photo without keeping its proportions. Crop it to 9:16 first, or the productanalyze_video_ad sends the ad inside a single request and labels it video/mp4. Use a short MP4, since Google limitsProduct Image leaves Multiple Files at n8n's default, which is on. Send one photo: a second one gets a numbered nameconvert_image_to_base_64 does not read.check_status waits for completed only, so a failed video would be checked every 15 seconds without end.README.md 7 KB workflow.json 34 KB
alchaincyf · Skill
Turns a one-line request in your AI agent into a finished design: a launch animation, a clickable app prototype, an editable slide deck, an infographic or a se…
op7418 · Skill
Skill that makes single-file HTML slide decks, slide illustrations and platform covers in two visual styles, with a presenter mode for rehearsal. For speakers…
alirezarezvani · Skill
Adds 411 ready-made skills for Claude Code and other coding agents, grouped by role from engineering and product to marketing, finance and compliance. Installs…
nerijs · Kit
A pixel art style add-on for Stable Diffusion XL that turns text prompts into pixel-style images, with an optional LCM LoRA for faster runs. For game makers, d…
LiconStudio · Kit
Keeps characters, clothing, objects and backgrounds consistent in generated video by feeding the model up to five reference images. A LoRA for LTX-2.5 in Comfy…
nhathoangfoto · Kit
A LoRA for FLUX.2 Klein 9B that puts a character into the pose shown by a mannequin reference while keeping the character's face and style. For artists and des…