> ## Documentation Index
> Fetch the complete documentation index at: https://docs.agno.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Lumalabs

> LumaLabTools let an agent generate text-to-video and image-to-video content using the Luma AI Dream Machine API.

**LumaLabTools** enables an Agent to generate media using the [Lumalabs platform](https://lumalabs.ai/dream-machine).

## Prerequisites

```shell theme={null}
export LUMAAI_API_KEY=***
```

The following example requires the `lumaai` library. To install the Lumalabs client, run the following command:

```shell theme={null}
uv pip install -U lumaai openai
```

## Example

The following agent will use Lumalabs to generate any video requested by the user.

```python cookbook/91_tools/lumalabs_tools.py theme={null}
from agno.agent import Agent
from agno.models.openai import OpenAIResponses
from agno.tools.lumalab import LumaLabTools

luma_agent = Agent(
    name="Luma Video Agent",
    model=OpenAIResponses(id="gpt-5.2"),
    tools=[LumaLabTools()],  # Using the LumaLab tool we created
    markdown=True,
    debug_mode=True,
    instructions=[
        "You are an agent designed to generate videos using the Luma AI API.",
        "You can generate videos in two ways:",
        "1. Text-to-Video Generation: use the generate_video function for creating videos from text prompts",
        "2. Image-to-Video Generation: use the image_to_video function when starting from one or two images",
        "Choose the appropriate function based on whether the user provides image URLs or just a text prompt.",
        "The video will be displayed in the UI automatically below your response, so you don't need to show the video URL in your response.",
    ],
    system_message=(
        "Use generate_video for text-to-video requests and image_to_video for image-based "
        "generation. Don't modify default parameters unless specifically requested. "
        "Always provide clear feedback about the video generation status."
    ),
)

luma_agent.run("Generate a video of a car in a sky")
```

## Toolkit Params

| Parameter               | Type   | Default | Description                                               |
| ----------------------- | ------ | ------- | --------------------------------------------------------- |
| `api_key`               | `str`  | `None`  | If you want to manually supply the Lumalabs API key.      |
| `wait_for_completion`   | `bool` | `True`  | Whether to poll until video generation completes.         |
| `poll_interval`         | `int`  | `3`     | Seconds between polling attempts.                         |
| `max_wait_time`         | `int`  | `300`   | Maximum seconds to wait for generation before timing out. |
| `enable_generate_video` | `bool` | `True`  | Enable the generate\_video functionality.                 |
| `enable_image_to_video` | `bool` | `True`  | Enable the image\_to\_video functionality.                |
| `all`                   | `bool` | `False` | Enable all functionality.                                 |

## Toolkit Functions

| Function         | Description                                                                    |
| ---------------- | ------------------------------------------------------------------------------ |
| `generate_video` | Generate a video from a prompt.                                                |
| `image_to_video` | Generate a video from a prompt, a starting image and an optional ending image. |

## Developer Resources

* [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/lumalab.py)
