---
agentTools:
  projectIndex: https://docs.lumalabs.ai/llms.txt
---

# Camera Concepts

<Embed url="https://website-demo-concepts.vercel.app" title="iframe" provider="website-demo-concepts.vercel.app" href="https://website-demo-concepts.vercel.app" typeOfEmbed="iframe" height="400px" width="800px" iframe="true" />

## How to use

```python
generation = client.generations.create(
    prompt="a car",
    model="ray-2",
    resolution="720p",
    duration="5s",
    concepts=[
      {
      	"key": "handheld"
      }
    ]
)
```
```typescript
const generation = await client.generations.create({
  prompt: "a car",
  model: "ray-1",
  resolution: "720p",
  duration: "5s",
  concepts: [
    {
    	"key": "bolt_cam"
    }
  ]
});
```
```curl
curl --request POST \
     --url https://api.lumalabs.ai/dream-machine/v1/generations \
     --header 'accept: application/json' \
     --header 'authorization: Bearer luma-xxxx' \
     --header 'content-type: application/json' \
     --data '
{
  "prompt": "a car",
  "model": "ray-2",
  "resolution": "720p",
  "duration": "5s",
  "concepts": [
  	{
    	"key": "dolly_zoom"
    }
  ]
}
'
```

## How to get list of available concepts

We have this new `/concepts/list` api one can hit to get list of concepts available.

```curl
curl --request GET \
     --url 'https://api.lumalabs.ai/dream-machine/v1/generations/concepts/list' \
     --header 'Accept: application/json' \
     --header 'Authorization: Bearer luma-xxxx'
```

```json
[
    "truck_left",
    "pan_right",
    "pedestal_down",
    "low_angle",
    "pedestal_up",
    "selfie",
    "pan_left",
    "roll_right",
    "zoom_in",
    "over_the_shoulder",
    "orbit_right",
    "orbit_left",
    "static",
    "tiny_planet",
    "high_angle",
    "bolt_cam",
    "dolly_zoom",
    "overhead",
    "zoom_out",
    "handheld",
    "roll_left",
    "pov",
    "aerial_drone",
    "push_in",
    "crane_down",
    "truck_right",
    "tilt_down",
    "elevator_doors",
    "tilt_up",
    "ground_level",
    "pull_out",
    "aerial",
    "crane_up",
    "eye_level"
]
```

## How to combine concepts

concepts parameter is just an array of objects, so you can combine a few concepts too

```python
generation = client.generations.create(
    prompt="a car",
    model="ray-2",
    resolution="720p",
    duration="5s",
    concepts=[
      {
      	"key": "pull_out"
      },
      {
      	"key": "tilt_down"
      }
    ]
)
```
```typescript
const generation = await client.generations.create({
  prompt: "a car",
  model: "ray-1",
  resolution: "720p",
  duration: "5s",
  concepts: [
    {
    	"key": "orbit_right"
    },
    {
    	"key": "handheld"
    }
  ]
});
```
```curl
curl --request POST \
     --url https://api.lumalabs.ai/dream-machine/v1/generations \
     --header 'accept: application/json' \
     --header 'authorization: Bearer luma-xxxx' \
     --header 'content-type: application/json' \
     --data '
{
  "prompt": "a car",
  "model": "ray-2",
  "resolution": "720p",
  "duration": "5s",
  "concepts": [
    {
    	"key": "elevator_doors"
    },
    {
    	"key": "dolly_zoom"
    }
  ]
}
'
```

<Embed url="https://static.cdn-luma.com/files/a6b275c161742c9e/1-1.mp4" title="iframe" provider="static.cdn-luma.com" href="https://static.cdn-luma.com/files/a6b275c161742c9e/1-1.mp4" typeOfEmbed="iframe" height="450px" width="100%" iframe="true" />

## Pricing

Same as `ray-2` and `ray-flash-2`

More details: <https://lumalabs.ai/api/pricing>

## SDKs

Python: [pypi.org/project/lumaai/](https://pypi.org/project/lumaai/)

TS/JS: [npmjs.com/package/lumaai](https://www.npmjs.com/package/lumaai)

<br />

<Embed url="https://www.youtube.com/watch?v=BlMZDTyjIAQ" title="Luma AI - Ray2 Camera Angle Concepts" favicon="https://www.youtube.com/favicon.ico" image="https://i.ytimg.com/vi/BlMZDTyjIAQ/hqdefault.jpg" provider="youtube.com" href="https://www.youtube.com/watch?v=BlMZDTyjIAQ" typeOfEmbed="youtube" html="%3Ciframe%20class%3D%22embedly-embed%22%20src%3D%22%2F%2Fcdn.embedly.com%2Fwidgets%2Fmedia.html%3Fsrc%3Dhttps%253A%252F%252Fwww.youtube.com%252Fembed%252FBlMZDTyjIAQ%253Ffeature%253Doembed%26display_name%3DYouTube%26url%3Dhttps%253A%252F%252Fwww.youtube.com%252Fwatch%253Fv%253DBlMZDTyjIAQ%26image%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FBlMZDTyjIAQ%252Fhqdefault.jpg%26type%3Dtext%252Fhtml%26schema%3Dyoutube%22%20width%3D%22854%22%20height%3D%22480%22%20scrolling%3D%22no%22%20title%3D%22YouTube%20embed%22%20frameborder%3D%220%22%20allow%3D%22autoplay%3B%20fullscreen%3B%20encrypted-media%3B%20picture-in-picture%3B%22%20allowfullscreen%3D%22true%22%3E%3C%2Fiframe%3E" />

<Embed url="https://www.youtube.com/watch?v=9Re_Z10Diog" title="Luma AI - Ray2 Camera Motion Concepts" favicon="https://www.youtube.com/favicon.ico" image="https://i.ytimg.com/vi/9Re_Z10Diog/hqdefault.jpg" provider="youtube.com" href="https://www.youtube.com/watch?v=9Re_Z10Diog" typeOfEmbed="youtube" html="%3Ciframe%20class%3D%22embedly-embed%22%20src%3D%22%2F%2Fcdn.embedly.com%2Fwidgets%2Fmedia.html%3Fsrc%3Dhttps%253A%252F%252Fwww.youtube.com%252Fembed%252F9Re_Z10Diog%253Ffeature%253Doembed%26display_name%3DYouTube%26url%3Dhttps%253A%252F%252Fwww.youtube.com%252Fwatch%253Fv%253D9Re_Z10Diog%26image%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252F9Re_Z10Diog%252Fhqdefault.jpg%26type%3Dtext%252Fhtml%26schema%3Dyoutube%22%20width%3D%22640%22%20height%3D%22480%22%20scrolling%3D%22no%22%20title%3D%22YouTube%20embed%22%20frameborder%3D%220%22%20allow%3D%22autoplay%3B%20fullscreen%3B%20encrypted-media%3B%20picture-in-picture%3B%22%20allowfullscreen%3D%22true%22%3E%3C%2Fiframe%3E" />