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

# Images and web search

> Configure stock images, generated visuals, compatible image APIs, and optional web research.

Image generation and web research are separate from the text model. You can combine providers—for example, Ollama for text, Pexels for images, and a private SearXNG instance for search.

## Image providers

Set `IMAGE_PROVIDER` to one of the supported values.

| Capability                  | `IMAGE_PROVIDER`    | Required or related settings                       |
| --------------------------- | ------------------- | -------------------------------------------------- |
| Pexels stock images         | `pexels`            | `PEXELS_API_KEY`                                   |
| Pixabay stock images        | `pixabay`           | `PIXABAY_API_KEY`                                  |
| Gemini Flash images         | `gemini_flash`      | `GOOGLE_API_KEY`                                   |
| Nano Banana Pro             | `nanobanana_pro`    | `GOOGLE_API_KEY`                                   |
| DALL·E 3                    | `dall-e-3`          | `OPENAI_API_KEY`, optional quality                 |
| GPT Image 1.5               | `gpt-image-1.5`     | `OPENAI_API_KEY`, optional quality                 |
| ComfyUI                     | `comfyui`           | `COMFYUI_URL`, optional workflow                   |
| Open WebUI                  | `open_webui`        | `OPEN_WEBUI_IMAGE_URL`, `OPEN_WEBUI_IMAGE_API_KEY` |
| OpenAI-compatible image API | `openai_compatible` | Base URL, API key, and model                       |

Set `DISABLE_IMAGE_GENERATION=true` to create presentations without generated or searched images.

### Stock-image example

```dotenv theme={null}
IMAGE_PROVIDER=pexels
PEXELS_API_KEY=replace-with-your-key
```

### OpenAI image example

```dotenv theme={null}
IMAGE_PROVIDER=gpt-image-1.5
OPENAI_API_KEY=replace-with-your-key
GPT_IMAGE_1_5_QUALITY=medium
```

Supported GPT Image 1.5 quality values are `low`, `medium`, and `high`; the default is `medium`. DALL·E 3 supports `standard` and `hd` quality.

### ComfyUI example

```dotenv theme={null}
IMAGE_PROVIDER=comfyui
COMFYUI_URL=http://host.docker.internal:8188
COMFYUI_WORKFLOW={"6":{"inputs":{"text":"placeholder prompt"},"class_type":"CLIPTextEncode","_meta":{"title":"Input Prompt"}}}
```

`COMFYUI_WORKFLOW` contains the API-exported workflow JSON. The prompt node must be titled `Input Prompt` so Presenton can inject each generated prompt.

<Card title="Configure ComfyUI step by step" icon="image" href="/open-source/v0.9.0-beta/configuration/comfyui">
  Expose the server safely, prepare the prompt node, export the API workflow, and troubleshoot generation.
</Card>

### OpenAI-compatible image API

```dotenv theme={null}
IMAGE_PROVIDER=openai_compatible
OPENAI_COMPAT_IMAGE_BASE_URL=https://proxy.example.com/v1
OPENAI_COMPAT_IMAGE_API_KEY=replace-with-your-key
OPENAI_COMPAT_IMAGE_MODEL=gpt-image-1
```

This is useful for gateways such as LiteLLM or another service that exposes a compatible image endpoint. It does not change the text provider.

## Web search

Web search is opt-in. Enable it only when decks need current public information.

```dotenv theme={null}
WEB_GROUNDING=true
WEB_SEARCH_PROVIDER=auto
WEB_SEARCH_MAX_RESULTS=5
```

| `WEB_SEARCH_PROVIDER` | Behavior                                                                                            | Additional setting         |
| --------------------- | --------------------------------------------------------------------------------------------------- | -------------------------- |
| `auto`                | Uses native search for supported OpenAI, Google, or Anthropic configurations; otherwise remains off | None                       |
| `native`              | Requests native provider search                                                                     | A compatible text provider |
| `searxng`             | Uses a self-hosted SearXNG instance                                                                 | `SEARXNG_BASE_URL`         |
| `tavily`              | Uses Tavily                                                                                         | `TAVILY_API_KEY`           |
| `exa`                 | Uses Exa                                                                                            | `EXA_API_KEY`              |

`WEB_SEARCH_MAX_RESULTS` defaults to `5` and supports up to `10` results.

<Tabs>
  <Tab title="SearXNG">
    ```dotenv theme={null}
    WEB_GROUNDING=true
    WEB_SEARCH_PROVIDER=searxng
    SEARXNG_BASE_URL=http://searxng:8080
    WEB_SEARCH_MAX_RESULTS=5
    ```
  </Tab>

  <Tab title="Tavily">
    ```dotenv theme={null}
    WEB_GROUNDING=true
    WEB_SEARCH_PROVIDER=tavily
    TAVILY_API_KEY=replace-with-your-key
    WEB_SEARCH_MAX_RESULTS=5
    ```
  </Tab>

  <Tab title="Exa">
    ```dotenv theme={null}
    WEB_GROUNDING=true
    WEB_SEARCH_PROVIDER=exa
    EXA_API_KEY=replace-with-your-key
    WEB_SEARCH_MAX_RESULTS=5
    ```
  </Tab>
</Tabs>

<Warning>
  Web results and generated images can introduce inaccurate, outdated, or licensed material. Review facts, citations, image rights, and attribution requirements before sharing a presentation.
</Warning>
