How to run AUTOMATIC1111 Stable Diffusion WebUI on a cloud GPU

Rent a GPU on Deploy, then open a terminal in JupyterLab or over SSH. Install AUTOMATIC1111 Stable Diffusion WebUI from the official repository with the Linux steps that README prints. On the root shell that Raw GPU gives you, start it with ./webui.sh -f and IGNORE_CMD_ARGS_ERRORS=1, then open the page through an SSH tunnel. Copy the outputs directory off the instance before you destroy it. Destroying the instance deletes its disk.

The README has no project-status heading. The commits API on 2026-11-12 listed 82a973c04367123ae98bd9abdf80d9eda9b910e2 on the default branch master, committed 2024-07-27T12:49:39Z, message “changelog”. The annotated tag v1.10.1 points at that same commit and was published 2025-02-09T08:00:10Z. The dev branch commit 1937682a20f7f0442311a1ede68f9f0cb480163b was committed 2026-03-02T07:00:53Z, which is the repository pushed_at the same day. The extensions wiki says “This page is not actively maintained” about that wiki page, and points readers at the in-UI Extensions tab and at the extensions index repository. The Nvidia install wiki says PyTorch 2.7 has not been merged into master.

Other image UIs: How to run Stable Diffusion WebUI Forge on a cloud GPU, How to run Fooocus on a cloud GPU, How to run SwarmUI on a cloud GPU, How to run InvokeAI on a cloud GPU, and How to install ComfyUI and ComfyUI-Manager on a cloud GPU. How published FLUX and SDXL weight sizes are read: How much VRAM do I need for FLUX and SDXL.

LICENSE.txt is the GNU Affero General Public License, Version 3, 19 November 2007, and its copyright line is “Copyright © 2023 AUTOMATIC1111” (read 2026-11-12). The GitHub license field the same day was AGPL-3.0. Read the license before you redistribute the program.

The commands below are copied from the upstream files named in each step. They were not run on a CloudGPU instance for this page. Anything this page adds around them is marked.

What the README says about memory

The README feature list says “4GB video card support (also reports of 2GB working)” and “train embeddings on 8GB (also reports of 6GB working)”. Those parenthetical reports are the README’s wording. This page did not re-measure them. The Nvidia install wiki says --medvram or --lowvram reduces VRAM requirements and sacrifices performance, and that the amount of VRAM required largely depends on the desired image resolution. It does not print a GB figure in that sentence. The extensions wiki’s Tiled VAE note says the process allows the VAE to generate large images with limited VRAM and puts “~10 GB for 8K images” in parentheses. That parenthetical is about that extension. This page does not treat it as a minimum for the WebUI and does not match it to a catalog row.

GET /v1/public/compute-capabilities does not list GPUs. It returns feature flags. The memory column is vram_gb from gpu-prices.json, updated_at 2026-11-12T22:09:18.532Z. GET /v1/public/gpu-catalog the same day (generated_at 2026-11-12T22:09:19.501Z) listed the same names and the same vram_gb values, plus Ascend 910B at 64, which is not in gpu-prices.json and is not listed here. The catalog response also includes an availability field. This page does not copy it. Every vram_gb below is 8 or higher, so every row is above the README’s 4GB figure as a number. RTX 2080 is 8, equal to the embeddings figure as a number. No catalog row is 2 or 6. This page does not mark a row as enough. Which listing you can start is on Deploy.

The catalog template named Stable Diffusion WebUI has id sd-webui, category image-gen, recommended_gpu RTX 4090 48G, and min_vram_gb 12. Those are template fields, not the README’s 4GB line. This page installs from the official repository.

Catalog name vram_gb
RTX 2080 8
RTX 3080 10
RTX 2080 Ti 11
RTX 3080 Ti 12
V100 16G 16
A30 24
RTX 3090 24
RTX 4090 24
RTX 4090D 24
RTX 4080 SUPER 32G 32
RTX 5090 32
RTX 5090D 32
V100 32G 32
A100 40G 40
A800 40G 40
A40 48
RTX 4090 48G 48
RTX 4090D 48G 48
RTX A6000 48
NVIDIA RTX PRO 5000 72G 72
RTX PRO 5000 72G 72
A100 80G 80
A800 80G 80
H800 80
RTX 6000D 83
H20 96G 96
RTX PRO 6000 96G 96
RTX PRO 6000 Max-Q 96
H20-3e 141G 141

Install on Linux

On Deploy, choose Raw GPU. The deploy page says that option includes root within a dedicated container. The README’s “Automatic Installation on Linux” section prints this Debian-based line, then says to clone the repository and run webui.sh:

sudo apt install wget git python3 python3-venv libgl1 libglib2.0-0
git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui
cd stable-diffusion-webui
./webui.sh

The README also prints Red Hat, openSUSE, and Arch package lines. This page does not copy those onto a Debian install. The same section says that if the system is very new you need Python 3.11 or 3.10, and its Ubuntu 24.04 block installs python3.11 from the deadsnakes PPA and sets python_cmd="python3.11". webui.sh sets python_cmd to python3.10 when that variable is empty and that command exists, otherwise python3. The Nvidia wiki’s Ubuntu 24.04 block is a different procedure: it installs python3.10-venv, creates venv with python3.10 -m venv venv, and then runs ./webui.sh. This page does not merge those two Ubuntu blocks into a third command. The wiki’s “Manual Installation” heading says that section is very outdated and probably won’t work. This page does not copy its commands.

webui.sh prints “Tested on Debian 11 (Bullseye), Fedora 34+ and openSUSE Leap 15.4 or newer.” That sentence is the script’s own text. This page did not run the script. The script’s header says not to edit webui.sh and to change variables in webui-user.sh instead. When id -u is 0 and its getopts loop has not seen -f, it prints ERROR: This script must not be launched as root, aborting... and exits 1. The Raw GPU shell is that case, so ./webui.sh with no flag stops there.

The script’s own flag for the check is -f. The getopts loop does not remove -f from "$@", and the script then runs launch.py with the original arguments. modules/launch_utils.py parses those arguments with parse_known_args(), so the installer does not stop on -f. modules/shared_cmd_options.py calls parser.parse_args() unless IGNORE_CMD_ARGS_ERRORS is set, in which case it calls parse_known_args(). -f is not an argument in modules/cmd_args.py, so the UI start needs that variable. webui-user.sh documents COMMANDLINE_ARGS, and modules/paths_internal.py appends it to sys.argv. --port 7860 is the port the command-line wiki names.

This page’s launch for the root shell sets both variables and passes -f. It does not pass --listen or --share. The combination was not run:

export COMMANDLINE_ARGS="--port 7860"
export IGNORE_CMD_ARGS_ERRORS=1
./webui.sh -f

The README’s sudo lines are what that file prints. Dropping sudo on a root shell is this page’s note, not a line from the README.

The first launch downloads files. The README also links a wiki list of online services. This page does not use that list.

Model folders and extensions

modules/paths_internal.py sets data_path from --data-dir, whose default is the repository directory, and sets models_path to models under that directory unless --models-dir is set. modules/sd_models.py sets the checkpoint directory name to Stable-diffusion, so the joined path is models/Stable-diffusion. modules/sd_vae.py joins models_path with VAE. extensions-builtin/Lora/preload.py defaults --lora-dir to models/Lora and --lyco-dir-backcompat to models/LyCORIS. modules/cmd_args.py defaults --embeddings-dir to embeddings under data_path, which is not under models. extensions_dir is extensions under data_path. Built-in extensions live in extensions-builtin inside the clone.

The Nvidia wiki’s tip says you can move already downloaded models into the checkpoint folder before the first launch so it skips the automatic download. That tip links a Hub repository. This page does not paste that Hub id. Copy the link from the wiki if you use the tip. How to download a Hugging Face model is the token reference.

The extensions wiki says extensions live in their own folder inside the extensions folder, and it prints this example:

git clone https://github.com/AUTOMATIC1111/stable-diffusion-webui-aesthetic-gradients extensions/aesthetic-gradients

The same page says that --share or --listen blocks extension installation and returns extension access disabled because of command line flags, unless you pass --enable-insecure-extension-access. It says not to leave that flag on during regular use. This page does not pass it.

Listen address and SSH

modules/cmd_args.py adds --listen with the help text “launch gradio with 0.0.0.0 as server name”, and --port with default None and the help text that it defaults to 7860 if available. modules/initialize_util.py returns 0.0.0.0 when --listen is set and None otherwise, unless --server-name is set. webui.py passes that return value as server_name and passes cmd_opts.port as server_port. requirements_versions.txt pins gradio==3.41.2. That version’s launch docstring says a None server name uses 127.0.0.1, and a None server port searches for an available port starting at 7860. The command-line wiki says --share makes the UI accessible through the Gradio site, and that --listen allows other computers to reach the UI.

The root-shell launch is the three-line command in the install section. To keep that process after the SSH session closes, this page wraps the same command in tmux. The README does not print tmux:

tmux new -s webui
cd stable-diffusion-webui
export COMMANDLINE_ARGS="--port 7860"
export IGNORE_CMD_ARGS_ERRORS=1
./webui.sh -f

The tunnel command is not in the WebUI README. It is the form in how to use SSH port forwarding on a cloud GPU:

ssh -N -L 7860:127.0.0.1:7860 -p <ssh-port> <ssh-user>@<ssh-host>

Then open http://127.0.0.1:7860 on your computer.

No AUTOMATIC1111 install in the ComfyUI examples list

The ComfyUI examples top-level directory list on 2026-11-12 had no directory named for this repository. It did list sdxl, sd3, lora, and flux. This page does not treat those as an AUTOMATIC1111 install. Installing ComfyUI is the guide linked above.

When it fails

CUDA out of memory. The Nvidia wiki names --medvram and --lowvram for that case and does not print a further procedure. If the process raises that error, use how to fix CUDA out of memory on a cloud GPU.

“CUDA error: no kernel image is available for execution on the device” on an RTX 5090. The Nvidia wiki says 50-series GPUs currently require PyTorch 2.7, which has not been merged into master, and it tells Windows readers to use switch-branch-toole.bat to switch to the dev branch. That filename is what the wiki prints. The file is a Windows batch file. The wiki’s Linux section does not print a dev checkout. This page does not add one. The RTX 5090 guide says that card is compute capability 12.0 (sm_120) and needs a PyTorch build for CUDA 12.8 or newer. This page did not install a torch wheel and did not re-test the WebUI on an RTX 5090. Catalog RTX 5090 and RTX 5090D are 32, which is above the README’s 4GB figure as a number. That comparison is the memory number only.

Root abort. That message is ./webui.sh with no -f while id -u is 0. Use the three-line command in the install section. This page did not run it.

Save the images, then destroy

modules/shared_options.py defaults outdir_txt2img_samples to outputs/txt2img-images, outdir_img2img_samples to outputs/img2img-images, outdir_extras_samples to outputs/extras-images, outdir_txt2img_grids to outputs/txt2img-grids, outdir_img2img_grids to outputs/img2img-grids, and outdir_init_images to outputs/init-images. Those joins use default_output_dir, which is outputs under data_path. outdir_save defaults to log/images under data_path. save_to_dirs defaults to true, so images also go into a subdirectory of those folders. Copy the outputs directory off before you destroy the instance. Save your work before you destroy a cloud GPU is the checklist. The terms say data on local instance storage is permanently deleted when the instance is destroyed.

The pricing page FAQ states the billing rule in these words:

Per-minute options have a 1-minute minimum; unused prepaid minutes are refunded when you destroy the instance. Some configurations use whole-hour billing with a 1-hour minimum; unused time within a charged hour is not refunded on voluntary stop. The billing period, minimum charge and initial prepayment are shown before confirmation. No subscription.

Prices are not copied here.

Frequently asked questions

How much VRAM does the AUTOMATIC1111 README publish?

The AUTOMATIC1111 README feature list says “4GB video card support (also reports of 2GB working)” and “train embeddings on 8GB (also reports of 6GB working)”. Those parenthetical reports are the README’s wording. This page did not re-measure them. Every vram_gb in https://cloudgpu.app/gpu-prices.json (updated_at 2026-11-12T22:09:18.532Z) is 8 or higher, so every row is above the 4GB figure as a number. RTX 2080 is 8, equal to the embeddings figure as a number. No catalog row is 2 or 6. This page does not mark a row as enough. The catalog template named Stable Diffusion WebUI has id sd-webui, recommended_gpu RTX 4090 48G, and min_vram_gb 12. Those are template fields, not the README’s 4GB line. Which listing you can start is on https://cloudgpu.app/deploy.

What is the upstream license and maintenance status?

LICENSE.txt is the GNU Affero General Public License, Version 3, 19 November 2007, and its copyright line is Copyright © 2023 AUTOMATIC1111. The README has no project-status heading. The commits API on 2026-11-12 listed 82a973c04367123ae98bd9abdf80d9eda9b910e2 on master, committed 2024-07-27T12:49:39Z, message changelog. The annotated tag v1.10.1 points at that same commit and was published 2025-02-09T08:00:10Z. The dev branch commit 1937682a20f7f0442311a1ede68f9f0cb480163b was committed 2026-03-02T07:00:53Z. The extensions wiki says “This page is not actively maintained” about that wiki page. The Nvidia install wiki says PyTorch 2.7 has not been merged into master.

How do I open the WebUI through SSH?

modules/cmd_args.py defaults --port to None and defines --listen as 0.0.0.0. modules/initialize_util.py returns None for the server name when --listen is not set. Gradio 3.41.2, pinned in requirements_versions.txt, documents that a None server name uses 127.0.0.1 and a None server port searches for an available port starting at 7860. On the root shell this page exports COMMANDLINE_ARGS=–port 7860 and IGNORE_CMD_ARGS_ERRORS=1, then runs ./webui.sh -f. It does not pass --listen or --share. The extensions wiki says those two flags block extension installation unless --enable-insecure-extension-access is set, and this page does not pass that flag. webui.sh exits when id -u is 0 unless -f was seen. The getopts loop leaves -f in the arguments passed to launch.py. launch_utils.py uses parse_known_args, and shared_cmd_options.py uses parse_known_args only when IGNORE_CMD_ARGS_ERRORS is set. This page did not run that combination. The SSH tunnel forwards 127.0.0.1 port 7860.

Do the images stay on the instance after I destroy it?

No. modules/shared_options.py defaults outdir_txt2img_samples to outputs/txt2img-images, outdir_img2img_samples to outputs/img2img-images, and outdir_extras_samples to outputs/extras-images, under the data directory, which defaults to the repository directory. save_to_dirs defaults to true. Copy the outputs directory off before you destroy the instance. The terms say data on local instance storage is permanently deleted when the instance is destroyed.

Sources (read 2026-11-12, Asia/Shanghai)


Cards you can start are on the Deploy page. Prices are on https://cloudgpu.app/pricing and are not repeated here.

Last updated: 2026-11-12 (Asia/Shanghai).