🔧 Core Configuration
-
CAN_CHANGE_KEYSControls whether users can view or modify API keys via the interface. Set to"false"to keep keys hidden and locked, or"true"to allow modification. Example: -
LLMSelect the Large Language Model (LLM) provider to use. Supported values:"openai","google","anthropic","ollama","custom"Example: -
DISABLE_IMAGE_GENERATION(optional) Disables image generation for slides. Supported values:"true","false"Example: -
DATABASE_URL(optional) Defines the external database connection URL. If not provided, the application will default to using SQLite for local storage. Supports both PostgreSQL and MySQL connection strings. Examples:
🧠 Model Provider Specific Variables
-
WEB_GROUNDING(Optional) Uses web search and other tools to improve presentation quality. Supported LLM:"openai","google","anthropic"Example:
🔹 OpenAI
-
OPENAI_API_KEYRequired ifLLM="openai"Example: -
OPENAI_MODEL(Optional) Defaults togpt-4.1if not specified Example:
-
GOOGLE_API_KEYRequired ifLLM="google"Example: -
GOOGLE_MODEL(Optional) Defaults tomodels/gemini-2.0-flashif not specified Example:
⚠️ Image generation is not supported in EU regions with Google.
🔹 Anthropic
-
ANTHROPIC_API_KEYRequired ifLLM="anthropic"Example: -
ANTHROPIC_MODEL(Optional) Defaults toclaude-3-5-sonnet-20241022if not specified Example:
🔹 Ollama
-
OLLAMA_URL(Optional) URL of your custom Ollama server. Useful if you’re self-hosting. Example: -
OLLAMA_MODELRequired ifLLM="ollama"Example:
🔹 Custom (OpenAI-compatible LLMs)
-
CUSTOM_LLM_URLRequired ifLLM="custom"Example: -
CUSTOM_LLM_API_KEY(Optional) API key for custom LLM provider Example: -
CUSTOM_MODELRequired ifLLM="custom"Example: -
TOOL_CALL(Optional) IfLLM="custom", uses Tool Call for structured outputs instead of JSON Schema. Example: -
DISABLE_THINKING(Optional) IfLLM="custom", disables thinking for Custom Models. Example:
🖼️ Image Providers
-
IMAGE_PROVIDER(Optional) Select the image provider to use. IfDISABLE_IMAGE_GENERATIONis"true", this variable is ignored. Supported values:"dall-e-3","gpt-image-1.5","gemini_flash","nanobanana_pro","pexels","pixabay","comfyui"Example:
🔹 Pexels
-
PEXELS_API_KEYUsed to fetch high-quality stock images from Pexels. Example:
🔹 Pixabay
-
PIXABAY_API_KEYUsed to fetch stock images from Pixabay. Example:
🔹 DALL·E 3
-
OPENAI_API_KEYRequired to generate images using DALL·E 3 via the OpenAI API. Example: -
DALL_E_3_QUALITY(Optional) Controls the output quality. Supported values:"standard","hd"(default:"standard"). Example:
🔹 GPT Image 1.5
-
OPENAI_API_KEYRequired ifIMAGE_PROVIDER="gpt-image-1.5". Example: -
GPT_IMAGE_1_5_QUALITY(Optional) Controls the rendering quality. Supported values:"low","medium","high"(default:"medium"). Example:
🔹 Gemini Flash
-
GOOGLE_API_KEYUsed to access Gemini Flash Image generation. Example:
🔹 Nanobanana Pro
-
GOOGLE_API_KEYRequired ifIMAGE_PROVIDER="nanobanana_pro". Example:
🔹 ComfyUI
Use your local ComfyUI server for image generation. See ComfyUI Integration for setup guide.-
COMFYUI_URLURL of your ComfyUI server. Example: -
COMFYUI_WORKFLOWThe workflow JSON exported from ComfyUI using “Export (API)”. Your prompt node must be renamed to “Input Prompt” in ComfyUI. Example:
💡 For ComfyUI setup, it’s recommended to configure via the Presenton Settings UI rather than environment variables, as workflow JSON can be large.