---
title: Steering the enhancement with a prompt — FLUX Video Upscale | Runware Docs
url: https://runware.ai/docs/models/bfl-flux-video-upscale/guides/prompt-guided-enhancement
description: "How to steer FLUX Video Upscale with an optional positivePrompt: name the materials and textures you want rebuilt so the enhancement favours the detail that matters."
---
FLUX Video Upscale takes an optional prompt, and it works as a **pointer at the detail you want rebuilt** rather than a description of the scene. Leave it empty and the model enhances the frame evenly, spreading its work across everything. Name a material or a texture and the enhancement **leans toward what you named**, spending more of its detail on the part that matters.

The cable-knit sweater below is upscaled twice from the same soft source. The prompted pass was told to favour the knit, and the weave and stitching come back with more bite:

[Watch video](https://runware.ai/docs/assets/output-knit-plain.C8_Ck9r7.mp4)

[Watch video](https://runware.ai/docs/assets/output-knit-prompted.B_JcyL02.mp4)

No promptPrompted

Both clips are sharper than the source. The difference is **where the detail landed**: with the prompt naming the cable weave and the wool fibres, the sweater's texture is rebuilt more assertively than in the even, unprompted pass.

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

The prompt goes in `positivePrompt`, the same field as any generation, but here it steers rather than describes. Keep it to the elements you want favoured, not a full account of the shot.

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,
  positivePrompt: 'Crisp chunky cable-knit weave, individual wool fibres, defined cable stitching.',
  inputs: {
    video: 'https://vm.runware.ai/video/os/a14d18/ws/2/vi/1a2b3c4d-5e6f-4708-9a1b-2c3d4e5f6071.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,
            "positivePrompt": "Crisp chunky cable-knit weave, individual wool fibres, defined cable stitching.",
            "inputs": {
                "video": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/1a2b3c4d-5e6f-4708-9a1b-2c3d4e5f6071.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": "d9e0f1a2-3b4c-4d5e-9f6a-7b8c9d0e1f2a",
      "model": "bfl:flux@video-upscale",
      "deliveryMethod": "async",
      "upscaleFactor": 2,
      "positivePrompt": "Crisp chunky cable-knit weave, individual wool fibres, defined cable stitching.",
      "inputs": {
        "video": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/1a2b3c4d-5e6f-4708-9a1b-2c3d4e5f6071.mp4"
      }
    }
  ]'
```

```bash
runware run bfl:flux@video-upscale \
  deliveryMethod=async \
  upscaleFactor=2 \
  positivePrompt="Crisp chunky cable-knit weave, individual wool fibres, defined cable stitching." \
  inputs.video=https://vm.runware.ai/video/os/a14d18/ws/2/vi/1a2b3c4d-5e6f-4708-9a1b-2c3d4e5f6071.mp4
```

```json
{
  "taskType": "upscale",
  "taskUUID": "d9e0f1a2-3b4c-4d5e-9f6a-7b8c9d0e1f2a",
  "model": "bfl:flux@video-upscale",
  "deliveryMethod": "async",
  "upscaleFactor": 2,
  "positivePrompt": "Crisp chunky cable-knit weave, individual wool fibres, defined cable stitching.",
  "inputs": {
    "video": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/1a2b3c4d-5e6f-4708-9a1b-2c3d4e5f6071.mp4"
  }
}
```

Response

```json
[
  {
    "taskType": "upscale",
    "taskUUID": "d9e0f1a2-3b4c-4d5e-9f6a-7b8c9d0e1f2a",
    "videoUUID": "6c7d8e9f-0a1b-4c2d-8e3f-4a5b6c7d8e9f",
    "videoURL": "https://vm.runware.ai/video/os/a14d18/ws/2/vi/6c7d8e9f-0a1b-4c2d-8e3f-4a5b6c7d8e9f.mp4"
  }
]
```

### [What to prompt for](https://runware.ai/docs/models/bfl-flux-video-upscale/guides/prompt-guided-enhancement#what-to-prompt-for)

Name the **concrete materials and textures** in the frame, not the mood or the story. Fabric weave, skin pores, wet stone, foliage, fur, brushed metal, engraving: the more specific the noun, the more clearly the model knows where to spend its detail. The dog below shows it on fur, with the prompt pointed at the individual strands and the whiskers:

[Watch video](https://runware.ai/docs/assets/output-dog-plain.YLcbl1Jf.mp4)

[Watch video](https://runware.ai/docs/assets/output-dog-prompted.BUJL-N-g.mp4)

No promptPrompted

The prompted pass separates out the individual fur strands and sharpens the whiskers, where the plain pass leaves the coat softer and more uniform. **Prompt for what the eye should land on**, and let the rest come up with the even enhancement.

> [!NOTE]
> Only name detail that is actually in the source. The prompt biases which existing texture gets rebuilt, it does not add objects that were never there. Asking for detail the frame does not contain wastes the steer and can push artefacts.

### [When to leave it empty](https://runware.ai/docs/models/bfl-flux-video-upscale/guides/prompt-guided-enhancement#when-to-leave-it-empty)

The prompt earns its place in the creative mode, where the model is already inventing detail and a steer decides what it invents. In [precise mode](https://runware.ai/docs/models/bfl-flux-video-upscale/guides/creativity-modes) the model is holding to the source rather than inventing, so a prompt has far less room to act. Leave `positivePrompt` empty when the even, whole-frame enhancement is what you want, or when the footage has no single subject that deserves the detail budget over everything else.

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

1. **Name materials, not the scene.** A prompt like "wet cobblestones and brick texture" steers better than a narrative description of the street. Use concrete nouns for the surfaces you care about.
    
2. **Point at one or two things.** The prompt is a budget for where detail goes, so a short list of the elements that matter beats a long inventory of the whole frame.
    
3. **Only prompt for what is there.** The steer biases existing texture. It does not add missing objects, and asking it to can introduce artefacts.
    
4. **Pair it with the creative mode.** Prompting does the most in `creativity: 1`, where the model invents detail. In precise mode the effect is small.
    
5. **Skip it when the frame is even.** A clip with no clear focal subject, or one you want enhanced uniformly, usually looks best with no prompt at all.