| 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.
|
| 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. - 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. 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.
|
| 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. 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.
|
| 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.
|
| 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.
|
| 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.
|