Pitch: 🔀Openllm: de roteador de LLMs a plataforma multimodal 🤖 - Texto, Imagem, Áudio/Música e vídeo por centavos (e como aproveitar a VRAM que sobra) - VastAI
No artigo anterior apresentei o openllm: CLI + daemon em Go que aluga GPUs no Vast.ai, sobe Ollama, expõe tudo por túnel SSH com watchdog de auto-destruição. Desde então o projeto cresceu de "roteador de LLMs" para orquestrador de IA multimodal — e tudo foi validado em produção com dinheiro real. Repositório: github.com/MrJc01/crom-openllm-vastai
O que mudou desde o último artigo
- Um modelo de cada tipo: catálogo interno resolve automaticamente engine + VRAM pelo nome do modelo (texto → Ollama/vLLM, imagem/vídeo → ComfyUI, áudio → faster-whisper/XTTS, etc.)
- Escala horizontal:
openllm scale --model X --instances 3sobe N máquinas atrás do mesmo endpoint com load balancer (round-robin/least-connections, health-check por instância) - Swap sem re-aluguel:
openllm swapbaixa o novo modelo na máquina que já está paga, mantendo o antigo no ar, e troca o LB quando fica pronto — validamosllama3.2:3b → qwen2.5:0.5bem ~80s (vs ~15 min de redeploy completo) - Stacks multimodais:
openllm stack up multimodal.yamlsobe texto + imagem + áudio + vídeo num único endpoint com roteamento por path - Engines sem recompilar: um JSON em
./engines/(docker image + cmd + porta + health) ou--custom-image/--custom-cmdad-hoc - Endurecimento de produção: chaves ed25519 (hosts novos recusam RSA), anti-vazamento (deploy que falha se auto-destrói — mesmo após crash do daemon), timeout de deploy configurável, seleção de oferta por banda de rede e guarda de label (nunca destrói instância de outros projetos na mesma conta)
VRAM que sobra = velocidade de graça
Um Qwen-3B usa ~4GB de uma RTX 4070 de 12GB — os 8GB restantes não precisam ficar parados. Com OLLAMA_NUM_PARALLEL (via env/custom-cmd da engine) você aumenta requisições simultâneas no mesmo container; sobra vira contexto maior (KV cache) ou workers sidecar — réplicas ou serviços distintos convivendo na mesma GPU, cada um na sua rota do proxy. Como tudo é config (JSON/flags), mexer é trivial.
Comparativo real por tipo (fontes verificadas em ago/2026)
Vídeo (clipe de 5s):
| Opção | $/clipe | 1.000 clipes |
|---|---|---|
| Runway Gen-4.5 (API) | $1,15 | $1.150 |
| Replicate Wan 2.1 14B 720p (mesmo modelo que rodamos!) | $1,25 | $1.250 |
| Nosso: Wan 14B na 4090 alugada | ~$0,09 | $94 |
| Nosso: LTX-Video 2B na 4070S | ~$0,002 | $2 |
(OpenRouter: 0 modelos de vídeo — verificado via API deles)
Música (completa, com vocais):
| Opção | $/música | Pegou |
|---|---|---|
| Suno v5.5 | $0,012–0,016 | downloads limitados a 20–60/mês |
| ElevenLabs Music | ~$0,60 | créditos compartilhados com TTS |
| Nosso: ACE-Step (Apache 2.0) na 4070S | ~$0,002 | sem caps, prompts privados, fine-tune livre |
Imagem/Áudio/Texto: SD1.5 na 4070S ≈ $0,0001/imagem (vs $0,03–0,09 nas APIs); whisper-small ≈ $0,0005/transcrição (vs $0,006+/min); texto na 4070S fica na casa de $0,001–0,01 por milhares de tokens dependendo do modelo — e com openllm search você vê o custo/hora da GPU antes de alugar.
O padrão se repete: volume é 10–500× mais barato local, API vence no clique único de qualidade SOTA. Custo ocioso? openllm stop --all mata tudo na hora — e o watchdog cobre se você esquecer.
Conclusão
O projeto virou o que eu queria ter: qualquer modelo, qualquer modalidade, um endpoint, centavos — com privacidade total e configuração 100% editável (catálogo JSON, engines JSON, custom engine, perfis). Testes com -race, CI no push e incidents reais viraram testes de regressão.
⭐ Repo: github.com/MrJc01/crom-openllm-vastai — PRs e issues abertos.