How to run Fooocus on a cloud GPU

Rent a GPU on Deploy, then open a terminal in JupyterLab or over SSH. Install Fooocus from the official repository with the Linux virtualenv steps that readme prints, start entry_with_update.py on 127.0.0.1, and open the Gradio page through an SSH tunnel. Copy the outputs folder off the instance before you destroy it. Destroying the instance deletes its disk.

The readme’s project-status heading is “Project Status: Limited Long-Term Support (LTS) with Bug Fixes Only”. It says future updates will focus exclusively on bugs, and that there are no current plans to migrate to newer model architectures. It points readers who want newer models to WebUI Forge and to ComfyUI. Those installs are How to run Stable Diffusion WebUI Forge 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. The original AUTOMATIC1111 repository, which this readme does not install, is How to run AUTOMATIC1111 Stable Diffusion WebUI on a cloud GPU.

The repository LICENSE file is the GNU General Public License, Version 3, 29 June 2007 (read 2026-11-12). The GitHub license field the same day was GPL-3.0. The commits API listed the latest commit on the default branch as ae05379cc9, committed 2025-09-02T20:28:40Z. 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 Fooocus readme says the minimal GPU memory requirement is 4GB (Nvidia). A later note says the minimal requirement is 4GB Nvidia GPU memory (4GB VRAM) and 8GB system memory (8GB RAM). The platform table in that readme lists 4GB as the minimum GPU memory for Nvidia RTX 4XXX, RTX 3XXX, and RTX 2XXX on Windows and Linux. This page does not copy that table’s speed column.

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-12T21:04:40.726Z. GET /v1/public/gpu-catalog the same day (generated_at 2026-11-12T21:04:46.496Z) 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 GPU figure as a number. The readme’s 8GB figure is system memory. This page did not read system RAM on an instance and does not mark a row as enough. Which listing you can start is on Deploy. The catalog had no Fooocus template.

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 readme’s “Linux (Using Python Venv)” section says the machine needs Python 3.10. environment.yaml pins python=3.10 for the conda path. The venv steps, copied:

git clone https://github.com/lllyasviel/Fooocus.git
cd Fooocus
python3 -m venv fooocus_env
source fooocus_env/bin/activate
pip install -r requirements_versions.txt

requirements_versions.txt on 2026-11-12 pinned packages including gradio==3.41.2 and did not pin torch. environment.yaml listed python=3.10, pip=23.0, and packaging, and did not pin torch. The NVIDIA Linux sections do not print a torch install command. The AMD Linux section does print a ROCm index command. This page does not copy that AMD command onto an Nvidia install. How to install a specific PyTorch CUDA version is a separate page. It is not a line from the Fooocus readme.

The readme says the first launch downloads models, and that you can download them ahead of time. Its default-models table names juggernautXL_v8Rundiffusion for the general preset, realisticStockPhoto_v20 for --preset realistic, and animaPencilXL_v500 for --preset anime. It says the download is automatic. This page does not paste a download URL. The same readme says the inpaint control file Fooocus\models\inpaint\inpaint_v26.fooocus.patch is 1.28GB. That is a file size in the readme, not a VRAM figure and not a disk allowance.

The venv launch the readme prints:

source fooocus_env/bin/activate
python entry_with_update.py

The readme’s line for opening a remote port is python entry_with_update.py --listen. Preset launches it prints are python entry_with_update.py --preset anime and python entry_with_update.py --preset realistic.

Listen address, share, and SSH

ldm_patched/modules/args_parser.py adds --listen with default 127.0.0.1 and const="0.0.0.0" when the flag is given with no IP. It adds --port with default 8188. args_manager.py then calls set_defaults with port=None and in_browser=True. webui.py passes server_name=args_manager.args.listen, server_port=args_manager.args.port, and share=args_manager.args.share to gradio.Blocks.launch. After that set_defaults, omitting --port leaves the port as None. This page did not run the program and did not read which port Gradio prints in that case.

The readme’s “UI Access and Authentication” section says --listen is the local UI listener and that you can specify a port, for example --port 8888. It says --share registers an endpoint at .gradio.live, and that both ways are unauthenticated by default unless you add auth.json. This page does not pass --listen and does not pass --share. Omitting --listen leaves the argparse default 127.0.0.1. The command below is this page’s addition. --port 8888 is the readme’s example. --disable-in-browser is a flag args_parser.py defines; args_manager.py turns in_browser off when that flag is set. A rented GPU has no desktop browser, so this page adds the flag:

source fooocus_env/bin/activate
python entry_with_update.py --port 8888 --disable-in-browser

To keep that process after the SSH session closes, this page wraps it in tmux. The readme does not print tmux:

tmux new -s fooocus
source fooocus_env/bin/activate
python entry_with_update.py --port 8888 --disable-in-browser

The tunnel command is not in the Fooocus readme. It is the form in how to use SSH port forwarding on a cloud GPU, using the port this page passed:

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

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

No Fooocus install in the ComfyUI examples list

The Fooocus readme recommends ComfyUI for newer model architectures. It does not document a Fooocus custom node. The ComfyUI examples top-level directory list on 2026-11-12 had no Fooocus directory. This page does not add one.

When it fails

“MetadataIncompleteBuffer” or “PytorchStreamReader”. The readme says those strings mean the model files are corrupted and that you should download the models again.

“RuntimeError: CPUAllocator”. The readme names that string next to its Windows memory note. This page does not copy that note’s disk figure.

CUDA out of memory. The readme’s flag list includes --always-low-vram, --always-no-vram, and --always-cpu. It does not print a CUDA out-of-memory 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 Linux sections do not print a torch index. 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 Fooocus on an RTX 5090. Catalog RTX 5090 and RTX 5090D are 32, which is above the readme’s 4GB GPU figure as a number. That comparison is the memory number only.

Save the images, then destroy

modules/config.py calls get_dir_or_set_default('path_outputs', '../outputs/'). That helper joins the default with the directory of modules/config.py, which resolves to an outputs directory inside the clone. --output-path overrides path_outputs. The readme’s config example uses the key path_outputs. --disable-image-log is defined as preventing writes of images and logs to the outputs folder. 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 states the billing rule in these words:

Per minute, rounded up, with a 1-minute minimum. One hour is pre-authorised while an instance runs, and unused minutes go back to your balance when you destroy the instance. There is no subscription and no minimum term.

Prices are not copied here.

Frequently asked questions

How much VRAM does the Fooocus readme publish?

The Fooocus readme says the minimal GPU memory requirement is 4GB (Nvidia), and later says 4GB Nvidia GPU memory and 8GB system memory. Every vram_gb in https://cloudgpu.app/gpu-prices.json (updated_at 2026-11-12T21:04:40.726Z) is 8 or higher, so every row is above that 4GB GPU figure as a number. This page did not read system RAM on an instance. Which listing you can start is on https://cloudgpu.app/deploy.

What is the upstream license and maintenance status?

The repository LICENSE file is the GNU General Public License, Version 3, 29 June 2007. The readme project-status heading is Project Status: Limited Long-Term Support (LTS) with Bug Fixes Only. It says future updates will focus exclusively on bugs, and that there are no current plans to migrate to newer model architectures. The commits API on 2026-11-12 listed ae05379cc9 on the default branch, committed 2025-09-02T20:28:40Z.

How do I open the Fooocus UI through SSH?

ldm_patched/modules/args_parser.py defaults --listen to 127.0.0.1. Passing --listen with no IP sets 0.0.0.0. args_manager.py sets the port default to None after the parser default of 8188. The readme port example is --port 8888. This page runs python entry_with_update.py --port 8888 --disable-in-browser and does not pass --listen or --share. The SSH tunnel forwards 127.0.0.1 port 8888. --share is the readme flag for a .gradio.live endpoint, and that section says the endpoint is unauthenticated by default.

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

No. modules/config.py defaults path_outputs to a path that resolves to the outputs directory inside the clone. --output-path overrides that path. Copy the 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).