News icon

Kimi K3 is now available on Runpod

How to run Fooocus on Runpod

Fooocus is a Gradio-based image generation interface built on Stable Diffusion XL, designed around one idea: you write a prompt, you get a good image, and you do not touch a sampler setting to get there.

That makes it the opposite of ComfyUI. Where ComfyUI exposes every stage of the pipeline as a node, Fooocus hides almost all of it behind opinionated defaults. If you have bounced off the parameter density of Automatic1111 or ComfyUI, this is the interface worth trying.

What is Fooocus?

Fooocus is an open-source image generation UI created by Lvmin Zhang (lllyasviel), who also authored ControlNet. It runs on Stable Diffusion XL and wraps it in a browser interface with almost nothing exposed.

What it handles automatically:

  • Prompt expansion: short prompts are expanded before generation, so "a cat in a garden" gets the descriptive detail SDXL responds to without you writing it
  • Curated style presets: a large library of tested style modifiers you apply by name rather than by prompt engineering
  • Performance modes: Speed, Quality, and Extreme Speed presets that adjust the underlying sampling configuration for you
  • Tuned SDXL defaults: sampler, scheduler, and refiner settings chosen to work well rather than to be adjustable

Inpainting, outpainting, and image prompting are all supported, but presented as tabs rather than parameter panels.

A note on maintenance status

Be aware of where the project stands before building on it. The original repository is in limited long-term support, receiving bug fixes rather than new features, after active development paused in mid-2024. A community fork has carried development forward since.

That matters in practice: Fooocus is built on SDXL and does not support newer architectures like Flux or Qwen Image. If you want current models, ComfyUI or Stable Diffusion Forge is the better starting point. If you want the fastest path from prompt to a good SDXL image, Fooocus is still hard to beat.

Why run Fooocus on Runpod?

Fooocus runs on modest hardware, so this is not a case of the model being too large for consumer GPUs. The reasons are different:

No local setup. Fooocus downloads several gigabytes of checkpoints and dependencies on first run, and Python environment conflicts are a common failure mode. A pod gives you a clean environment every time.

Faster generation than a laptop GPU. SDXL at 1024x1024 is meaningfully quicker on a datacenter card, and the difference compounds when you are iterating.

Headroom for the extras. Inpainting at high resolution, upscaling, and batch generation all want more VRAM than the base generation path.

Nothing runs when you are not using it. Runpod bills per second while a pod is running. An afternoon of image generation costs an afternoon of GPU time.

GPU requirements for Fooocus

Fooocus is SDXL-based, which puts it well below the requirements of current large image models.

  • Standard generation at 1024x1024: RTX A5000 (24 GB) from $0.16/hr, or RTX 4090 from $0.34/hr
  • Comfortable headroom for inpainting and upscaling: RTX 4090 (24 GB) from $0.34/hr, or RTX 5090 (32 GB) from $0.69/hr
  • Batch pipelines and high resolution: L40S (48 GB) from $0.79/hr

A 24 GB card is the practical sweet spot. Going higher rarely changes anything for a single-user session, since the bottleneck is SDXL's architecture rather than available memory.

Step 1: Create a Runpod account

Go to runpod.io and sign up with email, GitHub, or Google. Add credits or a payment method.

Step 2: Set up storage before you deploy

Do this first, not after. Pod storage is ephemeral: when you terminate a pod, everything on it is gone, including every checkpoint, LoRA, and generated image.

Create a network volume and mount it at /workspace. Between 50 and 100 GB covers the base SDXL checkpoints plus a working library of community models and LoRAs.

Step 3: Find or build a template

Runpod does not currently maintain an official first-party Fooocus template. Two options:

Browse the Hub. Go to console.runpod.io/hub and search for Fooocus. The Hub is a live catalog, so check the image version and last-updated date on anything you find. Given that Fooocus itself is in maintenance mode, pay particular attention to whether a template tracks the original repository or the active fork.

Build a custom template. Fooocus publishes an official container image, which makes this straightforward. In the Runpod console, go to Templates and click New Template, then configure:

  • Container image: ghcr.io/lllyasviel/fooocus
  • Exposed HTTP port: 7865
  • Environment variable: CMDARGS set to --listen

The --listen argument is required. Without it Fooocus binds only to localhost inside the container and the Runpod proxy cannot reach it, which presents as a template that deploys fine and then never becomes reachable.

Full instructions are in the custom template documentation.

Step 4: Deploy and connect

  1. Open the Pods section and select an RTX 4090 or another 24 GB card.
  2. Attach the network volume you created.
  3. Click Change Template and select your Fooocus template.
  4. Set container disk to at least 30 GB, separate from your volume.
  5. Deploy.

The pod comes up in under 30 seconds. Fooocus's first launch takes longer, because it downloads the SDXL base checkpoint, the refiner, and the prompt expansion model. Watch the pod logs to track progress.

Once running, click Connect and open the HTTP service on port 7865. If that option does not appear, check that the port is listed in your template and that CMDARGS includes --listen.

Step 5: Generate and add your own models

The interface is deliberately sparse: a prompt box, a generate button, and a checkbox to reveal advanced settings. Type a prompt and click Generate.

Then open the advanced panel and look at three things. Performance switches between Speed, Quality, and Extreme Speed. Styles is the preset library, and applying two or three complementary styles usually does more than rewriting the prompt. Aspect ratio should come from the SDXL-native resolutions listed, because SDXL degrades noticeably outside the resolutions it was trained on.

To add your own models, place SDXL-architecture checkpoints in models/checkpoints/ and LoRAs in models/loras/, then refresh the dropdown. Confirm the paths resolve inside your mounted volume rather than the ephemeral container disk. SD 1.5 checkpoints are not compatible.

Pro tips

Use Extreme Speed to explore, Quality to finish. Find the composition first, then pay for the render.

Trust the prompt expansion. Fooocus expands short prompts automatically, and long, heavily engineered prompts can work against it. Start short and add detail only where the output misses.

Layer styles rather than tuning parameters. The style presets are the intended control surface.

Verify your volume mount before a long session. Discovering that outputs were not persisting after terminating the pod is a bad afternoon.

Stop your pod when you are done. Runpod bills by the second while a pod runs. Stopping the pod preserves your network volume.

Wrapping up

Fooocus is a narrow tool that does one thing well: getting good SDXL output from someone who does not want to learn a diffusion pipeline. It is in maintenance rather than active development, and it will not run current model architectures, so go in knowing that. For SDXL work where speed from prompt to result is what matters, on a pod with a network volume attached, it holds up.

Ready to try it? Browse the Hub for a Fooocus template, or build a custom one with the official container image.

FAQ

What is Fooocus?

An open-source Gradio-based image generation interface built on Stable Diffusion XL, created by Lvmin Zhang (lllyasviel), who also authored ControlNet. It automates prompt expansion, ships curated style presets, and hides most generation parameters behind tuned defaults.

Is Fooocus still maintained?

The original repository is in limited long-term support, receiving bug fixes rather than new features, after active development paused in mid-2024. A community fork has continued development. Check which one a template is based on before deploying it.

What port does Fooocus use on Runpod?

Port 7865. Expose it as an HTTP port in your template and set the CMDARGS environment variable to --listen so Fooocus binds to all interfaces rather than localhost. Without --listen, the pod deploys but the interface is unreachable.

What GPU do I need to run Fooocus?

Fooocus is SDXL-based, so a 24 GB card handles standard generation at 1024x1024. An RTX A5000 from $0.16/hr or an RTX 4090 from $0.34/hr is the practical range, with headroom for inpainting and upscaling on the 4090.

Fooocus or ComfyUI: which should I use?

Fooocus if you want good SDXL images with minimal configuration. ComfyUI if you want control over the pipeline, or you want to run current models. Fooocus is SDXL-only and will not run Flux, Qwen Image, or other newer architectures.

Do my models and images persist between sessions?

Not by default. Pod storage is ephemeral and lost on termination. Attach a network volume mounted to /workspace before deploying, and confirm your checkpoints, LoRAs, and outputs are written there.

Purple glow background

Related articles

View All
No items found.

Build what’s next.

Build, train, and scale AI workloads on Runpod with cloud GPUs, Serverless, and Clusters.

Star field background