Skip to content
GenLovers

How to Set Up a Local NSFW Image Model: Full Tutorial

Last updated: 12 min readDifficulty: Intermediate

Written by Clement

You want to get the peace of mind to generate your own spicy content without any limits or restrictions. You're on the right tuto. You'll learn how to setup under 20 minutes a complete setup to run a local NSFW model with or without GPU on your machine.

Choose where to run it

Two practical routes: your own machine, best if you already own a GPU with more than 8GB, or a rented cloud GPU. This walkthrough uses rented GPU so anybody can run the setup.

Portrait generated by this exact pipeline.
Generate the same image but without any clothes. Check this section to see how hard the model can go
The full walkthrough below, screenshot by screenshot.

Create a RunPod account

  1. 1

    Sign up at RunPod

    Go to runpod.io and create an account (this is a referral link).

    Open runpod.io
RunPod homepage with the Sign Up button in the top navigation circled.
Click on the signup button on the top right to start Open runpod.io
  1. 2

    Add $10 to your account

    This is the minimum but it will allow you to run your model for 35 hours which can represent more than 100,000 images generated. Which is around $0.0001/image compared to the $0.01 on the cheapest ready to go solutions (not always uncensored btw)

RunPod dashboard top-right corner with the add-funds plus button circled.
The + button next to your balance, top right of the dashboard.
  1. 3

    Pick an instance

    From the dashboard, click Pods in the left nav (or hit Deploy Pod on the Pods card). RunPod lists GPUs by VRAM, RAM, vCPU count, and hourly price; choose one with enough VRAM for the model you're targeting.

RunPod left navigation with the Pods menu item circled.
Pods, in the left nav.

Configure and deploy the pod

Image generation doesn't need the biggest card on the list. Pick the cheapest GPU from the newest NVIDIA generation on offer, that's plenty for this workflow, and it keeps the hourly rate low while you're still testing.

  1. 4

    Pick the cheapest current-generation NVIDIA GPU

    You don't need a flagship card for image generation; the newest generation's entry-level option is enough, and it costs less per hour than an older, bigger card.

RunPod GPU instance list with the cheapest current-generation card's price and VRAM circled.
The GPU list, sorted by VRAM, RAM, vCPU, and hourly price.
  1. 5

    Set the pod template to a PyTorch build

    Runpod Pytorch 2.8.0 is the current default template (runpod/pytorch:1.0.2-cu1281-torch280-ubuntu2404); it ships CUDA and PyTorch pre-installed so you're not configuring either by hand. If a different template is selected, hit Change template and pick it from the list.

Pod template card with the Change template button circled.
Change template, if you need to swap off whatever's selected.
  1. 6

    Open the template overrides and expose the ports ComfyUI needs

    Under Expose HTTP ports, set 8888,4000,8188,8889. 8188 is ComfyUI's default port; the others cover Jupyter and any auxiliary service the workflow uses. Leave the container disk at its default; it's temporary storage that's wiped when the pod stops.

Pod template overrides panel with the Expose HTTP ports field circled.
8888, 4000, 8188, 8889. 8188 is ComfyUI's default port.
  1. 7

    Keep the default disk and volume sizes

    30GB for the container disk and 50GB for the network volume are the defaults RunPod sets here, and both are enough for this workflow. Leave them as they are unless you already know you need more.

  2. 8

    Deploy On-Demand

    On-Demand bills per second of actual usage, no upfront commitment, which is the right choice while you're still setting things up. Reserved pricing only makes sense once you know you'll run this for months straight.

RunPod deployment configuration panel with the On-Demand pricing option circled.
On-Demand bills per second, no upfront commitment.

Run the setup script in Jupyter

  1. 9

    Open Jupyter Lab

    On the pod's Connect tab, port 8888 shows "Jupyter Lab, Ready." Click it.

Pod Connect tab with the Jupyter Lab link on port 8888 circled.
Port 8888 shows Jupyter Lab, Ready once the pod finishes booting.
  1. 10

    Download the setup script

    Grab setup_krea-2_comfyui.py below and save it locally.

    Download the setup script (.py)
  2. 11

    Upload the setup script

    In Jupyter, upload the file you just downloaded into /workspace.

  3. 12

    Open a terminal

    Click the terminal tile in the launcher.

  4. 13

    Run the script

    python setup_krea-2_comfyui.py. It clones ComfyUI, installs the custom nodes, and downloads every model file the workflow needs.

Jupyter Lab file browser with the uploaded setup script circled, and the terminal command to run it circled.
Upload the script, then run it from a terminal.

Get new prompt files and guides first

One email when a new tested prompt file or model guide goes live. Prompts that survived production, not theory. No spam, unsubscribe anytime.

Open ComfyUI's port once setup finishes

  1. 14

    Go back to the pod's Connect tab in RunPod

    Same screen you used to open Jupyter.

  2. 15

    Open port 8188

    That's ComfyUI's default port, already exposed from the pod-template step above. Click it once the setup script finishes to load the ComfyUI interface itself.

Pod Connect tab with the HTTP Service link on port 8188 circled.
Same Connect tab, this time pointing at port 8188 instead of 8888.

Load the workflow and run your first generation

  1. 16

    Close the pop-ups

    ComfyUI opens with a couple of dialogs on top (a welcome panel, sometimes an alert about legacy Manager data). Close them to get to the empty canvas.

Empty ComfyUI canvas with the alert dialog's close button circled.
Close whatever dialogs load on top before you do anything else.
  1. 17

    Download the workflow file

    Grab the .json workflow below and save it locally.

    Download the workflow file (.json)
  2. 18

    Drag and drop the file onto the canvas

    The full node graph appears.

Full ComfyUI node graph loaded on the canvas after dragging the workflow file onto it.
The full node graph, right after drag-and-drop.
  1. 19

    Click the Manager button

    In the top toolbar.

ComfyUI top toolbar with the Manager button circled.
Manager, in the top toolbar.
  1. 20

    Click "Install Missing Custom Nodes"

    The workflow references custom nodes your fresh install doesn't have yet; this lists them.

ComfyUI Manager panel with the Install Missing Custom Nodes button circled.
This lists every custom node your fresh install is missing.
  1. 21

    Select all, then install

    Click the top-left checkbox to select every listed node, then click the install button. If a node pack is already present but out of date, the button reads "Try fix" instead of "Install", click whichever one is showing.

Missing custom nodes list with the select-all checkbox and the install button circled.
Select all, then Install (or Try fix, if a pack is already present but out of date).
  1. 22

    Restart ComfyUI

    Once every node finishes installing, click the red Restart button and confirm.

  2. 23

    Reload when prompted

    A pop-up asks you to refresh the browser once the restart completes. Reload it, and the workflow is ready to run.

Confirm dialog asking to refresh the browser, with the Confirmer button circled.
Restart ComfyUI first, then confirm this reload.
  1. 24

    Click Execute

    Top right, without changing anything else. Your first generation runs.

ComfyUI top toolbar with the Execute button circled.
Execute, top right, without touching anything else first.

Get better prompts for this workflow

This is the point where the prompt does all the work. These free files turn ChatGPT, Claude, or Gemini into a prompt-writing specialist for the model you're running: paste one in, describe your idea, get back a finished prompt.

See what this pipeline actually produces

Unlock the uncensored set

This tool produced fully explicit output in our test. It's never shown on this site. Enter your email and the invite to our private, age-verified Discord unlocks right here, instantly.

Hardware and software checklist

This workflow ran on 16GB of VRAM and up in this tutorial. Going lower hasn't been tried, so treat anything under 16GB as untested rather than unsupported.

GPUA supported NVIDIA GPU locally, or a rented cloud GPU with 16GB VRAM or more
System RAM30GB for this test but it can be lower too
Storage28GB are stored on the network volume I'm attaching to run the workflow

Troubleshooting

Out-of-memory errorReduce dimensions or batch size, close other GPU applications, check the model's own memory guidance
Black or corrupted outputVerify the VAE, runtime, driver, and model compatibility
Missing custom nodeInstall only from a reviewed source, restart the UI, confirm the node version
Output ignores the LoRACheck model family, loader, trigger term, file location, and weight
Results aren't reproducibleSave the full workflow, seed, model hash, node versions, and settings

Frequently asked questions

Can I run an NSFW image model without a powerful GPU?
Some models support CPU or lower-memory modes, but speed and output size shrink accordingly. Check a model's current hardware guidance before choosing it. A hosted GPU can be cheaper than buying hardware if you only generate occasionally, but review the provider's data-retention and adult-content policies first.
Should I train a custom model right away?
No. Prove the base checkpoint and workflow work first. Add a LoRA only once you can describe the specific visual change you need and you have lawful, consented training data in hand.
How do I make a generated character look like a real person?
Use a fictional character, or a consenting adult with explicit permission for this exact use. Never turn a real person's ordinary photos into sexual content without informed consent.
What's the best model?
There's no universal answer. Compare candidates using the same seed, prompt class, resolution, and review criteria, and publish results only after running that comparison yourself.
How much VRAM do I need?
This workflow ran on 16GB of VRAM and up. Lower hasn't been tested, so treat anything under 16GB as untested rather than unsupported, and check the specific model's own hardware guidance before committing to a smaller card.
How much does RunPod actually cost for this?
$10 covers roughly 35 hours on the cheapest current-generation GPU, which is enough for 100,000+ images at this workflow's default size, around $0.0001 per image. That's before storage: the network volume keeps a small charge running on top for as long as it exists, separate from the per-second GPU rate.
Is it safe to run this on RunPod?
RunPod states it encrypts data at rest and in transit and runs each pod in its own isolated container, per their own security and compliance documentation. That's RunPod's claim, not something this guide independently audits, so read their privacy policy and adult-content policy yourself before uploading anything sensitive.
How do I stop paying once I'm done generating?
Stop the pod first, then terminate it. Stopping alone ends the per-second GPU charge, but the network volume keeps billing for storage until the pod is fully terminated, not just stopped.
Is generating NSFW AI images legal?
It depends entirely on what you generate. Fictional adult characters are the safe lane. Real people require documented, informed consent, and minors, non-consensual intimate imagery, or coercion are never legal regardless of how the image was made. This isn't legal advice; when in doubt, don't generate it.

Keep reading

Get new prompt files and guides first

One email when a new tested prompt file or model guide goes live. Prompts that survived production, not theory. No spam, unsubscribe anytime.