Synthome Docs
Core Concepts

Models

Unified model naming system for AI media generation

Models

Synthome uses a unified model naming system that abstracts provider-specific model IDs. This means you can use the same model name regardless of which provider hosts it.

Model Functions

Use the type-safe model functions to create model instances:

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

// Video models
const seedance = videoModel("bytedance/seedance-1-pro", "replicate");
const minimax = videoModel("minimax/video-01", "replicate");

// Image models
const nanoBanana = imageModel("google/nano-banana", "fal");
const seedream = imageModel("bytedance/seedream-4", "replicate");

// Audio models
const elevenlabs = audioModel("elevenlabs/turbo-v2.5", "elevenlabs");
const hume = audioModel("hume/tts", "hume");

Each function takes:

  1. Model name - The unified model identifier
  2. Provider - Which provider to use for this model

Unified Model Names

Models follow a creator/model-name naming convention:

Model NameTypeDescription
bytedance/seedance-1-provideoHigh-quality video generation
minimax/video-01videoVideo generation
veed/fabric-1.0videoLip-sync video
google/nano-bananaimageFast image generation
google/nano-banana-proimageAdvanced image generation
bytedance/seedream-4imageHigh-quality image generation
elevenlabs/turbo-v2.5audioText-to-speech
hume/ttsaudioExpressive TTS

Provider Selection

Some models are available on multiple providers. Choose based on your needs:

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

TypeScript provides autocomplete for valid provider options per model.

Passing API Keys

You can pass provider API keys directly to the model:

// Option 1: Simple provider string
const model = videoModel("bytedance/seedance-1-pro", "replicate");

// Option 2: Options object with API key
const model = videoModel("bytedance/seedance-1-pro", {
  provider: "replicate",
  apiKey: "your-replicate-key",
});

API keys passed to the model override environment variables and dashboard keys.

Using Models in Generation

Pass models to generation functions:

import {
  compose,
  generateVideo,
  generateImage,
  videoModel,
  imageModel,
} from "@synthome/sdk";

const execution = await compose(
  generateVideo({
    model: videoModel("bytedance/seedance-1-pro", "replicate"),
    prompt: "A serene mountain landscape",
    duration: 5,
  }),
).execute();

Image-to-Video Generation

Some video models support image input:

const execution = await compose(
  generateVideo({
    model: videoModel("bytedance/seedance-1-pro", "replicate"),
    prompt: "Make this image come alive",
    image: generateImage({
      model: imageModel("google/nano-banana", "fal"),
      prompt: "A beautiful sunset over the ocean",
    }),
  }),
).execute();

Available Models by Type

Video Models

ModelProvidersFeatures
bytedance/seedance-1-proreplicateText-to-video, image-to-video
minimax/video-01replicateText-to-video
veed/fabric-1.0falLip-sync, image-to-video
veed/fabric-1.0/fastfalFast lip-sync

Image Models

ModelProvidersFeatures
google/nano-bananareplicate, falText-to-image, fast
google/nano-banana-proreplicate, falAdvanced, typography
bytedance/seedream-4replicateHigh-resolution
codeplugtech/background_removerreplicateBackground removal

Audio Models

ModelProvidersFeatures
elevenlabs/turbo-v2.5elevenlabs, replicateTTS, voice cloning
hume/ttshumeExpressive, emotional
openai/whisperreplicateSpeech-to-text
vaibhavs10/incredibly-fast-whisperreplicateFast transcription

Model Utilities

The SDK provides utility functions for working with models:

import {
  getModelInfo,
  isModelAvailable,
  listModelProviders,
} from "@synthome/sdk";

// Get model information
const info = getModelInfo("bytedance/seedance-1-pro");
console.log(info.mediaType); // "video"
console.log(info.providers); // ["replicate"]

// Check if model is available on a provider
const available = isModelAvailable("google/nano-banana", "fal");
console.log(available); // true

// List all providers for a model
const providers = listModelProviders("google/nano-banana");
console.log(providers); // ["replicate", "fal"]

Next Steps

How is this guide?