Best NSFW Models for ComfyUI 2026
Verified August 8, 2026: ComfyUI v0.31.0 is the current stable core release, and Comfy Desktop v1.0.37 provides managed installations on Windows 10+ and macOS 13+ Apple Silicon; Debian-based Linux currently uses the source-build path.
For standard split Flux or CHROMA .safetensors, use Load Diffusion Model from models/diffusion_models/; packaged FP8 checkpoints use Load Checkpoint from models/checkpoints/. GGUF requires the community ComfyUI-GGUF node, while NF4 is a legacy custom-node route rather than the recommended default.
Core local inference can run without uploading prompts or images after files are cached. Manager, model downloaders, custom nodes, and Partner Nodes may still use the network. The strict-offline section below explains network_mode = offline and --disable-api-nodes.
The Quick Answer
Seven nodes make a working Flux graph in ComfyUI: one GGUF model loader, one dual text-encoder loader, two text-encode nodes, KSampler, VAE Decode, and Save Image. Everything else is optional until this base workflow runs clean.
| Quantization | File Size | VRAM at 1024x1024 | Quality vs FP16 |
|---|---|---|---|
| FP16 | 23.8 GB | ~24 GB | 100% |
| FP8 | 11.9 GB | ~12 GB | ~99% |
| Q8_0 GGUF | 12.7 GB | ~13 GB | ~99% |
| Q5_K_S GGUF | 8.3 GB | ~10 GB | ~95% |
| Q4_K_S GGUF | 6.8 GB | ~8 GB | ~93% |
Q4_K_S is the sweet spot for 8 GB cards. Q5_K_S if you have 10-12 GB. Don't bother with Q2 or Q3 - the quality loss shows in fine details and skin textures.
What You Need
- GPU: NVIDIA with 8+ GB VRAM for GGUF. 12+ GB for FP8. 24 GB for FP16.
- Disk: 12-25 GB depending on quantization, plus 5-10 GB for text encoders and VAE.
- Python: 3.10 or 3.11.
- ComfyUI: core v0.31.0 and Desktop v1.0.37 were current when this guide was verified on August 8, 2026.
Four model files minimum:
- Flux Dev GGUF - Q4_K_S at 6.8 GB or Q5_K_S at 8.3 GB from city96's HuggingFace repo
- T5-XXL text encoder - FP16 at 9.8 GB, FP8 at 4.9 GB, or GGUF Q5 at 3.3 GB
- CLIP-L encoder - clip_l.safetensors, 246 MB
- VAE - ae.safetensors, 335 MB
Step 1 - Install ComfyUI
Use Comfy Desktop v1.0.37 for managed installations on Windows 10+ or macOS 13+ Apple Silicon. Debian-based Linux currently uses the source-build path. Desktop supports isolated installations so experiments do not have to share one custom-node environment.
For a manual install:
git clone https://github.com/Comfy-Org/ComfyUI.git
cd ComfyUI
pip install -r requirements.txt
python main.py
Open http://127.0.0.1:8188. Add Manager only when needed, because custom nodes install executable dependencies that require their own security review.
Step 2 - Install the GGUF Node
GGUF is not supported by ComfyUI core. The community ComfyUI-GGUF node adds quantized model loading, and its README describes the project as work in progress. Pin a known-good revision before relying on it.
cd custom_nodes
git clone https://github.com/city96/ComfyUI-GGUF.git
pip install gguf
Restart ComfyUI. You'll see Unet Loader (GGUF) and DualCLIPLoader (GGUF) in the node menu. Skip this step only if you're running FP16 on a 24 GB card and using standard loader nodes instead.
Step 3 - Download and Place Files
Grab Flux Dev GGUF from city96/FLUX.1-dev-gguf on HuggingFace. Get T5-XXL and CLIP-L from the comfyanonymous mirrors or official Flux repos.
File placement for GGUF workflow:
| File | Folder |
|---|---|
| flux1-dev-Q4_K_S.gguf | ComfyUI/models/unet/ |
| t5xxl_fp16.safetensors | ComfyUI/models/clip/ |
| clip_l.safetensors | ComfyUI/models/clip/ |
| ae.safetensors | ComfyUI/models/vae/ |
For split Flux or CHROMA .safetensors, use models/diffusion_models/ with Load Diffusion Model and put T5/CLIP files in models/text_encoders/. Packaged FP8 checkpoints go in models/checkpoints/ with Load Checkpoint; split FP8 weights still use Load Diffusion Model. CHROMA is Flux-derived but not graph-compatible by assumption, so start from the official CHROMA workflow. GGUF uses the community Unet Loader (GGUF). NF4 is a legacy custom-node route, not the recommended low-VRAM default.
Step 4 - Import and Wire the Workflow
Download a working Flux GGUF workflow JSON and drag it into ComfyUI's canvas. Don't build from scratch on your first run.
Core nodes (7 total, counting both text-encode nodes):
- Unet Loader (GGUF) - select your Flux GGUF file
- DualCLIPLoader (GGUF) - load T5-XXL and CLIP-L
- CLIP Text Encode (x2) - positive and negative prompts
- KSampler - connects model output and conditioning
- VAE Decode - connects VAE file and sampler output
- Save Image - final output node
KSampler settings:
- Sampler: euler
- Scheduler: simple
- Steps: 20
- CFG: 1.0
CFG 1.0 is correct. Flux handles guidance through a separate FluxGuidance node set to 3.5, not through KSampler's CFG parameter. Raising CFG above 1.0 produces oversaturated garbage. Set your resolution to 1024x1024 or 832x1216 for portrait orientation.
Step 5 - Generate and Verify
Queue one image at 1024x1024. Check for these specific failures:
- Pink/magenta output: VAE mismatch. Confirm ae.safetensors is in
models/vae/and wired to the VAE Decode node. - Blurry/mushy results: Wrong text encoder file. Verify your T5-XXL file matches the model variant you downloaded.
- OOM crash: Drop resolution to 832x832 or switch to a smaller GGUF quant level.
- Missing nodes error: Install required nodes through ComfyUI-Manager before loading the workflow JSON.
One clean image means your base workflow is solid. Save the workflow JSON immediately - this is your rollback point for everything that follows.
Step 6 - Add NSFW LoRAs
Place LoRA files in ComfyUI/models/loras/. Add a LoRA Loader node between the model loader and KSampler.
Tested Flux NSFW LoRAs from Civitai:
- aidmaNSFWunlock - 19 MB, 130k+ downloads. Content unlock baseline. Start at strength 0.7.
- NSFW Master Flux - 1.16 GB, broad coverage. Strength 0.8.
- Detail Enhancer FLUX - 19 MB, texture quality boost. Stack after an unlock LoRA.
- Realistic_Nudes Flux v2.1 - 172 MB, anatomy specialist for explicit detail.
LoRA rules for Flux:
- Start at 0.6-0.8 strength. Flux amplifies LoRA effects more than SD 1.5 does.
- One at a time. Get a clean result before adding a second.
- Watch VRAM. Two LoRAs on Q4 at 1024x1024 can push 8 GB cards to OOM.
- Same prompt, same seed when comparing before and after results.
Read the license on every LoRA you download. Creators' terms still apply on local hardware.
Verify It Works
Run through this checklist after your first successful generation:
- Clean output at 1024x1024 - no pink artifacts, no extreme blur, coherent anatomy
- VRAM stays within limits - check with
nvidia-smiduring generation - LoRA effect is visible at 0.7 strength without artifacts or color shifts
- Workflow JSON saved as your known-good baseline for rollback
Troubleshooting
Pink/magenta slabs: VAE file wrong or decode node wired to incorrect output. Re-check that ae.safetensors is in models/vae/ and the node connections are correct.
Noise that never resolves: Scheduler mismatch. Flux needs euler sampler + simple scheduler with CFG 1.0. Using SD 1.5 KSampler presets on Flux produces garbage.
OOM on queue: Resolution too high or too many LoRAs loaded. Render at 832x832 first, disable extras, and add features one at a time until you find the limit.
LoRA produces artifacts: Strength too high. Drop to 0.5, increase by 0.1 until the result is clean. Check the LoRA's Civitai page for its recommended Flux variant and strength range.
Offline and Privacy Controls\n\nLocal model nodes can run after dependencies and model files are cached, without uploading prompts or images. That does not make every graph automatically offline. Manager can fetch registries and install executable dependencies; set network_mode = offline in Manager's protected config.ini when those connections are unwanted. Partner Nodes are cloud API nodes that send workflow inputs to third-party providers. Launch with --disable-api-nodes to disable them. Audit downloaders, update checks, and every third-party custom node before calling a workflow air-gapped.\n\n## Bottom Line
Install ComfyUI. Add the GGUF node. Place four files in three folders. Import a workflow. Generate one image. That's five actions to uncensored Flux on your own hardware. Add LoRAs only after the base workflow runs clean. Measure VRAM at every change. Do less, do it right.
