Deploy any model on your own GPU.
Text, images, video and speech from Hugging Face, on vLLM, SGLang, vLLM-Omni or llama.cpp. Paste your own engine options, get an OpenAI-style endpoint with its own key and root SSH, and pay for the GPU by the hour, not per request.
What you can serve
One endpoint per model, in the shape OpenAI clients already speak. The engine runs in an Arrakis image built on its official release.
Text and vision
Chat, completions, embeddings and speech to text on vLLM, SGLang or llama.cpp. Any model on Hugging Face, GGUF files at any quantization included.
POST /v1/chat/completionsImages
FLUX, Qwen-Image, Z-Image and more on vLLM-Omni or SGLang Diffusion. Text to image and image editing.
POST /v1/images/generationsVideo
Wan 2.2 text to video and image to video, as jobs you start, check and download.
POST /v1/videosSpeech and sound
Qwen3-TTS and CosyVoice for speech, Stable Audio for sound and music, on vLLM-Omni.
POST /v1/audio/speech
Popular image, video and speech models
The GPU memory each needs to serve, and the smallest GPU that holds it. For text models, see GPU requirements for open models; any other model, name it in the console.
| Model | Makes | What it does | GPU memory | Engines | Deploy |
|---|---|---|---|---|---|
black-forest-labs/FLUX.1-schnell | Images | Fast text to image, 1 to 4 steps | 41 GB: one L40S, RTX 6000 Ada or RTX A6000, L40S from $0.44 per GPU-hour | vLLM-Omni, SGLang | Deploy |
black-forest-labs/FLUX.1-dev | Images | Text to image | 41 GB: one L40S, RTX 6000 Ada or RTX A6000, L40S from $0.44 per GPU-hour | vLLM-Omni, SGLang | Deploy |
black-forest-labs/FLUX.2-klein-9B | Images | Text to image and editing | 42 GB: one L40S, RTX 6000 Ada or RTX A6000, L40S from $0.44 per GPU-hour | vLLM-Omni | Deploy |
Qwen/Qwen-Image-2512 | Images | Text to image, strong at text in pictures | 70 GB: one H100 or A100, H100 from $2.07 per GPU-hour | vLLM-Omni, SGLang | Deploy |
Qwen/Qwen-Image-Edit-2511 | Images | Image editing | 70 GB: one H100 or A100, H100 from $2.07 per GPU-hour | vLLM-Omni, SGLang | Deploy |
Tongyi-MAI/Z-Image-Turbo | Images | Fast text to image, 8 steps | 25 GB: one RTX 5090, from $0.58 per GPU-hour | vLLM-Omni, SGLang | Deploy |
Wan-AI/Wan2.2-T2V-A14B-Diffusers | Video | Text to video, 480p and 720p | 83 GB: one RTX PRO 6000, from $1.90 per GPU-hour | vLLM-Omni, SGLang | Deploy |
Wan-AI/Wan2.2-I2V-A14B-Diffusers | Video | Image to video | 83 GB: one RTX PRO 6000, from $1.90 per GPU-hour | vLLM-Omni, SGLang | Deploy |
Wan-AI/Wan2.2-TI2V-5B-Diffusers | Video | Text or image to video, 720p, on one GPU | 28 GB: one RTX 5090, from $0.58 per GPU-hour | vLLM-Omni, SGLang | Deploy |
Qwen/Qwen3-TTS-12Hz-1.7B-CustomVoice | Speech | Text to speech, preset voices | 6.0 GB: one RTX 4090 or RTX 3090, RTX 3090 from $0.19 per GPU-hour | vLLM-Omni | Deploy |
FunAudioLLM/Fun-CosyVoice3-0.5B-2512 | Speech | Text to speech, voice cloning | 3.0 GB: one RTX 4090 or RTX 3090, RTX 3090 from $0.19 per GPU-hour | vLLM-Omni | Deploy |
stabilityai/stable-audio-open-1.0 | Sound and music | Sound effects and music | 8.0 GB: one RTX 4090 or RTX 3090, RTX 3090 from $0.19 per GPU-hour | vLLM-Omni | Deploy |
lerobot/pi05_base | Robot policy | Vision-language-action policy (pi0.5) | 18 GB: one RTX 4090 or RTX 3090, RTX 3090 from $0.19 per GPU-hour | vLLM-Omni | Deploy |
nvidia/GR00T-N1.7-3B | Robot policy | Humanoid robot policy | 9.0 GB: one RTX 4090 or RTX 3090, RTX 3090 from $0.19 per GPU-hour | vLLM-Omni | Deploy |
Bring the options you tuned
Paste your flags, the whole command or a docker run line, with variables in front and JSON values in quotes. You choose them and keep them current; Arrakis keeps the address, port, key and model, and shows the start line before you rent.
Change them later without a new machine: over SSH, edit /etc/arrakis/serve and run arrakis-serve restart.
VLLM_USE_DEEP_GEMM=1 vllm serve Qwen/Qwen3-8B \
--max-model-len 32768 --enable-prefix-caching \
--speculative-config '{"method": "eagle3", "num_speculative_tokens": 3}'Your options run. Nothing else does.
The machine is yours, with root SSH. What reaches it from Arrakis is checked first.
No shell, ever
Your options reach the engine word for word, as its argument list. Shell syntax is refused, never run.
A key on every request
A gate on the endpoint checks its API key before a request reaches the engine, which listens only inside the machine.
Only the GPUs you rent
Settings that choose a machine's GPUs are refused, so a machine never reaches another renter's.
Your token stays yours
Your Hugging Face token goes to the machine only. Arrakis never stores it.
Call it like any OpenAI-style API
Any OpenAI client works: set the base URL and the key. The console has code for each kind of model, a try for chat and pictures, and the engine's log.
from openai import OpenAI
client = OpenAI(base_url="http://<your endpoint>/v1", api_key="sk-...")
picture = client.images.generate(model="black-forest-labs/FLUX.1-schnell",
prompt="a lighthouse at dawn", size="1024x1024",
response_format="b64_json")Questions about deploying models
The full guide: Deploy a model.