---
title: Precise and creative enhancement — FLUX Video Upscale | Runware Docs
url: https://runware.ai/docs/models/bfl-flux-video-upscale/guides/creativity-modes
description: "How to use FLUX Video Upscale's settings.creativity: precise, source-faithful sharpening for faces and brands, or creative detail restoration for scenery, textures, and crowds."
---
Two clips can need opposite things from an upscaler. A person's face or a brand's product has to come back **exactly as it went in**, only sharper. A soft landscape or a crowd scene is better served by an upscaler that **invents the detail the source lost**. `settings.creativity` is the switch between those two jobs: `0` **preserves the source and sharpens it**, while `1` **restores and invents detail more aggressively**, and it defaults to `1`.

The owl below runs both ways. Drag between them and the creative pass rebuilds far more feather and eye detail, while the precise pass stays closer to what the source actually held:

[Watch video](https://runware.ai/docs/assets/output-owl-precise.B9Ry6G0z.mp4)

[Watch video](https://runware.ai/docs/assets/output-owl-creative.CxtvZU46.mp4)

Precise (0)Creative (1)

Neither is simply better. The creative side is richer but has **invented some of what it shows**, and the precise side is more faithful but leaves detail the source never captured on the table. Which one is right depends entirely on the footage.

### [The request](https://runware.ai/docs/models/bfl-flux-video-upscale/guides/creativity-modes#the-request)

`creativity` lives under `settings` and takes `0` or `1`. Set it explicitly when you want the precise mode, since the default is the creative `1`.

TypeScriptPythoncURLCLIJSON

```typescript
import { createClient } from '@runware/sdk'

const client = await createClient({ apiKey: process.env.RUNWARE_API_KEY })
await client.connect()

const [result] = await client.run({
  model: 'bfl:flux@video-upscale',
  deliveryMethod: 'async',
  upscaleFactor: 2,
  settings: {
    creativity: 0
  },
  inputs: {
    video: 'https://vm.runware.ai/video/os/a14d18/ws/2/vi/9f0a1b2c-3d4e-5f60-a1b2-c3d4e5f6a708.mp4'
  }
})
```

```python
import asyncio
import os

from runware import Runware

async def main():
    async with Runware(api_key=os.environ["RUNWARE_API_KEY"]) as client:
        results = await client.run({
            "model": "bfl:flux@video-upscale",
            "deliveryMethod": "async",
            "upscaleFactor": 2,
            "settings": {
                "creativity": 0
            },
            "inputs": {
                "video": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/9f0a1b2c-3d4e-5f60-a1b2-c3d4e5f6a708.mp4"
            }
        })

asyncio.run(main())
```

```bash
curl https://api.runware.ai/v1 \
  -H "Authorization: Bearer $RUNWARE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '[
    {
      "taskType": "upscale",
      "taskUUID": "c8d9e0f1-2a3b-4c4d-9e5f-6a7b8c9d0e1f",
      "model": "bfl:flux@video-upscale",
      "deliveryMethod": "async",
      "upscaleFactor": 2,
      "settings": {
        "creativity": 0
      },
      "inputs": {
        "video": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/9f0a1b2c-3d4e-5f60-a1b2-c3d4e5f6a708.mp4"
      }
    }
  ]'
```

```bash
runware run bfl:flux@video-upscale \
  deliveryMethod=async \
  upscaleFactor=2 \
  settings.creativity=0 \
  inputs.video=https://vm.runware.ai/video/os/a14d18/ws/2/vi/9f0a1b2c-3d4e-5f60-a1b2-c3d4e5f6a708.mp4
```

```json
{
  "taskType": "upscale",
  "taskUUID": "c8d9e0f1-2a3b-4c4d-9e5f-6a7b8c9d0e1f",
  "model": "bfl:flux@video-upscale",
  "deliveryMethod": "async",
  "upscaleFactor": 2,
  "settings": {
    "creativity": 0
  },
  "inputs": {
    "video": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/9f0a1b2c-3d4e-5f60-a1b2-c3d4e5f6a708.mp4"
  }
}
```

Response

```json
[
  {
    "taskType": "upscale",
    "taskUUID": "c8d9e0f1-2a3b-4c4d-9e5f-6a7b8c9d0e1f",
    "videoUUID": "5b6c7d8e-9f0a-4b1c-8d2e-3f4a5b6c7d8e",
    "videoURL": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/5b6c7d8e-9f0a-4b1c-8d2e-3f4a5b6c7d8e.mp4"
  }
]
```

### [Precise mode holds identity](https://runware.ai/docs/models/bfl-flux-video-upscale/guides/creativity-modes#precise-mode-holds-identity)

Set `creativity` to `0` for faces, logos, products, and brand-sensitive footage. The precise pass sharpens what is there without redrawing it, so a face keeps its features and a product keeps its exact shape. The creative pass, tuned to invent, can **quietly change a face** while it rebuilds detail, which is the last thing you want on a recognisable person:

[Watch video](https://runware.ai/docs/assets/output-presenter-precise.lp6OkEMS.mp4)

[Watch video](https://runware.ai/docs/assets/output-presenter-creative.D4vdalRg.mp4)

Precise (0)Creative (1)

On the presenter, the precise side stays the same person from the source, only cleaner. The creative side sharpens aggressively but nudges the features as it invents skin and hair detail. **When the source is the source of truth**, a client's talking head, a labelled product, a logo, the precise mode is the safe choice.

### [Creative mode rebuilds texture](https://runware.ai/docs/models/bfl-flux-video-upscale/guides/creativity-modes#creative-mode-rebuilds-texture)

Set `creativity` to `1`, the default, for the footage that has no identity to protect and plenty of texture to gain: scenery, fabrics, foliage, crowds, and clips from a generative model that came out soft. Here the pass rebuilds plausible detail across a dense festival crowd, where a faithful sharpen would only firm up the blur:

[Watch video](https://runware.ai/docs/assets/output-crowd-precise.jhaPSEur.mp4)

[Watch video](https://runware.ai/docs/assets/output-crowd-creative.5RO5AS2R.mp4)

Precise (0)Creative (1)

The creative pass invents believable faces and clothing across the crowd, and because none of it has to match a specific real person, the invention reads as richness rather than error. This is the mode the owl wanted too: **when detail matters more than exactness**, let it invent.

> [!NOTE]
> `creativity` is an integer, not a boolean. It takes `0` or `1` today, and typing it as an integer keeps your mapping forward-compatible. Store and send it as a number rather than a true/false flag.

### [Tips](https://runware.ai/docs/models/bfl-flux-video-upscale/guides/creativity-modes#tips)

1. **Default to precise for anything recognisable.** Faces, logos, products, and brand footage should use `creativity: 0`, since the creative pass can alter what it rebuilds.
    
2. **Default to creative for texture.** Scenery, fabric, foliage, crowds, and soft generated clips gain the most from `creativity: 1`, where invented detail reads as richness.
    
3. **Check faces at full size.** After a creative upscale, review any face against the source before you ship it. If the identity has drifted, re-run in precise mode.
    
4. **Let the content pick the mode, not the resolution.** Both modes upscale by the same factor. Creativity only changes how much the model invents, so choose it from what is in the frame.
    
5. **Map it as an integer.** Treat `creativity` as a numeric field in your integration rather than a boolean, so it stays compatible as the value set grows.