Synthome Docs
Providers

Overview

Configure API keys for AI model providers

Providers

Synthome connects to multiple AI providers to run models. Each provider requires an API key.

Supported Providers

ProviderEnvironment VariableModels
ReplicateREPLICATE_API_KEYVideo, Image, Audio
FalFAL_KEYVideo, Image
Google CloudGOOGLE_CLOUD_CREDENTIALSImage, Video
ElevenLabsELEVENLABS_API_KEYAudio (TTS)
HumeHUME_API_KEYAudio (TTS)
OpenAIOPENAI_API_KEYTranscription correction

Quick Setup

Set environment variables for the providers you need:

# .env or .env.local
REPLICATE_API_KEY=r8_...
FAL_KEY=...
GOOGLE_CLOUD_CREDENTIALS='{"type":"service_account",...}'
ELEVENLABS_API_KEY=...
HUME_API_KEY=...
OPENAI_API_KEY=sk-...

How Providers Work

When you specify a model, you also specify which provider to use:

import { videoModel, imageModel, audioModel } from "@synthome/sdk";

// Replicate for video
videoModel("bytedance/seedance-1-pro", "replicate");

// Fal for lip-sync
videoModel("veed/fabric-1.0", "fal");

// Google Cloud for high-res image generation
imageModel("google/nana-banana-pro", "google-cloud");

// ElevenLabs for TTS
audioModel("elevenlabs/turbo-v2.5", "elevenlabs");

The SDK automatically uses the corresponding API key from your environment.

Per-Request API Keys

Override environment variables for specific requests:

generateVideo({
  model: videoModel("bytedance/seedance-1-pro", "replicate"),
  prompt: "Ocean waves",
  apiKey: "r8_custom_key_here", // Override for this request
});

Provider Selection

Some models are available on multiple providers:

// Same model, different providers
imageModel("google/nano-banana", "replicate");
imageModel("google/nano-banana", "fal");

Choose based on:

  • Existing accounts: Use providers where you already have API keys
  • Pricing: Check each provider's pricing page
  • Rate limits: Different providers have different limits

How is this guide?

On this page