API
Open-source NSFW models on your own GPU, or a hosted API?
Short answer: run open weights yourself if you want complete control and have, or will rent, a GPU with enough memory, and accept that setup, upkeep, moderation and legal exposure all become your job. Call a hosted API if you would rather send a request and get a file back, pay per run in credits, and leave hardware and model upkeep to someone else. The sections below list what each side really costs; every outside fact comes from a model card, licence or README listed under Sources at the end, read on the date shown.
Outside sources read on September 10, 2026; model cards, licences and READMEs change.
What "on GitHub" usually means
A search for an NSFW generator on GitHub tends to turn up two different things. One is the weights, the trained model itself, usually published on Hugging Face. The other is code that loads those weights and runs them: an inference script, a web interface, a node graph. The code is often the easy part. The weights and the licence attached to them are what decide what you may do.
Open does not mean one thing. FLUX.1 [schnell] is described on its model card as a 12 billion parameter model released under Apache 2.0, usable for personal, scientific and commercial purposes. Its sibling FLUX.1 [dev] sits behind a download gate where you must accept a non-commercial licence first. Stable Diffusion XL base 1.0 ships under the CreativeML Open RAIL++-M licence, whose Attachment A lists use restrictions, and paragraph 5 of that licence requires you to make everyone you let use the model comply with them.
Video weights are published too. The Wan2.2 repository states that its models are licensed under Apache 2.0, and its README adds, in its own words, "You are fully accountable for your use of the models". That sentence is the self-hosting trade in miniature.
The hardware line item
Image models are the lighter end; video is where memory becomes the deciding cost. The Wan2.2 README says its single-GPU command for the larger text-to-video model needs a GPU with at least 80GB of VRAM, and that the smaller combined text-and-image-to-video model runs on at least 24GB, giving an RTX 4090 as the example. Other models state other figures, and each one's own page is the place to read them.
Whether you buy that card or rent it by the hour, the cost runs while the GPU is reserved, not only while it is producing something you keep. A hosted API turns that into a per-run price: nothing is owed while you are not generating.
The work nobody lists on the model card
Getting a first image out of open weights can be quick. Keeping a working service is ongoing: drivers and libraries that must agree with each other, large weight files to download and store, new releases that change the loading code, a queue once more than one request arrives at a time, storage for outputs, and something that restarts the process when it falls over at night.
None of that is hard on its own, and some teams enjoy it. It is simply work that the model card does not mention and that still has to be done, week after week, by whoever runs the box.
Moderation and legal exposure move to you
Running weights yourself removes every filter you did not build. That is often the point, and it also means that nothing stands between a prompt and an output unless you put it there. If other people use your deployment, you are the operator: the rules on minors and on real people without consent are yours to write and enforce, and a RAIL-style licence expects you to pass its restrictions on to your users. What that means legally depends on where you operate, and it is worth advice from someone qualified before you open a service to the public.
On a hosted service those checks already exist. On Vellria, sexualising minors is prohibited, and prompts an automatic check recognizes as doing so are rejected before a single credit leaves the balance; the terms prohibit real people without consent, and the provider hosting a model may stop a job under its own rules, with the credits refunded.
What the hosted side looks like from code
The hosted route is one HTTPS request: a model id, a prompt and the parameters that model accepts, sent with a Bearer key beginning vll_. The API accepts the job, returns its id, and you ask for the result until it is ready. There are no weights to download and no GPU to reserve, and a failed job returns its credits by itself.
The image models, their ids and their prices are on the NSFW image API page, the video models on the NSFW video API page, and every endpoint is in the API reference. To wire a first request into an application, calling the API from your code walks through it.
One thing this page deliberately does not say is whether any model in our catalog has open weights. Catalog entries that share a family name with a published release are different versions, and we make no claim either way about their weights.
Choosing, in one paragraph
Self-host when control is the requirement: you need a model the catalog does not offer, you want to fine-tune it, outputs must never leave your own machines, or you already have the GPU and the hours to look after it. Use a hosted API when output is the requirement: you want images and clips inside a product this week, your volume is uneven, and you would rather pay per run than keep a card busy. Many teams do both, and the choice can be made again whenever the numbers change.
Sources
Every outside fact above comes from one of these four documents, each published by the model's own authors and read on the date shown at the top. The addresses are plain text; open them rather than taking this summary on trust.
FLUX.1 [schnell] model card, for its licence, parameter count and permitted uses: huggingface.co/black-forest-labs/FLUX.1-schnell
FLUX.1 [dev] model card, for its download gate and non-commercial licence: huggingface.co/black-forest-labs/FLUX.1-dev
Stable Diffusion XL base 1.0 licence, CreativeML Open RAIL++-M, with the use restrictions in its Attachment A: huggingface.co/stabilityai/stable-diffusion-xl-base-1.0/raw/main/LICENSE.md
Wan2.2 README, for its Apache 2.0 licence, the accountability sentence and the VRAM figures: github.com/Wan-Video/Wan2.2
Frequently asked questions
Are open-source NSFW models free?
The weights may cost nothing to download under a licence such as Apache 2.0, but running them does not: the GPU, the power or rental and the hours spent keeping it working all cost something. Some weights also restrict commercial use, as the FLUX.1 [dev] licence does.
How much GPU memory does self-hosted video need?
It depends on the model. The Wan2.2 README gives at least 80GB of VRAM for its larger text-to-video model on a single GPU and at least 24GB for its smaller combined model. Check each model's own page before you buy or rent hardware.
Who is responsible for what a self-hosted model produces?
Whoever runs it. The Wan2.2 README says so directly, and a RAIL-style licence adds use restrictions you must pass on to anyone you let use the model. Where the law draws further lines depends on your jurisdiction, so take qualified advice before serving others.
Can I switch from self-hosting to a hosted API later?
Yes. The request shape changes but the idea does not: prompt and parameters in, file out. Keep model choice and prompt building in one place in your code and moving between the two is a small change.
