# Media Generation
> **Turn a blog into a hero image in 20 seconds and a short avatar video in about 10 minutes — without opening a design tool or a video editor.**
> **TL;DR**
>
> * **What it is —** everything that produces visual assets for a blog: AI hero images for the post, and an avatar video pipeline that turns the blog into a short-form video with narration, B-roll, and background music.
> * **Who it's for —** marketers who want cross-channel content (blog + hero image + social video) from a single draft, and ops leads who need to pause, retry, or re-run a video without starting over.
> * **Top outcome —** one blog draft → one hero image (\~20 seconds) → one 60-second avatar video (\~10 minutes in the background), without touching a video editor.
## At a glance
| | |
| --------------------- | ------------------------------------------------------------------------------------------------------------ |
| **Plan tiers** | Bundled with Lodgestory CRM on Growth and above. Enterprise adds higher video quotas. |
| **Who can use it** | Owners, Admins, Editors can generate. Only Owners and Admins manage reusable avatars, voices, and templates. |
| **What you produce** | Hero images for blogs and short-form avatar videos as MP4. |
| **Limits you'll see** | Plan-level video minutes per month. Uploaded images are capped at 10 MB. |
| **API** | Not partner-facing. Triggered from the editor or the Videos page. |
## How to find it
**Hero images:** open a blog in the editor → right pane → **Images** tab → **Generate** or **Upload**.
**Videos:** in the editor toolbar, click **Generate Video**. Fill the dialog (presenter gender, voice, avatar, template, target duration, optional instructions). Submit, and a new video appears under the **Videos** page with status **Pending**, then **Processing**.
**Videos list:** left nav → **Videos**.
**Video detail:** click any row to see progress, stage results, and controls — **Pause**, **Resume**, **Retry**, **Cancel**.
**Direct URL:** `/videos/`.
Screenshot `[SCREENSHOT: media-nav.png — editor with Generate Video button outlined; sidebar Videos item highlighted]`
## What is Media Generation?
### The problem it solves
A publishable blog needs a hero image. A publishable short-form video needs a script, narration with word-level timing, an avatar delivering the lines with accurate lip-sync, cinematic B-roll that matches each line, text overlays at the right cadence, music that fits the mood, transitions, and a final rendered MP4. Each of those sits behind a different tool and a different failure mode.
Content Studio's media layer collapses the whole thing. Hero images are a one-click generate or upload inside the editor. Videos run as a background job with explicit, transparent stages — if a stage fails, you see which one, read the reason, and retry just that stage without redoing the ones before it.
### What you get
* **Branded hero images** from a prompt tuned to your blog context — in about 20 seconds.
* **60-second social-ready videos** with avatar delivery, captioned B-roll, and background music — from a blog draft.
* **Transparent failures.** If a video stalls, you see where and why, and you can retry, reset to an earlier stage, or cancel.
* **Background execution.** Close the browser and come back later — the pipeline keeps running.
* **Reusable avatars, voices, and templates.** Save a branded presenter and voice once; reuse across every video.
### How it's different
* **Two media types, one workflow.** Images and videos live next to your blog, in the same tool, on the same plan.
* **Real pipeline, not a black-box workflow.** You can see what happened at every stage of the video and retry in place.
* **Per-stage reset.** If you change the template's music, reset to the composition stage without redoing narration or avatar footage.
* **Background music is template-driven.** Pick the mood once at the template level; every video using that template gets the right feel automatically.
### Customer scenarios
1. **"Generate hero images for 20 blogs in one sitting."** Open each blog → Images → **Generate**. About 20 minutes of wall-clock, no human art direction needed.
2. **"Turn the weekly flagship blog into a LinkedIn video."** Editor → **Generate Video** → pick avatar, voice, and template → 60-second target → leave it. Come back in about 10 minutes to share the MP4.
3. **"Recover a stalled video."** Video detail shows the pipeline paused with an error. Click **Retry** — the pipeline resumes from where it stopped. If you changed something upstream, pick **Reset to stage** instead.
4. **"Re-render with different music."** Update the template's background music → **Reset to stage** **Composition** → the pipeline redoes composition, render, and upload using the existing narration and avatar footage. No re-recording.
### How it fits with the rest of Lodgestory
* **Upstream:** the [Editor](editor.md) is where you trigger both images and videos. [AI Content Generation](ai-content-generation.md) produces the blog that feeds the video pipeline.
* **Downstream:** a finished MP4 ready to share. Videos aren't auto-embedded in published blogs today.
Screenshot `[SCREENSHOT: media-landing.png — /videos page with a mix of Completed, Processing, and Failed rows]`
## Core concepts
| Term | What it means |
| -------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Hero image** | The featured image for a blog. Used in social cards, listing thumbnails, and the top of the post. |
| **Feature image** | Same thing — the primary image. One per blog. |
| **Avatar** | The on-camera presenter in a video. A reusable record — upload a source image once, use it across as many videos as you want. |
| **Voice** | A reusable narration voice. Can be a pre-built voice or a custom one cloned from your samples. |
| **Template** | A reusable pairing of style preset, background music mood, and composition look. Controls the overall feel of videos made with it. |
| **Background music** | Royalty-free tracks indexed by mood (upbeat, serious, inspiring). Templates pick the mood; you don't pick a specific track per video. |
| **Screenplay** | The written plan for a video — the segments (hook, argument, CTA), their narration lines, visual directions (avatar shot, B-roll, text overlay), and transitions. Content Studio writes this automatically from your blog. |
| **Segment** | One beat of the video. Each segment has a narration line, a visual direction, and its own piece of footage. |
| **Stage** | One step in the video pipeline (screenplay, narration, avatar footage, B-roll, composition, render, upload). You can reset the pipeline to any stage. |
| **Status** | Where the video is: **Pending**, **Processing**, **Paused**, **Completed**, **Failed**, **Cancelled**. |
## Quick Start — hero image and first video
### A. Generate a hero image (20 seconds)
1. Open any blog in the editor.
2. Right pane → **Images** tab → **Generate**.
3. Optional: add a prompt hint — "sunset over a boutique villa, wide shot, warm light".
4. Submit. Content Studio returns a 1024×1024 image in about 20 seconds.
5. Click **Set as feature** to make it the post's primary image.
6. Click **Insert into body** to drop it at the cursor.
Screenshot `[SCREENSHOT: media-img-gen.png — Images tab with freshly generated hero, "Set as feature" highlighted]`
### B. Spawn a video (about 10 minutes in the background)
1. In the editor, click **Generate Video** on the toolbar.
2. Fill the dialog:
* **Presenter gender** — male or female (default male).
* **Voice** — pick from your organisation's voice library or use the default.
* **Avatar** — pick from your organisation's avatar library or use the default.
* **Template** — pick from your templates. Controls composition look and background music mood.
* **Target duration** — default 60 seconds.
* **Instructions** — optional free text that shapes the screenplay.
3. Submit. The video is queued and shows up under **Videos** with status **Pending**.
4. Within a few seconds, status flips to **Processing**. Click through to the detail view to watch per-stage progress.
5. When the pipeline finishes, status flips to **Completed** and the MP4 URL is ready to copy or download.
Screenshot `[SCREENSHOT: media-video-dialog.png — Generate Video dialog with all fields filled]`
Screenshot `[SCREENSHOT: media-video-progress.png — pipeline detail view with per-stage progress]`
Screenshot `[SCREENSHOT: media-video-done.png — pipeline Completed, final MP4 URL, Download button]`
## How it works
Hero images are a single AI call — prompt in, image out, stored alongside your blog.
Videos are different. Lodgestory turns your blog into a short video through a multi-stage background pipeline — it writes a screenplay, records narration, creates avatar footage, sources B-roll, composes, and renders. Runs in the background; check back in about 10 minutes.
You don't need to manage stages manually. The pipeline picks them up in order, retries transient failures automatically, and moves to the next stage when the current one finishes. You only step in if something hard-fails — and even then, you don't restart the whole video. You retry the failed stage, or you reset to any earlier stage and let it replay from there.
The video detail page surfaces every stage with a clear status and the controls you need:
* **Pause.** Pause an in-flight video without losing progress.
* **Resume.** Continue a paused video from where it stopped.
* **Retry.** When a stage hard-fails, retry just that stage.
* **Cancel.** Terminally stop a video. The stored results are kept; no further work is done.
* **Reset to stage.** Roll the pipeline back to a named stage and replay from there. Useful when you change something upstream (say, the template's music) and want the rest of the video rebuilt around the change.
Screenshot `[SCREENSHOT: media-video-controls.png — pause / resume / retry / cancel / reset buttons on the detail view]`
## Features in depth
### AI hero image
Open the editor → Images → **Generate**. A prompt dialog collects an optional context hint. Submit, and you get a 1024×1024 PNG back in about 20 seconds. The image is stored with your blog; the URL is public so it can load directly on your marketing site.
**Tips:**
* Add negative constraints to the prompt hint — "no text, no letters, no logos" — to avoid accidental watermarks.
* AI-generated images are charged per image. Prefer upload for branded creative you already have.
### Image upload
Upload a file up to 10 MB. Same treatment as generated images — set as feature, edit alt text and caption, insert into body.
**Tip:** upload for branded creative where the visual identity is critical. Generate for topical illustration where the aesthetic is less load-bearing.
### Image metadata edit
Per image you can edit:
* **Image type** — feature (the primary) or inline.
* **Sort order** — how images appear in the body relative to each other.
* **Alt text** — essential for accessibility and structured-data scoring.
* **Caption** — optional label displayed below the image on the public page.
### Image delete
Removes the image from your blog and from storage. Cannot be undone through the UI.
### Video creation
Editor → toolbar → **Generate Video**. The dialog collects:
* **Presenter gender.** Picks a default voice and avatar if you don't override.
* **Voice.** Pick from your organisation's voice library.
* **Avatar.** Pick from your organisation's avatar library.
* **Template.** Picks the composition style and the background music mood.
* **Target duration.** Default 60 seconds.
* **Instructions.** Free text. Shapes the screenplay — for example, "keep tone casual; open with a question."
Submit, and a video record is created with status **Pending**. The pipeline picks it up within a few seconds.
### Video controls
On the video detail page you can:
| Action | What it does |
| ------------------ | ----------------------------------------------------------------------------------------------------------------------- |
| **Start** | Kick off a video that's still Pending. |
| **Pause** | Pause an in-flight video. Current stage finishes; nothing new starts. |
| **Resume** | Continue from where Pause stopped. |
| **Retry** | Retry a Failed pipeline from the stage that failed. |
| **Cancel** | Terminally stop the video. |
| **Reset to stage** | Roll back to a named stage and replay from there. Earlier-stage results are preserved; later-stage results are cleared. |
### Reusable avatars
Create a presenter avatar once, use it across every video. Upload a source image; Content Studio prepares it for on-camera use. You can mark an avatar inactive when you retire it.
### Reusable voices
Create a voice profile once, use it across every video. Pre-built voices are available out of the box. Custom voices cloned from your samples are marked as Cloned so you can tell them apart.
**Voice preview:** from the voice library, preview a voice saying a short sample so you know what you're choosing before committing a whole video.
### Reusable templates
Templates bundle a composition look (layout, lower-third style, transitions) with a background music mood (upbeat, serious, inspiring) and a thumbnail. Creating a video takes a template; changing the template's music or look rolls out to every future video using that template.
### Segment inspection
The video detail page lists every segment of the screenplay with its narration line, its visual direction (avatar shot, B-roll, or text overlay), its duration, and its transition. Useful for understanding what happened when debugging — which segment's B-roll looks wrong, which segment's narration was off.
## Roles & permissions
| Action | Owner | Admin | Editor | Viewer |
| ------------------------------------- | ----- | ----- | ------ | ------ |
| Generate hero image | Yes | Yes | Yes | No |
| Upload image | Yes | Yes | Yes | No |
| Delete image | Yes | Yes | Yes | No |
| Create video | Yes | Yes | Yes | No |
| Pause / Resume / Retry / Cancel video | Yes | Yes | Yes | No |
| Reset a video to a stage | Yes | Yes | No | No |
| Create / edit avatar | Yes | Yes | No | No |
| Create / edit voice | Yes | Yes | No | No |
| Create / edit template | Yes | Yes | No | No |
| View videos | Yes | Yes | Yes | Yes |
## Connections — cross-module workflows
```mermaid
flowchart LR
A[Blog Draft in Editor] --> B[Generate hero image]
B --> C[Set as feature]
A --> D[Generate Video]
D --> E[Video queued — background pipeline]
E --> F[Final MP4 ready]
A --> H[Push to marketing site]
F -.->|shareable MP4, not auto-embedded| H
C --> H
```
### What this module reads
* A published or Draft blog from the [Editor](editor.md).
* Your organisation's library of avatars, voices, and templates.
### What this module produces
* Hero images attached to your blog.
* Short avatar videos stored as shareable MP4s.
## Limits you'll see
| Limit | Value |
| ------------------------------ | ----------------------------------------- |
| Image upload max size | 10 MB |
| Default video target duration | 60 seconds |
| Video pipeline background time | Typically 6–10 minutes |
| Hero image generation time | About 20 seconds |
| Plan-level video minutes | Varies by plan — Enterprise adds headroom |
## Errors & FAQ
### Common situations
| Symptom | What to do |
| ------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Hero image generation says "insufficient credits."** | Your AI image credits are exhausted. Contact support to top up. |
| **Hero image generation fails with a safety message.** | The prompt triggered a content filter. Rephrase and remove potentially policy-violating words. |
| **A video stalls for more than 10 minutes on a stage.** | The underlying service is busy. Click **Retry** — the pipeline resumes from the stalled stage. |
| **A video fails with an avatar-related error.** | The avatar may still be preparing. Wait a few minutes and click **Retry**, or pick a different avatar. |
| **B-roll doesn't match the narration.** | The screenplay's B-roll queries may have been too abstract. Click **Reset to stage** **Screenplay** to regenerate, or reset to the B-roll stage to re-pick footage. |
| **Video completes but the template feels off.** | Update the template (music mood, look), then **Reset to stage** **Composition** on the video. Narration and avatar footage are reused. |
### FAQ
* **Can I generate a video without a blog?** Not today. Videos are always based on a blog. To produce a video from scratch, create a short blog first and generate from it.
* **Can I edit the screenplay before narration runs?** The screenplay isn't editable directly. **Reset to stage** **Screenplay** to regenerate it with different instructions.
* **What happens when I click Cancel during a stage?** The video becomes terminally Cancelled. Any in-flight external work finishes but is discarded.
* **Is there a dashboard of in-flight videos?** The **Videos** page with the **Processing** filter gives you a live view.
* **Can I reuse a rendered video for a different blog?** Not automatically — videos are tied to the blog that spawned them. You can copy the MP4 URL manually.
* **Where do I see the cost of a video?** Cost is tracked per video at the pipeline level; surfacing in the UI varies by deployment.
* **Are my videos auto-embedded in the published blog?** Not today. You can share the MP4 URL directly on social.
## Changelog
* **Apr 2026** — Avatar video pipeline generally available.
* **Mar 2026** — Reset-to-stage control for rolling back a video to an earlier stage.
* **Mar 2026** — Voice preview in the voice library.
* **Feb 2026** — Reusable avatars, voices, and templates.
* **Jan 2026** — AI hero image generation alongside upload.
## Related modules & next steps
* [Editor & Composition](editor.md) — the entry point for both image and video generation.
* [AI Content Generation](ai-content-generation.md) — produces the blog that the video pipeline reads.
* [Sources & Scraping](sources-and-scraping.md) — feeds the blog pipeline upstream.
* [Publishing to CRM](publishing-to-crm.md) — the final destination for blogs (videos are shareable separately).