# 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