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 makes a faceless short from a category or your own idea. OpenAI suggests ten hooks to pick from, Tavily and Claude research and script it, and JSON2Video renders the video and Gmail sends you the link.
Faceless YouTube Shorts maker with an idea picker 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.
Idea form
It starts when someone sends the Video Creator form with:
A faceless short video, with its address sent by email
What you need before you start.
Ideas and research summary
Suggests the ten hook ideas through the Responses API with web search, and condenses the search results into one paragraph.
NeedsOpenAI API key
Web search
Searches 64 listed sites for the chosen idea and returns an answer and page text.
NeedsTavily API key
Script writing
Runs Claude 3.7 Sonnet in the agent that writes the intro and the scenes.
NeedsAnthropic API key
Video rendering
Renders the video from your template and the script, and reports the project’s status.
NeedsJSON2Video API key, and a template of your own
Sends the finished video’s address to the email on the form.
NeedsGoogle account with Gmail access
Checked by Mindket on 13 Nov 2026
This n8n workflow makes a faceless short video from a category or an idea of your own and emails you its address. Twenty-seven nodes run in three stages. First, OpenAI’s gpt-4.1 with web search suggests ten hook ideas on a second form page, where you pick one or ask for ten more. Then Tavily searches the web for the chosen idea, gpt-4.1 condenses the results, and an agent on Claude 3.7 Sonnet writes a scene-by-scene script. Last, a JSON2Video template of your own renders the video, with an image and a voice line for every scene, and Gmail sends the finished address.
Creators and agencies that post faceless Shorts and want an idea picker, a research step and a finished render in one run. It needs five accounts besides n8n and a JSON2Video template that you make or copy first. Skip it for a single quick clip. The template and the accounts take longer to set up than the clip takes to make by hand.
| Industry | Who uses it | How they use it | Example |
|---|---|---|---|
| Faceless channels | Creators who run Shorts without being on camera | Pick one of the ten ideas, let the run research and render, then post the clip | A channel owner picks a Did you know hook each morning and uploads the result. |
| Education | Teachers and course makers | Type a question as your own idea and get a short illustrated explainer | A teacher asks why volcanoes erupt and gets a 30-second clip in a hand-drawn style. |
| Content agencies | Social media teams | Set one style per client and send the form’s address to the client | An agency gives a garden brand a form that always uses the Gardening category. |
| Niche brands | Pet and garden shops | Run a weekly series from one category | A pet shop posts a Cool Animal Facts short every Friday. |
Any n8n that can reach OpenAI, Tavily, Anthropic, JSON2Video and Gmail will run it. The form is the front door, and the inbox is where the result lands.
Get it saves a zip with workflow.json and Mindket’s setup notes in your downloads folder. Its author puts setup at about 17 minutes, which assumes the accounts and the template already exist.
| Need | Detail |
|---|---|
| n8n | On n8n Cloud or on a server of your own |
| OpenAI | An API key, for the ideas and the research summary |
| Tavily | An API key, for the web search |
| Anthropic | An API key, for the script |
| JSON2Video | An account, its API key and a template of your own that reads the variables below |
| Gmail | An account for a Gmail OAuth2 credential |
workflow.json.Paste your template id and replace YOUR_TEMPLATE_ID with that ID.Submit Idea Prompt to OpenAI, Search (Regenerated) and Summarize Web Context.Search Web for Script Context, replace <YOUR_TAVILY_KEY> after Bearer with your Tavily key. The brackets go too.Anthropic Chat Model.x-api-key and your JSON2Video key as the value. Select it in Send to Video Generation API and Check Video Status.Email Video to User.The template is not in the file. Build Video Creation Payload posts its ID with these variables, and your template has to read them:
{
"template": "<your template ID>",
"comment": "<the script writer’s note>",
"variables": {
"voiceModel": "azure",
"imageModel": "flux-schnell",
"audioURL": "<the Audio url you gave>",
"introImagePrompt": "<the opening image’s prompt>",
"introText": "<the title and the hook, on two lines>",
"scenes": [{ "voiceOverText": "<one sentence>", "imagePrompt": "<one image>" }]
}
}The code also names voiceID, but no value reaches it. The Good to know list says why.
Open the form from User Input Form, choose a category or type an idea of your own, then set the duration, the style, a voice and the audio address. Add an email address too, because the last step sends to it. The next page lists ten ideas. Pick one, or answer Yes under Regenerate for ten new ones. Once you pick, the form closes and the run goes on behind it: research, script, render, email.
| Field | Needed | What it does |
|---|---|---|
Choose a Category | No | A starting phrase or topic, from a list of eight |
Or Enter Your Own Idea | No | Your own topic. When it is filled, it replaces the category |
Duration | Yes | 30 seconds, 1 minute, 1 minute 30 seconds or 2 minutes. It sets the number of scenes |
Generative Style | Yes | The look of the images, from a list of nine |
Voice Model | Yes | One of ten Azure voices |
Audio url | Yes | The address of an audio file for your template to play |
Email | No, but the last step needs it | Where the finished video’s address is sent |
| To change | Where |
|---|---|
| Categories, styles, voices | The dropdown options in User Input Form. The hook-style categories are also named in the code of Generate Video Ideas Prompt and Build Payload (Regenerated) |
| Scene counts | Calculate Scene Count, 6, 12, 18 and 24 scenes |
| Research sites | The 64 names in include_domains of Search Web for Script Context |
| Script tone and structure | The system message of Script Generator (AI) |
| The email | The subject and text in Email Video to User |
| Waits | Wait for Video Rendering, 3 minutes, and Retry Wait Before Recheck, 10 seconds |
You choose Cool Animal Facts, a duration of 30 seconds and the hand-drawn style. The ideas page lists ten one-sentence hooks, each starting with the words Cool Animal Facts, and you pick one. Tavily searches the file’s list of sites, Calculate Scene Count sets six scenes, and the script writer answers in this shape, trimmed here:
{
"comment": "…",
"variables": {
"introImagePrompt": "…",
"introVoiceoverText": "<title>\n<hook>",
"scenes": [{ "voiceOverText": "…", "imagePrompt": "…" }]
}
}JSON2Video renders it from your template. After the three-minute wait the status is checked, and the email carries movie.url.
If you are new. n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. A credential is a key n8n keeps for you and hands to the node you pick it in. A JSON2Video template is a video layout with blanks, and this workflow fills them with the script, the image prompts and the voice. Send the form from its test address first. Every node then shows what it received and what it sent, which is where a wrong key or a missing template ID turns up.
For experts. Three models share the writing, and the idea step is not a chat model node. Generate Video Ideas Prompt builds a request body in code and Submit Idea Prompt to OpenAI posts it to OpenAI’s Responses API. A second pair does the same for regenerated ideas.
| Step | Model | What to know |
|---|---|---|
| The two idea requests | gpt-4.1 through the Responses API, with its web search tool at high context | Asked for a JSON array of ten strings. The parser nodes strip code fences before reading it |
Summarize Web Context | gpt-4.1 | Writes one paragraph from the first four Tavily results, with a plain-language reason behind the main point |
Script Generator (AI) | Claude 3.7 Sonnet (claude-3-7-sonnet-20250219) | Writes an intro and one-sentence scenes, 3 to 6 seconds each, and holds every image prompt to the chosen style |
| JSON2Video | Azure voices and flux-schnell images, set in your template’s variables | The workflow only sends the script and polls the project |
Every run spends money in five places, and several steps fail quietly.
Extract Script JSON reads voiceID from the script writer’s reply, which has no such field, so Build Video Creation Payload sends none. Set voiceID there to $("Prepare Input Variables").first().json.voiceID to make it countError output of Handle Video Render Status also goes to the email node, so a failed render still sends a message with no usable linkrunning is checked every ten seconds until it changesExtract Script JSON reads. If n8n flags the node, switch that option off.join("\n\n") in Summarize Web Context. This copy has them backclaude-3-7-sonnet-20250219, so pick a current Claude model in Anthropic Chat Model if it reports thatAn n8n workflow. Pick a category or type your own idea, choose one of ten hook ideas an AI suggests, and the workflow
researches the topic, writes a scene-by-scene script and has JSON2Video render a faceless short. The finished video's
address arrives by email.
workflow.json: the workflow as n8n exports it, 27 nodes. It holds no credential and calls no sub-workflow. It does notREADME.md: these notes.workflow.json.Paste your template id and replace YOUR_TEMPLATE_ID with that ID.Submit Idea Prompt to OpenAI, Search (Regenerated) andSummarize Web Context.Search Web for Script Context, replace <YOUR_TAVILY_KEY> after Bearer with your Tavily key. The brackets go too.Anthropic Chat Model.x-api-key and your JSON2Video key as the value. Select it inSend to Video Generation API and Check Video Status.Email Video to User.| Field | Needed | What it does |
|---|---|---|
| Choose a Category | No | A starting phrase or topic, from a list of eight |
| Or Enter Your Own Idea | No | Your own topic. When filled, it replaces the category |
| Duration | Yes | 30 seconds, 1 minute, 1 minute 30 seconds or 2 minutes. It sets the number of scenes |
| Generative Style | Yes | The look of the images, from a list of nine |
| Voice Model | Yes | One of ten Azure voices |
| Audio url | Yes | The address of an audio file for your template to play |
| Email | No, but the last step needs it | Where the finished video's address is sent |
Build Video Creation Payload posts this to JSON2Video's movie endpoint, and your template reads the variables:
{
"template": "<your template ID>",
"comment": "<the script writer's note>",
"variables": {
"voiceModel": "azure",
"imageModel": "flux-schnell",
"audioURL": "<the Audio url you gave>",
"introImagePrompt": "<the opening image's prompt>",
"introText": "<the title and the hook, on two lines>",
"scenes": [{ "voiceOverText": "<one sentence>", "imagePrompt": "<one image>" }]
}
}
The code also names voiceID, but no value reaches it (see Good to know).
Merge and Prepare Input Variables, which keeps the topic, the audio address, theGenerate Video Ideas Prompt builds a request for OpenAI's Responses API with gpt-4.1 and its web search tool, andSubmit Idea Prompt to OpenAI sends it. A category such as What if or Did you know asks for ten one-sentence hooksParse Idea Response JSON strips codeIdea Suggestions shows the ten as a dropdown on a second page. Regenerate Idea Decision reads the second dropdown:Yes goes through Build Payload (Regenerated), Search (Regenerated) and Parse Results (Regenerated) and shows a new ten.End Form, which tells the reader the video will come by email.Search Web for Script Context asks Tavily for 10 results on the chosen idea, with an answer and the raw page content,include_domains. Summarize Web Context has gpt-4.1 write one paragraph from the first four results.Calculate Scene Count turns the duration into 6, 12, 18 or 24 scenes.Script Generator (AI) is an agent on Claude 3.7 Sonnet. It writes an intro with a title and a hook of at most eightCombine Input and Script Output joins the script to the form's data. Extract Script JSON strips code fences and parsesBuild Video Creation Payload shapes the request.Send to Video Generation API posts it to JSON2Video. Wait for Video Rendering pauses 3 minutes, and Check Video StatusHandle Video Render Status reads movie.status. done and error both go to Email Video to User. running goesRetry Wait Before Recheck, ten seconds, back to Check Video Status.User Input Form. The categories that ask for hook phrases areGenerate Video Ideas Prompt and Build Payload (Regenerated).Calculate Scene Count.include_domains list in Search Web for Script Context.Script Generator (AI).Email Video to User.Wait for Video Rendering and Retry Wait Before Recheck.gpt-4.1 in three nodes, and claude-3-7-sonnet-20250219 in Anthropic Chat Model. Pick a current Claude modelExtract Script JSON reads voiceID from the script writer'sBuild Video Creation Payload sends none. To make the pick count, set voiceID there to$("Prepare Input Variables").first().json.voiceID, as the node already does for the audio.End Form appears.running has no limit.Extract Script JSON reads it. If n8n flags the node, switch that option off.Parse Idea Response JSON,Parse Results (Regenerated) and Extract Script JSON, and the .join("\n\n") in Summarize Web Context. This copy has them back.README.md 7 KB workflow.json 42 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…