UW Modular NSFW Wildcards — Photoreal · Modular · Optional Aspect Integration
Stop rolling mismatched tag salad. Paste one router tag and get a full photoreal natural-language prompt where the person, pose, wardrobe, room, and light actually belong together.
Built for Krea 2–style prompting using Impact Pack's Wildcard Node (works anywhere you feed expanded text into CLIP).
---
### Why this pack instead of giant random lists?
Most NSFW wildcards dump unrelated lines into one prompt and hope the model sorts it out. This pack is a framework:
- Routers = scene playlists (random photo-type from a theme)
- Templates = one locked recipe for one picture type
- Shared atoms = reusable phrase banks for age, body, wardrobe, rooms, lighting, camera, treatment, etc.
Coherence is structural: templates assemble eight clauses from shared pools, so "bedroom selfie" doesn't accidentally pull hallway lighting or swimsuit wardrobe unless that template says so. When the pack grows, you extend pools and recipes — you don't rewrite every scene by hand.
---
### Templates vs shared data (how the zip is organized)
Templates + routers krea2/*.yaml)
Scene grammar — which photo types exist and how a full prompt is assembled.
Shared atoms shared/*.yaml)
Phrase banks — identity, wardrobe, env, light, camera, pose, treatments, fantasy, etc.
Docs krea2/SOURCES.md, Krea2-Prompting-Guide.md, AGENTS.md)
Tag matrix, wording guide, how to extend safely.
Templates call shared tags __uw-shared/...__). Shared files do not invent whole scenes. That split is the point: swap or grow atoms without breaking every L2, and add scenes without duplicating identity/wardrobe prose everywhere.
Layers in one breath:
- Router (L1) — list of templates; call for variety
- Template (L2) — one full prompt for one picture type
- Leaves (L3) — eight clauses (medium, subject, pose, wardrobe, environment, lighting, camera, treatment) pulling from shared pools
---
## What's new in v1.1.0 — Actions Update + Character Kit Announcement
### Character Kit Expansion Pack Announcement
Shipping alongside this is a separate Character Expansion pack that works with this base wildcard pack. It will lock one fixed identity across the same photo types via a short character.yaml + builder, without changing stock random __uw-krea2-nsfw/...__ tags. Details and zip: [ https://civarchive.com/models/2807882/custom-character-uw-expansion-pack-nsfw-modular-natural-language-wildcards ]
TLDR: With the pack you can go to a single character.yaml file, add a character description, then run the build file and it will generate you a custom template file that recreates all of the templates from the base pack but using your custom character description.
### Actions Update
Intimate-action updates:
- Hotter partner penetration pose wording across the existing action pools (clearer body/position language)
- New harder partner L2s: anal + creampie variants (portrait + wide), on the hot action routers only
- Soft / tease scenes split out: portrait-intimate-action-soft-pics + landscape-intimate-action-soft-pics (massage / implied-oral) so they don't dilute the hot master playlist
- Expanded hot routers: master ≈40 · partner ≈33 · landscape ≈16
Starters for this update:
- uw-krea2-nsfw/router/portrait-intimate-action-pics
- uw-krea2-nsfw/router/portrait-intimate-action-partner-pics
- uw-krea2-nsfw/router/portrait-intimate-action-soft-pics
- uw-krea2-nsfw/router/landscape-intimate-action-pics
---
### Related downloads (separate listings)
Lock one fixed character across the same photo types (edit a short character.yaml, optional signature costume)
→ Character Expansion — [ https://civarchive.com/models/2807882/custom-character-uw-expansion-pack-nsfw-modular-natural-language-wildcards ]
Example Turbo + Raw graphs already wired with ImpactWildcardProcessor + PromptAspectSizeResolver
→ Wildcard Workflows — [ https://civarchive.com/models/2808026/krea2-minimal-hq-one-click-nsfw-wildcard-workflow-one-router-tag-full-photoreal-scene-every-queue?modelVersionId=3166390 ]
Stock tags like __uw-krea2-nsfw/...__ stay fully random. Character Expansion does not change that — it adds parallel __uw-krea2-nsfw-custom*__ trees. The old in-zip LoRA Character Kit character-kit/) is retired as of this base cut; use Character Expansion instead.
---
### Which download?
Basic krea2-uw-v1.1.0-basic-no-aspect.zip)
Start here. Impact Pack only. Set Empty Latent size yourself.
Advanced krea2-uw-v1.1.0-advanced-with-aspect.zip)
Templates end with [W:H]. Needs the companion node below.
Companion node ComfyUI-PromptAspectSize-v1.1.0.zip)
Required for Advanced. Strips the marker and outputs width/height for Empty Latent.
Companion node: https://civarchive.com/models/2789943/uw-custom-node-prompt-aspect-size-resolver-wildcard-wh-latent-wh-comfyui
Most people: Basic. Advanced only if you want canvas size driven by the prompt.
---
### Quick install
1. Extract Basic or Advanced into Impact Pack's custom_wildcards/<any-folder>/ so you have shared/ and krea2/ inside that folder.
2. If Advanced: install the companion node under custom_nodes/ComfyUI-PromptAspectSize/.
3. Restart ComfyUI → canvas menu Impact → Refresh Wildcard.
4. In your workflow, use ImpactWildcardProcessor and put a starter tag in wildcard_text.
5. Advanced wire: ImpactWildcardProcessor → PromptAspectSizeResolver → CLIP text and Empty Latent W/H.
---
### First tags to try
Router = random scene from a theme · Template = one specific scene every time
Paste one tag into ImpactWildcardProcessor → wildcard_text. Re-queue or change the wildcard seed for a new roll.
Router = random scene from a theme (best for variety)
Template = same picture type every time (best when you’ve found a look you like)
---
Routers — good starting points
__uw-krea2-nsfw/router/portrait-bedroom-pics__
Mixed bedroom selfies + candids + portraits. The easiest “does this pack work?” tag — wardrobe, pose, and lighting stay bedroom-coherent.
__uw-krea2-nsfw/router/portrait-boudoir-pics__
Vanity, chaise, mirror selfies with softer glam lighting. Strong editorial / intimate portrait vibes.
__uw-krea2-nsfw/router/portrait-bathroom-pics__
Mirror selfies, counter shots, towel scenes — clean photoreal bathroom setups with matched steam/window light.
__uw-krea2-nsfw/router/portrait-hotel-pics__
Hotel-room variety: mirror selfies, window portraits, moody laying-back candids. Good “travel photo” feel.
__uw-krea2-nsfw/router/portrait-poolside-pics__
Outdoor pool / lounge scenes — swimsuit-appropriate wardrobe without locking a single costume.
__uw-krea2-nsfw/router/portrait-lingerie-pics__
Theme router — lingerie wardrobe locked across boudoir setups. Use when you want outfit consistency, not random room wardrobe.
__uw-krea2-nsfw/router/portrait-plaid-uniform-pics__
Theme router — plaid uniform costume locked. Bedroom + closet mirror/full-length looks.
__uw-krea2-nsfw/router/portrait-aesthetic-pilot-pics__
Small curated set: editorial laying-back, soft-glam over-shoulder, vanity portrait. Polished showcase router.
__uw-krea2-nsfw/router/portrait-intimate-action-pics__
v1.1 hot master — solo + partner action (~40 portrait L2s). New anal + creampie variants included.
__uw-krea2-nsfw/router/portrait-intimate-action-soft-pics__
v1.1 soft / tease — massage + implied-oral scenes, split out so they don’t dilute the hot playlist.
---
Templates — lock one scene type
__uw-krea2-nsfw/template/bedroom-selfie-mirror__
Classic bedroom mirror selfie — phone-in-hand, warm window/bedroom light, intimate wardrobe.
__uw-krea2-nsfw/template/boudoir-portrait-vanity__
Seated/standing vanity portrait — 85mm-style framing, soft boudoir lighting, editorial skin texture.
__uw-krea2-nsfw/template/hotel-cinematic-over-shoulder__
Cinematic over-shoulder hotel shot — moody rim light, shallow DoF, “film still” treatment.
__uw-krea2-nsfw/template/bathroom-selfie-mirror__
Tight bathroom mirror selfie — tile + steam atmosphere, towel/robe wardrobe pools.
__uw-krea2-nsfw/template/poolside-portrait-standing__
Standing poolside portrait (not a selfie) — outdoor light, lounge/pool background, swimsuit wardrobe.
__uw-krea2-nsfw/template/theme-lingerie-boudoir-portrait-vanity__
Lingerie theme + vanity portrait — wardrobe locked to lingerie composer, boudoir env/light matched.
__uw-krea2-nsfw/template/theme-swimsuit-poolside-portrait-standing__
Swimsuit theme + poolside standing portrait — costume + location locked together.
__uw-krea2-nsfw/template/boudoir-portrait-vanity-editorial__
Aesthetic-pilot editorial vanity — editorial identity pool + editorial treatment; good hero-image tag.
__uw-krea2-nsfw/template/bedroom-cinematic-over-shoulder-soft-glam__
Soft-glam cinematic bedroom — over-shoulder pose, cinematic bedroom lighting, glam identity pool.
__uw-krea2-nsfw/template/action-partner-cowgirl-living-room__
Scene-locked partner action — cowgirl in living-room env (action grammar + matched room/light).
---
Suggested first run
1. __uw-krea2-nsfw/router/portrait-bedroom-pics__ — confirm install + coherence
2. __uw-krea2-nsfw/template/boudoir-portrait-vanity-editorial__ — one locked hero look
3. __uw-krea2-nsfw/router/portrait-lingerie-pics__ — see theme routers vs room routers
4. __uw-krea2-nsfw/router/portrait-intimate-action-pics__ — v1.1 action update
Tip: Room routers bedroom, bathroom, hotel…) pick wardrobe from that room’s pools. Theme routers lingerie, plaid-uniform, cheerleader…) lock costume first, then place you in a matching scene.
Description
v1.0.0 — Initial public release
Framework: modular L1→L2→L3 natural-language wildcards for Krea 2 photoreal · Impact Pack · agent-ready docs · Basic + Advanced (+ optional aspect node)
Included
Shared atoms — common / SFW / NSFW / fantasy pools
SFW portraits — lifestyle / selfie routers
NSFW rooms — bedroom, bath, hotel, apartment, living room, closet, kitchen, balcony, poolside, boudoir
Themes — lingerie, swimsuit, cheerleader, plaid uniform, cosplay, nature, librarian
Intimate action — solo, partner, bus, landscape
Group action — multi-person scenes
Aesthetic pilot — editorial / soft-glam
Fantasy core — forest / castle / tavern / ruins (+ dark vignettes)
Fantasy selfie — phone fantasy portraits
Fantasy action — intimate fantasy + landscape
Fantasy monster / epic / group — size-diff, scenic nude, multi-partner
Dual-image — before→after side-by-side
Casting sheet — multi-pose ultrawide sheets
Also
Advanced aspect markers
[W:H]· companion PromptAspectSize node · contribution-friendly new-YAML extensions
FAQ
Comments (16)
This is my first ever post on Civit! So feel free to message me if I need to change anything. I generated all of these images in like an hour. Almost everyone of the images generated was a great image because of how great the prompts are + the good workflow I am using, but theres no Post processing.
Edit.
Hey everyone, for Advanced mode to work you need my custom Prompt Aspect Size node. https://civitai.red/models/2789943/uw-custom-node-prompt-aspect-size-resolver-wildcard-wh-latent-wh-comfyui?modelVersionId=3143923
The idea is that all of the prompts have their Aspect Ratio embedded into the end of the prompt. So the special node I have will extract that AR from the prompt and then output the image Width + Height based on the MegaPixel size you choose!
Thank you!
Could you also add templates without subject modifying parts? So that it can be used with character loras.
Oh interesting!
I thought it through and I just came up with a pretty neat solution I think to handling the problem. Let me know what you think.
The main issue is that according to kreas prompting guidelines, you are supposed to put the subject phrase within the prompt, not the very beginning or end. So it makes it hard if you are trying to do something like have a hard coded string describing your subject then be clumped together with the description of their actions and setting and photo type, etc etc.
My solution is going to be a template character file. So you will take the template character file and then fill in the section at the top for the subject description. Then you can use that template as a new wildcard that will be able to pull from all of the other references in the wildcards shared data pack.
Does that sound like something that fits what you are needing?
@Vesperra Yes that could work. It should be a simple description though like trigger word + hair + make-up like things that can change about a character. Don't need to randomize hair and make-up, user can change the template if they want a different variety.
@hadeng
Hey yup thats what Im working on now! I tried it out with a "Starfire" character description. So the idea is that the "Subject clause" will be a custom field as apart of the template.
The subject clause defines the characters general look not including clothes (face, age, gender, body descr).
So this new Subject file should be compatible with all the other existing photo templates in my pack. It would take the subject and then put them into the photo with a randomized environment, clothes, and 'action'
If you want a custom Subject + Clothing Description that is going to be released as a separate file. The reason is because not all of the Templates are compatible with a custom Clothing description: like if your character is wearing a full outfit, then that will be incompatible with a prompt that is trying to have the character do something that requires them to be nude.
But yeah I am going to try to release those two things within the next day or maybe few hours. I just need to finish testing it.
@Vesperra Great! Though, if the subject clause includes attributes like face, race, age, gender, and body, does that mean users would need to describe the character for every LoRA when using a template? It might be better to make those optional, so users can keep things simple by just adding the trigger word.
Looking forward to it!
@hadeng Hey I implemented my solution to this. To answer your question from before, it is up to you. Lol the prompt and Loras just push your output in a certain direction. like if I have a Starfire character Lora, then the only subject description I may need is just "a photograph of a woman dressed as Starfire".
But if you dont have a Lora and you want an exact character look then you will probably want to give a very detailed description.
Anyways, hopefully this can help.
Ok, so, this is pretty cool. A LOT of work, I'm sure. Anyways, I don't want to take my frustration out on you, so, consider this a cry for help. This thing is VERY complex. It's almost impossible to try and deal with manually. So, I've thrown the biggest model i can manage at it, a qwen 34b model, and it's still not enough. It just takes a big-ole dump anytime I try and add custom files into the mix. It's just too much, and I'm not going to risk my claude or openai accounts on nsfw content. What sort of model are you using with this? It must be at least something 100b or more. Any suggestions before i just rm -f the whole thing?
Thanks man! So are you not able to run it normally just using the built in templates? Im not sure exactly what you mean by 'adding in custom files'. (I assume you mean you are trying to add in your own custom template file that will then utilize the existing wildcard package).
Also I am going to reply back now with a bunch of different things so you can reply to them separately and make the flow of conversation easier.
Also can I give a different suggestion?
Use Cursor. I did thorough research using OpenAI to research the license requirements for Cursor before I used it with this and they have nothing that limits you from NSFW content. They are allowed to ban for 'obscene' content I think, but in comparison OpenAI and Claude have actual explicit wording in their license that bans NSFW... So based on that if Cursor didnt want you to do anything NSFW then I believe they would have it in their wording.
This entire thing was developed using Composer-2.5 and recently Cursor-Grok-4.5 (new model) through Cursor.
I already use Cursor for my normal life for daily coding + other work too, its top tier.
but the entire architecture of this thing is made using to be Agentic and work with Agents. Its why I have AGENTS.md files in each of the folders. Its very easy for the AI to understand the structure + understand how Krea2 is required to be prompted and then construct really nice Natural language wildcards from it.
Also. For open source LLMs I actually have used them also to make changes.
Qwen 3.6 35B MoE ablitterated
and theres a newer one that I would probably recommend:
https://huggingface.co/dealignai/Bonsai-27b-Ternary-CRACK-GGUF
Bonsai took the Qwen 35B model and they did some AI engineering magic and they were able to Quantize the original Qwen 3.5 Model so that the Q2 quant has similar intelligence to the Q8 quant.
So the point is: Its now like a 5GB model that has 95% the intelligence of the original model but at 1/8th the size. If you had problems with context window size then using something like that maybe much more helpful.
+ The CRACK is a form of Ablitteration, so the model will do NSFW stuff
I used the Qwen 3.6 35B MoE model already to make changes to my wildcards before. I had it read in the context of the Wildcards Shared Data files and then make changes to my existing NSFW templates to essentially expand on them and make them 'sexier'. So it definitely is possible to do, I just dont know what hardware you are running.
Hope some of that helps! Feel free to ask if you still need help.
@Vesperra For clairity, yes, I'm attempting to add files to the structure via agent, specifically pi agent via local LLM, you've made good llm suggestions here, both cursor and bonsai, i'll poke at that. thanks for the response.
@gurilagardnr Hey I just released a character expansion pack system that may help with what you need! https://civitai.red/models/2807882/custom-character-uw-expansion-pack-nsfw-modular-natural-language-wildcards?modelVersionId=3166214
Thanks, man. This one came highly recommended, installed it, and it's working great. The pics are of great quality, but I am struggling to understand how to use it correctly. I have seen the paths in yaml files and can use them but is there a tutorial somewhere, that will help? Thanks again.
Hey thank you for the support! If you dont already I also recommend the Advanced mode so the prompt will pass along the aspect ratio from the prompt to the ComfyUI workflow!
Can you explain a bit more how you are trying to use it / what you are trying to do? Im guessing you are trying to make modifications to add in new Templates?
I would say this: there are two things I assume you would want to do.
1. Either add in new templates yourself
or
2. Edit the existing shared data.
So for 2 for example... All of the templates pull from existing Shared data groups. So whenever it creates a "subject" clause for example, it will pull in a term for Age + Body Type + Ethnicity + Hair.
So if you want to change how the subject looks, you just need to go to these shared Data term groups and modify them (so you could add in more hair styles there, more age descriptions, body types, etc).



















