🚀 B200 starting at $3.75/hr. The best price you'll find. DC in US West → (Access it from button on top after login).

Get Your B200 →
Start Building
NVIDIA A100 vs H100 GPU comparison illustration showing Ampere and Hopper accelerators for AI training and inference.
Guide

Text Generation WebUI (oobabooga) on a Cloud GPU: Full Setup Guide

The desktop installer that works on your laptop won't run headless on a cloud server. Here's the setup that actually works, plus which GPU your model needs.

Author photo
packet.ai Team
July 16, 2026

Running oobabooga on a cloud GPU comes down to matching your model size and quantization level to the right card: an RTX 4090 covers most 7B-13B models, an L40S handles 30B models or lightly-quantized 70B models, and an A100 80GB runs 70B models with minimal quality loss.

Key takeaways

  • Oobabooga's VRAM needs depend on model size and quantization together, not parameter count alone: a 70B model can fit on 24GB with aggressive quantization, or need 80GB at higher precision.
  • RTX 4090 (24GB) comfortably runs 7B-13B models and most quantized 30B models.
  • L40S (48GB) covers 30B models at higher quality, or 70B models with moderate quantization.
  • A100 80GB is the GPU to reach for when you want 70B models with minimal quantization, multi-GPU setups, or to serve multiple models at once.
  • The project has been renamed from text-generation-webui to TextGen, though "oobabooga" remains the name most people search for and use in conversation.
  • For cloud deployment, the full installation (not the new portable desktop build) is the right path, since it runs headless without a GUI window.

Most oobabooga setup guides are written for a desktop with a monitor attached. They assume you'll click through an installer, see a window open, and troubleshoot by looking at it. None of that applies on a rented GPU. There's no display, no double-clicking, and the new one-click installer expects a desktop environment that a cloud instance doesn't have.

That mismatch is why cloud deployment trips people up even when they've run oobabooga locally before: the commands are different, the failure modes are different, and getting it wrong usually means paying for GPU time while staring at a blank terminal. This guide covers the setup that actually works headless, how to pick a GPU that fits your model without overpaying, and the mistakes that waste the most time and money.

One naming note before we start: the project maintainer renamed the repository from text-generation-webui to TextGen, now hosted at github.com/oobabooga/textgen. Most people, documentation, and search behavior still say oobabooga, so this guide does too, but the commands below reflect the current repository.

Oobabooga VRAM Requirements: Model Size vs Quantization

VRAM is the constraint that decides everything else, and unlike a fixed-architecture image model, it's partly a choice you make. Quantization trades precision for memory: a 70B model at full precision needs far more VRAM than the same model quantized to 4-bit, at some cost to output quality. Context length adds on top of that, since GGUF's context cache is preallocated, so a longer context window claims VRAM before you've even loaded a prompt.

Model Size Quantization VRAM Needed
7B Q4_K_M / Q8 4-8 GB
13B Q4_K_M ~7.5-15 GB
30B Q4_K_M ~18-20 GB
70B Q4_K_M ~35-40 GB
70B Q8 / near full precision ~65-70+ GB

GGUF is the format to default to on a cloud GPU, since it runs through llama.cpp, degrades gracefully if you undersize the card, and falls back to CPU offload if a layer doesn't fit. GPTQ and EXL3 are GPU-only formats that run faster once loaded, but a wrong VRAM estimate fails outright instead of slowing down.

Which GPU for Oobabooga: Quick Comparison

Before the deep dive on each card, here's the decision most people are actually trying to make, model size and workload mapped straight to a GPU.

GPU VRAM Recommended Model Size Best Use Case
RTX 4090 24 GB 7B-13B, most 30B Chat, roleplay, personal use, prototyping
L40S 48 GB 30B, 70B (Q4_K_M) Longer context, larger models without full A100 cost
A100 80GB 80 GB 70B (Q8/full), multi-GPU Production serving, minimal quantization loss, multiple models

RTX 4090 for Oobabooga: 7B-13B Models at the Lowest Cost

NVIDIA

RTX 4090

Competitive hourly rate

on packet.ai · Dedicated

VRAM

24 GB GDDR6X

Memory BW

1.01 TB/s

Architecture

Ada Lovelace

The RTX 4090 is the right default because most oobabooga usage genuinely fits in 24GB: 7B and 13B models at any quantization, and 30B models once quantized to Q4_K_M. The reasoning is straightforward VRAM math, not a compromise. It's only once you want a longer context window on a larger model that the ceiling shows up, since a bigger context cache eats into the same 24GB the model weights need.

L40S for Oobabooga: 30B Models and Higher-Quality 70B Quantization

NVIDIA

L40S

Competitive hourly rate

on packet.ai · Dedicated

VRAM

48 GB GDDR6

FP32 Compute

91.6 TFLOPS

Architecture

Ada Lovelace

The L40S's 48GB solves two problems at once: it fits 30B models without the tight quantization a 24GB card forces, and it leaves enough headroom on a 70B model at Q4_K_M to push context length up considerably. That extra context room is the real reason to pick this tier over the 4090, not just "more VRAM for a bigger model." A 30B model at half the L40S's capacity has room to spare for a context window that would leave a 24GB card with almost nothing left.

A100 80GB for Oobabooga: Full 70B Models Without Compromise

NVIDIA

A100 80GB

Competitive hourly rate

on packet.ai · Dedicated

VRAM

80 GB HBM2e

Memory BW

2 TB/s

Architecture

Ampere

The A100 80GB earns its cost when quantization stops being an acceptable tradeoff: a 70B model at Q8 or near full precision needs 65-70GB or more, which fits comfortably with room for a generous context window. NVLink also makes this the practical choice if you're running a model too large for one card, oobabooga supports splitting a model across multiple GPUs with the --gpu-split flag, and NVLink's bandwidth matters more once a model's layers are spread across devices. For serving multiple models or handling batched requests as a shared service, the larger memory pool is what makes that workable without a tight margin.

GPU Decision Framework: Answer These Five Questions

Model size alone doesn't tell you which GPU to rent. Run through these five questions in order, since each one can override the answer the previous one suggested.

1. Model size: Start with parameter count. 7B-13B points to an RTX 4090, 30B points to an L40S, 70B could be either depending on quantization.

2. Quantization tolerance: If you can accept Q4_K_M quality loss, a 70B model fits an L40S. If you need Q8 or near full precision, you need an A100 80GB regardless of anything else.

3. Context length: A large context window claims VRAM before you load a single prompt. If you need long context on a model that's already near a card's limit, move up a tier rather than fighting for headroom.

4. Inference vs. experimentation: If you're testing several model sizes before committing, undersizing slightly and accepting slower generation costs less than renting the largest card up front. If this is a standing service, size for your largest expected model, not your average one.

5. Budget and usage pattern: Occasional, bursty use favors a lower tier plus a shared Dynamic instance over a Dedicated card sized for peak load you rarely hit.

If questions 1 and 2 point to different GPUs, quantization tolerance wins, since it's the variable you actually control. A 70B model doesn't require an A100 by default; it requires one only once you've decided Q4 quality loss isn't acceptable.

Text Generation WebUI Setup: Installing Oobabooga on a Cloud GPU

Setup on a fresh Ubuntu cloud instance follows the same pattern regardless of which card you're on, using the full installation path built for headless servers, not the new portable desktop app.

1

Clone the repository and set up a virtual environment

The project is now hosted at oobabooga/textgen. The old text-generation-webui URL will redirect, but using the current path avoids confusion later.

git clone https://github.com/oobabooga/textgen
cd textgen
python -m venv venv
source venv/bin/activate
2

Check your CUDA version, then install requirements

Run nvidia-smi first. CUDA 13.1 or higher uses the 13.1 requirements file; otherwise use 12.4. Most current cloud GPU images already have a supported driver installed.

nvidia-smi
pip install -r requirements/portable/requirements.txt --upgrade
3

Download a model

A GGUF model is a single file placed directly into the models folder. The download-model.py script handles this from the command line without opening the UI first.

python download-model.py TheBloke/Llama-2-13B-chat-GGUF
4

Launch as a headless server

--listen binds the WebUI to your server's network interface instead of localhost. --nowebui skips the Gradio interface if you only need the API. Confirm your cloud provider's firewall allows the port, 7860 by default.

python server.py --listen --api

On a cloud instance, reach the WebUI at http://your-server-public-ip:7860 once that port is open in your provider's firewall or security group. A basic deployment looks like this end to end: your terminal connects over SSH to the cloud GPU instance, the oobabooga server binds to the instance's network interface, and your browser or API client reaches it over the instance's public IP on port 7860 (WebUI) or 5000 (API).

📸 Visual suggestion

A simple architecture diagram here, SSH client → cloud GPU instance → oobabooga server → browser/API over public IP, would make this flow easier to follow than the prose alone. A terminal screenshot of the successful "Running on local URL" output after step 4 would also help readers confirm they've got it right.

Running Oobabooga Headless: API Access and Remote Config

Beyond a personal chat session, the OpenAI-compatible API on port 5000 matters more than the Gradio interface, giving you a drop-in replacement for OpenAI or Anthropic API calls pointed at your own model.

⚠ Watch out

Running with --listen on a cloud server exposes the WebUI to anyone who can reach that port. Set an API key with --api-key before exposing the API publicly, and restrict the firewall or security group to known IPs. CORS is restricted to localhost by default specifically to prevent drive-by access; don't disable that unless you understand the exposure.

For a longer-lived setup, running the server inside tmux or screen keeps it alive after you disconnect, and a systemd service is worth setting up if you want automatic restarts after a reboot or crash.

Common Mistakes When Running Oobabooga on a Cloud GPU

Most cloud GPU setup problems trace back to one of five avoidable mistakes.

Choosing a GPU based on compute instead of VRAM. A faster GPU with insufficient VRAM simply fails to load the model. VRAM is a hard gate; compute only affects speed once the model is already loaded.

Ignoring context length in the VRAM budget. The model weights are only part of the total. A large context window on GGUF's preallocated cache can turn a model that "fits" into one that doesn't the moment you raise context length.

Using the new portable desktop installer on a cloud instance. It bundles Electron and expects a graphical environment. The full installation, run from the command line with --listen and --nowebui, is what actually works headless.

Exposing --listen without an API key. Binding to the network interface without --api-key leaves the server open to anyone who finds the port. Set the key and restrict the firewall before making it reachable beyond your own network.

Underestimating quantization requirements. "It's a 70B model, I need an A100" skips the actual question: at what quantization level? Q4_K_M brings that same model within reach of an L40S at a fraction of the cost.

Choosing Your GPU, Then Deploying It on packet.ai

The framework above should leave you with a clear answer: RTX 4090 for 7B-13B models and most quantized 30B models, L40S for larger 30B models or 70B models at reasonable quantization, or A100 80GB for 70B models where quantization loss isn't acceptable or you need multiple GPUs.

Once you know which card fits, packet.ai deploys any of the three from the same Dedicated infrastructure, typically online in 5-10 minutes. If your usage is occasional or you're still testing model sizes, the Dynamic tier runs at roughly half the Dedicated rate, worth considering before settling into a long-running setup on Dedicated. Current rates for all three GPUs are always listed on the packet.ai pricing page.

If you're also running image generation workloads alongside your LLM setup, our guide to picking a GPU for ComfyUI covers the same RTX 4090, L40S, and A100 lineup from the image-generation side, useful if you're weighing a shared setup across both.

Frequently asked questions

It depends on model size and quantization. An RTX 4090 (24GB) is the best value for 7B-13B models and most 30B models. An L40S (48GB) is better for 30B models at higher quality or 70B models with moderate quantization. An A100 80GB is the right choice for 70B models near full precision or multi-GPU setups.
Yes. The --gpu-split flag sets how much VRAM to allocate per GPU (for example, 20,7,7 across three cards), and llama.cpp models support --split-mode tensor for faster multi-GPU inference. ExLlamaV3 has its own --enable-tp flag for tensor parallelism. This matters most for models too large for a single card, such as a 70B model split across two A100s.
GGUF runs through llama.cpp, supports CPU offloading if a model doesn't fully fit in VRAM, and degrades gracefully rather than failing outright, making it the safer default for cloud setups. GPTQ is GPU-only and generally faster once loaded, but has no fallback if you misjudge the VRAM requirement.
Ollama is CLI-first and optimized for scripting and API integration with minimal configuration. LM Studio is GUI-first, built for browsing and testing models visually. Oobabooga exposes far more of the underlying inference stack, samplers, quantization formats, LoRA training, multi-backend support, at the cost of a steeper learning curve. For a cloud GPU setup specifically, oobabooga's depth of control is the reason to choose it over the other two.
The project has been officially renamed to TextGen, and its GitHub repository moved to oobabooga/textgen. Most people still refer to it as oobabooga in conversation and search, and both names point to the same actively developed project.
Only with an API key set. Use --api-key before exposing the API beyond your own network, and restrict access at the firewall level to known IPs where possible. Leave CORS restricted to localhost unless you specifically need it disabled.

Last reviewed: July 16, 2026. Commands and flags confirmed against the current oobabooga/textgen repository. Model VRAM estimates vary by quantization method and context length; treat the figures above as planning ranges.

Waste less compute.

Same models. Same API. Fraction of the cost. Start free — no credit card required.

Start Building →

More from the blog