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