# Qwen Angles (`qwen_angles`)

> Qwen multi-angle camera manipulation. Change viewing angle of a subject.

- Capability: Images (tool `image`) — Image to image
- Price: from $0.08 per run (1 credit = $0.01). Exact price for a request: POST https://api.varg.ai/v2/estimate
- Typical time: ~15 s
- JSON Schema: https://api.varg.ai/v2/tools/image?model=qwen_angles (public, no key)
- Try it: https://varg.ai/dashboard/tools/playground?model=qwen_angles

## Call it

REST: `POST https://api.varg.ai/v2/tools/image/call` with `Authorization: Bearer $VARG_API_KEY` (create a key at https://varg.ai/dashboard/api).
It answers `202` with a job right away. Poll `GET /v2/jobs/{id}` until `status` is `completed`, then read `output.outputs[0].url` — or pass `options.webhook_url` and get the finished job POSTed to you.

```bash
curl -X POST https://api.varg.ai/v2/tools/image/call \
  -H "Authorization: Bearer $VARG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "qwen_angles",
  "prompt": "same product from a 45-degree side angle",
  "files": [
    {
      "url": "https://s3.varg.ai/o/job_f9f5fbe4.jpg"
    }
  ]
}'
```

MCP: the varg server `https://mcp.varg.ai/mcp` (OAuth sign-in, no key) runs it with `call_tool`:

```json
{
  "tool": "image",
  "input": {
    "model": "qwen_angles",
    "prompt": "same product from a 45-degree side angle",
    "files": [
      {
        "url": "https://s3.varg.ai/o/job_f9f5fbe4.jpg"
      }
    ]
  },
  "wait": true
}
```

## Inputs

| field | type | required | default | allowed | description |
|---|---|---|---|---|---|
| `model` | string | yes | — | `qwen_angles` or a route key below | Which model runs the job. |
| `prompt` | string | no | — | — | — |
| `files` | array of { url } | no | — | — | — |
| `aspect_ratio` | string | no | — | e.g. 16:9 \| 9:16 \| 1:1 \| 4:3 \| 3:4 \| 21:9 \| auto | — |

Media inputs are URLs. Upload a local file first with `POST /v2/files` and pass the returned URL.

## Provider options

Optional, per provider, under `provider_options.<provider>`. Only the options of the provider that runs the job apply — pin a route to choose it.

### provider_options.fal

| field | type | required | default | allowed | description |
|---|---|---|---|---|---|
| `negative_prompt` | string | no | — | — | The negative prompt for the generation |
| `image_urls` | array of URL strings | no | — | — | — |
| `seed` | integer | no | — | -9007199254740991–9007199254740991 | — |
| `zoom` | number | no | — | 0–10 | Camera zoom/distance. 0=wide shot (far away), 5=medium shot (normal), 10=close-up (very close). |
| `sync_mode` | boolean | no | — | — | If `True`, the media will be returned as a data URI. |
| `image_size` | string | no | — | square_hd \| square \| portrait_4_3 \| portrait_16_9 \| landscape_4_3 \| landscape_16_9 | — |
| `lora_scale` | number | no | — | 0–4 | The scale factor for the LoRA model. Controls the strength of the camera control effect. |
| `num_images` | integer | no | — | 1–4 | Number of images to generate |
| `acceleration` | string | no | — | none \| regular | — |
| `output_format` | string | no | — | png \| jpeg \| webp | — |
| `guidance_scale` | number | no | — | 1–20 | The CFG (Classifier Free Guidance) scale. |
| `vertical_angle` | integer | no | — | -30–90 | Vertical camera angle in degrees. -30°=low-angle shot (looking up), 0°=eye-level, 30°=elevated, 60°=high-angle, 90°=bird's-eye view (looking down). |
| `horizontal_angle` | integer | no | — | 0–360 | Horizontal rotation angle around the object in degrees. 0°=front view, 90°=right side, 180°=back view, 270°=left side, 360°=front view again. |
| `additional_prompt` | string | no | — | — | — |
| `num_inference_steps` | integer | no | — | 1–50 | The number of inference steps to perform. |
| `enable_safety_checker` | boolean | no | — | — | Whether to enable the safety checker. |

## Routes

`"model": "qwen_angles"` picks a route automatically (priority order, then the inputs you send). To pin one, pass its key as `model`.

| model key | provider | modality | price from | typical time |
|---|---|---|---|---|
| `fal:qwen_angles` | fal | image-to-image | $0.08 | ~15 s |

## Example output

- image/png: https://s3.varg.ai/o/job_37070184.png

---

Catalog version 2026-11-11T12:59:09.901887+00:00. All models: https://varg.ai/models/llms.txt
