AI Model Reference

Use this page when choosing provider defaults, example model lists, or the routing order for the services already calling the AI gateway.

Model guidance refreshed on July 2, 2026 These defaults combine the current gateway implementation with up-to-date vendor docs. Generic or self-hosted providers still depend on the exact upstream endpoint you deploy.

Service-to-Model Map

Current internal services using the gateway
Service Use Case Primary Choice Good Alternatives Why
ChatGenerationService
Chat
User-facing assistant replies from /ai/chat. OpenAI
gpt-5-mini
openai
gpt-5.4 claude-sonnet-4-6 grok-4.3
gpt-5-mini is the best balanced default for high-volume chat. Keep gpt-5.4 or Claude Sonnet 4.6 as premium or fallback routes.
MediaGenerationService
Image
General image requests from /ai/image. OpenAI Images
gpt-image-1.5
openai
recraftv4 black-forest-labs/flux-1.1-pro grok-imagine-image-quality
gpt-image-1.5 is the cleanest default for prompt following and edits. Recraft is stronger for design assets and Flux is better when you want more tuning or self-hosted control.
MediaGenerationService
Video
General async video requests from /ai/video. Runway
gen4_turbo
runway
ray-2 gen4.5 heygen-avatar
Runway Gen-4 Turbo is the strongest general image-to-video default in the current gateway. Use Luma Ray-2 as the main fallback, premium Runway gen4.5 when you want higher quality, and HeyGen only when the output should stay avatar-led.
ChatMediaService
Audio
Lazy voice playback for character replies from /chat/messages/:id/voice. ElevenLabs
eleven_turbo_v2_5
elevenlabs
tts-1-hd tts-1 openai-compatible
ElevenLabs gives the best mix of voice quality and native cloning for character playback. Keep OpenAI TTS or a compatible proxy as the fallback if you want a simpler operational path.
VoiceChatService
Audio
Full voice-chat loop where STT is followed by AI reply generation and TTS rendering. OpenAI TTS + Whisper
tts-1-hd
openai-tts
eleven_turbo_v2_5 whisper-1 openai-compatible
OpenAI TTS + Whisper is the simplest end-to-end audio stack when you need both transcription and speech synthesis in one provider family. Use ElevenLabs when the product demands cloned character voices.
CharacterGenerationService
Image
Initial character profile image generation before publishing. OpenAI Images
gpt-image-1.5
openai
recraftv4 black-forest-labs/flux-1.1-pro
Character portraits benefit from strong prompt fidelity and predictable edits. Recraft works well for stylized art direction; Flux is better when you need a more controllable pipeline.
CharacterGenerationService
Video
Follow-up image-to-video generation after the character portrait is ready. Runway
gen4_turbo
runway
ray-2 heygen-talking-photo gen4.5
This flow already starts from a still image, which makes Runway a natural primary. Luma Ray-2 is the best fallback for cinematic motion, and HeyGen only fits when you specifically want a talking-photo result. Premium options like Runway gen4.5 are available when quality is critical.

Provider Reference

Examples for provider creation and model defaults
Task Provider Recommended Models Config Notes
Chat OpenAI
openai Cloud
Best general-purpose chat default when you want strong reasoning, broad multimodal support, and the most mature OpenAI tooling.
Default: gpt-5.4
Examples:
gpt-5.4 gpt-5-mini gpt-4.1
Use gpt-5.4 for your premium path, gpt-5-mini for lower-cost high-volume traffic, and gpt-4.1 when you want a stable older chat-completions option.
Endpoint: https://api.openai.com/v1
Use the standard OpenAI endpoint unless you are routing through Azure OpenAI or another compatible proxy.
API Routes:
/models /chat/completions
  • OpenAI image generation should be configured as a separate image provider instead of sharing the chat config.
  • The current gateway uses the Chat Completions endpoint, so keep your example models compatible with that API.
Reference URLs:
Chat Anthropic Claude
claude Cloud
Strong fallback or primary choice for long-form reasoning and structured assistant behavior through Anthropic’s Messages API.
Default: claude-sonnet-4-6
Examples:
claude-sonnet-4-6 claude-opus-4-6 claude-haiku-4-5
Use Sonnet 4.6 as the balanced default, Opus 4.6 for premium reasoning, and Haiku 4.5 for cheaper low-latency traffic.
Endpoint: https://api.anthropic.com/v1
Anthropic uses the Messages API and expects the system prompt as a top-level field, not a message.
API Routes:
/messages /models
Custom Params:
System prompt is sent as top-level system, not inside messages[]
  • The adapter sends the system prompt separately, so do not assume OpenAI-style message formatting here.
  • Anthropic model ids are snapshot-like; keep the full id in your config rather than shortening it.
Chat xAI Grok
grok Cloud
Useful when you want current Grok models behind an OpenAI-like chat surface, with long context, configurable reasoning, and xAI-specific routing options.
Default: grok-4.3
Examples:
grok-4.3 grok-4.3-latest grok-build-0.1
Use grok-4.3 as the current general-purpose default. Use grok-4.3-latest only when you want automatic feature movement, and keep grok-build-0.1 for coding or agentic software workflows.
Endpoint: https://api.x.ai/v1
The chat adapter is OpenAI-compatible, so the endpoint should point at xAI’s /v1 API base.
API Routes:
/models /chat/completions
  • The gateway currently has a native Grok chat adapter only.
  • Grok 4.3 supports a 1M-token context window and configurable reasoning, so it is now the best xAI default for broad chat traffic.
  • If you want xAI image generation today, configure it under the image task with provider type openai-compatible and model grok-imagine-image-quality.
Chat Ollama
ollama Local
Best local-first option when you want zero per-call vendor cost and can manage your own pulled models.
Default: llama3.2
Examples:
llama3.2 gemma3 phi4
Use a model you have already pulled locally. The examples above are safe defaults, but the real catalog is whatever your Ollama instance exposes.
Endpoint: http://localhost:11434
Point this at the Ollama host that exposes /api/tags and the OpenAI-compatible /v1/chat/completions endpoint.
API Routes:
/api/tags /v1/chat/completions
Metadata: {"keepAlive":"5m"}
keepAlive keeps the model warm after each request so the next completion is faster.
Custom Params:
keepAlive
  • No API key is required for the default local setup.
  • Prefer a small local model for fallback rather than assuming every environment has a large model preloaded.
Chat Puter
puter Proxy
Good for broad multi-model access or zero-cost integration testing through testMode when you do not want to wire every vendor directly.
Default: gpt-4o-mini
Examples:
gpt-4o-mini claude-sonnet-4 grok-4.3
Use the exact model ids your Puter account exposes. The examples here are good starting points, but Puter’s catalog can change independently of this UI.
Endpoint: https://api.puter.com
Puter requires metadata.authToken rather than the regular apiKey field for real traffic.
API Routes:
/v2/ai/chat
Metadata: {"authToken":"puter_xxx","testMode":false}
Set testMode to true when you want realistic mock responses without consuming external credits.
Custom Params:
authToken testMode
  • Puter is useful when you want one provider config to fan out to many upstream vendors.
  • Because the upstream catalog is dynamic, keep the allowed model list tight instead of pasting in every model you see in docs.
Reference URLs:
Chat OpenAI-Compatible HTTP
openai-compatible Proxy
Use this for any upstream that exposes a standard OpenAI-style chat API, including Groq, Together, LiteLLM, LM Studio, vLLM, or your own gateway.
Default: your-upstream-model
Examples:
grok-4.3 llama-3.3-70b-versatile local-model
Use this when the providerType matters less than the endpoint. Good real-world examples are xAI with grok-4.3, Groq with llama-3.3-70b-versatile, or LM Studio with your local model id.
Endpoint: https://api.example.com/v1 or http://localhost:1234/v1
The endpoint must expose the OpenAI-style /chat/completions route. Model ids must match exactly what that upstream serves.
API Routes:
/models /chat/completions
Custom Params:
Provider-specific body fields must be passed by the upstream itself; this adapter only sends standard OpenAI chat fields
  • This is the safest way to onboard a new OpenAI-like provider without writing a new adapter first.
  • For local tools such as LM Studio or vLLM, leave apiKey blank or set it to a harmless value if the server ignores auth.
Image OpenAI Images
openai Cloud
Best default for prompt fidelity, edits, and clean image generation when you want one general-purpose image provider.
Default: gpt-image-1.5
Examples:
gpt-image-1.5 gpt-image-1 gpt-image-1-mini
Use gpt-image-1.5 as the main default, keep gpt-image-1 for broad compatibility, and use gpt-image-1-mini only when you are optimizing hard for cost.
Endpoint: https://api.openai.com/v1
The image adapter uses OpenAI’s /images/generations and /images/edits endpoints behind the same /v1 base URL.
API Routes:
/models /images/generations /images/edits
Custom Params:
faceStrategy=img2img to preserve a reference face through /images/edits
  • This gateway uses face references through the edit flow when metadata.faceStrategy stays on img2img.
  • Keep OpenAI chat and OpenAI image as separate configs so the default model never points at the wrong task.
Image Stable Diffusion / Replicate
stable-diffusion Proxy
Best choice when you need stronger control over style, seeds, references, or self-hosted image generation.
Default: black-forest-labs/flux-1.1-pro
Examples:
black-forest-labs/flux-1.1-pro black-forest-labs/flux-schnell stability-ai/stable-diffusion-3
Use flux-1.1-pro for quality, flux-schnell for speed, and stable-diffusion-3 only when you already depend on that ecosystem.
Endpoint: https://api.replicate.com/v1
For Replicate, point at the standard API base. For self-hosted Automatic1111, switch the endpoint and set metadata.mode to a1111.
API Routes:
/predictions /predictions/{id} /sdapi/v1/txt2img when mode=a1111
Metadata: {"pollingIntervalMs":2000,"maxPollingWaitMs":120000}
Add {"mode":"a1111"} when you are using Automatic1111 instead of Replicate.
Custom Params:
mode faceStrategy pollingIntervalMs maxPollingWaitMs
  • The current adapter supports IP-Adapter style face references natively when metadata.faceStrategy is ip-adapter.
  • Replicate model ids are provider-specific slugs, so do not shorten them in the config.
Image Recraft
recraft Cloud
Best for design-heavy assets, typography, icons, and branded visuals where art direction matters more than raw photorealism.
Default: recraftv4
Examples:
recraftv4 recraftv4_vector recraftv3_svg
Use recraftv4 for most current work. Move to recraftv4_pro or recraftv4_pro_vector only when you explicitly want the higher-end paid tier. Keep recraftv3_svg only when you need the older vector/text-layout flow.
Endpoint: https://external.api.recraft.ai/v1
Use the Recraft API base. If you depend on older V3-only style controls, stay on recraftv3 or recraftv3_svg.
API Routes:
/images/generations
Custom Params:
request.options.style request.options.style_id request.options.controls
  • The current gateway adapter is permissive, so newer Recraft model ids can still be passed through even though older comments mention V3.
  • Recraft is usually a better second image provider than a universal primary for every prompt.
Image Midjourney-Compatible Proxy
midjourney-compat Proxy
Use when you specifically want Midjourney-style aesthetics through a proxy such as GoAPI or ImagineAPI.
Default: midjourney-v6
Examples:
midjourney-v6 niji-6 midjourney
Use midjourney-v6 as the safest baseline unless your proxy explicitly documents a newer version.
Endpoint: https://api.goapi.ai/v1 or your proxy endpoint
Proxy capabilities vary a lot, so keep the endpoint and model list aligned to the proxy service you actually bought.
API Routes:
Proxy-specific submit endpoint Proxy-specific polling endpoint
Metadata: {"proxyType":"goapi"}
Set proxyType to goapi when you want the adapter to use the GoAPI-specific submit and polling flow.
Custom Params:
proxyType authHeaderName pollingIntervalMs maxPollingWaitMs
  • This provider is usually aesthetic-first, not control-first.
  • Native face conditioning is not available here; post-generation face swap is the realistic expectation.
Image Puter
puter Proxy
Useful when you want a fast image sandbox with testMode support or a single proxy that can surface several upstream image vendors.
Default: gpt-image-1
Examples:
gpt-image-1 gpt-image-1-mini dall-e-3
Prefer the model ids Puter already exposes in your account. The defaults here match the gateway adapter’s current expectations.
Endpoint: https://api.puter.com
Real requests require metadata.authToken. testMode can be used without live upstream credits.
API Routes:
/v2/ai/images
Metadata: {"authToken":"puter_xxx","testMode":false}
Set testMode to true when you want deterministic mock output for UI or pipeline testing.
Custom Params:
authToken testMode imageModel faceStrategy
  • Puter image support is good for development and demos, but you should still keep a direct image provider for production-critical work.
  • Face-reference behavior is model-dependent when routed through Puter.
Reference URLs:
Image OpenAI-Compatible HTTP
openai-compatible Proxy
Use this when your image endpoint speaks an OpenAI-style /images/generations API, including xAI image, local gateways, or custom wrappers.
Default: grok-imagine-image-quality
Examples:
grok-imagine-image-quality flux-1.1-pro your-upstream-image-model
Use the exact model id the upstream expects. grok-imagine-image-quality is the current xAI model id for text-to-image and image editing through the Imagine API.
Endpoint: https://api.x.ai/v1 or your /v1 image endpoint
This is the right place to wire xAI image generation today because the gateway does not ship a native Grok image provider type.
API Routes:
/models /images/generations
Metadata: {"faceStrategy":"img2img"}
Change faceStrategy to ip-adapter only if the upstream actually supports native IP-Adapter inputs.
Custom Params:
faceStrategy seed via request.seed negative_prompt via request.negativePrompt
  • This adapter is the escape hatch for any vendor that matches the OpenAI image request shape.
  • xAI Imagine supports text-to-image plus image editing with up to three reference images; confirm your adapter path matches the exact request shape before routing production traffic.
  • When the upstream does not require auth, leave apiKey blank or set it to not-required.
Video Runway
runway Cloud
Best default for image-to-video in this gateway when you want strong quality and a straightforward async workflow.
Default: gen4_turbo
Examples:
gen4_turbo gen4.5 gen3a_turbo
Use gen4_turbo as the safest default. Move to gen4.5 only when you explicitly want the higher-end model and accept the higher cost.
Endpoint: https://api.dev.runwayml.com/v1
The current adapter uses Runway’s image_to_video workflow, so keep an image input in mind when choosing this provider.
API Routes:
/image_to_video /tasks/{id}
Metadata: {"pollingIntervalMs":5000,"maxPollingWaitMs":300000}
Use polling metadata only if you need slower retry cadence for long-running jobs.
Custom Params:
pollingIntervalMs maxPollingWaitMs
  • This adapter is best when you already have a good still image to animate.
  • Runway remains a better general default than avatar-first providers for cinematic motion.
Video Luma Dream Machine
luma Cloud
Good alternate for more cinematic motion or when you want a second video provider behind Runway.
Default: ray-2
Examples:
ray-2 ray-flash-2 dream-machine
Use ray-2 as the current high-quality default and ray-flash-2 when you want a cheaper or quicker alternate.
Endpoint: https://api.lumalabs.ai/dream-machine/v1
The gateway adapter uses the Dream Machine generations endpoint and can pass a starting frame through keyframes.
API Routes:
/generations /generations/{id}
Metadata: {"pollingIntervalMs":8000,"maxPollingWaitMs":600000}
Luma jobs can take longer than Runway, so the default max wait is intentionally higher.
Custom Params:
pollingIntervalMs maxPollingWaitMs
  • Luma is a strong fallback for image-to-video when Runway quota or latency becomes a problem.
  • Expect async jobs and keep webhook/polling paths healthy before making this your only video provider.
Video HeyGen
heygen Cloud
Use for talking-avatar and portrait-driven video, not as the default cinematic text-to-video provider.
Default: heygen-avatar
Examples:
heygen-avatar heygen-talking-photo
Use heygen-avatar for reusable avatar pipelines and heygen-talking-photo for face-driven one-off clips.
Endpoint: https://api.heygen.com
The gateway adapter needs either metadata.avatarId or a reference face image so it can create avatar-style output.
API Routes:
/v2/video/generate /v1/video_status.get?video_id={id}
Metadata: {"avatarId":"ava_xxx","voiceId":"en-US-AriaNeural","avatarStyle":"normal"}
Set avatarId for reusable studio avatars. Use heygen-talking-photo when the flow starts from a portrait reference instead.
Custom Params:
avatarId voiceId avatarStyle pollingIntervalMs maxPollingWaitMs
  • HeyGen is the right provider when the output must look like a speaking presenter or character, not a broad motion clip.
  • The vendor’s newer Avatar IV endpoints exist, but this gateway still wraps the generic avatar and talking-photo flow.
Video OpenAI-Compatible HTTP
openai-compatible Proxy
Use for upstream video systems that expose a simple HTTP shape your deployment has normalized for the gateway. Note: OpenAI Sora was discontinued in early 2026; use xAI grok-imagine-video-1.5, Runway, Luma, or other video provider alternatives instead.
Default: grok-imagine-video-1.5
Examples:
grok-imagine-video-1.5 your-custom-video-model flux-video-model
If endpoint=https://api.x.ai/v1, use grok-imagine-video-1.5 for xAI image-to-video and video generation. For any other upstream, use the exact normalized model id your server exposes. Always test polling paths and content delivery before making this provider your primary video default.
Endpoint: https://api.x.ai/v1, https://your-video-gateway.com/v1, or your custom /v1 base
This adapter has two code paths: OpenAI video uses /videos, /videos/{id}, and /videos/{id}/content; generic upstreams use /videos/generations plus polling.
API Routes:
OpenAI-style: /videos, /videos/{id}, /videos/{id}/content Generic: /videos/generations, /videos/generations/{id} or metadata.pollPathTemplate
Metadata: {"pollingIntervalMs":5000,"maxPollingWaitMs":300000,"contentVariant":"video"}
Use contentVariant for OpenAI-style content downloads, pollPathTemplate for custom polling URLs, and xaiImageObject when the upstream expects image objects instead of bare URLs.
Custom Params:
pollingIntervalMs maxPollingWaitMs contentVariant pollPathTemplate faceStrategy xaiImageObject
  • OpenAI Sora has been discontinued as of early 2026; do not configure it with this adapter.
  • This adapter is the most flexible option for future video providers, but also the easiest to misconfigure.
  • Prefer native runway, luma, or heygen configs when one of those providers already fits your use case. Use openai-compatible for newer or custom video backends.
Image Crebots
crebots Cloud
Preset-based async image generation API — each preset defines the generation style; use the special "custom" preset for free-prompt generation without a fixed pose.
Default: custom
Examples:
custom undress topless lingerie tattoo
Crebots is preset-driven: setting the "default model" to a preset name selects which generation style to run. Use "custom" when you want free-form prompt control without a fixed pose. All other preset names require an input image passed via inputMedia with role img2img or reference_face.
Endpoint: https://api.crebots.com/api
Crebots uses an API-KEY header (not Bearer). The endpoint must include /api — do not strip the path suffix.
API Routes:
/create_image /task/{id} /balance
Metadata: {"pollingIntervalMs":5000,"maxPollingWaitMs":600000}
pollingIntervalMs controls how often the adapter polls /task/{id} after submitting. maxPollingWaitMs is the hard timeout (default 10 minutes).
Custom Params:
request.options.preset — override the preset name per-request (takes priority over model) request.options.quality — "low", "mid", "high", or "ultra" (image only) request.options.expandPrompt — boolean, enables LLM prompt upsampling
  • Account balance must be funded — gateway calls fail until /balance shows available_amount > 0.
  • Output content is adult NSFW — gate behind admin/subscription tiers before exposing to end users.
  • The "custom" preset is the only one that does not require an input image.
Reference URLs:
Video Crebots
crebots Cloud
Preset-based async video (and audio+video) generation API — supply an input image and a preset to animate it into a short video clip.
Default: undress
Examples:
undress missionary_pov blowjob twerk nude_posing
Crebots is preset-driven: setting the "default model" to a preset name selects which animation style runs. Video presets (~51) use /create_video; audio+video presets (blowjob_pov, cumshot, front_doggystyle, missionary_pov, squatting_cowgirl, undress) use /create_audio_video. An input image is always required.
Endpoint: https://api.crebots.com/api
Crebots uses an API-KEY header (not Bearer). The endpoint must include /api — do not strip the path suffix.
API Routes:
/create_video /create_audio_video /task/{id} /balance
Metadata: {"pollingIntervalMs":5000,"maxPollingWaitMs":600000}
Add "mode":"audio_video" to force the adapter to use /create_audio_video for any preset, even those not in the audio_video preset family. Example: {"pollingIntervalMs":5000,"maxPollingWaitMs":600000,"mode":"audio_video"}.
Custom Params:
request.options.preset — override the preset name per-request (takes priority over model) request.options.quality — "low", "mid", "high" (ultra is not supported for video) request.options.audioVideo — boolean, forces /create_audio_video route request.options.videoLength — "5s", "10s", "15s", or "20s" (audio_video route only) request.options.ageCheck — boolean, enables minor detection safeguard on input image
  • Account balance must be funded — gateway calls fail until /balance shows available_amount > 0.
  • Output content is adult NSFW — gate behind admin/subscription tiers before exposing to end users.
  • Setting metadata.mode to "audio_video" forces /create_audio_video even for non-audio-video presets.
Reference URLs:
Audio ElevenLabs
elevenlabs Cloud
Best default when you want high-quality TTS plus native voice cloning for character playback.
Default: eleven_turbo_v2_5
Examples:
eleven_turbo_v2_5 eleven_multilingual_v3 eleven_flash_v2_5
Use eleven_turbo_v2_5 for the fastest path, eleven_multilingual_v3 for the broadest quality coverage, and eleven_flash_v2_5 when latency matters more than richness.
Endpoint: https://api.elevenlabs.io/v1
Use the standard ElevenLabs API base. Store cloned voice IDs in the provider metadata or the character voice profile.
API Routes:
/voices /text-to-speech /speech-to-speech
Metadata: {"subTypes":["tts","clone"],"defaultVoiceId":"21m00Tcm4TlvDq8ikWAM","outputFormat":"mp3_44100_128"}
Keep a sensible defaultVoiceId so TTS still works when a character does not have a cloned voice yet.
Custom Params:
subTypes defaultVoiceId stability similarityBoost style outputFormat
  • This is the cleanest choice when the product needs both speech synthesis and native voice cloning.
  • Keep a sample voice file in the character profile so admins can re-clone or refresh the voice later.
Audio OpenAI TTS + Whisper
openai-tts Cloud
Good general-purpose audio provider when you want OpenAI speech synthesis and built-in Whisper transcription in the same stack.
Default: tts-1-hd
Examples:
tts-1-hd tts-1 whisper-1
Use tts-1-hd for the highest-quality voice playback, tts-1 for lower latency, and whisper-1 when you need speech-to-text in the same provider family.
Endpoint: https://api.openai.com/v1
Use the standard OpenAI endpoint. TTS and STT can share the same API key, but the gateway should still route them as audio-specific configs.
API Routes:
/audio/speech /audio/transcriptions /models
Metadata: {"subTypes":["tts","stt"],"defaultVoiceId":"nova","outputFormat":"mp3","speed":1}
The built-in voice names are fixed by OpenAI, so keep defaultVoiceId to one of their supported presets.
Custom Params:
subTypes defaultVoiceId outputFormat speed
  • This is the safest provider when you want a straightforward TTS fallback without managing voice cloning.
  • It is also a practical choice for voice-chat flows that need STT and TTS to share a provider family.
Audio OpenAI-Compatible Audio HTTP
openai-compatible Proxy
Use this for any upstream that exposes a normalized OpenAI-style audio API, including self-hosted or proxy-based TTS/STT services.
Default: your-upstream-audio-model
Examples:
tts-1-hd whisper-1 local-tts-model
Use this as the generic escape hatch for self-hosted or proxy-based audio services. Keep the model id exactly aligned with the upstream API.
Endpoint: https://api.example.com/v1 or http://localhost:1234/v1
Use this when the upstream is audio-capable but does not need a dedicated vendor-specific adapter entry.
API Routes:
/audio/speech /audio/transcriptions /models
Metadata: {"subTypes":["tts","stt"],"defaultVoiceId":"custom","outputFormat":"mp3_44100_128"}
Set only the subTypes your upstream really supports so routing does not send STT traffic to a TTS-only service.
Custom Params:
subTypes defaultVoiceId outputFormat speed
  • This is the fastest way to onboard a custom audio provider without changing the admin UI again.
  • Prefer a dedicated vendor adapter only when the upstream requires non-standard auth or payload shape.

Task Help

Operational guidance by task type

Chat Chat / Text Setup

Use chat providers for user-visible text generation, agent replies, and any service that expects Chat Completions style behavior.

  • Keep chat configs separate from image, video, and audio even when the vendor account is shared, so routing never points a text request at the wrong endpoint family.
  • Choose a conservative default model for retries and high-volume traffic, then keep premium or slower reasoning models as explicit alternates in the allow-list.
  • If the upstream is OpenAI-compatible, confirm it really supports /chat/completions and that the model ids exactly match the upstream catalog before saving the provider.
  • Structured prompting details can differ by vendor. Anthropic still expects the system prompt outside messages[], so do not assume every chat provider is drop-in identical.

Image Image / Photo Setup

Use image providers for still-image generation, edits, and reference-driven artwork. The main choice is whether you need prompt fidelity, design control, or self-hosted tuning.

  • Keep image providers task-specific because image routes, model ids, and metadata differ from chat even when both come from the same vendor.
  • Pick the face or reference strategy on purpose: img2img and edit flows are best when you need to preserve a supplied face, while IP-Adapter or custom proxy modes only work when the upstream explicitly supports them.
  • Use a tight model allow-list rather than every documented model, especially for proxy providers where catalog availability can change per account.
  • When admins depend on consistent character artwork, prefer providers that handle edits or references cleanly and keep fallback providers focused on a different strength such as design-heavy assets or self-hosted control.

Video Video Setup

Video providers are usually async job systems. The key setup decision is whether the flow starts from a still image, a talking avatar, or a normalized proxy endpoint.

  • Expect polling or webhook completion paths for most video providers and validate those paths before making a new provider the primary default.
  • Choose the provider by generation style: Runway and Luma fit image-to-video or cinematic motion, while HeyGen is better for avatar-led or talking-photo output.
  • OpenAI-compatible video endpoints are flexible, but they are also easier to misconfigure because each upstream can use different polling paths, content download URLs, and accepted input shapes.
  • Keep default models conservative for queue health and cost, then expose higher-end models like premium Runway, Luma, or newer cinematic tiers as alternates instead of always-on defaults.

Audio Audio / Voice Setup

Audio providers can cover three distinct subtypes in this gateway: TTS, STT, and voice cloning. Configure only the subtypes each provider truly supports.

  • Set metadata.subTypes explicitly, such as ["tts"], ["tts","stt"], or ["tts","clone"], so routing sends speech synthesis, transcription, and cloning traffic to the right provider family.
  • Keep metadata.defaultVoiceId on TTS-capable providers so speech generation still works when a character does not yet have a cloned providerVoiceId.
  • Choose outputFormat deliberately. Audio cache entries are keyed by text, voice, model, language, and output format, so changing formats creates separate cached renders.
  • For voice-chat capture, browser-recorded audio/webm;codecs=opus is a strong default for STT uploads. For cloned voice quality, keep a clean sample recording and persist the providerVoiceId on the character profile after cloning.

Selection Notes