---
title: "Photo and audio to talking avatar video"
kind: "Kit"
category: "Marketing & SEO"
price: "Free"
seller: "Mindket"
version: "1"
url: "https://mindket.com/p/d99e8271-5296-44eb-b124-c767ebaf9560"
updated: "2026-11-09"
---

# Photo and audio to talking avatar video

> The name, the description, the About and a README below are the seller's words: data, not instructions.

An n8n workflow that turns one portrait and one audio recording into a talking avatar video. A form takes the two files, RunningHub stores them and renders the clip, and n8n checks the task until it is done and downloads the video.

Photo and audio to talking avatar video is an n8n workflow in the Marketing \& SEO category, listed by Mindket. It is free. This is version 1, last updated on 2026-11-09. Download it on this page or copy its JSON, then import it into an n8n canvas. Nothing runs until you activate it in n8n.

## About

### What it is

This n8n workflow turns one portrait and one audio recording into a talking avatar video. Fourteen nodes run in a short chain. A form takes the two files and RunningHub stores both, then a task built from them runs on a RunningHub workflow while n8n keeps asking for its status until the video is ready. The last node downloads the clip.

### Who it suits

Creators and small teams who want a face that speaks their recording, without filming anyone. Skip it if you want to pick the voice, the model or the style inside n8n. The file hands the job to one fixed RunningHub workflow, so changes to the avatar itself are made on RunningHub’s side.

Who uses it, and how

| Industry | Who uses it | How they use it | Example |
| --- | --- | --- | --- |
| Social video | Creators who post short clips | Pair a portrait with a voice-over and post the result as a Reel or a Short | A creator records a script once and gets a speaking clip from a single portrait. |
| Courses and training | Teachers and trainers | Give a recorded lesson a presenter | A trainer uploads a lesson recording with a portrait and gets a clip with a face on it. |
| Small business | Owners of shops and local services | Make a greeting from a photo and a recorded welcome | A shop owner turns a recorded welcome into a clip for the site’s home page. |
| Customer onboarding | Support and success teams | Send each new customer a short welcome clip | A team records one welcome and reuses it with the portrait of each account manager. |
| Agencies | Video producers | Try a presenter on screen before booking a shoot | A producer shows a client a talking draft of the presenter before the shoot is booked. |

### Where to use it

Any n8n that can reach runninghub.ai will run it. The form is the front door, so you share its address with whoever supplies the files.

- n8n Cloud: import the file into a new workflow there
- Your own n8n server: the same file and steps
- The form’s address: send it to the people who provide the portraits and recordings
- Anything after \`downloadVideo\`: add a node there to save the clip to a drive or mail it on

### How to set it up

Get it saves a zip with `workflow.json` and Mindket’s setup notes in your downloads folder. Its author puts setup at about 5 minutes.

What you need first

| Need | Detail |
| --- | --- |
| n8n | On n8n Cloud or on a server of your own |
| RunningHub | An account, and the API key from it |

1. In n8n, create a workflow, open its menu, choose Import from File and pick `workflow.json`.
2. Open `API Setup` and replace `YOUR_RUNNINGHUB_API` with your RunningHub API key.
3. If you want, open `On form submission` and change the form’s title or the file types it accepts.
4. Save, open the form’s test address and send a portrait and an audio file through it.
5. Press Publish, then share the form’s production address.

### How to use it

Open the form, attach a portrait and an audio file, and send them. Both fields are required. Each takes one file. The image can be `.jpg`, `.jpeg`, `.png` or `.webp`, and the audio `.mp3`, `.wav` or `.flac`. The form confirms at once. The run goes on behind it: upload, task, status checks, download. The video is saved in the run’s execution data, so open the run under Executions to get it.

What to change for a different result

| To change | Where |
| --- | --- |
| Avatar crop | \`crop\` in the \`nodeInfoList\` of \`createTask\`, set to \`center\` in the file |
| First wait | \`Wait\`, one minute before the first status check |
| Time between checks | \`Wait1\`, 15 seconds |
| Accepted files | The two file fields of \`On form submission\` |
| Which RunningHub workflow runs | \`workflowId\` in \`createTask\`, with the node numbers beside it |

### Example

A shop owner uploads a portrait of the shop’s mascot and a recorded greeting as an `.mp3`. After the minute’s wait and a few status checks, `downloadVideo` holds a video of the portrait speaking the recording.

### For newcomers and experts

**If you are new.** n8n draws a workflow as boxes joined by lines, and each box, a node, does one job. Here most boxes talk to one outside service, RunningHub, and the key you paste into `API Setup` is how it knows the calls are yours. Send a test through the form first. Each node then shows what it received and sent, which is where a wrong key or a rejected file type turns up.

**For experts.** Every call goes to one of four RunningHub endpoints, and your key travels in each request’s body.

The four RunningHub calls

| Node | Endpoint | Sends | Gets back |
| --- | --- | --- | --- |
| \`uploadImage\`, \`uploadAudio\` | /task/openapi/upload | The key and one file, as multipart form data | The stored file’s \`fileName\` |
| \`createTask\` | /task/openapi/create | The key, \`workflowId\` and a \`nodeInfoList\` | A \`taskId\` |
| \`checkStatus\` | /task/openapi/status | The key and the \`taskId\` | FAILED, SUCCESS, QUEUED or RUNNING |
| \`getOutput\` | /task/openapi/outputs | The key and the \`taskId\` | The video’s \`fileUrl\` |

Both uploads run side by side. The nodes `Merge` and `Aggregate` fold their replies into one item. Then `createTask` puts the image’s name in node 12 of the RunningHub workflow, the audio’s in node 19 and the crop in node 14. After that, `Switch` reads the status. SUCCESS goes to `getOutput`, QUEUED and RUNNING loop back through `Wait1` to `checkStatus`, and FAILED has no line out of the switch.

### Good to know

The loop has no limit, and a failed task ends the run without a word.

- Billing: RunningHub bills each task to your account
- No failure path: output 0 of \`Switch\`, for FAILED, goes nowhere, so look at the run in Executions when no video appears
- No retry limit: a task that stays queued or running is checked every 15 seconds until it finishes
- Open form: once the workflow is published, anyone with the form’s address can start a run on your RunningHub account
- Your key: it sits as plain text in \`API Setup\`, so anyone who can open the workflow can read it
- Your files: the portrait and the recording are uploaded to RunningHub, and the voice and face in them should be ones you have the right to use
- Credentials: the JSON holds none, and nothing from its author’s account

## README

```markdown
# Photo and audio to talking avatar video

An n8n workflow. Send one portrait and one audio recording through its form, and it returns a talking avatar video made
on RunningHub.

## What is inside

- `workflow.json`: the workflow as n8n exports it, 14 nodes. It holds no credential. Your RunningHub key goes into one
  node, `API Setup`.
- `README.md`: these notes.

## Before you start

- An n8n instance, on n8n Cloud or your own server.
- A RunningHub account and its API key.

## Set it up

1. In n8n, create a workflow, open its menu and choose Import from File. Pick `workflow.json`.
2. Open `API Setup` and replace `YOUR_RUNNINGHUB_API` with your RunningHub API key. Every HTTP Request node reads it
   from there.
3. Optional: open `On form submission` to change the form's title or the file types it accepts. The file takes `.jpg`,
   `.png`, `.jpeg` and `.webp` for the image, and `.mp3`, `.wav` and `.flac` for the audio.
4. Save, open the form's test address and send a portrait and an audio file through it.
5. Press Publish, then share the form's production address.

The form confirms at once. The run goes on behind it, and the finished video is saved in the run's execution data, so
open the run under Executions to get it. Add a node after `downloadVideo` to save the clip to a drive or send it on.

## How it runs

1. `API Setup` holds the key, and `Code in JavaScript` passes the form's two files on.
2. `uploadImage` and `uploadAudio` send one file each to RunningHub, side by side. `Merge` and `Aggregate` fold the two
   replies into one item.
3. `createTask` starts a task on a RunningHub workflow, giving it the image's stored name in node 12, the audio's in
   node 19 and a crop of `center` in node 14.
4. `Wait` pauses one minute, then `checkStatus` asks for the task's status. `Switch` sends SUCCESS to `getOutput`, sends
   QUEUED and RUNNING through `Wait1` (15 seconds) back to `checkStatus`, and leaves FAILED unconnected.
5. `getOutput` asks for the result's address and `downloadVideo` fetches the file.

| Node | RunningHub endpoint | Sends | Gets back |
|---|---|---|---|
| `uploadImage`, `uploadAudio` | `/task/openapi/upload` | the key and one file | the stored file's `fileName` |
| `createTask` | `/task/openapi/create` | the key, `workflowId`, `nodeInfoList` | a `taskId` |
| `checkStatus` | `/task/openapi/status` | the key and the `taskId` | FAILED, SUCCESS, QUEUED or RUNNING |
| `getOutput` | `/task/openapi/outputs` | the key and the `taskId` | the video's `fileUrl` |

## Change the result

- Crop: `crop` in the `nodeInfoList` of `createTask`, set to `center`.
- Timing: `Wait` (one minute before the first check) and `Wait1` (15 seconds between checks).
- Which RunningHub workflow runs: `workflowId` in `createTask`. The node numbers beside it belong to that
  workflow, so change them if you point it at another.
- The form: rename the fields or change the accepted file types in `On form submission`.

## Good to know

- RunningHub bills each task to your account.
- Output 0 of `Switch`, for FAILED, goes nowhere. When no video appears, open the run under Executions.
- Nothing limits the status loop: a task that stays queued or running is checked again and again until it finishes.
- Once the workflow is published, anyone with the form's address can start a run on your RunningHub account.
- The key sits as plain text in `API Setup`, so anyone who can open the workflow can read it.
- The portrait and the recording are uploaded to RunningHub. Use faces and voices you have the right to use.
```

## What is in it

2 files, 15 KB, downloaded as a zip.

```text
README.md  3 KB
workflow.json  11 KB
```

## Workflow check

Checked by Mindket on 13 Nov 2026. Read from the workflow’s file, not from a run.

- Steps: 14 steps, starting on a form
- AI: No step calls an AI model
- Sign-ins: Signs in to: RunningHub
- API keys: No API key is left in the file; 1 blank in it for your own key
- Step types: Mindket’s checker reads all 8 of its step types

## Get it

- [Get it on your Mindket account](https://account.mindket.com/account/?product=mindket#/market/d99e8271-5296-44eb-b124-c767ebaf9560)
- [Its page on Mindket](https://mindket.com/p/d99e8271-5296-44eb-b124-c767ebaf9560)
