Skip to main content
Pindeck uses two AI providers: OpenRouter for vision-language model (VLM) analysis, and fal.ai for cinematic image variation generation. Both are required for the full AI pipeline to work.
Both OPENROUTER_API_KEY and FAL_KEY must be set in Convex Project Settings → Environment Variables. Setting them in .env.local has no effect on backend Convex functions.

OpenRouter (image analysis)

When an image is approved or uploaded, Pindeck sends it to a Vision Language Model via OpenRouter to extract structured metadata.

What the VLM extracts

FieldDescription
titleShort, descriptive title
descriptionConcise image description
tags5–10 specific descriptive tags
colors5 hex color codes representing the palette
visual_styleMedium or aesthetic (e.g. 35mm Film, CGI, VHS)
categoryOne of 24 predefined categories (e.g. Film, Commercial, Fashion)
groupProject type context (e.g. Music Video, Commercial, Film)
project_nameRecognized project name, if applicable
moodboard_nameMoodboard label, if the image is a reference

Default model

The default VLM is qwen/qwen3-vl-8b-instruct. You can override it by setting OPENROUTER_VLM_MODEL in Convex Project Settings.
Any multimodal model available on OpenRouter that accepts image_url inputs in the chat completions API will work. Check OpenRouter’s model list to find models that fit your budget and quality requirements. Larger models generally produce more accurate metadata extraction.

Provider routing

Set OPENROUTER_PROVIDER_SORT to control how OpenRouter routes requests across providers:
ValueBehavior
priceRoutes to the cheapest available provider
throughputRoutes to the provider with the highest throughput
latencyRoutes to the lowest-latency provider
If unset, OpenRouter uses its default routing policy.

Error handling

If analysis fails (network error, model error, or missing API key), the image aiStatus is set to failed. You can re-run analysis from the Edit Image modal in Pindeck without re-uploading the image.

Environment variables

VariableRequiredDescription
OPEN_ROUTER_KEYYesYour OpenRouter API key. OPENROUTER_API_KEY is also accepted as a fallback — set either one.
OPENROUTER_VLM_MODELNoVLM model override; defaults to qwen/qwen3-vl-8b-instruct
OPENROUTER_PROVIDER_SORTNoRouting preference: price, throughput, or latency

Build docs developers (and LLMs) love