# Enhancement

After a project finishes creation (status `DONE`), Shuffll automatically begins enhancement. This is the post-production stage that turns the raw assembled video into a polished, branded output — no API trigger is needed.

## What enhancement does

- **Branding** — applies the workspace logo, colour palette, and fonts to all scenes
- **Subtitles** — generates accurate captions from the voiceover audio
- **Audio cleanup** — reduces background noise and balances voiceover levels
- **Timing and pacing** — trims pauses, adjusts clip lengths, and aligns transitions


Enhancement runs in parallel across several tasks. The `percentages` field reflects combined progress across all of them.

## Polling enhancement status

A `202` response means enhancement is still running. A `200` response with `isDone: true` means it is complete and the project is ready to export.

```bash
curl "https://api.shuffll.com/api/v1/auth/project/6947b539cc95ea68854bb523/edit/status/enhance" \
  -H "x-api-key: YOUR_API_KEY"
```

**In progress (HTTP 202):**

```json
{ "percentages": 60, "isDone": false }
```

**Complete (HTTP 200):**

```json
{ "percentages": 100, "isDone": true }
```

Recommended polling interval: every 5–10 seconds.

## Skipping manual polling

Set `toAutoEnhance: true` when creating a project to let enhancement start and complete without any polling. Combine with `toAutoExport: true` and a `webhook` URL to receive a single notification when the final video is ready.

## Subtitle customisation

Enhancement generates subtitles automatically. You can customise their appearance using `customTemplate.preConfigs.subtitles.styles`:

```json
"preConfigs": {
  "subtitles": {
    "styles": {
      "normal": {
        "fontSize": 36,
        "fontFamily": "Inter",
        "color": "#FFFFFF"
      },
      "highlight": {
        "color": "#FFD700"
      }
    }
  }
}
```

The `normal` style applies to all subtitle text. The `highlight` style is applied to the currently spoken word (karaoke-style highlighting).

## Per-scene transcription improvements

If a scene contains unusual brand names or technical terms that the speech engine may mistranscribe, use `wordBoost` and `customSpelling` on the relevant scene:

```json
"scenes": [
  {
    "id": "scene_001",
    "wordBoost": ["Shuffll", "GPT-4o"],
    "customSpelling": [
      { "from": ["shufle", "shuffle", "shufll"], "to": "Shuffll" }
    ]
  }
]
```

- `wordBoost` — hints to the speech engine that these words are likely to appear
- `customSpelling` — corrects known mistranscriptions in the final subtitle output