Compare commits
3 Commits
character-
...
multi-char
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d756ea1d0e | ||
|
|
79bbf669e2 | ||
|
|
5e4348ebc1 |
183
CLAUDE.md
183
CLAUDE.md
@@ -10,10 +10,67 @@ The app is deployed locally, connects to a local ComfyUI instance at `http://127
|
|||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
### Entry Point
|
### File Structure
|
||||||
- `app.py` — Single-file Flask app (~4500+ lines). All routes, helpers, ComfyUI integration, LLM calls, and sync functions live here.
|
|
||||||
- `models.py` — SQLAlchemy models only.
|
```
|
||||||
- `comfy_workflow.json` — ComfyUI workflow template with placeholder strings.
|
app.py # ~186 lines: Flask init, config, logging, route registration, startup/migrations
|
||||||
|
models.py # SQLAlchemy models only
|
||||||
|
comfy_workflow.json # ComfyUI workflow template with placeholder strings
|
||||||
|
utils.py # Pure constants + helpers (no Flask/DB deps)
|
||||||
|
services/
|
||||||
|
__init__.py
|
||||||
|
comfyui.py # ComfyUI HTTP client (queue_prompt, get_history, get_image)
|
||||||
|
workflow.py # Workflow building (_prepare_workflow, _apply_checkpoint_settings)
|
||||||
|
prompts.py # Prompt building + dedup (build_prompt, build_extras_prompt)
|
||||||
|
llm.py # LLM integration + MCP tool calls (call_llm, load_prompt)
|
||||||
|
mcp.py # MCP/Docker server lifecycle (ensure_mcp_server_running)
|
||||||
|
sync.py # All sync_*() functions + preset resolution helpers
|
||||||
|
job_queue.py # Background job queue (_enqueue_job, _make_finalize, worker thread)
|
||||||
|
file_io.py # LoRA/checkpoint scanning, file helpers
|
||||||
|
routes/
|
||||||
|
__init__.py # register_routes(app) — imports and calls all route modules
|
||||||
|
characters.py # Character CRUD + generation + outfit management
|
||||||
|
outfits.py # Outfit routes
|
||||||
|
actions.py # Action routes
|
||||||
|
styles.py # Style routes
|
||||||
|
scenes.py # Scene routes
|
||||||
|
detailers.py # Detailer routes
|
||||||
|
checkpoints.py # Checkpoint routes
|
||||||
|
looks.py # Look routes
|
||||||
|
presets.py # Preset routes
|
||||||
|
generator.py # Generator mix-and-match page
|
||||||
|
gallery.py # Gallery browsing + image/resource deletion
|
||||||
|
settings.py # Settings page + status APIs + context processors
|
||||||
|
strengths.py # Strengths gallery system
|
||||||
|
transfer.py # Resource transfer system
|
||||||
|
queue_api.py # /api/queue/* endpoints
|
||||||
|
```
|
||||||
|
|
||||||
|
### Dependency Graph
|
||||||
|
|
||||||
|
```
|
||||||
|
app.py
|
||||||
|
├── models.py (unchanged)
|
||||||
|
├── utils.py (no deps except stdlib)
|
||||||
|
├── services/
|
||||||
|
│ ├── comfyui.py ← utils (for config)
|
||||||
|
│ ├── prompts.py ← utils, models
|
||||||
|
│ ├── workflow.py ← prompts, utils, models
|
||||||
|
│ ├── llm.py ← mcp (for tool calls)
|
||||||
|
│ ├── mcp.py ← (stdlib only: subprocess, os)
|
||||||
|
│ ├── sync.py ← models, utils
|
||||||
|
│ ├── job_queue.py ← comfyui, models
|
||||||
|
│ └── file_io.py ← models, utils
|
||||||
|
└── routes/
|
||||||
|
├── All route modules ← services/*, utils, models
|
||||||
|
└── (routes never import from other routes)
|
||||||
|
```
|
||||||
|
|
||||||
|
**No circular imports**: routes → services → utils/models. Services never import routes. Utils never imports services.
|
||||||
|
|
||||||
|
### Route Registration Pattern
|
||||||
|
|
||||||
|
Routes use a `register_routes(app)` closure pattern — each route module defines a function that receives the Flask `app` object and registers routes via `@app.route()` closures. This preserves all existing `url_for()` endpoint names without requiring Blueprint prefixes. Helper functions used only by routes in that module are defined inside `register_routes()` before the routes that reference them.
|
||||||
|
|
||||||
### Database
|
### Database
|
||||||
SQLite at `instance/database.db`, managed by Flask-SQLAlchemy. The DB is a cache of the JSON files on disk — the JSON files are the source of truth.
|
SQLite at `instance/database.db`, managed by Flask-SQLAlchemy. The DB is a cache of the JSON files on disk — the JSON files are the source of truth.
|
||||||
@@ -65,76 +122,79 @@ LoRA nodes chain: `4 → 16 → 17 → 18 → 19`. Unused LoRA nodes are bypasse
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Key Helpers
|
## Key Functions by Module
|
||||||
|
|
||||||
### `build_prompt(data, selected_fields, default_fields, active_outfit)`
|
### `utils.py` — Constants and Pure Helpers
|
||||||
Converts a character (or combined) data dict into `{"main", "face", "hand"}` prompt strings.
|
|
||||||
|
|
||||||
Field selection priority:
|
- **`_IDENTITY_KEYS` / `_WARDROBE_KEYS`** — Lists of canonical field names for the `identity` and `wardrobe` sections. Used by `_ensure_character_fields()`.
|
||||||
1. `selected_fields` (from form submission) — if non-empty, use it exclusively
|
- **`ALLOWED_EXTENSIONS`** — Permitted upload file extensions.
|
||||||
2. `default_fields` (saved in DB per character) — used if no form selection
|
- **`_LORA_DEFAULTS`** — Default LoRA directory paths per category.
|
||||||
3. Select all (fallback)
|
- **`parse_orientation(orientation_str)`** — Converts orientation codes (`1F`, `2F`, `1M1F`, etc.) into Danbooru tags.
|
||||||
|
- **`_resolve_lora_weight(lora_data)`** — Extracts and validates LoRA weight from a lora data dict.
|
||||||
|
- **`allowed_file(filename)`** — Checks file extension against `ALLOWED_EXTENSIONS`.
|
||||||
|
|
||||||
Fields are addressed as `"section::key"` strings (e.g. `"identity::hair"`, `"wardrobe::top"`, `"special::name"`, `"lora::lora_triggers"`).
|
### `services/prompts.py` — Prompt Building
|
||||||
|
|
||||||
Wardrobe format: Characters support a **nested** format where `wardrobe` is a dict of outfit names → outfit dicts (e.g. `{"default": {...}, "swimsuit": {...}}`). Legacy characters have a flat `wardrobe` dict. `Character.get_active_wardrobe()` handles both.
|
- **`build_prompt(data, selected_fields, default_fields, active_outfit)`** — Converts a character (or combined) data dict into `{"main", "face", "hand"}` prompt strings. Field selection priority: `selected_fields` → `default_fields` → select all (fallback). Fields are addressed as `"section::key"` strings (e.g. `"identity::hair"`, `"wardrobe::top"`). Characters support a **nested** wardrobe format where `wardrobe` is a dict of outfit names → outfit dicts.
|
||||||
|
- **`build_extras_prompt(actions, outfits, scenes, styles, detailers)`** — Used by the Generator page. Combines prompt text from all checked items across categories into a single string.
|
||||||
|
- **`_cross_dedup_prompts(positive, negative)`** — Cross-deduplicates tags between positive and negative prompt strings. Equal counts cancel completely; excess on one side is retained.
|
||||||
|
- **`_resolve_character(character_slug)`** — Returns a `Character` ORM object for a given slug string. Handles `"__random__"` sentinel.
|
||||||
|
- **`_ensure_character_fields(character, selected_fields, ...)`** — Mutates `selected_fields` in place, appending populated identity/wardrobe keys. Called in every secondary-category generate route after `_resolve_character()`.
|
||||||
|
- **`_append_background(prompts, character=None)`** — Appends `"<primary_color> simple background"` tag to `prompts['main']`.
|
||||||
|
|
||||||
### `build_extras_prompt(actions, outfits, scenes, styles, detailers)`
|
### `services/workflow.py` — Workflow Wiring
|
||||||
Used by the Generator page. Combines prompt text from all checked items across categories into a single string. LoRA triggers, wardrobe fields, scene fields, style fields, detailer prompts — all concatenated.
|
|
||||||
|
|
||||||
### `_prepare_workflow(workflow, character, prompts, checkpoint, custom_negative, outfit, action, style, detailer, scene, width, height, checkpoint_data, look)`
|
- **`_prepare_workflow(workflow, character, prompts, ...)`** — Core workflow wiring function. Replaces prompt placeholders, chains LoRA nodes dynamically, randomises seeds, applies checkpoint settings, runs cross-dedup as the final step.
|
||||||
The core workflow wiring function. Mutates the loaded workflow dict in place and returns it. Key behaviours:
|
- **`_apply_checkpoint_settings(workflow, ckpt_data)`** — Applies checkpoint-specific sampler/prompt/VAE settings.
|
||||||
- Replaces `{{POSITIVE_PROMPT}}`, `{{FACE_PROMPT}}`, `{{HAND_PROMPT}}` in node inputs.
|
- **`_get_default_checkpoint()`** — Returns `(checkpoint_path, checkpoint_data)` from session, database Settings, or workflow file fallback.
|
||||||
- If `look` is provided, uses the Look's LoRA in node 16 instead of the character's LoRA, and prepends the Look's negative to node 7.
|
- **`_log_workflow_prompts(label, workflow)`** — Logs the fully assembled workflow prompts in a readable block.
|
||||||
- Chains LoRA nodes dynamically — only active LoRAs participate in the chain.
|
|
||||||
- Randomises seeds for nodes 3, 11, 13.
|
|
||||||
- Applies checkpoint-specific settings (steps, cfg, sampler, VAE, base prompts) via `_apply_checkpoint_settings`.
|
|
||||||
- Runs `_cross_dedup_prompts` on nodes 6 and 7 as the final step before returning.
|
|
||||||
|
|
||||||
### `_cross_dedup_prompts(positive, negative)`
|
### `services/job_queue.py` — Background Job Queue
|
||||||
Cross-deduplicates tags between the positive and negative prompt strings. For each tag present in both, repeatedly removes the first occurrence from each side until the tag exists on only one side (or neither). Equal counts cancel completely; any excess on one side is retained. This allows deliberate overrides: adding a tag twice in positive while it appears once in negative leaves one copy in positive.
|
|
||||||
|
|
||||||
Called as the last step of `_prepare_workflow`, after `_apply_checkpoint_settings` has added `base_positive`/`base_negative`, so it operates on fully-assembled prompts.
|
- **`_enqueue_job(label, workflow, finalize_fn)`** — Adds a generation job to the queue.
|
||||||
|
- **`_make_finalize(category, slug, db_model_class=None, action=None)`** — Factory returning a callback that retrieves the generated image from ComfyUI, saves it, and optionally updates the DB cover image.
|
||||||
|
- **`_prune_job_history(max_age_seconds=3600)`** — Removes old terminal-state jobs from memory.
|
||||||
|
- **`init_queue_worker(flask_app)`** — Stores the app reference and starts the worker thread.
|
||||||
|
|
||||||
### `_IDENTITY_KEYS` / `_WARDROBE_KEYS` (module-level constants)
|
### `services/comfyui.py` — ComfyUI HTTP Client
|
||||||
Lists of canonical field names for the `identity` and `wardrobe` sections. Used by `_ensure_character_fields()` to avoid hard-coding key lists in every route.
|
|
||||||
|
|
||||||
### `_resolve_character(character_slug)`
|
- **`queue_prompt(prompt_workflow, client_id)`** — POSTs workflow to ComfyUI's `/prompt` endpoint.
|
||||||
Returns a `Character` ORM object for a given slug string. Handles the `"__random__"` sentinel by selecting a random character. Returns `None` if `character_slug` is falsy or no match is found. Every route that accepts an optional character dropdown (outfit, action, style, scene, detailer, checkpoint, look generate routes) uses this instead of an inline if/elif block.
|
- **`get_history(prompt_id)`** — Polls ComfyUI for job completion.
|
||||||
|
- **`get_image(filename, subfolder, folder_type)`** — Retrieves generated image bytes.
|
||||||
|
- **`_ensure_checkpoint_loaded(checkpoint_path)`** — Forces ComfyUI to load a specific checkpoint.
|
||||||
|
|
||||||
### `_ensure_character_fields(character, selected_fields, include_wardrobe=True, include_defaults=False)`
|
### `services/llm.py` — LLM Integration
|
||||||
Mutates `selected_fields` in place, appending any populated identity, wardrobe, and optional defaults keys that are not already present. Ensures `"special::name"` is always included. Called in every secondary-category generate route immediately after `_resolve_character()` to guarantee the character's essential fields are sent to `build_prompt`.
|
|
||||||
|
|
||||||
### `_append_background(prompts, character=None)`
|
- **`call_llm(prompt, system_prompt)`** — OpenAI-compatible chat completion supporting OpenRouter (cloud) and Ollama/LMStudio (local). Implements a tool-calling loop (up to 10 turns) using `DANBOORU_TOOLS` via MCP Docker container.
|
||||||
Appends a `"<primary_color> simple background"` tag (or plain `"simple background"` if no primary color) to `prompts['main']`. Called in outfit, action, style, detailer, and checkpoint generate routes instead of repeating the same inline string construction.
|
- **`load_prompt(filename)`** — Loads system prompt text from `data/prompts/`.
|
||||||
|
- **`call_mcp_tool()`** — Synchronous wrapper for MCP tool calls.
|
||||||
|
|
||||||
### `_make_finalize(category, slug, db_model_class=None, action=None)`
|
### `services/sync.py` — Data Synchronization
|
||||||
Factory function that returns a `_finalize(comfy_prompt_id, job)` callback closure. The closure:
|
|
||||||
1. Calls `get_history()` and `get_image()` to retrieve the generated image from ComfyUI.
|
|
||||||
2. Saves the image to `static/uploads/<category>/<slug>/gen_<timestamp>.png`.
|
|
||||||
3. Sets `job['result']` with `image_url` and `relative_path`.
|
|
||||||
4. If `db_model_class` is provided **and** (`action` is `None` or `action == 'replace'`), updates the ORM object's `image_path` and commits.
|
|
||||||
|
|
||||||
All `generate` routes pass a `_make_finalize(...)` call as the finalize argument to `_enqueue_job()` instead of defining an inline closure.
|
- **`sync_characters()`, `sync_outfits()`, `sync_actions()`, etc.** — Load JSON files from `data/` directories into SQLite. One function per category.
|
||||||
|
- **`_resolve_preset_entity(type, id)`** / **`_resolve_preset_fields(preset_data)`** — Preset resolution helpers.
|
||||||
|
|
||||||
### `_prune_job_history(max_age_seconds=3600)`
|
### `services/file_io.py` — File & DB Helpers
|
||||||
Removes entries from `_job_history` that are in a terminal state (`done`, `failed`, `removed`) and older than `max_age_seconds`. Called at the end of every worker loop iteration to prevent unbounded memory growth.
|
|
||||||
|
|
||||||
### `_queue_generation(character, action, selected_fields, client_id)`
|
- **`get_available_loras(category)`** — Scans filesystem for available LoRA files in a category.
|
||||||
Convenience wrapper for character detail page generation. Loads workflow, calls `build_prompt`, calls `_prepare_workflow`, calls `queue_prompt`.
|
- **`get_available_checkpoints()`** — Scans checkpoint directories.
|
||||||
|
- **`_count_look_assignments()`** / **`_count_outfit_lora_assignments()`** — DB aggregate queries.
|
||||||
|
|
||||||
### `_queue_detailer_generation(detailer_obj, character, selected_fields, client_id, action, extra_positive, extra_negative)`
|
### `services/mcp.py` — MCP/Docker Lifecycle
|
||||||
Generation helper for the detailer detail page. Merges the detailer's `prompt` list (flattened — `prompt` may be a list or string) and LoRA triggers into the character data before calling `build_prompt`. Appends `extra_positive` to `prompts["main"]` and passes `extra_negative` as `custom_negative` to `_prepare_workflow`. Accepts an optional `action` (Action model object) passed through to `_prepare_workflow` for node 18 LoRA wiring.
|
|
||||||
|
|
||||||
### `_get_default_checkpoint()`
|
- **`ensure_mcp_server_running()`** — Ensures the danbooru-mcp Docker container is running.
|
||||||
Returns `(checkpoint_path, checkpoint_data)` from the Flask session's `default_checkpoint` key. The global default checkpoint is set via the navbar dropdown and stored server-side in the filesystem session.
|
- **`ensure_character_mcp_server_running()`** — Ensures the character-mcp Docker container is running.
|
||||||
|
|
||||||
### `call_llm(prompt, system_prompt)`
|
### Route-local Helpers
|
||||||
OpenAI-compatible chat completion call supporting:
|
|
||||||
- **OpenRouter** (cloud, configured API key + model)
|
|
||||||
- **Ollama** / **LMStudio** (local, configured base URL + model)
|
|
||||||
|
|
||||||
Implements a tool-calling loop (up to 10 turns) using `DANBOORU_TOOLS` (search_tags, validate_tags, suggest_tags) via an MCP Docker container (`danbooru-mcp:latest`). If the provider rejects tools (HTTP 400), retries without tools.
|
Some helpers are defined inside a route module's `register_routes()` since they're only used by routes in that file:
|
||||||
|
- `routes/scenes.py`: `_queue_scene_generation()` — scene-specific workflow builder
|
||||||
|
- `routes/detailers.py`: `_queue_detailer_generation()` — detailer-specific generation helper
|
||||||
|
- `routes/styles.py`: `_build_style_workflow()` — style-specific workflow builder
|
||||||
|
- `routes/checkpoints.py`: `_build_checkpoint_workflow()` — checkpoint-specific workflow builder
|
||||||
|
- `routes/strengths.py`: `_build_strengths_prompts()`, `_prepare_strengths_workflow()` — strengths gallery helpers
|
||||||
|
- `routes/transfer.py`: `_create_minimal_template()` — transfer template builder
|
||||||
|
- `routes/gallery.py`: `_scan_gallery_images()`, `_enrich_with_names()`, `_parse_comfy_png_metadata()`
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -377,13 +437,14 @@ Absolute paths on disk:
|
|||||||
To add a new content category (e.g. "Poses" as a separate concept from Actions), the pattern is:
|
To add a new content category (e.g. "Poses" as a separate concept from Actions), the pattern is:
|
||||||
|
|
||||||
1. **Model** (`models.py`): Add a new SQLAlchemy model with the standard fields.
|
1. **Model** (`models.py`): Add a new SQLAlchemy model with the standard fields.
|
||||||
2. **Sync function** (`app.py`): Add `sync_newcategory()` following the pattern of `sync_outfits()`.
|
2. **Sync function** (`services/sync.py`): Add `sync_newcategory()` following the pattern of `sync_outfits()`.
|
||||||
3. **Data directory**: Add `app.config['NEWCATEGORY_DIR'] = 'data/newcategory'`.
|
3. **Data directory** (`app.py`): Add `app.config['NEWCATEGORY_DIR'] = 'data/newcategory'`.
|
||||||
4. **Routes**: Implement index, detail, edit, generate, finalize_generation, replace_cover_from_preview, upload, save_defaults, clone, rescan routes. Follow the outfit/scene pattern exactly.
|
4. **Routes** (`routes/newcategory.py`): Create a new route module with a `register_routes(app)` function. Implement index, detail, edit, generate, replace_cover_from_preview, upload, save_defaults, clone, rescan routes. Follow `routes/outfits.py` or `routes/scenes.py` exactly.
|
||||||
5. **Templates**: Create `templates/newcategory/{index,detail,edit,create}.html` extending `layout.html`.
|
5. **Route registration** (`routes/__init__.py`): Import and call `newcategory.register_routes(app)`.
|
||||||
6. **Nav**: Add link to navbar in `templates/layout.html`.
|
6. **Templates**: Create `templates/newcategory/{index,detail,edit,create}.html` extending `layout.html`.
|
||||||
7. **`with_appcontext`**: Call `sync_newcategory()` in the `with app.app_context()` block at the bottom of `app.py`.
|
7. **Nav**: Add link to navbar in `templates/layout.html`.
|
||||||
8. **Generator page**: Add to `generator()` route, `build_extras_prompt()`, and `templates/generator.html` accordion.
|
8. **Startup** (`app.py`): Import and call `sync_newcategory()` in the `with app.app_context()` block.
|
||||||
|
9. **Generator page**: Add to `routes/generator.py`, `services/prompts.py` `build_extras_prompt()`, and `templates/generator.html` accordion.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
@@ -1,51 +0,0 @@
|
|||||||
# Feature Development Guide: Gallery Pages & Character Integration
|
|
||||||
|
|
||||||
This guide outlines the architectural patterns and best practices developed during the implementation of the **Actions**, **Outfits**, and **Styles** galleries. Use this as a blueprint for adding similar features (e.g., "Scenes", "Props", "Effects").
|
|
||||||
|
|
||||||
## 1. Data Model & Persistence
|
|
||||||
- **Database Model:** Add a new class in `models.py`. Include `default_fields` (JSON) to support persistent prompt selections.
|
|
||||||
- **JSON Sync:** Implement a `sync_[feature]()` function in `app.py` to keep the SQLite database in sync with the `data/[feature]/*.json` files.
|
|
||||||
- **Slugs:** Use URL-safe slugs generated from the ID for clean routing.
|
|
||||||
|
|
||||||
## 2. Quadruple LoRA Chaining
|
|
||||||
Our workflow supports chaining up to four distinct LoRAs from specific directories:
|
|
||||||
1. **Character:** `Illustrious/Looks/` (Node 16)
|
|
||||||
2. **Outfit:** `Illustrious/Clothing/` (Node 17)
|
|
||||||
3. **Action:** `Illustrious/Poses/` (Node 18)
|
|
||||||
4. **Style:** `Illustrious/Styles/` (Node 19)
|
|
||||||
|
|
||||||
**Implementation Detail:**
|
|
||||||
In `_prepare_workflow`, LoRAs must be chained sequentially. If a previous LoRA is missing, the next one must "reach back" to the Checkpoint (Node 4) or the last valid node in the chain to maintain the model/CLIP connection. Node 19 is the terminal LoRA loader before terminal consumers (KSampler, Detailers).
|
|
||||||
|
|
||||||
## 3. Style Prompt Construction
|
|
||||||
Artistic styles follow specific formatting rules in the `build_prompt` engine:
|
|
||||||
- **Artist Attribution:** Artist names are prefixed with "by " (e.g., "by Sabu").
|
|
||||||
- **Artistic Styles:** Raw descriptive style tags (e.g., "watercolor painting") are appended to the prompt.
|
|
||||||
- **Priority:** Style tags are applied after identity and wardrobe tags but before trigger words.
|
|
||||||
|
|
||||||
## 4. Adetailer Routing
|
|
||||||
To improve generation quality, route specific JSON sub-fields to targeted Adetailers:
|
|
||||||
- **Face Detailer (Node 14):** Receives `character_name`, `expression`, and action-specific `head`/`eyes` tags.
|
|
||||||
- **Hand Detailer (Node 15):** Receives priority hand tags (Wardrobe Gloves > Wardrobe Hands > Identity Hands) and action-specific `arms`/`hands` tags.
|
|
||||||
|
|
||||||
## 5. Character-Integrated Previews
|
|
||||||
The "Killer Feature" is previewing a standalone item (like an Action, Outfit, or Style) on a specific character.
|
|
||||||
|
|
||||||
**Logic Flow:**
|
|
||||||
1. **Merge Data:** Copy `character.data`.
|
|
||||||
2. **Override/Merge:** Replace character `defaults` with feature-specific tags (e.g., Action pose overrides Character pose).
|
|
||||||
3. **Context Injection:** Append character-specific styles (e.g., `[primary_color] simple background`) to the main prompt.
|
|
||||||
4. **Auto-Selection:** When a character is selected, ensure their essential identity and active wardrobe fields are automatically included in the prompt.
|
|
||||||
|
|
||||||
## 6. UI/UX Patterns
|
|
||||||
- **Selection Boxes:** Use checkboxes next to field labels to allow users to toggle specific tags.
|
|
||||||
- **Default Selection:** Implement a "Save as Default Selection" button that persists the current checkbox state to the database.
|
|
||||||
- **Session State:** Store the last selected character and field preferences in the Flask `session` to provide a seamless experience.
|
|
||||||
- **AJAX Generation:** Use the WebSocket + Polling hybrid pattern in the frontend to show real-time progress bars without page reloads.
|
|
||||||
|
|
||||||
## 7. Directory Isolation
|
|
||||||
Always isolate LoRAs by purpose to prevent dropdown clutter:
|
|
||||||
- `get_available_loras()` -> Characters
|
|
||||||
- `get_available_clothing_loras()` -> Outfits
|
|
||||||
- `get_available_action_loras()` -> Actions/Poses
|
|
||||||
- `get_available_style_loras()` -> Styles
|
|
||||||
@@ -1,208 +0,0 @@
|
|||||||
# danbooru-mcp
|
|
||||||
|
|
||||||
An MCP (Model Context Protocol) server that lets an LLM search, validate, and get suggestions for valid **Danbooru tags** — the prompt vocabulary used by Illustrious and other Danbooru-trained Stable Diffusion models.
|
|
||||||
|
|
||||||
Tags are scraped directly from the **Danbooru public API** and stored in a local SQLite database with an **FTS5 full-text search index** for fast prefix/substring queries. Each tag includes its post count, category, and deprecation status so the LLM can prioritise well-used, canonical tags.
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Tools
|
|
||||||
|
|
||||||
| Tool | Description |
|
|
||||||
|------|-------------|
|
|
||||||
| `search_tags(query, limit=20, category=None)` | Prefix/full-text search — returns rich tag objects ordered by relevance |
|
|
||||||
| `validate_tags(tags)` | Exact-match validation — splits into `valid`, `deprecated`, `invalid` |
|
|
||||||
| `suggest_tags(partial, limit=10, category=None)` | Autocomplete for partial tag strings, sorted by post count |
|
|
||||||
|
|
||||||
### Return object shape
|
|
||||||
|
|
||||||
All tools return tag objects with:
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"name": "blue_hair",
|
|
||||||
"post_count": 1079908,
|
|
||||||
"category": "general",
|
|
||||||
"is_deprecated": false
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Category filter values
|
|
||||||
|
|
||||||
`"general"` · `"artist"` · `"copyright"` · `"character"` · `"meta"`
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Setup
|
|
||||||
|
|
||||||
### 1. Install dependencies
|
|
||||||
|
|
||||||
```bash
|
|
||||||
pip install -e .
|
|
||||||
```
|
|
||||||
|
|
||||||
### 2. Build the SQLite database (scrapes the Danbooru API)
|
|
||||||
|
|
||||||
```bash
|
|
||||||
python scripts/scrape_tags.py
|
|
||||||
```
|
|
||||||
|
|
||||||
This scrapes ~1–2 million tags from the Danbooru public API (no account required)
|
|
||||||
and stores them in `db/tags.db` with a FTS5 index.
|
|
||||||
Estimated time: **5–15 minutes** depending on network speed.
|
|
||||||
|
|
||||||
```
|
|
||||||
Options:
|
|
||||||
--db PATH Output database path (default: db/tags.db)
|
|
||||||
--workers N Parallel HTTP workers (default: 4)
|
|
||||||
--max-page N Safety cap on pages (default: 2500)
|
|
||||||
--no-resume Re-scrape all pages from scratch
|
|
||||||
--no-fts Skip FTS5 rebuild (for incremental runs)
|
|
||||||
```
|
|
||||||
|
|
||||||
The scraper is **resumable** — if interrupted, re-run it and it will
|
|
||||||
continue from where it left off.
|
|
||||||
|
|
||||||
### 3. (Optional) Test API access first
|
|
||||||
|
|
||||||
```bash
|
|
||||||
python scripts/test_danbooru_api.py
|
|
||||||
```
|
|
||||||
|
|
||||||
### 4. Run the MCP server
|
|
||||||
|
|
||||||
```bash
|
|
||||||
python src/server.py
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Docker
|
|
||||||
|
|
||||||
### Quick start (pre-built DB — recommended)
|
|
||||||
|
|
||||||
Use this when you've already run `python scripts/scrape_tags.py` and have `db/tags.db`:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Build image with the pre-built DB baked in (~30 seconds)
|
|
||||||
docker build -f Dockerfile.prebuilt -t danbooru-mcp .
|
|
||||||
|
|
||||||
# Verify
|
|
||||||
docker run --rm --entrypoint python danbooru-mcp \
|
|
||||||
-c "import sqlite3,sys; c=sqlite3.connect('/app/db/tags.db'); sys.stderr.write(str(c.execute('SELECT COUNT(*) FROM tags').fetchone()[0]) + ' tags\n')"
|
|
||||||
```
|
|
||||||
|
|
||||||
### Build from scratch (runs the scraper during Docker build)
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# Scrapes the Danbooru API during build — takes ~15 minutes
|
|
||||||
docker build \
|
|
||||||
--build-arg DANBOORU_USER=your_username \
|
|
||||||
--build-arg DANBOORU_API_KEY=your_api_key \
|
|
||||||
-t danbooru-mcp .
|
|
||||||
```
|
|
||||||
|
|
||||||
### MCP client config (Docker)
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"mcpServers": {
|
|
||||||
"danbooru-tags": {
|
|
||||||
"command": "docker",
|
|
||||||
"args": ["run", "--rm", "-i", "danbooru-mcp:latest"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## MCP Client Configuration
|
|
||||||
|
|
||||||
### Claude Desktop (`claude_desktop_config.json`)
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"mcpServers": {
|
|
||||||
"danbooru-tags": {
|
|
||||||
"command": "python",
|
|
||||||
"args": ["/absolute/path/to/danbooru-mcp/src/server.py"]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
### Custom DB path via environment variable
|
|
||||||
|
|
||||||
```json
|
|
||||||
{
|
|
||||||
"mcpServers": {
|
|
||||||
"danbooru-tags": {
|
|
||||||
"command": "python",
|
|
||||||
"args": ["/path/to/src/server.py"],
|
|
||||||
"env": {
|
|
||||||
"DANBOORU_TAGS_DB": "/custom/path/to/tags.db"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Example LLM Prompt Workflow
|
|
||||||
|
|
||||||
```
|
|
||||||
User: Generate a prompt for a girl with blue hair and a sword.
|
|
||||||
|
|
||||||
LLM calls validate_tags(["1girl", "blue_hairs", "sword", "looking_at_vewer"])
|
|
||||||
→ {
|
|
||||||
"valid": ["1girl", "sword"],
|
|
||||||
"deprecated": [],
|
|
||||||
"invalid": ["blue_hairs", "looking_at_vewer"]
|
|
||||||
}
|
|
||||||
|
|
||||||
LLM calls suggest_tags("blue_hair", limit=3)
|
|
||||||
→ [
|
|
||||||
{"name": "blue_hair", "post_count": 1079908, "category": "general"},
|
|
||||||
{"name": "blue_hairband", "post_count": 26905, "category": "general"},
|
|
||||||
...
|
|
||||||
]
|
|
||||||
|
|
||||||
LLM calls suggest_tags("looking_at_viewer", limit=1)
|
|
||||||
→ [{"name": "looking_at_viewer", "post_count": 4567890, "category": "general"}]
|
|
||||||
|
|
||||||
Final validated prompt: 1girl, blue_hair, sword, looking_at_viewer
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Project Structure
|
|
||||||
|
|
||||||
```
|
|
||||||
danbooru-mcp/
|
|
||||||
├── data/
|
|
||||||
│ └── all_tags.csv # original CSV export (legacy, replaced by API scrape)
|
|
||||||
├── db/
|
|
||||||
│ └── tags.db # SQLite DB (generated, gitignored)
|
|
||||||
├── plans/
|
|
||||||
│ └── danbooru-mcp-plan.md # Architecture plan
|
|
||||||
├── scripts/
|
|
||||||
│ ├── scrape_tags.py # API scraper → SQLite (primary)
|
|
||||||
│ ├── import_tags.py # Legacy CSV importer
|
|
||||||
│ └── test_danbooru_api.py # API connectivity tests
|
|
||||||
├── src/
|
|
||||||
│ └── server.py # MCP server
|
|
||||||
├── pyproject.toml
|
|
||||||
├── .gitignore
|
|
||||||
└── README.md
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
## Requirements
|
|
||||||
|
|
||||||
- Python 3.10+
|
|
||||||
- `mcp[cli]` — official Python MCP SDK
|
|
||||||
- `requests` — HTTP client for API scraping
|
|
||||||
- `sqlite3` — Python stdlib (no install needed)
|
|
||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "3p_sex_000037",
|
"action_id": "3p_sex_000037",
|
||||||
"action_name": "3P Sex 000037",
|
"action_name": "3P Sex 000037",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "threesome",
|
"base": "threesome",
|
||||||
"head": "blush",
|
"head": "blush, half-closed_eyes",
|
||||||
"eyes": "half-closed_eyes",
|
"upper_body": "reaching, nude",
|
||||||
"arms": "reaching",
|
"lower_body": "sex, spread_legs",
|
||||||
"hands": "groping",
|
"hands": "groping",
|
||||||
"torso": "nude",
|
|
||||||
"pelvis": "sex",
|
|
||||||
"legs": "spread_legs",
|
|
||||||
"feet": "toes_curled",
|
"feet": "toes_curled",
|
||||||
"additional": "sweat"
|
"additional": "sweat"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "4p_sex",
|
"action_id": "4p_sex",
|
||||||
"action_name": "4P Sex",
|
"action_name": "4P Sex",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "Choreographed foursome group sex scene involving four participants (e.g., 1 girl and 3 boys or 3 girls and 1 boy) engaged in simultaneous sexual acts like double penetration or cooperative fellatio.",
|
"base": "Choreographed foursome group sex scene involving four participants (e.g., 1 girl and 3 boys or 3 girls and 1 boy) engaged in simultaneous sexual acts like double penetration or cooperative fellatio.",
|
||||||
"head": "Moaning expression, open mouth, potentially heavily breathing or performing fellatio.",
|
"head": "Moaning expression, open mouth, potentially heavily breathing or performing fellatio., Heart-shaped pupils, ahegao, or rolling back in pleasure.",
|
||||||
"eyes": "Heart-shaped pupils, ahegao, or rolling back in pleasure.",
|
"upper_body": "Bracing on the surface (all fours), holding onto partners, or grabbing sheets., Nude, arching back, breasts exposed and pressed or being touched.",
|
||||||
"arms": "Bracing on the surface (all fours), holding onto partners, or grabbing sheets.",
|
"lower_body": "Engaged in intercourse, involving vaginal or anal penetration, potentially double penetration., Spread wide, positioned in all fours, missionary, or reverse cowgirl depending on specific interaction.",
|
||||||
"hands": "Grabbing breasts, holding legs, fingering, or resting on knees/shoulders.",
|
"hands": "Grabbing breasts, holding legs, fingering, or resting on knees/shoulders.",
|
||||||
"torso": "Nude, arching back, breasts exposed and pressed or being touched.",
|
|
||||||
"pelvis": "Engaged in intercourse, involving vaginal or anal penetration, potentially double penetration.",
|
|
||||||
"legs": "Spread wide, positioned in all fours, missionary, or reverse cowgirl depending on specific interaction.",
|
|
||||||
"feet": "Toes curled, dynamic positioning based on stance (kneeling or lying).",
|
"feet": "Toes curled, dynamic positioning based on stance (kneeling or lying).",
|
||||||
"additional": "Sexual fluids, messy after-sex atmosphere, sweat, steaming body."
|
"additional": "Sexual fluids, messy after-sex atmosphere, sweat, steaming body."
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
{
|
{
|
||||||
"action_id": "_malebolgia__oral_sex_tounge_afterimage_concept_2_0_illustrious",
|
"action_id": "_malebolgia__oral_sex_tounge_afterimage_concept_2_0_illustrious",
|
||||||
"action_name": " Malebolgia Oral Sex Tounge Afterimage Concept 2 0 Illustrious",
|
"action_name": "Malebolgia Oral Sex Tounge Afterimage Concept 2 0 Illustrious",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "kneeling, leaning forward, engaged in oral activity",
|
"base": "kneeling, leaning forward, engaged in oral activity",
|
||||||
"head": "facing target, mouth wide open, intense expression",
|
"head": "facing target, mouth wide open, intense expression, looking up, half-closed",
|
||||||
"eyes": "looking up, half-closed",
|
"upper_body": "reaching forward, angled towards partner",
|
||||||
"arms": "reaching forward",
|
"lower_body": "stationary, kneeling on the floor",
|
||||||
"hands": "grasping partner's thighs or hips",
|
"hands": "grasping partner's thighs or hips",
|
||||||
"torso": "angled towards partner",
|
|
||||||
"pelvis": "stationary",
|
|
||||||
"legs": "kneeling on the floor",
|
|
||||||
"feet": "tucked behind",
|
"feet": "tucked behind",
|
||||||
"additional": "afterimage, motion blur, multiple tongues, rapid tongue movement, speed lines, saliva trails"
|
"additional": "afterimage, motion blur, multiple tongues, rapid tongue movement, speed lines, saliva trails"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "actually_reliable_penis_kissing_3_variants_illustrious",
|
"action_id": "actually_reliable_penis_kissing_3_variants_illustrious",
|
||||||
"action_name": "Actually Reliable Penis Kissing 3 Variants Illustrious",
|
"action_name": "Actually Reliable Penis Kissing 3 Variants Illustrious",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "kneeling in front of standing or sitting partner, leaning forward towards crotch",
|
"base": "kneeling in front of standing or sitting partner, leaning forward towards crotch",
|
||||||
"head": "face aligned with groin, lips pressing against glans or shaft, tongue slightly out, kissing connection",
|
"head": "face aligned with groin, lips pressing against glans or shaft, tongue slightly out, kissing connection, looking up at partner or closed in enjoyment, half-closed",
|
||||||
"eyes": "looking up at partner or closed in enjoyment, half-closed",
|
"upper_body": "reaching forward or resting on partner's legs, leaning forward, arched back",
|
||||||
"arms": "reaching forward or resting on partner's legs",
|
"lower_body": "kneeling pose, hips pushed back, kneeling on the ground",
|
||||||
"hands": "gently holding the shaft, cupping testicles, or resting on partner's thighs",
|
"hands": "gently holding the shaft, cupping testicles, or resting on partner's thighs",
|
||||||
"torso": "leaning forward, arched back",
|
|
||||||
"pelvis": "kneeling pose, hips pushed back",
|
|
||||||
"legs": "kneeling on the ground",
|
|
||||||
"feet": "toes curled or flat",
|
"feet": "toes curled or flat",
|
||||||
"additional": "saliva connection, affectionate oral interaction, unsucked penis"
|
"additional": "saliva connection, affectionate oral interaction, unsucked penis"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "after_sex_fellatio_illustriousxl_lora_nochekaiser_r1",
|
"action_id": "after_sex_fellatio_illustriousxl_lora_nochekaiser_r1",
|
||||||
"action_name": "After Sex Fellatio Illustriousxl Lora Nochekaiser R1",
|
"action_name": "After Sex Fellatio Illustriousxl Lora Nochekaiser R1",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "completely_nude, lying, on_back, m_legs, spread_legs",
|
"base": "completely_nude, lying, on_back, m_legs, spread_legs",
|
||||||
"head": "looking_at_viewer, tongue, open_mouth, blush, messing_hair",
|
"head": "looking_at_viewer, tongue, open_mouth, blush, messing_hair, half-closed_eyes, blue_eyes",
|
||||||
"eyes": "half-closed_eyes, blue_eyes",
|
"upper_body": "arms_at_sides, on_bed, large_breasts, nipples, sweat",
|
||||||
"arms": "arms_at_sides, on_bed",
|
"lower_body": "pussy, cum_in_pussy, leaking_cum, m_legs, spread_legs, legs_up",
|
||||||
"hands": "on_bed, pressing_bed",
|
"hands": "on_bed, pressing_bed",
|
||||||
"torso": "large_breasts, nipples, sweat",
|
|
||||||
"pelvis": "pussy, cum_in_pussy, leaking_cum",
|
|
||||||
"legs": "m_legs, spread_legs, legs_up",
|
|
||||||
"feet": "barefoot, toes",
|
"feet": "barefoot, toes",
|
||||||
"additional": "after_sex, after_vaginal, fellatio, penis, cum, cumdrip, messy_body, bed_sheet"
|
"additional": "after_sex, after_vaginal, fellatio, penis, cum, cumdrip, messy_body, bed_sheet"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "afterfellatio_ill",
|
"action_id": "afterfellatio_ill",
|
||||||
"action_name": "Afterfellatio Ill",
|
"action_name": "Afterfellatio Ill",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "kneeling, leaning_forward, pov",
|
"base": "kneeling, leaning_forward, pov",
|
||||||
"head": "looking_at_viewer, blush, tilted_head, cum_on_face",
|
"head": "looking_at_viewer, blush, tilted_head, cum_on_face, half-closed_eyes, tears",
|
||||||
"eyes": "half-closed_eyes, tears",
|
"upper_body": "arms_down, reaching_towards_viewer, leaning_forward",
|
||||||
"arms": "arms_down, reaching_towards_viewer",
|
"lower_body": "kneeling, kneeling",
|
||||||
"hands": "handjob, touching_penis",
|
"hands": "handjob, touching_penis",
|
||||||
"torso": "leaning_forward",
|
|
||||||
"pelvis": "kneeling",
|
|
||||||
"legs": "kneeling",
|
|
||||||
"feet": "barefoot",
|
"feet": "barefoot",
|
||||||
"additional": "cum_string, cum_in_mouth, closed_mouth"
|
"additional": "cum_string, cum_in_mouth, closed_mouth"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "afteroral",
|
"action_id": "afteroral",
|
||||||
"action_name": "Afteroral",
|
"action_name": "Afteroral",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "Character depicted immediately after performing oral sex, often focusing on the upper body and face.",
|
"base": "Character depicted immediately after performing oral sex, often focusing on the upper body and face.",
|
||||||
"head": "Messy hair, flushed cheeks, mouth slightly open or panting.",
|
"head": "Messy hair, flushed cheeks, mouth slightly open or panting., Half-closed or dazed expression, potentially with runny mascara or makeup.",
|
||||||
"eyes": "Half-closed or dazed expression, potentially with runny mascara or makeup.",
|
"upper_body": "Relaxed or wiping mouth., Heaving chest indicative of heavy breathing.",
|
||||||
"arms": "Relaxed or wiping mouth.",
|
"lower_body": "N/A (typically upper body focus), N/A",
|
||||||
"hands": "Resting or near face.",
|
"hands": "Resting or near face.",
|
||||||
"torso": "Heaving chest indicative of heavy breathing.",
|
|
||||||
"pelvis": "N/A (typically upper body focus)",
|
|
||||||
"legs": "N/A",
|
|
||||||
"feet": "N/A",
|
"feet": "N/A",
|
||||||
"additional": "Presence of bodily fluids like saliva trails or excessive cum on face and messy makeup."
|
"additional": "Presence of bodily fluids like saliva trails or excessive cum on face and messy makeup."
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "afterpaizuri",
|
"action_id": "afterpaizuri",
|
||||||
"action_name": "Afterpaizuri",
|
"action_name": "Afterpaizuri",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "kneeling or sitting, displaying upper body aftermath, exhausted posture",
|
"base": "kneeling or sitting, displaying upper body aftermath, exhausted posture",
|
||||||
"head": "flushed face, messy hair, panting, mouth slightly open, tongue out",
|
"head": "flushed face, messy hair, panting, mouth slightly open, tongue out, half-closed eyes, dazed expression, looking at viewer",
|
||||||
"eyes": "half-closed eyes, dazed expression, looking at viewer",
|
"upper_body": "resting on thighs or gesturing towards chest, exposed cleavage, chest covered in white liquid, disheveled clothes",
|
||||||
"arms": "resting on thighs or gesturing towards chest",
|
"lower_body": "hips settling back, kneeling posture, kneeling, thighs together or slightly spread",
|
||||||
"hands": "presenting breasts or cleaning face",
|
"hands": "presenting breasts or cleaning face",
|
||||||
"torso": "exposed cleavage, chest covered in white liquid, disheveled clothes",
|
|
||||||
"pelvis": "hips settling back, kneeling posture",
|
|
||||||
"legs": "kneeling, thighs together or slightly spread",
|
|
||||||
"feet": "tucked under buttocks or relaxed",
|
"feet": "tucked under buttocks or relaxed",
|
||||||
"additional": "semen on breasts, semen on face, heavy breathing, sweat, sticky fluids"
|
"additional": "semen on breasts, semen on face, heavy breathing, sweat, sticky fluids"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "aftersexbreakv2",
|
"action_id": "aftersexbreakv2",
|
||||||
"action_name": "Aftersexbreakv2",
|
"action_name": "Aftersexbreakv2",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "lying, on_back, on_bed, bowlegged_pose, spread_legs, twisted_torso",
|
"base": "lying, on_back, on_bed, bowlegged_pose, spread_legs, twisted_torso",
|
||||||
"head": "messy_hair, head_back, sweaty_face",
|
"head": "messy_hair, head_back, sweaty_face, rolling_eyes, half-closed_eyes, ahegao",
|
||||||
"eyes": "rolling_eyes, half-closed_eyes, ahegao",
|
"upper_body": "arms_spread, arms_above_head, sweat, nipples, collarbone, heavy_breathing",
|
||||||
"arms": "arms_spread, arms_above_head",
|
"lower_body": "hips, navel, female_pubic_hair, spread_legs, legs_up, bent_legs",
|
||||||
"hands": "relaxed_hands",
|
"hands": "relaxed_hands",
|
||||||
"torso": "sweat, nipples, collarbone, heavy_breathing",
|
|
||||||
"pelvis": "hips, navel, female_pubic_hair",
|
|
||||||
"legs": "spread_legs, legs_up, bent_legs",
|
|
||||||
"feet": "barefoot",
|
"feet": "barefoot",
|
||||||
"additional": "condom_wrapper, used_tissue, stained_sheets, cum_pool, bead_of_sweat"
|
"additional": "condom_wrapper, used_tissue, stained_sheets, cum_pool, bead_of_sweat"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "against_glass_bs",
|
"action_id": "against_glass_bs",
|
||||||
"action_name": "Against Glass Bs",
|
"action_name": "Against Glass Bs",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "leaning forward, body pressed directly against the viewing plane/glass surface",
|
"base": "leaning forward, body pressed directly against the viewing plane/glass surface",
|
||||||
"head": "face close to camera, breath fog on glass, cheek slightly pressed",
|
"head": "face close to camera, breath fog on glass, cheek slightly pressed, looking directly at viewer, intimate gaze",
|
||||||
"eyes": "looking directly at viewer, intimate gaze",
|
"upper_body": "reaching forward towards the viewer, chest squished against glass, leaning into the surface",
|
||||||
"arms": "reaching forward towards the viewer",
|
"lower_body": "hips pushed forward or slightly angled back depending on angle, standing straight or knees slightly bent for leverage",
|
||||||
"hands": "palms pressed flat against glass, fingers spread, palm prints",
|
"hands": "palms pressed flat against glass, fingers spread, palm prints",
|
||||||
"torso": "chest squished against glass, leaning into the surface",
|
|
||||||
"pelvis": "hips pushed forward or slightly angled back depending on angle",
|
|
||||||
"legs": "standing straight or knees slightly bent for leverage",
|
|
||||||
"feet": "planted firmly on the ground",
|
"feet": "planted firmly on the ground",
|
||||||
"additional": "transparent surface, condensation, distortion from glass, surface interaction"
|
"additional": "transparent surface, condensation, distortion from glass, surface interaction"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,34 +0,0 @@
|
|||||||
{
|
|
||||||
"action_id": "agressivechoking_000010",
|
|
||||||
"action_name": "Agressivechoking 000010",
|
|
||||||
"action": {
|
|
||||||
"full_body": "dynamic perspective, leaning forward, dominant violent stance, POV",
|
|
||||||
"head": "face close to camera, angry expression, gritting teeth or shouting, heavy breathing",
|
|
||||||
"eyes": "intense stare, dilated pupils, furious gaze, sanpaku",
|
|
||||||
"arms": "extended towards viewer or subject, muscles tensed, shoulders shrugged forward",
|
|
||||||
"hands": "fingers curled tightly, hand around neck, strangling motion, squeezing",
|
|
||||||
"torso": "hunched forward, tense upper body",
|
|
||||||
"pelvis": "weight shifted forward",
|
|
||||||
"legs": "wide stance for leverage, braced",
|
|
||||||
"feet": "planted firmly",
|
|
||||||
"additional": "sweat, speed lines, depth of field, high contrast lighting, shadow over eyes"
|
|
||||||
},
|
|
||||||
"participants": {
|
|
||||||
"solo_focus": "true",
|
|
||||||
"orientation": "MF"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "Illustrious/Poses/AgressiveChoking-000010.safetensors",
|
|
||||||
"lora_weight": 1.0,
|
|
||||||
"lora_triggers": "AgressiveChoking-000010",
|
|
||||||
"lora_weight_min": 1.0,
|
|
||||||
"lora_weight_max": 1.0
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"violence",
|
|
||||||
"dominance",
|
|
||||||
"pov",
|
|
||||||
"combat",
|
|
||||||
"anger"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
{
|
|
||||||
"action_id": "ahegao_xl_v3_1278075",
|
|
||||||
"action_name": "Ahegao Xl V3 1278075",
|
|
||||||
"action": {
|
|
||||||
"full_body": "portrait or upper body focus, emphasizing facial distortion",
|
|
||||||
"head": "tilted back slightly, mouth wide open, tongue hanging out, face heavily flushed",
|
|
||||||
"eyes": "rolled back upwards, cross-eyed, look of exhaustion or ecstasy",
|
|
||||||
"arms": "raised up near the head",
|
|
||||||
"hands": "making double peace signs (v-sign) framing the face",
|
|
||||||
"torso": "facing forward",
|
|
||||||
"pelvis": "neutral",
|
|
||||||
"legs": "neutral",
|
|
||||||
"feet": "not visible",
|
|
||||||
"additional": "saliva trail, drooling, sweat, heavy blush stickers, heart-shaped pupils"
|
|
||||||
},
|
|
||||||
"participants": {
|
|
||||||
"solo_focus": "true",
|
|
||||||
"orientation": "F"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "Illustrious/Poses/Ahegao_XL_v3_1278075.safetensors",
|
|
||||||
"lora_weight": 1.0,
|
|
||||||
"lora_triggers": "Ahegao_XL_v3_1278075",
|
|
||||||
"lora_weight_min": 1.0,
|
|
||||||
"lora_weight_max": 1.0
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"ahegao",
|
|
||||||
"rolling eyes",
|
|
||||||
"tongue out",
|
|
||||||
"open mouth",
|
|
||||||
"blush",
|
|
||||||
"drooling",
|
|
||||||
"saliva",
|
|
||||||
"cross-eyed",
|
|
||||||
"double peace sign",
|
|
||||||
"v-sign"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "amateur_pov_filming",
|
"action_id": "amateur_pov_filming",
|
||||||
"action_name": "Amateur Pov Filming",
|
"action_name": "Amateur Pov Filming",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "selfie pose, standing or sitting, facing viewer or mirror",
|
"base": "selfie pose, standing or sitting, facing viewer or mirror",
|
||||||
"head": "looking_at_viewer, blush, maybe open mouth or shy expression",
|
"head": "looking_at_viewer, blush, maybe open mouth or shy expression, looking_at_viewer, contact with camera",
|
||||||
"eyes": "looking_at_viewer, contact with camera",
|
"upper_body": "raised to hold phone or camera, upper body in frame, breasts, nipples",
|
||||||
"arms": "raised to hold phone or camera",
|
"lower_body": "hips visible if full body mirror selfie, standing or sitting",
|
||||||
"hands": "holding_phone, holding_id_card, or adjusting clothes",
|
"hands": "holding_phone, holding_id_card, or adjusting clothes",
|
||||||
"torso": "upper body in frame, breasts, nipples",
|
|
||||||
"pelvis": "hips visible if full body mirror selfie",
|
|
||||||
"legs": "standing or sitting",
|
|
||||||
"feet": "barefoot if visible",
|
"feet": "barefoot if visible",
|
||||||
"additional": "phone recording interface, smartphone, mirror, amateur aesthetic"
|
"additional": "phone recording interface, smartphone, mirror, amateur aesthetic"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "arch_back_sex_v1_1_illustriousxl",
|
"action_id": "arch_back_sex_v1_1_illustriousxl",
|
||||||
"action_name": "Arch Back Sex V1 1 Illustriousxl",
|
"action_name": "Arch Back Sex V1 1 Illustriousxl",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "doggystyle, sex_from_behind, all_fours",
|
"base": "doggystyle, sex_from_behind, all_fours",
|
||||||
"head": "head_back, looking_back",
|
"head": "head_back, looking_back, closed_eyes, blush",
|
||||||
"eyes": "closed_eyes, blush",
|
"upper_body": "arms_support, arched_back",
|
||||||
"arms": "arms_support",
|
"lower_body": "lifted_hip, kneeling, spread_legs",
|
||||||
"hands": "grabbing_another's_ass",
|
"hands": "grabbing_another's_ass",
|
||||||
"torso": "arched_back",
|
|
||||||
"pelvis": "lifted_hip",
|
|
||||||
"legs": "kneeling, spread_legs",
|
|
||||||
"feet": "toes",
|
"feet": "toes",
|
||||||
"additional": "kiss, sweat, saliva, intense_pleasure"
|
"additional": "kiss, sweat, saliva, intense_pleasure"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "arm_grab_missionary_ill_10",
|
"action_id": "arm_grab_missionary_ill_10",
|
||||||
"action_name": "Arm Grab Missionary Ill 10",
|
"action_name": "Arm Grab Missionary Ill 10",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "missionary, lying, on_back, sex, vaginal",
|
"base": "missionary, lying, on_back, sex, vaginal",
|
||||||
"head": "expressive face, open mouth, one_eye_closed, blushing",
|
"head": "expressive face, open mouth, one_eye_closed, blushing, looking_at_viewer (optional), dilated_pupils",
|
||||||
"eyes": "looking_at_viewer (optional), dilated_pupils",
|
"upper_body": "arms_up, pinned, restrained, grabbed_wrists, breasts, nipples, medium_breasts",
|
||||||
"arms": "arms_up, pinned, restrained, grabbed_wrists",
|
"lower_body": "legs_spread, lifted_pelvis, spread_legs, legs_up, knees_up, straddling (if applicable)",
|
||||||
"hands": "interlocked_fingers, holding_hands",
|
"hands": "interlocked_fingers, holding_hands",
|
||||||
"torso": "breasts, nipples, medium_breasts",
|
|
||||||
"pelvis": "legs_spread, lifted_pelvis",
|
|
||||||
"legs": "spread_legs, legs_up, knees_up, straddling (if applicable)",
|
|
||||||
"feet": "barefoot (implied)",
|
"feet": "barefoot (implied)",
|
||||||
"additional": "faceless_male, male_focus, motion_lines, sweat"
|
"additional": "faceless_male, male_focus, motion_lines, sweat"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "ballsdeep_il_v2_2_s",
|
"action_id": "ballsdeep_il_v2_2_s",
|
||||||
"action_name": "Ballsdeep Il V2 2 S",
|
"action_name": "Ballsdeep Il V2 2 S",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "sexual intercourse, variable position (prone, girl on top, or from behind)",
|
"base": "sexual intercourse, variable position (prone, girl on top, or from behind)",
|
||||||
"head": "expression of intensity or pleasure, often looking back or face down",
|
"head": "expression of intensity or pleasure, often looking back or face down, rolled back or squeezed shut",
|
||||||
"eyes": "rolled back or squeezed shut",
|
"upper_body": "grasping sheets or holding partner, arched or pressed against contrasting surface",
|
||||||
"arms": "grasping sheets or holding partner",
|
"lower_body": "hips pushed firmly against partner's hips, joined genitals, spread wide or wrapped around partner",
|
||||||
"hands": "clenched or grabbing",
|
"hands": "clenched or grabbing",
|
||||||
"torso": "arched or pressed against contrasting surface",
|
|
||||||
"pelvis": "hips pushed firmly against partner's hips, joined genitals",
|
|
||||||
"legs": "spread wide or wrapped around partner",
|
|
||||||
"feet": "toes curled",
|
"feet": "toes curled",
|
||||||
"additional": "deep penetration, testicles pressed flat against skin, stomach bulge visible"
|
"additional": "deep penetration, testicles pressed flat against skin, stomach bulge visible"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "bathingtogether",
|
"action_id": "bathingtogether",
|
||||||
"action_name": "Bathingtogether",
|
"action_name": "Bathingtogether",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "bathing, sitting, partially_submerged",
|
"base": "bathing, sitting, partially_submerged",
|
||||||
"head": "looking_at_viewer, facing_viewer",
|
"head": "looking_at_viewer, facing_viewer, eye_contact",
|
||||||
"eyes": "eye_contact",
|
"upper_body": "arms_resting, bare_shoulders",
|
||||||
"arms": "arms_resting",
|
"lower_body": "submerged, knees_up, submerged",
|
||||||
"hands": "resting",
|
"hands": "resting",
|
||||||
"torso": "bare_shoulders",
|
|
||||||
"pelvis": "submerged",
|
|
||||||
"legs": "knees_up, submerged",
|
|
||||||
"feet": "no_shoes",
|
"feet": "no_shoes",
|
||||||
"additional": "bathtub, steam, water, bubbles, wet"
|
"additional": "bathtub, steam, water, bubbles, wet"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,24 +1,21 @@
|
|||||||
{
|
{
|
||||||
|
"action": {
|
||||||
|
"base": "2koma, before and after, side-by-side",
|
||||||
|
"head": "sticky_face,facial, bukkake, cum_on_face, eyes_closed",
|
||||||
|
"upper_body": "",
|
||||||
|
"lower_body": "",
|
||||||
|
"hands": "",
|
||||||
|
"feet": "",
|
||||||
|
"additional": "cum, close-uo"
|
||||||
|
},
|
||||||
"action_id": "before_after_1230829",
|
"action_id": "before_after_1230829",
|
||||||
"action_name": "Before After 1230829",
|
"action_name": "Before After 1230829",
|
||||||
"action": {
|
|
||||||
"full_body": "2koma, before_and_after",
|
|
||||||
"head": "heavy_breathing, orgasm, sticky_face",
|
|
||||||
"eyes": "eyes_closed",
|
|
||||||
"arms": "variation",
|
|
||||||
"hands": "variation",
|
|
||||||
"torso": "upper_body",
|
|
||||||
"pelvis": "variation",
|
|
||||||
"legs": "variation",
|
|
||||||
"feet": "variation",
|
|
||||||
"additional": "facial, bukkake, cum, cum_on_face"
|
|
||||||
},
|
|
||||||
"lora": {
|
"lora": {
|
||||||
"lora_name": "Illustrious/Poses/before_after_1230829.safetensors",
|
"lora_name": "Illustrious/Poses/before_after_1230829.safetensors",
|
||||||
"lora_weight": 0.9,
|
|
||||||
"lora_triggers": "before_after",
|
"lora_triggers": "before_after",
|
||||||
"lora_weight_min": 0.9,
|
"lora_weight": 0.9,
|
||||||
"lora_weight_max": 0.9
|
"lora_weight_max": 0.7,
|
||||||
|
"lora_weight_min": 0.6
|
||||||
},
|
},
|
||||||
"tags": [
|
"tags": [
|
||||||
"before_and_after",
|
"before_and_after",
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "belly_dancing",
|
"action_id": "belly_dancing",
|
||||||
"action_name": "Belly Dancing",
|
"action_name": "Belly Dancing",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "belly dancing, standing",
|
"base": "belly dancing, standing",
|
||||||
"head": "",
|
"head": "",
|
||||||
"eyes": "",
|
"upper_body": "hands above head",
|
||||||
"arms": "hands above head",
|
"lower_body": "swaying hips",
|
||||||
"hands": "palms together",
|
"hands": "palms together",
|
||||||
"torso": "",
|
|
||||||
"pelvis": "swaying hips",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
"feet": "",
|
||||||
"additional": ""
|
"additional": ""
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "bentback",
|
"action_id": "bentback",
|
||||||
"action_name": "Bentback",
|
"action_name": "Bentback",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "bent_over, leaning_forward, from_behind",
|
"base": "bent_over, leaning_forward, from_behind",
|
||||||
"head": "looking_at_viewer, looking_back",
|
"head": "looking_at_viewer, looking_back, open_eyes",
|
||||||
"eyes": "open_eyes",
|
"upper_body": "arms_at_sides, twisted_torso, arched_back",
|
||||||
"arms": "arms_at_sides",
|
"lower_body": "ass_focus, kneepits",
|
||||||
"hands": "hands_on_legs",
|
"hands": "hands_on_legs",
|
||||||
"torso": "twisted_torso, arched_back",
|
|
||||||
"pelvis": "ass_focus",
|
|
||||||
"legs": "kneepits",
|
|
||||||
"feet": "barefoot",
|
"feet": "barefoot",
|
||||||
"additional": "unnatural_body"
|
"additional": "unnatural_body"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "blowjobcomicpart2",
|
"action_id": "blowjobcomicpart2",
|
||||||
"action_name": "Blowjobcomicpart2",
|
"action_name": "Blowjobcomicpart2",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "3koma, comic layout, vertical panel sequence",
|
"base": "3koma, comic layout, vertical panel sequence",
|
||||||
"head": "tongue_out, open mouth, saliva",
|
"head": "tongue_out, open mouth, saliva, empty_eyes, rolled eyes",
|
||||||
"eyes": "empty_eyes, rolled eyes",
|
"upper_body": "arms_down or holding_head, visible torso",
|
||||||
"arms": "arms_down or holding_head",
|
"lower_body": "sexual_activity, kneeling or sitting",
|
||||||
"hands": "fingers_on_penis",
|
"hands": "fingers_on_penis",
|
||||||
"torso": "visible torso",
|
|
||||||
"pelvis": "sexual_activity",
|
|
||||||
"legs": "kneeling or sitting",
|
|
||||||
"feet": "out_of_frame",
|
"feet": "out_of_frame",
|
||||||
"additional": "fellatio, irrumatio, licking_penis, ejaculation, excessive_cum"
|
"additional": "fellatio, irrumatio, licking_penis, ejaculation, excessive_cum"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,21 +2,18 @@
|
|||||||
"action_id": "bodybengirl",
|
"action_id": "bodybengirl",
|
||||||
"action_name": "Bodybengirl",
|
"action_name": "Bodybengirl",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "suspended_congress, lifting_person, standing",
|
"base": "suspended_congress, lifting_person, dangling legs",
|
||||||
"head": "",
|
"head": "",
|
||||||
"eyes": "",
|
"upper_body": "dangling arms, torso_grab, bent_over",
|
||||||
"arms": "reaching",
|
"lower_body": "legs_hanging",
|
||||||
"hands": "",
|
"hands": "",
|
||||||
"torso": "torso_grab, bent_over",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "legs_hanging",
|
|
||||||
"feet": "",
|
"feet": "",
|
||||||
"additional": "1boy, 1girl, suspended"
|
"additional": "1boy, 1girl, suspended, size difference, loli"
|
||||||
},
|
},
|
||||||
"lora": {
|
"lora": {
|
||||||
"lora_name": "Illustrious/Poses/BodyBenGirl.safetensors",
|
"lora_name": "Illustrious/Poses/BodyBenGirl.safetensors",
|
||||||
"lora_weight": 1.0,
|
"lora_weight": 1.0,
|
||||||
"lora_triggers": "bentstand-front, bentstand-behind",
|
"lora_triggers": "bentstand-behind",
|
||||||
"lora_weight_min": 1.0,
|
"lora_weight_min": 1.0,
|
||||||
"lora_weight_max": 1.0
|
"lora_weight_max": 1.0
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "bodybengirlpart2",
|
"action_id": "bodybengirlpart2",
|
||||||
"action_name": "Bodybengirlpart2",
|
"action_name": "Bodybengirlpart2",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "body suspended in mid-air, held by torso, bent over forward",
|
"base": "body suspended in mid-air, held by torso, bent over forward",
|
||||||
"head": "embarrassed, sweating, scared",
|
"head": "embarrassed, sweating, scared, open, looking away or down",
|
||||||
"eyes": "open, looking away or down",
|
"upper_body": "arms hanging down, limp arms, arms at sides, torso grab, bent forward",
|
||||||
"arms": "arms hanging down, limp arms, arms at sides",
|
"lower_body": "hips raised if bent over, legs dangling, knees together, feet apart",
|
||||||
"hands": "hands open, limp",
|
"hands": "hands open, limp",
|
||||||
"torso": "torso grab, bent forward",
|
|
||||||
"pelvis": "hips raised if bent over",
|
|
||||||
"legs": "legs dangling, knees together, feet apart",
|
|
||||||
"feet": "feet off ground, dangling",
|
"feet": "feet off ground, dangling",
|
||||||
"additional": "motion lines, sweat drops"
|
"additional": "motion lines, sweat drops"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "bored_retrain_000115_1336316",
|
"action_id": "bored_retrain_000115_1336316",
|
||||||
"action_name": "Bored Retrain 000115 1336316",
|
"action_name": "Bored Retrain 000115 1336316",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "slouching sitting posture, low energy, visually disinterested, exhibiting ennui",
|
"base": "slouching sitting posture, low energy, visually disinterested, exhibiting ennui",
|
||||||
"head": "tilted to the side, resting heavily on hand, cheek squished against palm, blank or annoyed expression",
|
"head": "tilted to the side, resting heavily on hand, cheek squished against palm, blank or annoyed expression, half-lidded, dull gaze, looking away or staring into space, heavy eyelids",
|
||||||
"eyes": "half-lidded, dull gaze, looking away or staring into space, heavy eyelids",
|
"upper_body": "elbow proped on surface, arm supporting the head, other arm dangling loosely or lying flat, slumped shoulders, curved spine, leaning forward",
|
||||||
"arms": "elbow proped on surface, arm supporting the head, other arm dangling loosely or lying flat",
|
"lower_body": "sitting back, relaxed weight, stretched out under a table or loosely crossed",
|
||||||
"hands": "palm supporting chin or cheek, fingers lazily curled",
|
"hands": "palm supporting chin or cheek, fingers lazily curled",
|
||||||
"torso": "slumped shoulders, curved spine, leaning forward",
|
|
||||||
"pelvis": "sitting back, relaxed weight",
|
|
||||||
"legs": "stretched out under a table or loosely crossed",
|
|
||||||
"feet": "resting idly",
|
"feet": "resting idly",
|
||||||
"additional": "sighing context, waiting, lethargic atmosphere"
|
"additional": "sighing context, waiting, lethargic atmosphere"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "breast_pressh",
|
"action_id": "breast_pressh",
|
||||||
"action_name": "Breast Pressh",
|
"action_name": "Breast Pressh",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "sandwiched, girl_sandwich, standing, height_difference, size_difference",
|
"base": "sandwiched, girl_sandwich, standing, height_difference, size_difference",
|
||||||
"head": "head_between_breasts, face_between_breasts, cheek_squash",
|
"head": "head_between_breasts, face_between_breasts, cheek_squash, eyes_closed, squints",
|
||||||
"eyes": "eyes_closed, squints",
|
"upper_body": "hugging, arms_around_waist, breast_press, chest_to_chest",
|
||||||
"arms": "hugging, arms_around_waist",
|
"lower_body": "hips_touching, standing, legs_apart",
|
||||||
"hands": "hands_on_back",
|
"hands": "hands_on_back",
|
||||||
"torso": "breast_press, chest_to_chest",
|
|
||||||
"pelvis": "hips_touching",
|
|
||||||
"legs": "standing, legs_apart",
|
|
||||||
"feet": "barefoot",
|
"feet": "barefoot",
|
||||||
"additional": "1boy, 2girls, multiple_girls, hetero"
|
"additional": "1boy, 2girls, multiple_girls, hetero"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "breast_smother_illustriousxl_lora_nochekaiser",
|
"action_id": "breast_smother_illustriousxl_lora_nochekaiser",
|
||||||
"action_name": "Breast Smother Illustriousxl Lora Nochekaiser",
|
"action_name": "Breast Smother Illustriousxl Lora Nochekaiser",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "intimate upper body POV or side view, character pressing another's face into their chest",
|
"base": "intimate upper body POV or side view, character pressing another's face into their chest",
|
||||||
"head": "tilted downwards, chin tucked, affectionate or dominant expression",
|
"head": "tilted downwards, chin tucked, affectionate or dominant expression, looking down, half-closed, affectionate gaze",
|
||||||
"eyes": "looking down, half-closed, affectionate gaze",
|
"upper_body": "wrapping around the partner's head or neck, leaning slightly backward, chest prominent, squished breasts, cleavage",
|
||||||
"arms": "wrapping around the partner's head or neck",
|
"lower_body": "close contact, standing or sitting, posture relaxed",
|
||||||
"hands": "cradling the back of the head, fingers interlocked in hair, pressing face deeper",
|
"hands": "cradling the back of the head, fingers interlocked in hair, pressing face deeper",
|
||||||
"torso": "leaning slightly backward, chest prominent, squished breasts, cleavage",
|
|
||||||
"pelvis": "close contact",
|
|
||||||
"legs": "standing or sitting, posture relaxed",
|
|
||||||
"feet": "planted on ground",
|
"feet": "planted on ground",
|
||||||
"additional": "face buried in breasts, chest covering face, soft lighting, skin compression"
|
"additional": "face buried in breasts, chest covering face, soft lighting, skin compression"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "breast_sucking_fingering_illustriousxl_lora_nochekaiser",
|
"action_id": "breast_sucking_fingering_illustriousxl_lora_nochekaiser",
|
||||||
"action_name": "Breast Sucking Fingering Illustriousxl Lora Nochekaiser",
|
"action_name": "Breast Sucking Fingering Illustriousxl Lora Nochekaiser",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "duo, sexual interaction, close-up, breast sucking, fingering, intimate embrace",
|
"base": "duo, sexual interaction, close-up, breast sucking, fingering, intimate embrace",
|
||||||
"head": "face buried in breasts, sucking nipple, kissing breast, saliva",
|
"head": "face buried in breasts, sucking nipple, kissing breast, saliva, eyes closed, heavy breathing, blush, expression of bliss",
|
||||||
"eyes": "eyes closed, heavy breathing, blush, expression of bliss",
|
"upper_body": "reaching down, holding partner close, arm around waist, large breasts, exposed nipples, nude torso, pressing bodies",
|
||||||
"arms": "reaching down, holding partner close, arm around waist",
|
"lower_body": "legs spread, pussy exposed, vaginal manipulation, open legs, m-legs, intertwined legs",
|
||||||
"hands": "fingering, fingers inside, rubbing clitoris, squeezing breast, groping",
|
"hands": "fingering, fingers inside, rubbing clitoris, squeezing breast, groping",
|
||||||
"torso": "large breasts, exposed nipples, nude torso, pressing bodies",
|
|
||||||
"pelvis": "legs spread, pussy exposed, vaginal manipulation",
|
|
||||||
"legs": "open legs, m-legs, intertwined legs",
|
|
||||||
"feet": "toes curled, relaxed feet",
|
"feet": "toes curled, relaxed feet",
|
||||||
"additional": "saliva trail, sweat, motion lines, uncensored"
|
"additional": "saliva trail, sweat, motion lines, uncensored"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "brokenglass_illusxl_incrs_v1",
|
"action_id": "brokenglass_illusxl_incrs_v1",
|
||||||
"action_name": "Brokenglass Illusxl Incrs V1",
|
"action_name": "Brokenglass Illusxl Incrs V1",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "dynamic shot of character seemingly breaking through a barrier",
|
"base": "dynamic shot of character seemingly breaking through a barrier",
|
||||||
"head": "intense expression, face visible through cracks",
|
"head": "intense expression, face visible through cracks, sharp focus, wide open",
|
||||||
"eyes": "sharp focus, wide open",
|
"upper_body": "outstretched towards the viewer or shielding face, twisted slightly to suggest impact force",
|
||||||
"arms": "outstretched towards the viewer or shielding face",
|
"lower_body": "anchored or mid-air depending on angle, posed dynamically to support the movement",
|
||||||
"hands": "touching the surface of the invisible wall, interacting with fragments",
|
"hands": "touching the surface of the invisible wall, interacting with fragments",
|
||||||
"torso": "twisted slightly to suggest impact force",
|
|
||||||
"pelvis": "anchored or mid-air depending on angle",
|
|
||||||
"legs": "posed dynamically to support the movement",
|
|
||||||
"feet": "grounded or trailing",
|
"feet": "grounded or trailing",
|
||||||
"additional": "foreground filled with sharp broken glass shards, spiderweb cracks glowing with light, refractive surfaces, cinematic debris"
|
"additional": "foreground filled with sharp broken glass shards, spiderweb cracks glowing with light, refractive surfaces, cinematic debris"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "butt_smother_ag_000043",
|
"action_id": "butt_smother_ag_000043",
|
||||||
"action_name": "Butt Smother Ag 000043",
|
"action_name": "Butt Smother Ag 000043",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "facesitting, character sitting on face, pov from below, dominant pose",
|
"base": "1boy,1girl,facesitting, character sitting on face, pov from below, dominant pose",
|
||||||
"head": "looking down at viewer, looking back over shoulder",
|
"head": "looking down at viewer, looking back over shoulder, looking at viewer, half-closed eyes, seductive gaze",
|
||||||
"eyes": "looking at viewer, half-closed eyes, seductive gaze",
|
"upper_body": "arms reaching back, supporting weight, back arched, leaning forward",
|
||||||
"arms": "arms reaching back, supporting weight",
|
"lower_body": "buttocks pressing down slightly, buttocks covering screen, heavy weight, thighs straddling viewer, knees bent, spread legs",
|
||||||
"hands": "hands spreading buttocks, hands on thighs, hands grasping victim's head",
|
"hands": "hands spreading buttocks, hands on thighs, hands grasping victim's head",
|
||||||
"torso": "back arched, leaning forward",
|
|
||||||
"pelvis": "buttocks pressing down slightly, buttocks covering screen, heavy weight",
|
|
||||||
"legs": "thighs straddling viewer, knees bent, spread legs",
|
|
||||||
"feet": "feet planted on ground, toes curled",
|
"feet": "feet planted on ground, toes curled",
|
||||||
"additional": "extreme close-up, squished face, muffling, soft lighting on skin"
|
"additional": "extreme close-up, squished face, muffling, soft lighting on skin"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,16 +2,13 @@
|
|||||||
"action_id": "buttjob",
|
"action_id": "buttjob",
|
||||||
"action_name": "Buttjob",
|
"action_name": "Buttjob",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "bent over, back turned to viewer, kneeling or standing",
|
"base": "bent over, buttjob",
|
||||||
"head": "looking back over shoulder",
|
"head": "",
|
||||||
"eyes": "looking at viewer, half-closed",
|
"upper_body": "",
|
||||||
"arms": "supporting upper body weight on cool surface or knees",
|
"lower_body": "buttjob",
|
||||||
"hands": "resting on bed, knees or holding buttocks apart",
|
"hands": "",
|
||||||
"torso": "arched back, leaning forward",
|
"feet": "",
|
||||||
"pelvis": "pushed backward, hips elevated high",
|
"additional": ""
|
||||||
"legs": "kneeling with thighs spread or standing bent",
|
|
||||||
"feet": "arched or plantar flexion",
|
|
||||||
"additional": "glutes pressed together, friction focus, skin indentation"
|
|
||||||
},
|
},
|
||||||
"participants": {
|
"participants": {
|
||||||
"solo_focus": "true",
|
"solo_focus": "true",
|
||||||
@@ -26,12 +23,6 @@
|
|||||||
},
|
},
|
||||||
"tags": [
|
"tags": [
|
||||||
"buttjob",
|
"buttjob",
|
||||||
"back to viewer",
|
"butt"
|
||||||
"bent over",
|
|
||||||
"arched back",
|
|
||||||
"kneeling",
|
|
||||||
"ass focus",
|
|
||||||
"glutes",
|
|
||||||
"between buttocks"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,16 +2,13 @@
|
|||||||
"action_id": "carwashv2",
|
"action_id": "carwashv2",
|
||||||
"action_name": "Carwashv2",
|
"action_name": "Carwashv2",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "washing_vehicle, standing, bending_over",
|
"base": "washing_vehicle, bending_over",
|
||||||
"head": "wet_hair",
|
"head": "wet_hair",
|
||||||
"eyes": "looking_at_viewer",
|
"upper_body": "wet_clothes, breast_press, breasts_on_glass",
|
||||||
"arms": "reaching, arms_up",
|
"lower_body": "",
|
||||||
"hands": "holding_sponge, holding_hose",
|
"hands": "holding_sponge, holding_hose",
|
||||||
"torso": "wet_clothes, breast_press, breasts_on_glass",
|
"feet": "",
|
||||||
"pelvis": "shorts, denim_shorts",
|
"additional": "car, motor_vehicle, soap_bubbles"
|
||||||
"legs": "standing, legs_apart",
|
|
||||||
"feet": "barefoot",
|
|
||||||
"additional": "car, motor_vehicle, soap_bubbles, outdoors, car_interior"
|
|
||||||
},
|
},
|
||||||
"lora": {
|
"lora": {
|
||||||
"lora_name": "Illustrious/Poses/CarWashV2.safetensors",
|
"lora_name": "Illustrious/Poses/CarWashV2.safetensors",
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "cat_stretchill",
|
"action_id": "cat_stretchill",
|
||||||
"action_name": "Cat Stretchill",
|
"action_name": "Cat Stretchill",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "kneeling, all_fours, cat_stretch, pose",
|
"base": "kneeling, all_fours, cat_stretch, pose",
|
||||||
"head": "looking_ahead, head_down",
|
"head": "looking_ahead, head_down, closed_eyes, trembling",
|
||||||
"eyes": "closed_eyes, trembling",
|
"upper_body": "outstretched_arms, reaching_forward, hands_on_ground, arched_back, chest_down",
|
||||||
"arms": "outstretched_arms, reaching_forward, hands_on_ground",
|
"lower_body": "hips_up, buttocks_up, kneeling, knees_on_ground",
|
||||||
"hands": "palms_down",
|
"hands": "palms_down",
|
||||||
"torso": "arched_back, chest_down",
|
|
||||||
"pelvis": "hips_up, buttocks_up",
|
|
||||||
"legs": "kneeling, knees_on_ground",
|
|
||||||
"feet": "feet_up",
|
"feet": "feet_up",
|
||||||
"additional": "cat_ears, cat_tail, trembling"
|
"additional": "cat_ears, cat_tail, trembling"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,40 +0,0 @@
|
|||||||
{
|
|
||||||
"action_id": "caught_masturbating_illustrious",
|
|
||||||
"action_name": "Caught Masturbating Illustrious",
|
|
||||||
"action": {
|
|
||||||
"full_body": "standing in doorway, confronting viewer",
|
|
||||||
"head": "looking down or at viewer, surprised expression, blushing",
|
|
||||||
"eyes": "wide open, looking away or at penis",
|
|
||||||
"arms": "arms at sides or covering mouth",
|
|
||||||
"hands": "relaxed or raised in shock",
|
|
||||||
"torso": "facing viewer",
|
|
||||||
"pelvis": "standing straight",
|
|
||||||
"legs": "standing, legs together",
|
|
||||||
"feet": "standing on floor",
|
|
||||||
"additional": "male pov, male masturbation in foreground, open door background"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "Illustrious/Poses/Caught_Masturbating_ILLUSTRIOUS.safetensors",
|
|
||||||
"lora_weight": 0.75,
|
|
||||||
"lora_triggers": "caught, male pov, male masturbation, girl walking in door, standing in doorway",
|
|
||||||
"lora_weight_min": 0.75,
|
|
||||||
"lora_weight_max": 0.75
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"pov",
|
|
||||||
"male_masturbation",
|
|
||||||
"penis",
|
|
||||||
"erection",
|
|
||||||
"walk-in",
|
|
||||||
"caught",
|
|
||||||
"doorway",
|
|
||||||
"open_door",
|
|
||||||
"standing",
|
|
||||||
"surprised",
|
|
||||||
"blush",
|
|
||||||
"looking_at_penis",
|
|
||||||
"looking_at_viewer",
|
|
||||||
"wide_shot",
|
|
||||||
"indoors"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "charm_person_magic",
|
"action_id": "charm_person_magic",
|
||||||
"action_name": "Charm Person Magic",
|
"action_name": "Charm Person Magic",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "casting_spell, standing, magical_presence",
|
"base": "casting_spell, standing, magical_presence",
|
||||||
"head": "smile, confident_expression, glowing_eyes",
|
"head": "smile, confident_expression, glowing_eyes, looking_at_viewer, glowing_eyes",
|
||||||
"eyes": "looking_at_viewer, glowing_eyes",
|
"upper_body": "outstretched_hand, reaching_towards_viewer, arms_up, upper_body, facing_viewer",
|
||||||
"arms": "outstretched_hand, reaching_towards_viewer, arms_up",
|
"lower_body": "n/a, n/a",
|
||||||
"hands": "open_hand, hand_gesture",
|
"hands": "open_hand, hand_gesture",
|
||||||
"torso": "upper_body, facing_viewer",
|
|
||||||
"pelvis": "n/a",
|
|
||||||
"legs": "n/a",
|
|
||||||
"feet": "n/a",
|
"feet": "n/a",
|
||||||
"additional": "aura, soft_light, magic_effects, sparkling"
|
"additional": "aura, soft_light, magic_effects, sparkling"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,21 +2,18 @@
|
|||||||
"action_id": "cheekbulge",
|
"action_id": "cheekbulge",
|
||||||
"action_name": "Cheekbulge",
|
"action_name": "Cheekbulge",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "fellatio",
|
"base": "fellatio",
|
||||||
"head": "cheek_bulge, head_tilt, saliva",
|
"head": "cheek_bulge, head_tilt, saliva, penis in mouth, fellatio, looking_up",
|
||||||
"eyes": "looking_up",
|
"upper_body": "arms_behind_back, upper_body",
|
||||||
"arms": "arms_behind_back",
|
"lower_body": "kneeling, kneeling",
|
||||||
"hands": "hands_on_head",
|
"hands": "hands_on_head",
|
||||||
"torso": "upper_body",
|
|
||||||
"pelvis": "kneeling",
|
|
||||||
"legs": "kneeling",
|
|
||||||
"feet": "plantar_flexion",
|
"feet": "plantar_flexion",
|
||||||
"additional": "deepthroat, pov, penis"
|
"additional": "deepthroat, pov, penis"
|
||||||
},
|
},
|
||||||
"lora": {
|
"lora": {
|
||||||
"lora_name": "Illustrious/Poses/cheekbulge.safetensors",
|
"lora_name": "Illustrious/Poses/cheekbulge.safetensors",
|
||||||
"lora_weight": 1.0,
|
"lora_weight": 1.0,
|
||||||
"lora_triggers": "cheek bulge",
|
"lora_triggers": "cheek bulge, male pov",
|
||||||
"lora_weight_min": 1.0,
|
"lora_weight_min": 1.0,
|
||||||
"lora_weight_max": 1.0
|
"lora_weight_max": 1.0
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "chokehold",
|
"action_id": "chokehold",
|
||||||
"action_name": "Chokehold",
|
"action_name": "Chokehold",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "rear_naked_choke, from_behind, struggling, kneeling",
|
"base": "rear_naked_choke, from_behind, struggling, kneeling",
|
||||||
"head": "head_back, expressionless, open_mouth",
|
"head": "head_back, expressionless, open_mouth, rolling_eyes, tearing_up, empty_eyes",
|
||||||
"eyes": "rolling_eyes, tearing_up, empty_eyes",
|
"upper_body": "arm_around_neck, struggling, grabbing_arm, leaning_forward, arched_back",
|
||||||
"arms": "arm_around_neck, struggling, grabbing_arm",
|
"lower_body": "kneeling, bent_over, kneeling, spread_legs",
|
||||||
"hands": "clenched_hands, struggling",
|
"hands": "clenched_hands, struggling",
|
||||||
"torso": "leaning_forward, arched_back",
|
|
||||||
"pelvis": "kneeling, bent_over",
|
|
||||||
"legs": "kneeling, spread_legs",
|
|
||||||
"feet": "barefoot, toes_curled",
|
"feet": "barefoot, toes_curled",
|
||||||
"additional": "distress, blushing, saliva, veins"
|
"additional": "distress, blushing, saliva, veins"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "cleavageteasedwnsty_000008",
|
"action_id": "cleavageteasedwnsty_000008",
|
||||||
"action_name": "Cleavageteasedwnsty 000008",
|
"action_name": "Cleavageteasedwnsty 000008",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "leaning_forward, sexually_suggestive",
|
"base": "leaning_forward, sexually_suggestive",
|
||||||
"head": "looking_at_viewer, smile, blush, one_eye_closed",
|
"head": "looking_at_viewer, smile, blush, one_eye_closed, blue_eyes, looking_at_viewer",
|
||||||
"eyes": "blue_eyes, looking_at_viewer",
|
"upper_body": "arms_bent_at_elbows, cleavage, breasts_squeezed_together, areola_slip, bare_shoulders, collarbone",
|
||||||
"arms": "arms_bent_at_elbows",
|
"lower_body": "n/a, n/a",
|
||||||
"hands": "hands_on_own_chest, clothes_pull, adjusting_clothes",
|
"hands": "hands_on_own_chest, clothes_pull, adjusting_clothes",
|
||||||
"torso": "cleavage, breasts_squeezed_together, areola_slip, bare_shoulders, collarbone",
|
|
||||||
"pelvis": "n/a",
|
|
||||||
"legs": "n/a",
|
|
||||||
"feet": "n/a",
|
"feet": "n/a",
|
||||||
"additional": "teasing, undressing"
|
"additional": "teasing, undressing"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,15 +1,12 @@
|
|||||||
{
|
{
|
||||||
"action": {
|
"action": {
|
||||||
"additional": "nsfw, semen, cum",
|
"base": "close-up, portrait",
|
||||||
"arms": "",
|
"head": "facial, open_mouth, tongue, saliva, blush, looking_at_viewer, eyes_open",
|
||||||
"eyes": "looking_at_viewer, eyes_open",
|
"upper_body": "",
|
||||||
"feet": "",
|
"lower_body": "",
|
||||||
"full_body": "close-up, portrait",
|
|
||||||
"hands": "",
|
"hands": "",
|
||||||
"head": "facial, open_mouth, tongue, saliva, blush",
|
"feet": "",
|
||||||
"legs": "",
|
"additional": "nsfw, semen, cum"
|
||||||
"pelvis": "",
|
|
||||||
"torso": ""
|
|
||||||
},
|
},
|
||||||
"action_id": "closeup_facial_illus",
|
"action_id": "closeup_facial_illus",
|
||||||
"action_name": "Closeup Facial Illus",
|
"action_name": "Closeup Facial Illus",
|
||||||
|
|||||||
@@ -2,16 +2,13 @@
|
|||||||
"action_id": "cof",
|
"action_id": "cof",
|
||||||
"action_name": "Cum on Figure",
|
"action_name": "Cum on Figure",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "figurine, mini-girl",
|
"base": "figurine, mini-girl, cum on body, cum on figurine",
|
||||||
"head": "",
|
"head": "",
|
||||||
"eyes": "",
|
"upper_body": "",
|
||||||
"arms": "",
|
"lower_body": "",
|
||||||
"hands": "",
|
"hands": "",
|
||||||
"torso": "",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
"feet": "",
|
||||||
"additional": "cum, cum on body, excessive cum, cum on face, cum on breasts, cum on chest"
|
"additional": "cum,excessive cum"
|
||||||
},
|
},
|
||||||
"participants": {
|
"participants": {
|
||||||
"solo_focus": "true",
|
"solo_focus": "true",
|
||||||
@@ -25,11 +22,7 @@
|
|||||||
"lora_weight_max": 1.0
|
"lora_weight_max": 1.0
|
||||||
},
|
},
|
||||||
"tags": [
|
"tags": [
|
||||||
"standing force",
|
"cum",
|
||||||
"carry on front",
|
"figurine"
|
||||||
"carry",
|
|
||||||
"lifting",
|
|
||||||
"legs wrapped",
|
|
||||||
"straddling"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "cooperative_grinding",
|
"action_id": "cooperative_grinding",
|
||||||
"action_name": "Cooperative Grinding",
|
"action_name": "Cooperative Grinding",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "duo, standing, carrying, straddling, lift and carry, legs wrapped around waist, body to body",
|
"base": "duo, standing, carrying, straddling, lift and carry, legs wrapped around waist, body to body",
|
||||||
"head": "head thrown back, blushing, heavy breathing, intense pleasure",
|
"head": "head thrown back, blushing, heavy breathing, intense pleasure, eyes closed, half-closed eyes, rolled back eyes",
|
||||||
"eyes": "eyes closed, half-closed eyes, rolled back eyes",
|
"upper_body": "arms around neck, holding buttocks, supporting thighs, strong grip, chest to chest, pressed together, close physical contact",
|
||||||
"arms": "arms around neck, holding buttocks, supporting thighs, strong grip",
|
"lower_body": "hips touching, grinding, mating press, pelvic curtain, legs wrapped around, thighs spread, lifted legs",
|
||||||
"hands": "grabbing, squeezing, gripping back",
|
"hands": "grabbing, squeezing, gripping back",
|
||||||
"torso": "chest to chest, pressed together, close physical contact",
|
|
||||||
"pelvis": "hips touching, grinding, mating press, pelvic curtain",
|
|
||||||
"legs": "legs wrapped around, thighs spread, lifted legs",
|
|
||||||
"feet": "dangling feet, arched toes",
|
"feet": "dangling feet, arched toes",
|
||||||
"additional": "sweat, motion lines, intimate, erotic atmosphere"
|
"additional": "sweat, motion lines, intimate, erotic atmosphere"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "cooperativepaizuri",
|
"action_id": "cooperativepaizuri",
|
||||||
"action_name": "Cooperativepaizuri",
|
"action_name": "Cooperativepaizuri",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "cooperative_paizuri, 2girls, 1boy, sexual_activity",
|
"base": "cooperative_paizuri, 2girls, 1boy, sexual_activity",
|
||||||
"head": "smile, open_mouth, facial",
|
"head": "smile, open_mouth, facial, looking_at_partner, half_closed_eyes",
|
||||||
"eyes": "looking_at_partner, half_closed_eyes",
|
"upper_body": "arms_around_neck, grabbing_penis, large_breasts, breasts_touching, nipples",
|
||||||
"arms": "arms_around_neck, grabbing_penis",
|
"lower_body": "penis, glans, erection, kneeling, straddling",
|
||||||
"hands": "on_penis, guiding_penis",
|
"hands": "on_penis, guiding_penis",
|
||||||
"torso": "large_breasts, breasts_touching, nipples",
|
|
||||||
"pelvis": "penis, glans, erection",
|
|
||||||
"legs": "kneeling, straddling",
|
|
||||||
"feet": "barefoot",
|
"feet": "barefoot",
|
||||||
"additional": "pov, cum_on_body, fluids"
|
"additional": "pov, cum_on_body, fluids"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "covering_privates_illustrious_v1_0",
|
"action_id": "covering_privates_illustrious_v1_0",
|
||||||
"action_name": "Covering Privates Illustrious V1 0",
|
"action_name": "Covering Privates Illustrious V1 0",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "covering_privates",
|
"base": "covering_privates",
|
||||||
"head": "embarrassed, blush",
|
"head": "embarrassed, blush, looking_at_viewer",
|
||||||
"eyes": "looking_at_viewer",
|
"upper_body": "arm_across_chest, upper_body",
|
||||||
"arms": "arm_across_chest",
|
"lower_body": "hips, legs_together",
|
||||||
"hands": "covering_breasts, covering_crotch",
|
"hands": "covering_breasts, covering_crotch",
|
||||||
"torso": "upper_body",
|
|
||||||
"pelvis": "hips",
|
|
||||||
"legs": "legs_together",
|
|
||||||
"feet": "standing",
|
"feet": "standing",
|
||||||
"additional": "modesty"
|
"additional": "modesty"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "coveringownmouth_ill_v1",
|
"action_id": "coveringownmouth_ill_v1",
|
||||||
"action_name": "Coveringownmouth Ill V1",
|
"action_name": "Coveringownmouth Ill V1",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "character covering their mouth with their hand",
|
"base": "character covering their mouth with their hand",
|
||||||
"head": "lower face obscured by hand",
|
"head": "lower face obscured by hand, neutral or expressive (depending on context)",
|
||||||
"eyes": "neutral or expressive (depending on context)",
|
"upper_body": "arm raised towards face, upper body visible",
|
||||||
"arms": "arm raised towards face",
|
"lower_body": "variable, variable",
|
||||||
"hands": "hand placed over mouth, palm inward",
|
"hands": "hand placed over mouth, palm inward",
|
||||||
"torso": "upper body visible",
|
|
||||||
"pelvis": "variable",
|
|
||||||
"legs": "variable",
|
|
||||||
"feet": "variable",
|
"feet": "variable",
|
||||||
"additional": "often indicates surprise, embarrassment, or silence"
|
"additional": "often indicates surprise, embarrassment, or silence"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "cowgirl_position_breast_press_illustriousxl_lora_nochekaiser",
|
"action_id": "cowgirl_position_breast_press_illustriousxl_lora_nochekaiser",
|
||||||
"action_name": "Cowgirl Position Breast Press Illustriousxl Lora Nochekaiser",
|
"action_name": "Cowgirl Position Breast Press Illustriousxl Lora Nochekaiser",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "straddling pose, body leaning forward directly into the camera view",
|
"base": "straddling pose, body leaning forward directly into the camera view",
|
||||||
"head": "face close to the viewer, looking down or directly ahead",
|
"head": "face close to the viewer, looking down or directly ahead, looking at viewer, intense or half-closed gaze",
|
||||||
"eyes": "looking at viewer, intense or half-closed gaze",
|
"upper_body": "arms extending forward or bent to support weight, upper body leaning forward, breasts heavily pressed and flattened against the screen/viewer",
|
||||||
"arms": "arms extending forward or bent to support weight",
|
"lower_body": "hips wide, seated in a straddling motion, knees bent, thighs spread wide apart",
|
||||||
"hands": "placed on an invisible surface or partner's chest",
|
"hands": "placed on an invisible surface or partner's chest",
|
||||||
"torso": "upper body leaning forward, breasts heavily pressed and flattened against the screen/viewer",
|
|
||||||
"pelvis": "hips wide, seated in a straddling motion",
|
|
||||||
"legs": "knees bent, thighs spread wide apart",
|
|
||||||
"feet": "tucked behind or out of frame",
|
"feet": "tucked behind or out of frame",
|
||||||
"additional": "pov, squish, breast deformation, intimate distance"
|
"additional": "pov, squish, breast deformation, intimate distance"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "cuckold_ntr_il_nai_py",
|
"action_id": "cuckold_ntr_il_nai_py",
|
||||||
"action_name": "Cuckold Ntr Il Nai Py",
|
"action_name": "Cuckold Ntr Il Nai Py",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "from behind, bent over, doggy style, looking back, pov",
|
"base": "from behind, bent over, doggy style, looking back, pov",
|
||||||
"head": "turned to look back over shoulder, face flushed, heavy breathing, expression of pleasure or distress",
|
"head": "turned to look back over shoulder, face flushed, heavy breathing, expression of pleasure or distress, looking at viewer, tears, heart-shaped pupils or rolled back",
|
||||||
"eyes": "looking at viewer, tears, heart-shaped pupils or rolled back",
|
"upper_body": "supporting body weight on surface, arched back, leaning forward",
|
||||||
"arms": "supporting body weight on surface",
|
"lower_body": "hips raised high, exposed, kneeling, spread wide",
|
||||||
"hands": "gripping sheets or surface tightly",
|
"hands": "gripping sheets or surface tightly",
|
||||||
"torso": "arched back, leaning forward",
|
|
||||||
"pelvis": "hips raised high, exposed",
|
|
||||||
"legs": "kneeling, spread wide",
|
|
||||||
"feet": "toes curled",
|
"feet": "toes curled",
|
||||||
"additional": "sweat, rude, messy hair, partner silhouette implied behind"
|
"additional": "sweat, rude, messy hair, partner silhouette implied behind"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "cum_bathillustrious",
|
"action_id": "cum_bathillustrious",
|
||||||
"action_name": "Cum Bathillustrious",
|
"action_name": "Cum Bathillustrious",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "reclining or sitting inside a bathtub filled with viscous white liquid, cum pool, partially submerged",
|
"base": "reclining or sitting inside a bathtub filled with viscous white liquid, cum pool, partially submerged",
|
||||||
"head": "wet hair sticking to face, flushed cheeks, steam rising",
|
"head": "wet hair sticking to face, flushed cheeks, steam rising, half-closed, glossy, looking at viewer",
|
||||||
"eyes": "half-closed, glossy, looking at viewer",
|
"upper_body": "resting on the rim of the bathtub or submerged, naked, wet skin, heavy coverage of white liquid on chest and stomach",
|
||||||
"arms": "resting on the rim of the bathtub or submerged",
|
"lower_body": "submerged in pool of white liquid, knees bent and poking out of the liquid or spread slighty",
|
||||||
"hands": "coated in white fluid, dripping",
|
"hands": "coated in white fluid, dripping",
|
||||||
"torso": "naked, wet skin, heavy coverage of white liquid on chest and stomach",
|
|
||||||
"pelvis": "submerged in pool of white liquid",
|
|
||||||
"legs": "knees bent and poking out of the liquid or spread slighty",
|
|
||||||
"feet": "submerged",
|
"feet": "submerged",
|
||||||
"additional": "tiled bathroom background, steam, excessive cum, sticky texture, overflowing tub"
|
"additional": "tiled bathroom background, steam, excessive cum, sticky texture, overflowing tub"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "cum_in_cleavage_illustrious",
|
"action_id": "cum_in_cleavage_illustrious",
|
||||||
"action_name": "Cum In Cleavage Illustrious",
|
"action_name": "Cum In Cleavage Illustrious",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "passionate upper body focus, intimacy",
|
"base": "passionate upper body focus, intimacy",
|
||||||
"head": "blush, mouth slightly open, expression of pleasure or service",
|
"head": "blush, mouth slightly open, expression of pleasure or service, looking at viewer, potentially heavy lidded or heart-shaped pupils",
|
||||||
"eyes": "looking at viewer, potentially heavy lidded or heart-shaped pupils",
|
"upper_body": "arms bent, hands bringing breasts together, bare chest, medium to large breasts, pronounced cleavage, cum pooling in cleavage",
|
||||||
"arms": "arms bent, hands bringing breasts together",
|
"lower_body": "not visible or seated, not visible",
|
||||||
"hands": "holding own breasts, squeezing or pressing breasts together",
|
"hands": "holding own breasts, squeezing or pressing breasts together",
|
||||||
"torso": "bare chest, medium to large breasts, pronounced cleavage, cum pooling in cleavage",
|
|
||||||
"pelvis": "not visible or seated",
|
|
||||||
"legs": "not visible",
|
|
||||||
"feet": "not visible",
|
"feet": "not visible",
|
||||||
"additional": "pool of liquid in cleavage, messy, erotic context"
|
"additional": "pool of liquid in cleavage, messy, erotic context"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "cum_inside_slime_v0_2",
|
"action_id": "cum_inside_slime_v0_2",
|
||||||
"action_name": "Cum Inside Slime V0 2",
|
"action_name": "Cum Inside Slime V0 2",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "front view, focus on midsection, semi-transparent body structure",
|
"base": "front view, focus on midsection, semi-transparent body structure",
|
||||||
"head": "flustered expression, open mouth, heavy blush, tongue out",
|
"head": "flustered expression, open mouth, heavy blush, tongue out, rolled back, heart-shaped pupils",
|
||||||
"eyes": "rolled back, heart-shaped pupils",
|
"upper_body": "bent at elbows, hands touching abdomen, translucent skin, visible white liquid filling the stomach and womb area, slightly distended belly",
|
||||||
"arms": "bent at elbows, hands touching abdomen",
|
"lower_body": "glowing with internal white fluid, see-through outer layer, thighs touching, slime texture dripping",
|
||||||
"hands": "cupping lower belly, emphasizing fullness",
|
"hands": "cupping lower belly, emphasizing fullness",
|
||||||
"torso": "translucent skin, visible white liquid filling the stomach and womb area, slightly distended belly",
|
|
||||||
"pelvis": "glowing with internal white fluid, see-through outer layer",
|
|
||||||
"legs": "thighs touching, slime texture dripping",
|
|
||||||
"feet": "standing firmly or slightly melting into floor",
|
"feet": "standing firmly or slightly melting into floor",
|
||||||
"additional": "internal cum, x-ray, cross-section, viscous liquid, glowing interior"
|
"additional": "internal cum, x-ray, cross-section, viscous liquid, glowing interior"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "cum_shot",
|
"action_id": "cum_shot",
|
||||||
"action_name": "Cum Shot",
|
"action_name": "Cum Shot",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "portrait or upper body focus, capturing the moment of ejaculation or aftermath",
|
"base": "portrait or upper body focus, capturing the moment of ejaculation or aftermath",
|
||||||
"head": "tilted back or facing forward, expression of pleasure or shock",
|
"head": "tilted back or facing forward, expression of pleasure or shock, closed or rolling back, eyelashes detailed",
|
||||||
"eyes": "closed or rolling back, eyelashes detailed",
|
"upper_body": "out of frame or hands touching face, chest visible, potentially with cum_on_body",
|
||||||
"arms": "out of frame or hands touching face",
|
"lower_body": "usually out of frame in this context, out of frame",
|
||||||
"hands": "optional, touching face or wiping",
|
"hands": "optional, touching face or wiping",
|
||||||
"torso": "chest visible, potentially with cum_on_body",
|
|
||||||
"pelvis": "usually out of frame in this context",
|
|
||||||
"legs": "out of frame",
|
|
||||||
"feet": "out of frame",
|
"feet": "out of frame",
|
||||||
"additional": "white fluids, messy, dripping, shiny skin"
|
"additional": "white fluids, messy, dripping, shiny skin"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "cum_swap",
|
"action_id": "cum_swap",
|
||||||
"action_name": "Cum Swap",
|
"action_name": "Cum Swap",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "two characters in close intimate proximity, upper bodies pressed together",
|
"base": "two characters in close intimate proximity, upper bodies pressed together",
|
||||||
"head": "faces close, mouths open and connected, engaging in a deep kiss",
|
"head": "faces close, mouths open and connected, engaging in a deep kiss, half-closed, heavy lidded, blushing cheeks",
|
||||||
"eyes": "half-closed, heavy lidded, blushing cheeks",
|
"upper_body": "embracing partner, wrapped around neck or waist, chests touching, leaning inward",
|
||||||
"arms": "embracing partner, wrapped around neck or waist",
|
"lower_body": "aligned with torso, standing or sitting positions",
|
||||||
"hands": "cupping partner's face, holding back of head, fingers entagled in hair",
|
"hands": "cupping partner's face, holding back of head, fingers entagled in hair",
|
||||||
"torso": "chests touching, leaning inward",
|
|
||||||
"pelvis": "aligned with torso",
|
|
||||||
"legs": "standing or sitting positions",
|
|
||||||
"feet": "grounded or out of frame",
|
"feet": "grounded or out of frame",
|
||||||
"additional": "visible liquid bridge between mouths, thick white fluid transfer, saliva trail, messy chin"
|
"additional": "visible liquid bridge between mouths, thick white fluid transfer, saliva trail, messy chin"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "cumblastfacial",
|
"action_id": "cumblastfacial",
|
||||||
"action_name": "Cumblastfacial",
|
"action_name": "Cumblastfacial",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "solo, bukkake",
|
"base": "solo, bukkake",
|
||||||
"head": "facial, head_tilt, looking_up",
|
"head": "facial, head_tilt, looking_up, cum_in_eye",
|
||||||
"eyes": "cum_in_eye",
|
"upper_body": "arms_down, cum_on_upper_body",
|
||||||
"arms": "arms_down",
|
"lower_body": "standing, standing",
|
||||||
"hands": "hands_down",
|
"hands": "hands_down",
|
||||||
"torso": "cum_on_upper_body",
|
|
||||||
"pelvis": "standing",
|
|
||||||
"legs": "standing",
|
|
||||||
"feet": "standing",
|
"feet": "standing",
|
||||||
"additional": "projectile_cum, excessive_cum, ejaculation"
|
"additional": "projectile_cum, excessive_cum, ejaculation"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "cuminhands",
|
"action_id": "cuminhands",
|
||||||
"action_name": "Cuminhands",
|
"action_name": "Cuminhands",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "after_fellatio",
|
"base": "after_fellatio",
|
||||||
"head": "facial, cum_string, cum_in_mouth",
|
"head": "facial, cum_string, cum_in_mouth, looking_at_hands",
|
||||||
"eyes": "looking_at_hands",
|
"upper_body": "arms_bent, upper_body",
|
||||||
"arms": "arms_bent",
|
"lower_body": "n/a, n/a",
|
||||||
"hands": "cupping_hands, cum_on_hands",
|
"hands": "cupping_hands, cum_on_hands",
|
||||||
"torso": "upper_body",
|
|
||||||
"pelvis": "n/a",
|
|
||||||
"legs": "n/a",
|
|
||||||
"feet": "n/a",
|
"feet": "n/a",
|
||||||
"additional": "excessive_cum"
|
"additional": "excessive_cum"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "cumshot",
|
"action_id": "cumshot",
|
||||||
"action_name": "Cumshot",
|
"action_name": "Cumshot",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "close-up portrait shot, high angle view",
|
"base": "close-up portrait shot, high angle view",
|
||||||
"head": "head tilted back, mouth slightly open, tongue out, face covered in white fluid",
|
"head": "head tilted back, mouth slightly open, tongue out, face covered in white fluid, eyes closed or rolling back, expression of pleasure, wet eyelashes",
|
||||||
"eyes": "eyes closed or rolling back, expression of pleasure, wet eyelashes",
|
"upper_body": "out of frame, upper chest and collarbone visible",
|
||||||
"arms": "out of frame",
|
"lower_body": "kout of frame, out of frame",
|
||||||
"hands": "out of frame",
|
"hands": "out of frame",
|
||||||
"torso": "upper chest and collarbone visible",
|
|
||||||
"pelvis": "kout of frame",
|
|
||||||
"legs": "out of frame",
|
|
||||||
"feet": "out of frame",
|
"feet": "out of frame",
|
||||||
"additional": "seminal fluid dripping from face, splashing liquid, thick texture, messy"
|
"additional": "seminal fluid dripping from face, splashing liquid, thick texture, messy"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "cumtube_000035",
|
"action_id": "cumtube_000035",
|
||||||
"action_name": "Cumtube 000035",
|
"action_name": "Cumtube 000035",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "kneeling or sitting, leaning back slightly to receive contents of tube",
|
"base": "kneeling or sitting, leaning back slightly to receive contents of tube",
|
||||||
"head": "force feeeding, feeding tube,tilted back, face directed upwards, mouth wide open, tongue extended, chaotic facial mess",
|
"head": "force feeeding, feeding tube,tilted back, face directed upwards, mouth wide open, tongue extended, chaotic facial mess, looking up, anticipating expression, half-closed or rolled back",
|
||||||
"eyes": "looking up, anticipating expression, half-closed or rolled back",
|
"upper_body": "raised, holding a large clear cylinder, chest pushed forward, liquid dripping down neck and chest",
|
||||||
"arms": "raised, holding a large clear cylinder",
|
"lower_body": "kneeling, hips resting on heels, legs folded underneath, knees apart",
|
||||||
"hands": "firmly grasping the sides of the tube",
|
"hands": "firmly grasping the sides of the tube",
|
||||||
"torso": "chest pushed forward, liquid dripping down neck and chest",
|
|
||||||
"pelvis": "kneeling, hips resting on heels",
|
|
||||||
"legs": "legs folded underneath, knees apart",
|
|
||||||
"feet": "toes pointed backward",
|
"feet": "toes pointed backward",
|
||||||
"additional": "clear tube filled with white viscous liquid, heavy splatter, overflowing liquid, messy environment, bubbles inside tube"
|
"additional": "clear tube filled with white viscous liquid, heavy splatter, overflowing liquid, messy environment, bubbles inside tube"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "cunnilingus_on_back_illustriousxl_lora_nochekaiser",
|
"action_id": "cunnilingus_on_back_illustriousxl_lora_nochekaiser",
|
||||||
"action_name": "Cunnilingus On Back Illustriousxl Lora Nochekaiser",
|
"action_name": "Cunnilingus On Back Illustriousxl Lora Nochekaiser",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "lying, on_back, spread_legs, nude",
|
"base": "lying, on_back, spread_legs, nude",
|
||||||
"head": "torogao, blush, sweat",
|
"head": "torogao, blush, sweat, half-closed_eyes",
|
||||||
"eyes": "half-closed_eyes",
|
"upper_body": "bent_arms, navel, nipples, sweat",
|
||||||
"arms": "bent_arms",
|
"lower_body": "cunnilingus, pussy, spread_legs, thighs",
|
||||||
"hands": "hands_on_own_chest",
|
"hands": "hands_on_own_chest",
|
||||||
"torso": "navel, nipples, sweat",
|
|
||||||
"pelvis": "cunnilingus, pussy",
|
|
||||||
"legs": "spread_legs, thighs",
|
|
||||||
"feet": "",
|
"feet": "",
|
||||||
"additional": "on_bed, pillow, from_side"
|
"additional": "on_bed, pillow, from_side"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "danglinglegs",
|
"action_id": "danglinglegs",
|
||||||
"action_name": "Danglinglegs",
|
"action_name": "Danglinglegs",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "suspended_congress, lifting_person, standing_sex",
|
"base": "suspended_congress, lifting_person, standing_sex",
|
||||||
"head": "clenched_teeth, head_back",
|
"head": "clenched_teeth, head_back, eyes_closed",
|
||||||
"eyes": "eyes_closed",
|
"upper_body": "arms_around_neck, body_lifted",
|
||||||
"arms": "arms_around_neck",
|
"lower_body": "hips_held, legs_apart, feet_off_ground",
|
||||||
"hands": "hands_on_shoulders",
|
"hands": "hands_on_shoulders",
|
||||||
"torso": "body_lifted",
|
|
||||||
"pelvis": "hips_held",
|
|
||||||
"legs": "legs_apart, feet_off_ground",
|
|
||||||
"feet": "toes_up, barefoot",
|
"feet": "toes_up, barefoot",
|
||||||
"additional": "size_difference, larger_male, sex_from_behind"
|
"additional": "size_difference, larger_male, sex_from_behind"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "deep_kiss_000007",
|
"action_id": "deep_kiss_000007",
|
||||||
"action_name": "Deep Kiss 000007",
|
"action_name": "Deep Kiss 000007",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "intimate couple pose, two characters kissing passionately, bodies pressed tightly together in an embrace",
|
"base": "intimate couple pose, two characters kissing passionately, bodies pressed tightly together in an embrace",
|
||||||
"head": "heads tilted, lips locked, mouths open, french kiss, tongue touching, cheeks flushed",
|
"head": "heads tilted, lips locked, mouths open, french kiss, tongue touching, cheeks flushed, eyes tightly closed, passionate expression",
|
||||||
"eyes": "eyes tightly closed, passionate expression",
|
"upper_body": "arms wrapped around neck, arms holding waist, engulfing embrace, chest to chest contact, breasts pressed against chest",
|
||||||
"arms": "arms wrapped around neck, arms holding waist, engulfing embrace",
|
"lower_body": "hips pressed together, zero distance, standing close, interlocked or one leg lifted behind",
|
||||||
"hands": "cupping face, fingers running through hair, gripping shoulders or back",
|
"hands": "cupping face, fingers running through hair, gripping shoulders or back",
|
||||||
"torso": "chest to chest contact, breasts pressed against chest",
|
|
||||||
"pelvis": "hips pressed together, zero distance",
|
|
||||||
"legs": "standing close, interlocked or one leg lifted behind",
|
|
||||||
"feet": "standing, on tiptoes",
|
"feet": "standing, on tiptoes",
|
||||||
"additional": "saliva trail, saliva string, connecting tongue, romantic atmosphere"
|
"additional": "saliva trail, saliva string, connecting tongue, romantic atmosphere"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "deepthroat_ponytailhandle_anime_il_v1",
|
"action_id": "deepthroat_ponytailhandle_anime_il_v1",
|
||||||
"action_name": "Deepthroat Ponytailhandle Anime Il V1",
|
"action_name": "Deepthroat Ponytailhandle Anime Il V1",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "irrumatio, fellatio, 1boy, 1girl, duo",
|
"base": "irrumatio, fellatio, 1boy, 1girl, duo",
|
||||||
"head": "forced_oral, head_back, mouth_open, saliva, drooling",
|
"head": "forced_oral, head_back, mouth_open, saliva, drooling, crying, tears, glare, wide_eyes",
|
||||||
"eyes": "crying, tears, glare, wide_eyes",
|
"upper_body": "arms_at_sides, upper_body",
|
||||||
"arms": "arms_at_sides",
|
"lower_body": "n/a, n/a",
|
||||||
"hands": "hands_down",
|
"hands": "hands_down",
|
||||||
"torso": "upper_body",
|
|
||||||
"pelvis": "n/a",
|
|
||||||
"legs": "n/a",
|
|
||||||
"feet": "n/a",
|
"feet": "n/a",
|
||||||
"additional": "grabbing_another's_hair, penis, deepthroat, ponytail"
|
"additional": "grabbing_another's_hair, penis, deepthroat, ponytail"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "defeat_ntr_il_nai_py",
|
"action_id": "defeat_ntr_il_nai_py",
|
||||||
"action_name": "Defeat Ntr Il Nai Py",
|
"action_name": "Defeat Ntr Il Nai Py",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "kneeling on the ground, slumped forward in defeat, on hands and knees, orz pose, sex from behind",
|
"base": "kneeling on the ground, slumped forward in defeat, on hands and knees, orz pose, sex from behind",
|
||||||
"head": "bowed head, looking down, face shadowed or hiding face",
|
"head": "bowed head, looking down, face shadowed or hiding face, crying, tears, empty eyes, or eyes squeezed shut in anguish",
|
||||||
"eyes": "crying, tears, empty eyes, or eyes squeezed shut in anguish",
|
"upper_body": "arms straight down supporting weight against the floor, hunched back, crushed posture, leaning forward",
|
||||||
"arms": "arms straight down supporting weight against the floor",
|
"lower_body": "hips raised slightly or sitting back on heels in submission, knees on ground, kneeling",
|
||||||
"hands": "hands flat on the ground, palms down, or clenched fists on ground",
|
"hands": "hands flat on the ground, palms down, or clenched fists on ground",
|
||||||
"torso": "hunched back, crushed posture, leaning forward",
|
|
||||||
"pelvis": "hips raised slightly or sitting back on heels in submission",
|
|
||||||
"legs": "knees on ground, kneeling",
|
|
||||||
"feet": "tops of feet flat on floor",
|
"feet": "tops of feet flat on floor",
|
||||||
"additional": "gloom, depression, dramatic shadows, humiliation, emotional devastation"
|
"additional": "gloom, depression, dramatic shadows, humiliation, emotional devastation"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "defeat_suspension_il_nai_py",
|
"action_id": "defeat_suspension_il_nai_py",
|
||||||
"action_name": "Defeat Suspension Il Nai Py",
|
"action_name": "Defeat Suspension Il Nai Py",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "suspended sex, holding waist, dangling legs, full body suspended in air, hanging limp, defeated posture, complete lack of resistance",
|
"base": "suspended sex, holding waist, dangling legs, full body suspended in air, hanging limp, defeated posture, complete lack of resistance",
|
||||||
"head": "head hanging low, chin resting on chest, looking down, neck relaxed",
|
"head": "head hanging low, chin resting on chest, looking down, neck relaxed, eyes closed, unconscious, pained expression, or empty gaze",
|
||||||
"eyes": "eyes closed, unconscious, pained expression, or empty gaze",
|
"upper_body": "arms stretched vertically upwards, arms above head, shoulders pulled up by weight, torso elongated by gravity, ribcage visible, stomach stretched",
|
||||||
"arms": "arms stretched vertically upwards, arms above head, shoulders pulled up by weight",
|
"lower_body": "hips sagging downwards, dead weight, legs dangling freely, limp legs, knees slightly bent or hanging straight",
|
||||||
"hands": "wrists bound together, hands tied overhead, handcuffs, shackles",
|
"hands": "wrists bound together, hands tied overhead, handcuffs, shackles",
|
||||||
"torso": "torso elongated by gravity, ribcage visible, stomach stretched",
|
|
||||||
"pelvis": "hips sagging downwards, dead weight",
|
|
||||||
"legs": "legs dangling freely, limp legs, knees slightly bent or hanging straight",
|
|
||||||
"feet": "feet pointing downwards, hovering off the ground, toes dragging",
|
"feet": "feet pointing downwards, hovering off the ground, toes dragging",
|
||||||
"additional": "ropes, chains, metal hooks, dungeon background, exhaustion"
|
"additional": "ropes, chains, metal hooks, dungeon background, exhaustion"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "defeatspitroast_illustrious",
|
"action_id": "defeatspitroast_illustrious",
|
||||||
"action_name": "Defeatspitroast Illustrious",
|
"action_name": "Defeatspitroast Illustrious",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "oral sex, vaginal, threesome, double penetration, suspended sex, dangling legs",
|
"base": "oral sex, vaginal, threesome, double penetration, suspended sex, dangling legs",
|
||||||
"head": "tilted back or looking aside, mouth wide open, tongue sticking out, exhausted expression",
|
"head": "tilted back or looking aside, mouth wide open, tongue sticking out, exhausted expression, rolled back, half-closed, ahegao",
|
||||||
"eyes": "rolled back, half-closed, ahegao",
|
"upper_body": "bent at elbows, supporting upper body weight, sweaty, deeply arched spine",
|
||||||
"arms": "bent at elbows, supporting upper body weight",
|
"lower_body": "ass up, presenting rear, kneeling, thighs spread wide",
|
||||||
"hands": "gripping the ground or sheets, clenching",
|
"hands": "gripping the ground or sheets, clenching",
|
||||||
"torso": "sweaty, deeply arched spine",
|
|
||||||
"pelvis": "ass up, presenting rear",
|
|
||||||
"legs": "kneeling, thighs spread wide",
|
|
||||||
"feet": "toes curled",
|
"feet": "toes curled",
|
||||||
"additional": "messy hair, trembling, heavy breathing, defeated posture"
|
"additional": "messy hair, trembling, heavy breathing, defeated posture"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,16 +2,13 @@
|
|||||||
"action_id": "disinterested_sex___bored_female",
|
"action_id": "disinterested_sex___bored_female",
|
||||||
"action_name": "Disinterested Sex Bored Female",
|
"action_name": "Disinterested Sex Bored Female",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "female lying on back, legs spread, passive body language, completely disengaged from implicit activity",
|
"base": "1girl,hetero,doggystyle,faceless male, (solo focus:1.2)",
|
||||||
"head": "turned slightly or facing forward but focused on phone, resting on pillow",
|
"head": "on stomach, resting on pillow, looking at smartphone, bored",
|
||||||
"eyes": "looking at smartphone, dull gaze, half-closed, unenthusiastic",
|
"upper_body": "",
|
||||||
"arms": "holding smartphone above face with one or both hands, elbows resting on surface",
|
"lower_body": "",
|
||||||
"hands": "holding phone, scrolling on screen",
|
"hands": "holding phone",
|
||||||
"torso": "lying flat, relaxed, exposed",
|
"feet": "",
|
||||||
"pelvis": "hips passive, legs open",
|
"additional": ""
|
||||||
"legs": "spread wide, knees bent, relaxed",
|
|
||||||
"feet": "loose, resting on bed",
|
|
||||||
"additional": "holding smartphone, checking phone, indifference, ignoring, nonchalant attitude"
|
|
||||||
},
|
},
|
||||||
"participants": {
|
"participants": {
|
||||||
"solo_focus": "true",
|
"solo_focus": "true",
|
||||||
@@ -25,14 +22,6 @@
|
|||||||
"lora_weight_max": 1.0
|
"lora_weight_max": 1.0
|
||||||
},
|
},
|
||||||
"tags": [
|
"tags": [
|
||||||
"bored",
|
"bored"
|
||||||
"disinterested",
|
|
||||||
"looking at phone",
|
|
||||||
"smartphone",
|
|
||||||
"lying",
|
|
||||||
"spread legs",
|
|
||||||
"passive",
|
|
||||||
"indifferent",
|
|
||||||
"expressionless"
|
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "display_case_bdsm_illus",
|
"action_id": "display_case_bdsm_illus",
|
||||||
"action_name": "Display Case Bdsm Illus",
|
"action_name": "Display Case Bdsm Illus",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "trapped inside a rectangular glass display case, standing or kneeling limitation, whole body confined",
|
"base": "trapped inside a rectangular glass display case, standing or kneeling limitation, whole body confined",
|
||||||
"head": "looking out through the glass, potentially gagged or expressionless",
|
"head": "looking out through the glass, potentially gagged or expressionless, open, staring at the viewer through reflections",
|
||||||
"eyes": "open, staring at the viewer through reflections",
|
"upper_body": "restricted movement, potentially bound behind back or pressed against glass, upright relative to the container, visible behind glass",
|
||||||
"arms": "restricted movement, potentially bound behind back or pressed against glass",
|
"lower_body": "hips aligned with the standing or kneeling posture, straight or folded to fit inside the box",
|
||||||
"hands": "palms pressed against the transparent wall or tied",
|
"hands": "palms pressed against the transparent wall or tied",
|
||||||
"torso": "upright relative to the container, visible behind glass",
|
|
||||||
"pelvis": "hips aligned with the standing or kneeling posture",
|
|
||||||
"legs": "straight or folded to fit inside the box",
|
|
||||||
"feet": "resting on the bottom platform of the case",
|
"feet": "resting on the bottom platform of the case",
|
||||||
"additional": "glass reflections, airtight container aesthetic, museum or auction setting, objectification"
|
"additional": "glass reflections, airtight container aesthetic, museum or auction setting, objectification"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "display_case_illustr",
|
"action_id": "display_case_illustr",
|
||||||
"action_name": "Display Case Illustr",
|
"action_name": "Display Case Illustr",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "standing stiffly like an action figure, encased inside a rectangular transparent box",
|
"base": "standing stiffly like an action figure, encased inside a rectangular transparent box",
|
||||||
"head": "neutral expression, facing forward, slightly doll-like",
|
"head": "neutral expression, facing forward, slightly doll-like, fixed gaze, looking at viewer",
|
||||||
"eyes": "fixed gaze, looking at viewer",
|
"upper_body": "resting at sides or slightly bent in a static pose, facing front, rigid posture",
|
||||||
"arms": "resting at sides or slightly bent in a static pose",
|
"lower_body": "aligned with torso, standing straight, feet positioned securely on the box base",
|
||||||
"hands": "open palms or loosely curled, possibly pressing against the front glass",
|
"hands": "open palms or loosely curled, possibly pressing against the front glass",
|
||||||
"torso": "facing front, rigid posture",
|
|
||||||
"pelvis": "aligned with torso",
|
|
||||||
"legs": "standing straight, feet positioned securely on the box base",
|
|
||||||
"feet": "flat on the floor of the case",
|
"feet": "flat on the floor of the case",
|
||||||
"additional": "transparent plastic packaging, cardboard backing with product design, barcode, reflections on glass, sealed box"
|
"additional": "transparent plastic packaging, cardboard backing with product design, barcode, reflections on glass, sealed box"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "doggydoublefingering",
|
"action_id": "doggydoublefingering",
|
||||||
"action_name": "Doggydoublefingering",
|
"action_name": "Doggydoublefingering",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "Three females arranged side-by-side in a row, all facing away from viewer or towards viewer depending on angle, engaged in group sexual activity",
|
"base": "Three females arranged side-by-side in a row, all facing away from viewer or towards viewer depending on angle, engaged in group sexual activity",
|
||||||
"head": "various expressions, blushing, sweating, looking back or down",
|
"head": "various expressions, blushing, sweating, looking back or down, open or closed in pleasure",
|
||||||
"eyes": "open or closed in pleasure",
|
"upper_body": "varied, gripping sheets or supporting body, leaning forward, breasts visible if from front",
|
||||||
"arms": "varied, gripping sheets or supporting body",
|
"lower_body": "hips raised, bent over, kneeling on all fours",
|
||||||
"hands": "resting on surface or gripping",
|
"hands": "resting on surface or gripping",
|
||||||
"torso": "leaning forward, breasts visible if from front",
|
|
||||||
"pelvis": "hips raised, bent over",
|
|
||||||
"legs": "kneeling on all fours",
|
|
||||||
"feet": "resting on bed or ground",
|
"feet": "resting on bed or ground",
|
||||||
"additional": "center female receiving vaginal penetration from behind (doggystyle), two distinct side females being fingered simultaneously, male figure or disembodied hands performing the fingering"
|
"additional": "center female receiving vaginal penetration from behind (doggystyle), two distinct side females being fingered simultaneously, male figure or disembodied hands performing the fingering"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,23 +2,20 @@
|
|||||||
"action_id": "dunking_face_in_a_bowl_of_cum_r1",
|
"action_id": "dunking_face_in_a_bowl_of_cum_r1",
|
||||||
"action_name": "Dunking Face In A Bowl Of Cum R1",
|
"action_name": "Dunking Face In A Bowl Of Cum R1",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "leaning_forward, head_down, drowning",
|
"base": "kneeling, all fours, head_down, held down, close-up, from below, humiliation, (solo focus:1.2)",
|
||||||
"head": "face_down, air_bubble, crying, tears, embarrassed, disgust",
|
"head": "face_down, cum in mouth, cum bubble, hand on anothers head, crying, closed_eyes",
|
||||||
"eyes": "closed_eyes, tears",
|
"upper_body": "",
|
||||||
"arms": "clutching_head, arms_up",
|
"lower_body": "",
|
||||||
"hands": "clutching_head",
|
"hands": "",
|
||||||
"torso": "leaning_forward",
|
"feet": "",
|
||||||
"pelvis": "leaning_forward",
|
"additional": "cum bowl"
|
||||||
"legs": "standing",
|
|
||||||
"feet": "standing",
|
|
||||||
"additional": "bowl, cum"
|
|
||||||
},
|
},
|
||||||
"lora": {
|
"lora": {
|
||||||
"lora_name": "Illustrious/Poses/Dunking_face_in_a_bowl_of_cum_r1.safetensors",
|
"lora_name": "Illustrious/Poses/Dunking_face_in_a_bowl_of_cum_r1.safetensors",
|
||||||
"lora_weight": 1.0,
|
"lora_weight": 1.0,
|
||||||
"lora_triggers": "face in cum bowl, cum in bowl, cum bubble, excessive cum",
|
"lora_triggers": "gokkun, cum bowl",
|
||||||
"lora_weight_min": 1.0,
|
"lora_weight_min": 0.4,
|
||||||
"lora_weight_max": 1.0
|
"lora_weight_max": 0.6
|
||||||
},
|
},
|
||||||
"tags": [
|
"tags": [
|
||||||
"1girl",
|
"1girl",
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "ekiben_ill_10",
|
"action_id": "ekiben_ill_10",
|
||||||
"action_name": "Ekiben Ill 10",
|
"action_name": "Ekiben Ill 10",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "duo, 1boy, 1girl, standing, male lifting female, carrying, sexual position",
|
"base": "duo, 1boy, 1girl, standing, male lifting female, carrying, sexual position",
|
||||||
"head": "looking at another, head back or looking down",
|
"head": "looking at another, head back or looking down, eye contact or eyes closed",
|
||||||
"eyes": "eye contact or eyes closed",
|
"upper_body": "arms supporting legs, arms around neck, chest to chest, upright",
|
||||||
"arms": "arms supporting legs, arms around neck",
|
"lower_body": "connected, groins touching, spread legs, legs up, legs around waist, m-legs, bent knees",
|
||||||
"hands": "holding legs, grabbing thighs, gripping",
|
"hands": "holding legs, grabbing thighs, gripping",
|
||||||
"torso": "chest to chest, upright",
|
|
||||||
"pelvis": "connected, groins touching",
|
|
||||||
"legs": "spread legs, legs up, legs around waist, m-legs, bent knees",
|
|
||||||
"feet": "dangling feet, plantar flexion",
|
"feet": "dangling feet, plantar flexion",
|
||||||
"additional": "strength, suspension, height difference"
|
"additional": "strength, suspension, height difference"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "elbow_squeeze__concept_lora_000008",
|
"action_id": "elbow_squeeze__concept_lora_000008",
|
||||||
"action_name": "Elbow Squeeze Concept Lora 000008",
|
"action_name": "Elbow Squeeze Concept Lora 000008",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "Character standing with upper arms pressed tightly against the torso, emphasizing the chest area through the pressure of the elbows.",
|
"base": "Character standing with upper arms pressed tightly against the torso, emphasizing the chest area through the pressure of the elbows.",
|
||||||
"head": "Facing forward, slightly tucked chin or tilted, expression often shy or teasing.",
|
"head": "Facing forward, slightly tucked chin or tilted, expression often shy or teasing., Looking directly at viewer.",
|
||||||
"eyes": "Looking directly at viewer.",
|
"upper_body": "Upper arms squeezing inward against the sides of the ribs/chest, elbows tucked tight to the body., Chest pushed upward or compressed slightly by the lateral pressure of the arms.",
|
||||||
"arms": "Upper arms squeezing inward against the sides of the ribs/chest, elbows tucked tight to the body.",
|
"lower_body": "Neutral stance., Standing straight or slightly knock-kneed for a shy effect.",
|
||||||
"hands": "Forearms angled out or hands clasped near the navel/chest area.",
|
"hands": "Forearms angled out or hands clasped near the navel/chest area.",
|
||||||
"torso": "Chest pushed upward or compressed slightly by the lateral pressure of the arms.",
|
|
||||||
"pelvis": "Neutral stance.",
|
|
||||||
"legs": "Standing straight or slightly knock-kneed for a shy effect.",
|
|
||||||
"feet": "Planted firmly.",
|
"feet": "Planted firmly.",
|
||||||
"additional": "Clothing often pulled tight across the chest due to the arm position."
|
"additional": "Clothing often pulled tight across the chest due to the arm position."
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "extreme_sex_v1_0_illustriousxl",
|
"action_id": "extreme_sex_v1_0_illustriousxl",
|
||||||
"action_name": "Extreme Sex V1 0 Illustriousxl",
|
"action_name": "Extreme Sex V1 0 Illustriousxl",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "sitting, engaging in sexual activity, intense body language",
|
"base": "sitting, engaging in sexual activity, intense body language",
|
||||||
"head": "tilted back, expression of ecstasy",
|
"head": "tilted back, expression of ecstasy, rolling_eyes, loss of focus, cross-eyed (ahegao)",
|
||||||
"eyes": "rolling_eyes, loss of focus, cross-eyed (ahegao)",
|
"upper_body": "clinging or holding partner, heaving, covered in sweat",
|
||||||
"arms": "clinging or holding partner",
|
"lower_body": "engaged in action, wrapped around or spread",
|
||||||
"hands": "grasping details",
|
"hands": "grasping details",
|
||||||
"torso": "heaving, covered in sweat",
|
|
||||||
"pelvis": "engaged in action",
|
|
||||||
"legs": "wrapped around or spread",
|
|
||||||
"feet": "toes curled",
|
"feet": "toes curled",
|
||||||
"additional": "drooling, saliva_trail, flushing, messy_hair"
|
"additional": "drooling, saliva_trail, flushing, messy_hair"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "face_grab_illustrious",
|
"action_id": "face_grab_illustrious",
|
||||||
"action_name": "Face Grab Illustrious",
|
"action_name": "Face Grab Illustrious",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "POV close-up of a character having their face grabbed by the viewer",
|
"base": "POV close-up of a character having their face grabbed by the viewer",
|
||||||
"head": "forced expression, open mouth, tongue out, pout, grabbing cheeks or chin",
|
"head": "forced expression, open mouth, tongue out, pout, grabbing cheeks or chin, looking at viewer, crying, streaming tears",
|
||||||
"eyes": "looking at viewer, crying, streaming tears",
|
"upper_body": "often not visible or passive, upper body, often nude or partially visible",
|
||||||
"arms": "often not visible or passive",
|
"lower_body": "usually out of frame, out of frame",
|
||||||
"hands": "pov hands, hand grabbing face",
|
"hands": "pov hands, hand grabbing face",
|
||||||
"torso": "upper body, often nude or partially visible",
|
|
||||||
"pelvis": "usually out of frame",
|
|
||||||
"legs": "out of frame",
|
|
||||||
"feet": "out of frame",
|
"feet": "out of frame",
|
||||||
"additional": "context often after fellatio with fluids on face or tongue"
|
"additional": "context often after fellatio with fluids on face or tongue"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "facesit_08",
|
"action_id": "facesit_08",
|
||||||
"action_name": "Facesit 08",
|
"action_name": "Facesit 08",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "sitting_on_face, cunnilingus, oral",
|
"base": "sitting_on_face, cunnilingus, oral",
|
||||||
"head": "looking_at_viewer, looking_down",
|
"head": "looking_at_viewer, looking_down, looking_at_viewer",
|
||||||
"eyes": "looking_at_viewer",
|
"upper_body": "head_grab, nude, close-up",
|
||||||
"arms": "head_grab",
|
"lower_body": "panties_aside, clitoris, pussy_juice, spread_legs",
|
||||||
"hands": "on_head",
|
"hands": "on_head",
|
||||||
"torso": "nude, close-up",
|
|
||||||
"pelvis": "panties_aside, clitoris, pussy_juice",
|
|
||||||
"legs": "spread_legs",
|
|
||||||
"feet": "out_of_frame",
|
"feet": "out_of_frame",
|
||||||
"additional": "yuri, female_pov, 2girls"
|
"additional": "yuri, female_pov, 2girls"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,39 +0,0 @@
|
|||||||
{
|
|
||||||
"action_id": "facial_bukkake",
|
|
||||||
"action_name": "Facial Bukkake",
|
|
||||||
"action": {
|
|
||||||
"full_body": "close-up portrait shot, focus primarily on the face and neck area",
|
|
||||||
"head": "tilted slightly backward, mouth open or tongue out, face heavily covered in white liquid",
|
|
||||||
"eyes": "closed or looking upward, eyelashes wet/clumped",
|
|
||||||
"arms": "out of frame or hands interacting with face/hair",
|
|
||||||
"hands": "holding hair back or wiping cheek",
|
|
||||||
"torso": "upper chest or shoulders visible, possibly stained",
|
|
||||||
"pelvis": "not visible",
|
|
||||||
"legs": "not visible",
|
|
||||||
"feet": "not visible",
|
|
||||||
"additional": "streaming white liquid, dripping, messy, wet skin texture, high viscosity"
|
|
||||||
},
|
|
||||||
"participants": {
|
|
||||||
"solo_focus": "true",
|
|
||||||
"orientation": "F"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "Illustrious/Poses/facial_bukkake.safetensors",
|
|
||||||
"lora_weight": 1.0,
|
|
||||||
"lora_triggers": "facial_bukkake",
|
|
||||||
"lora_weight_min": 1.0,
|
|
||||||
"lora_weight_max": 1.0
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"bukkake",
|
|
||||||
"facial",
|
|
||||||
"cum on face",
|
|
||||||
"semen",
|
|
||||||
"messy",
|
|
||||||
"white liquid",
|
|
||||||
"cum in eyes",
|
|
||||||
"cum in mouth",
|
|
||||||
"splatter",
|
|
||||||
"after sex"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "fellatio_from_below_illustriousxl_lora_nochekaiser",
|
"action_id": "fellatio_from_below_illustriousxl_lora_nochekaiser",
|
||||||
"action_name": "Fellatio From Below Illustriousxl Lora Nochekaiser",
|
"action_name": "Fellatio From Below Illustriousxl Lora Nochekaiser",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "squatting, fellatio, from_below",
|
"base": "squatting, fellatio, from_below",
|
||||||
"head": "facing_viewer, open_mouth",
|
"head": "facing_viewer, open_mouth, looking_down",
|
||||||
"eyes": "looking_down",
|
"upper_body": "arms_visible, nude, navel, nipples",
|
||||||
"arms": "arms_visible",
|
"lower_body": "nude, pussy, spread_legs, squatting, bent_legs",
|
||||||
"hands": "hands_visible",
|
"hands": "hands_visible",
|
||||||
"torso": "nude, navel, nipples",
|
|
||||||
"pelvis": "nude, pussy, spread_legs",
|
|
||||||
"legs": "squatting, bent_legs",
|
|
||||||
"feet": "feet_visible",
|
"feet": "feet_visible",
|
||||||
"additional": "penis, testicles, oral, sweat, cum"
|
"additional": "penis, testicles, oral, sweat, cum"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "fellatio_on_couch_illustriousxl_lora_nochekaiser",
|
"action_id": "fellatio_on_couch_illustriousxl_lora_nochekaiser",
|
||||||
"action_name": "Fellatio On Couch Illustriousxl Lora Nochekaiser",
|
"action_name": "Fellatio On Couch Illustriousxl Lora Nochekaiser",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "fellatio, sitting, on_couch, hetero, oral",
|
"base": "fellatio, sitting, on_couch, hetero, oral",
|
||||||
"head": "blush, sweat, head_down",
|
"head": "blush, sweat, head_down, looking_down, eyes_closed",
|
||||||
"eyes": "looking_down, eyes_closed",
|
"upper_body": "arms_at_side, breast_press, nipples, nude, leaning_forward",
|
||||||
"arms": "arms_at_side",
|
"lower_body": "sitting, nude, sitting, legs_apart",
|
||||||
"hands": "hands_on_legs",
|
"hands": "hands_on_legs",
|
||||||
"torso": "breast_press, nipples, nude, leaning_forward",
|
|
||||||
"pelvis": "sitting, nude",
|
|
||||||
"legs": "sitting, legs_apart",
|
|
||||||
"feet": "feet_on_floor",
|
"feet": "feet_on_floor",
|
||||||
"additional": "couch, penis, testicles, uncensored"
|
"additional": "couch, penis, testicles, uncensored"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "femdom_face_between_breasts",
|
"action_id": "femdom_face_between_breasts",
|
||||||
"action_name": "Femdom Face Between Breasts",
|
"action_name": "Femdom Face Between Breasts",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "upper body view, female character pressing a person's face into her chest",
|
"base": "upper body view, female character pressing a person's face into her chest",
|
||||||
"head": "looking down, chin tucked, dominant expression",
|
"head": "looking down, chin tucked, dominant expression, narrowed, looking down at the person",
|
||||||
"eyes": "narrowed, looking down at the person",
|
"upper_body": "wrapping around the person's head, holding head firmly, chest pushed forward, breasts pressed tightly together around a face",
|
||||||
"arms": "wrapping around the person's head, holding head firmly",
|
"lower_body": "neutral alignment, standing or sitting",
|
||||||
"hands": "fingers tangled in hair, or pressing the back of the head",
|
"hands": "fingers tangled in hair, or pressing the back of the head",
|
||||||
"torso": "chest pushed forward, breasts pressed tightly together around a face",
|
|
||||||
"pelvis": "neutral alignment",
|
|
||||||
"legs": "standing or sitting",
|
|
||||||
"feet": "not visible",
|
"feet": "not visible",
|
||||||
"additional": "male face buried in breasts, squished face, soft lighting, close-up"
|
"additional": "male face buried in breasts, squished face, soft lighting, close-up"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "femdom_held_down_illust",
|
"action_id": "femdom_held_down_illust",
|
||||||
"action_name": "Femdom Held Down Illust",
|
"action_name": "Femdom Held Down Illust",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "girl_on_top, straddling, lying_on_back",
|
"base": "girl_on_top, straddling, lying_on_back",
|
||||||
"head": "looking_down, looking_at_another",
|
"head": "looking_down, looking_at_another, forced_eye_contact",
|
||||||
"eyes": "forced_eye_contact",
|
"upper_body": "holding_another's_wrists, arms_above_head, on_back",
|
||||||
"arms": "holding_another's_wrists, arms_above_head",
|
"lower_body": "straddled, spread_legs",
|
||||||
"hands": "grab, clenched_hands",
|
"hands": "grab, clenched_hands",
|
||||||
"torso": "on_back",
|
|
||||||
"pelvis": "straddled",
|
|
||||||
"legs": "spread_legs",
|
|
||||||
"feet": "barefoot",
|
"feet": "barefoot",
|
||||||
"additional": "femdom, struggling, pinned, assertive_female"
|
"additional": "femdom, struggling, pinned, assertive_female"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "fertilization_illustriousxl_lora_nochekaiser",
|
"action_id": "fertilization_illustriousxl_lora_nochekaiser",
|
||||||
"action_name": "Fertilization Illustriousxl Lora Nochekaiser",
|
"action_name": "Fertilization Illustriousxl Lora Nochekaiser",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "sex, vaginal, on_bed, nude, cowboy_shot",
|
"base": "sex, vaginal, on_bed, nude, cowboy_shot",
|
||||||
"head": "ahegao, blush, open_mouth, head_back",
|
"head": "ahegao, blush, open_mouth, head_back, rolled_eyes, half_closed_eyes",
|
||||||
"eyes": "rolled_eyes, half_closed_eyes",
|
"upper_body": "arms_at_sides, nude, nipples, navel",
|
||||||
"arms": "arms_at_sides",
|
"lower_body": "pussy, cum_in_pussy, internal_cumshot, penis, hetero, spread_legs, legs_up",
|
||||||
"hands": "clenched_hands",
|
"hands": "clenched_hands",
|
||||||
"torso": "nude, nipples, navel",
|
|
||||||
"pelvis": "pussy, cum_in_pussy, internal_cumshot, penis, hetero",
|
|
||||||
"legs": "spread_legs, legs_up",
|
|
||||||
"feet": "bare_feet",
|
"feet": "bare_feet",
|
||||||
"additional": "cross-section, fertilization, impregnation, uterus, ovum, sperm_cell, ovaries, ejaculation"
|
"additional": "cross-section, fertilization, impregnation, uterus, ovum, sperm_cell, ovaries, ejaculation"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "fff_imminent_masturbation",
|
"action_id": "fff_imminent_masturbation",
|
||||||
"action_name": "Fff Imminent Masturbation",
|
"action_name": "Fff Imminent Masturbation",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "hand_on_own_crotch, trembling, legs_together, knock-kneed",
|
"base": "hand_on_own_crotch, trembling, legs_together, knock-kneed",
|
||||||
"head": "heavy_breathing, sweating, looking_down",
|
"head": "heavy_breathing, sweating, looking_down, narrowed_eyes, half-closed_eyes, dilated_pupils",
|
||||||
"eyes": "narrowed_eyes, half-closed_eyes, dilated_pupils",
|
"upper_body": "arms_down, hand_between_legs, arched_back, squirming",
|
||||||
"arms": "arms_down, hand_between_legs",
|
"lower_body": "hips_forward, legs_together, knock-kneed",
|
||||||
"hands": "hand_on_own_crotch, squeezing, rubbing_crotch",
|
"hands": "hand_on_own_crotch, squeezing, rubbing_crotch",
|
||||||
"torso": "arched_back, squirming",
|
|
||||||
"pelvis": "hips_forward",
|
|
||||||
"legs": "legs_together, knock-kneed",
|
|
||||||
"feet": "standing",
|
"feet": "standing",
|
||||||
"additional": "clothed_masturbation, urgency, arousal, through_clothes"
|
"additional": "clothed_masturbation, urgency, arousal, through_clothes"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "ffm3some_footjob_efeme3ftfe_il_1475115",
|
"action_id": "ffm3some_footjob_efeme3ftfe_il_1475115",
|
||||||
"action_name": "Ffm3Some Footjob Efeme3Ftfe Il 1475115",
|
"action_name": "Ffm3Some Footjob Efeme3Ftfe Il 1475115",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "FFM threesome scenario, one male lying on back receiving stimulation, two females sitting or reclining near his, performing a double footjob",
|
"base": "FFM threesome scenario, one male lying on back receiving stimulation, two females sitting or reclining near his, performing a double footjob",
|
||||||
"head": "females looking down at their feet, male head bathed in pleasure, expressions of focus and arousal",
|
"head": "females looking down at their feet, male head bathed in pleasure, expressions of focus and arousal, looking at penis, eyes closed, eye contact with male",
|
||||||
"eyes": "looking at penis, eyes closed, eye contact with male",
|
"upper_body": "females arms resting behind them for support or on their own legs, male torso exposed supine, females upper bodies leaning back or sitting upright",
|
||||||
"arms": "females arms resting behind them for support or on their own legs",
|
"lower_body": "hips positioned to extend legs towards the male, females legs extended towards center, male legs spread or straight",
|
||||||
"hands": "hands resting on bed sheets, gripping sheets, or touching own legs",
|
"hands": "hands resting on bed sheets, gripping sheets, or touching own legs",
|
||||||
"torso": "male torso exposed supine, females upper bodies leaning back or sitting upright",
|
|
||||||
"pelvis": "hips positioned to extend legs towards the male",
|
|
||||||
"legs": "females legs extended towards center, male legs spread or straight",
|
|
||||||
"feet": "barefoot, soles rubbing against penis, toes curling, sandwiching penis between feet, four feet visible",
|
"feet": "barefoot, soles rubbing against penis, toes curling, sandwiching penis between feet, four feet visible",
|
||||||
"additional": "indoors, bed, crumpled sheets, sexual activity, multiple partners"
|
"additional": "indoors, bed, crumpled sheets, sexual activity, multiple partners"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "ffm_threesome___kiss_and_fellatio_illustrious",
|
"action_id": "ffm_threesome___kiss_and_fellatio_illustrious",
|
||||||
"action_name": "Ffm Threesome Kiss And Fellatio Illustrious",
|
"action_name": "Ffm Threesome Kiss And Fellatio Illustrious",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "ffm_threesome, 2girls, 1boy, group_sex, sandwich_position",
|
"base": "ffm_threesome, 2girls, 1boy, group_sex, sandwich_position",
|
||||||
"head": "kissing, sucking, head_grab",
|
"head": "kissing, sucking, head_grab, closed_eyes, looking_at_partner",
|
||||||
"eyes": "closed_eyes, looking_at_partner",
|
"upper_body": "arms_around_neck, holding_penis, hand_on_head, leaning_forward, physical_contact",
|
||||||
"arms": "arms_around_neck, holding_penis, hand_on_head",
|
"lower_body": "sitting, straddling, kneeling, spread_legs",
|
||||||
"hands": "stroking",
|
"hands": "stroking",
|
||||||
"torso": "leaning_forward, physical_contact",
|
|
||||||
"pelvis": "sitting, straddling",
|
|
||||||
"legs": "kneeling, spread_legs",
|
|
||||||
"feet": "barefoot",
|
"feet": "barefoot",
|
||||||
"additional": "indoor, couch, faceless_male, saliva, blush"
|
"additional": "indoor, couch, faceless_male, saliva, blush"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "ffm_threesome_doggy_style_front_view_illustrious",
|
"action_id": "ffm_threesome_doggy_style_front_view_illustrious",
|
||||||
"action_name": "Ffm Threesome Doggy Style Front View Illustrious",
|
"action_name": "Ffm Threesome Doggy Style Front View Illustrious",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "threesome, 2girls, 1boy, doggy style, all fours, kneeling, from front, bodies overlapping",
|
"base": "threesome, 2girls, 1boy, doggy style, all fours, kneeling, from front, bodies overlapping",
|
||||||
"head": "looking at viewer, head raised, blushing, sweating, tongues out",
|
"head": "looking at viewer, head raised, blushing, sweating, tongues out, open eyes, heart-shaped pupils, eye contact",
|
||||||
"eyes": "open eyes, heart-shaped pupils, eye contact",
|
"upper_body": "arms straight, supporting weight, hands on ground, leaning forward, arched back, breasts hanging",
|
||||||
"arms": "arms straight, supporting weight, hands on ground",
|
"lower_body": "hips raised high, buttocks touching, knees bent, kneeling, legs spread",
|
||||||
"hands": "palms flat, fingers spread, on bed sheet",
|
"hands": "palms flat, fingers spread, on bed sheet",
|
||||||
"torso": "leaning forward, arched back, breasts hanging",
|
|
||||||
"pelvis": "hips raised high, buttocks touching",
|
|
||||||
"legs": "knees bent, kneeling, legs spread",
|
|
||||||
"feet": "toes curled, feet relaxed",
|
"feet": "toes curled, feet relaxed",
|
||||||
"additional": "sex, penetration, vaginal, motion lines, saliva trail, indoors, bed"
|
"additional": "sex, penetration, vaginal, motion lines, saliva trail, indoors, bed"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "ffm_threesome_girl_sandwichdouble_dip_illustrious",
|
"action_id": "ffm_threesome_girl_sandwichdouble_dip_illustrious",
|
||||||
"action_name": "Ffm Threesome Girl Sandwichdouble Dip Illustrious",
|
"action_name": "Ffm Threesome Girl Sandwichdouble Dip Illustrious",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "Three-person stack on a bed: one girl lying flat on her back, the male (often faceless/obscured) positioned in the middle, and the second girl straddling on top of the pile.",
|
"base": "Three-person stack on a bed: one girl lying flat on her back, the male (often faceless/obscured) positioned in the middle, and the second girl straddling on top of the pile.",
|
||||||
"head": "Girls' faces visible, often with flushed cheeks or ahegao expressions; male face usually out of frame or obscured.",
|
"head": "Girls' faces visible, often with flushed cheeks or ahegao expressions; male face usually out of frame or obscured., rolled_back, closed_eyes, or looking_at_viewer",
|
||||||
"eyes": "rolled_back, closed_eyes, or looking_at_viewer",
|
"upper_body": "Arms embracing the partner in the middle or holding bed sheets., Sandwiched torsos, breasts pressed against the middle partner.",
|
||||||
"arms": "Arms embracing the partner in the middle or holding bed sheets.",
|
"lower_body": "Interconnected pelvises, implied penetration., Bottom girl with legs_spread, top girl straddling.",
|
||||||
"hands": "grabbing_sheet or touching_partner",
|
"hands": "grabbing_sheet or touching_partner",
|
||||||
"torso": "Sandwiched torsos, breasts pressed against the middle partner.",
|
|
||||||
"pelvis": "Interconnected pelvises, implied penetration.",
|
|
||||||
"legs": "Bottom girl with legs_spread, top girl straddling.",
|
|
||||||
"feet": "barefoot",
|
"feet": "barefoot",
|
||||||
"additional": "Scene typically set on a bed with messy sheets."
|
"additional": "Scene typically set on a bed with messy sheets."
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "ffm_threesome_one_girl_on_top_and_bj",
|
"action_id": "ffm_threesome_one_girl_on_top_and_bj",
|
||||||
"action_name": "Ffm Threesome One Girl On Top And Bj",
|
"action_name": "Ffm Threesome One Girl On Top And Bj",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "ffm_threesome, cowgirl_position, straddling, lying, on_back",
|
"base": "ffm_threesome, cowgirl_position, straddling, lying, on_back",
|
||||||
"head": "blush, half-closed_eyes",
|
"head": "blush, half-closed_eyes, half-closed_eyes",
|
||||||
"eyes": "half-closed_eyes",
|
"upper_body": "arms_at_sides, nude, breasts",
|
||||||
"arms": "arms_at_sides",
|
"lower_body": "legs_apart, straddling, kneeling, bent_legs",
|
||||||
"hands": "hands_on_chest",
|
"hands": "hands_on_chest",
|
||||||
"torso": "nude, breasts",
|
|
||||||
"pelvis": "legs_apart, straddling",
|
|
||||||
"legs": "kneeling, bent_legs",
|
|
||||||
"feet": "barefoot",
|
"feet": "barefoot",
|
||||||
"additional": "fellatio, licking, penis, testicles, size_difference, 2girls, 1boy"
|
"additional": "fellatio, licking, penis, testicles, size_difference, 2girls, 1boy"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "ffmnursinghandjob_ill_v3",
|
"action_id": "ffmnursinghandjob_ill_v3",
|
||||||
"action_name": "Ffmnursinghandjob Ill V3",
|
"action_name": "Ffmnursinghandjob Ill V3",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "threesome, 2girls, 1boy, ffm, male lying on back, two females kneeling or straddling",
|
"base": "threesome, 2girls, 1boy, ffm, male lying on back, two females kneeling or straddling",
|
||||||
"head": "blushing faces, looking down, ecstatic expressions, tongue out",
|
"head": "blushing faces, looking down, ecstatic expressions, tongue out, half-closed eyes, heart-shaped pupils, looking at penis",
|
||||||
"eyes": "half-closed eyes, heart-shaped pupils, looking at penis",
|
"upper_body": "holding breasts, offering breast, reaching for penis, exposed breasts, leaning forward, nipples visible",
|
||||||
"arms": "holding breasts, offering breast, reaching for penis",
|
"lower_body": "hips positioned near male's face or chest, kneeling, spread legs",
|
||||||
"hands": "double handjob, stroking penis, squeezing breasts",
|
"hands": "double handjob, stroking penis, squeezing breasts",
|
||||||
"torso": "exposed breasts, leaning forward, nipples visible",
|
|
||||||
"pelvis": "hips positioned near male's face or chest",
|
|
||||||
"legs": "kneeling, spread legs",
|
|
||||||
"feet": "barefoot",
|
"feet": "barefoot",
|
||||||
"additional": "lactation, breast milk, saliva string, messy"
|
"additional": "lactation, breast milk, saliva string, messy"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "finish_blow_ill_v0_90_000004",
|
"action_id": "finish_blow_ill_v0_90_000004",
|
||||||
"action_name": "Finish Blow Ill V0 90 000004",
|
"action_name": "Finish Blow Ill V0 90 000004",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "highly dynamic combat pose, delivering a final powerful strike, lunging forward or mid-air jump",
|
"base": "highly dynamic combat pose, delivering a final powerful strike, lunging forward or mid-air jump",
|
||||||
"head": "intense battle expression, shouting or gritted teeth, hair flowing with motion",
|
"head": "intense battle expression, shouting or gritted teeth, hair flowing with motion, fierce gaze, focused on target, angry eyes",
|
||||||
"eyes": "fierce gaze, focused on target, angry eyes",
|
"upper_body": "swinging wildy, outstretched with weapon, motion blur on limbs, twisted torso for momentum, leaning into the attack",
|
||||||
"arms": "swinging wildy, outstretched with weapon, motion blur on limbs",
|
"lower_body": "hips rotated to generate power, low center of gravity, wide stance, knees bent, dynamic foreshortening",
|
||||||
"hands": "tightly gripping weapon, two-handed grip, or clenched fist",
|
"hands": "tightly gripping weapon, two-handed grip, or clenched fist",
|
||||||
"torso": "twisted torso for momentum, leaning into the attack",
|
|
||||||
"pelvis": "hips rotated to generate power, low center of gravity",
|
|
||||||
"legs": "wide stance, knees bent, dynamic foreshortening",
|
|
||||||
"feet": "planted firmly on ground or pointed in air, debris kicks up",
|
"feet": "planted firmly on ground or pointed in air, debris kicks up",
|
||||||
"additional": "light trails, speed lines, impact effects, shockwaves, cinematic lighting, dutch angle, weapon smear"
|
"additional": "light trails, speed lines, impact effects, shockwaves, cinematic lighting, dutch angle, weapon smear"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "fixed_perspective_v3_1558768",
|
"action_id": "fixed_perspective_v3_1558768",
|
||||||
"action_name": "Fixed Perspective V3 1558768",
|
"action_name": "Fixed Perspective V3 1558768",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "Character positioned with exaggerated depth, utilizing strong foreshortening to create a 3D effect aimed at the viewer",
|
"base": "Character positioned with exaggerated depth, utilizing strong foreshortening to create a 3D effect aimed at the viewer",
|
||||||
"head": "Face centered and close to the camera, looking directly at the viewer",
|
"head": "Face centered and close to the camera, looking directly at the viewer, Intense eye contact, detailed eyes",
|
||||||
"eyes": "Intense eye contact, detailed eyes",
|
"upper_body": "One or both arms reaching towards the lens, appearing larger due to perspective, Angled to recede into the background",
|
||||||
"arms": "One or both arms reaching towards the lens, appearing larger due to perspective",
|
"lower_body": "Visually smaller, further back, Trailing off into the distance, significantly smaller than the upper body",
|
||||||
"hands": "Enlarged hands/fingers reaching out (foreshortened)",
|
"hands": "Enlarged hands/fingers reaching out (foreshortened)",
|
||||||
"torso": "Angled to recede into the background",
|
|
||||||
"pelvis": "Visually smaller, further back",
|
|
||||||
"legs": "Trailing off into the distance, significantly smaller than the upper body",
|
|
||||||
"feet": "Small or out of frame due to depth",
|
"feet": "Small or out of frame due to depth",
|
||||||
"additional": "Fisheye lens effect, dramatic camera angle, depth of field, high distortion, 3D composition"
|
"additional": "Fisheye lens effect, dramatic camera angle, depth of field, high distortion, 3D composition"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "fixed_point_v2",
|
"action_id": "fixed_point_v2",
|
||||||
"action_name": "Fixed Point V2",
|
"action_name": "Fixed Point V2",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "kneeling on floor in bedroom",
|
"base": "kneeling on floor in bedroom",
|
||||||
"head": "looking at viewer",
|
"head": "looking at viewer, open eyes",
|
||||||
"eyes": "open eyes",
|
"upper_body": "resting on bed, facing viewer",
|
||||||
"arms": "resting on bed",
|
"lower_body": "kneeling, kneeling",
|
||||||
"hands": "resting",
|
"hands": "resting",
|
||||||
"torso": "facing viewer",
|
|
||||||
"pelvis": "kneeling",
|
|
||||||
"legs": "kneeling",
|
|
||||||
"feet": "barefoot",
|
"feet": "barefoot",
|
||||||
"additional": "full room view, fxdpt"
|
"additional": "full room view, fxdpt"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "flaccid_after_cum_illustrious_000009",
|
"action_id": "flaccid_after_cum_illustrious_000009",
|
||||||
"action_name": "Flaccid After Cum Illustrious 000009",
|
"action_name": "Flaccid After Cum Illustrious 000009",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "exhausted post-coital slump, relaxing",
|
"base": "exhausted post-coital slump, relaxing",
|
||||||
"head": "flushed face, head tilted back, disheveled hair",
|
"head": "flushed face, head tilted back, disheveled hair, half-closed, ahegao or glazed expression",
|
||||||
"eyes": "half-closed, ahegao or glazed expression",
|
"upper_body": "limp, resting at sides, sweaty skin, heaving chest",
|
||||||
"arms": "limp, resting at sides",
|
"lower_body": "flaccid penis exposed, soft, seminal fluid leaking, spread wide, relaxed",
|
||||||
"hands": "relaxed, open",
|
"hands": "relaxed, open",
|
||||||
"torso": "sweaty skin, heaving chest",
|
|
||||||
"pelvis": "flaccid penis exposed, soft, seminal fluid leaking",
|
|
||||||
"legs": "spread wide, relaxed",
|
|
||||||
"feet": "loose",
|
"feet": "loose",
|
||||||
"additional": "messy bed sheets, heavy breathing, steamy atmosphere"
|
"additional": "messy bed sheets, heavy breathing, steamy atmosphere"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "fleshlight_position_doggystyle_dangling_legs_sex_from_behind_hanging_legs_ponyilsdsdxl",
|
"action_id": "fleshlight_position_doggystyle_dangling_legs_sex_from_behind_hanging_legs_ponyilsdsdxl",
|
||||||
"action_name": "Fleshlight Position Doggystyle Dangling Legs Sex From Behind Hanging Legs Ponyilsdsdxl",
|
"action_name": "Fleshlight Position Doggystyle Dangling Legs Sex From Behind Hanging Legs Ponyilsdsdxl",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "doggystyle, sex from behind, hanging legs, vaginal",
|
"base": "doggystyle, sex from behind, hanging legs, vaginal",
|
||||||
"head": "facing down or looking back over shoulder",
|
"head": "facing down or looking back over shoulder, half-closed or expression of pleasure",
|
||||||
"eyes": "half-closed or expression of pleasure",
|
"upper_body": "supporting upper body weight, elbows often bent, prone, leaning forward, back deeply arched",
|
||||||
"arms": "supporting upper body weight, elbows often bent",
|
"lower_body": "elevated and pushed back to the edge of the surface, dangling down off the edge, knees slightly bent, not supporting weight",
|
||||||
"hands": "gripping the sheets or resting flat on the surface",
|
"hands": "gripping the sheets or resting flat on the surface",
|
||||||
"torso": "prone, leaning forward, back deeply arched",
|
|
||||||
"pelvis": "elevated and pushed back to the edge of the surface",
|
|
||||||
"legs": "dangling down off the edge, knees slightly bent, not supporting weight",
|
|
||||||
"feet": "hanging freely, toes connecting with nothing, off the ground",
|
"feet": "hanging freely, toes connecting with nothing, off the ground",
|
||||||
"additional": "on edge of bed, precarious balance, from behind perspective"
|
"additional": "on edge of bed, precarious balance, from behind perspective"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "folded_xl_illustrious_v1_0",
|
"action_id": "folded_xl_illustrious_v1_0",
|
||||||
"action_name": "Folded Xl Illustrious V1 0",
|
"action_name": "Folded Xl Illustrious V1 0",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "Character standing in a confident or defensive posture with weight shifted to one side",
|
"base": "Character standing in a confident or defensive posture with weight shifted to one side",
|
||||||
"head": "Chin slightly raised, facing the viewer directly",
|
"head": "Chin slightly raised, facing the viewer directly, Sharp gaze, expressing confidence, skepticism, or annoyance",
|
||||||
"eyes": "Sharp gaze, expressing confidence, skepticism, or annoyance",
|
"upper_body": "Both arms crossed firmly over the chest (folded arms), Upright posture, chest slightly expanded",
|
||||||
"arms": "Both arms crossed firmly over the chest (folded arms)",
|
"lower_body": "Hips slightly cocked to one side for attitude, Standing straight, legs apart or one knee relaxed",
|
||||||
"hands": "Hands tucked under the biceps or grasping the opposite upper arm",
|
"hands": "Hands tucked under the biceps or grasping the opposite upper arm",
|
||||||
"torso": "Upright posture, chest slightly expanded",
|
|
||||||
"pelvis": "Hips slightly cocked to one side for attitude",
|
|
||||||
"legs": "Standing straight, legs apart or one knee relaxed",
|
|
||||||
"feet": "Planted firmly on the ground",
|
"feet": "Planted firmly on the ground",
|
||||||
"additional": "Often implies an attitude of arrogance, patience, or defiance"
|
"additional": "Often implies an attitude of arrogance, patience, or defiance"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "forced_cunnilingus",
|
"action_id": "forced_cunnilingus",
|
||||||
"action_name": "Forced Cunnilingus",
|
"action_name": "Forced Cunnilingus",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "female lying on back, legs spread wide, partner positioning head between legs performing oral sex",
|
"base": "female lying on back, legs spread wide, partner positioning head between legs performing oral sex",
|
||||||
"head": "head tilted back, blushing, expression of distress or shock, mouth slightly open",
|
"head": "head tilted back, blushing, expression of distress or shock, mouth slightly open, teary eyes, squeezed shut or looking away",
|
||||||
"eyes": "teary eyes, squeezed shut or looking away",
|
"upper_body": "arms pinned above head or held down against surface, arched back, chest heaving",
|
||||||
"arms": "arms pinned above head or held down against surface",
|
"lower_body": "hips lifted slightly, exposed crotch, legs spread, m-legs, knees bent, thighs held apart by partner",
|
||||||
"hands": "clenched fists, wrists held",
|
"hands": "clenched fists, wrists held",
|
||||||
"torso": "arched back, chest heaving",
|
|
||||||
"pelvis": "hips lifted slightly, exposed crotch",
|
|
||||||
"legs": "legs spread, m-legs, knees bent, thighs held apart by partner",
|
|
||||||
"feet": "toes curled in tension",
|
"feet": "toes curled in tension",
|
||||||
"additional": "cunnilingus, saliva trail, partner's head buried in crotch, struggle, non-consensual undertones"
|
"additional": "cunnilingus, saliva trail, partner's head buried in crotch, struggle, non-consensual undertones"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "foreskin_fellatio_ilxl",
|
"action_id": "foreskin_fellatio_ilxl",
|
||||||
"action_name": "Foreskin Fellatio Ilxl",
|
"action_name": "Foreskin Fellatio Ilxl",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "close-up view of an oral sex act with specific emphasis on penile anatomy",
|
"base": "close-up view of an oral sex act with specific emphasis on penile anatomy",
|
||||||
"head": "positioned directly in front of the groin, mouth open and engaging with the penis",
|
"head": "positioned directly in front of the groin, mouth open and engaging with the penis, gaze directed upward at partner or focused on the act, potentially closed",
|
||||||
"eyes": "gaze directed upward at partner or focused on the act, potentially closed",
|
"upper_body": "reaching forward to stabilize or hold the partner, leaning deeply forward",
|
||||||
"arms": "reaching forward to stabilize or hold the partner",
|
"lower_body": "kneeling or crouching posture, knees bent, supporting the upper body",
|
||||||
"hands": "gripping the penile shaft, fingers specifically manipulating, pulling back, or holding the foreskin",
|
"hands": "gripping the penile shaft, fingers specifically manipulating, pulling back, or holding the foreskin",
|
||||||
"torso": "leaning deeply forward",
|
|
||||||
"pelvis": "kneeling or crouching posture",
|
|
||||||
"legs": "knees bent, supporting the upper body",
|
|
||||||
"feet": "tucked behind or resting on the floor",
|
"feet": "tucked behind or resting on the floor",
|
||||||
"additional": "uncut penis, highly detailed foreskin, skin retraction, glans exposure, saliva strands"
|
"additional": "uncut penis, highly detailed foreskin, skin retraction, glans exposure, saliva strands"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "foreskinplay_r1",
|
"action_id": "foreskinplay_r1",
|
||||||
"action_name": "Foreskinplay R1",
|
"action_name": "Foreskinplay R1",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "close-up focus on genital area, male solo",
|
"base": "close-up focus on genital area, male solo",
|
||||||
"head": "looking down or out of frame",
|
"head": "looking down or out of frame, focused on crotch",
|
||||||
"eyes": "focused on crotch",
|
"upper_body": "reaching down, lower abs visible, nude or shirt lifted",
|
||||||
"arms": "reaching down",
|
"lower_body": "erection, uncircumcised penis, glans exposure, thighs visible, spread slightly",
|
||||||
"hands": "fingers manipulating foreskin, pulling back foreskin, pinching skin",
|
"hands": "fingers manipulating foreskin, pulling back foreskin, pinching skin",
|
||||||
"torso": "lower abs visible, nude or shirt lifted",
|
|
||||||
"pelvis": "erection, uncircumcised penis, glans exposure",
|
|
||||||
"legs": "thighs visible, spread slightly",
|
|
||||||
"feet": "not visible",
|
"feet": "not visible",
|
||||||
"additional": "detailed foreskin texture, phmosis, skin stretching"
|
"additional": "detailed foreskin texture, phmosis, skin stretching"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "frenchkissv1il_000010",
|
"action_id": "frenchkissv1il_000010",
|
||||||
"action_name": "Frenchkissv1Il 000010",
|
"action_name": "Frenchkissv1Il 000010",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "two subjects in a close intimate embrace, bodies pressed against each other",
|
"base": "two subjects in a close intimate embrace, bodies pressed against each other",
|
||||||
"head": "heads tilted in opposite directions, profiles visible, mouths open and connected in a deep kiss",
|
"head": "heads tilted in opposite directions, profiles visible, mouths open and connected in a deep kiss, closed eyes, eyelashes visible, expression of passion",
|
||||||
"eyes": "closed eyes, eyelashes visible, expression of passion",
|
"upper_body": "braided around each other, one set reaching up to the neck, the other around the waist, chests pressed firmly together, zero distance",
|
||||||
"arms": "braided around each other, one set reaching up to the neck, the other around the waist",
|
"lower_body": "hips aligned and touching, standing close, intertwined, or stepping between partner's legs",
|
||||||
"hands": "cupping the face, fingers tangling in hair, or gripping the back of the partner",
|
"hands": "cupping the face, fingers tangling in hair, or gripping the back of the partner",
|
||||||
"torso": "chests pressed firmly together, zero distance",
|
|
||||||
"pelvis": "hips aligned and touching",
|
|
||||||
"legs": "standing close, intertwined, or stepping between partner's legs",
|
|
||||||
"feet": "grounded, or one person on tiptoes",
|
"feet": "grounded, or one person on tiptoes",
|
||||||
"additional": "exchange of saliva, tongues touching, liquid bridge, blush on cheeks, atmospheric lighting"
|
"additional": "exchange of saliva, tongues touching, liquid bridge, blush on cheeks, atmospheric lighting"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "frog_embrace_position_il_nai_py",
|
"action_id": "frog_embrace_position_il_nai_py",
|
||||||
"action_name": "Frog Embrace Position Il Nai Py",
|
"action_name": "Frog Embrace Position Il Nai Py",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "intimate couple pose, lying on back, sexual intercourse, intense intimacy",
|
"base": "intimate couple pose, lying on back, sexual intercourse, intense intimacy",
|
||||||
"head": "tilted back on pillow, expression of pleasure, heavy blushing",
|
"head": "tilted back on pillow, expression of pleasure, heavy blushing, half-closed eyes, eyes rolled back, ahegao",
|
||||||
"eyes": "half-closed eyes, eyes rolled back, ahegao",
|
"upper_body": "arms reaching up, clinging to partner's back or shoulders, back slightly arched, chest pressed or exposed",
|
||||||
"arms": "arms reaching up, clinging to partner's back or shoulders",
|
"lower_body": "pelvis lifted, fully engaged with partner, legs spread wide, knees bent deeply outwards, m-shape legs, legs wrapped around partner's waist or driven back",
|
||||||
"hands": "hands clutching partner's back or gripping bedsheets",
|
"hands": "hands clutching partner's back or gripping bedsheets",
|
||||||
"torso": "back slightly arched, chest pressed or exposed",
|
|
||||||
"pelvis": "pelvis lifted, fully engaged with partner",
|
|
||||||
"legs": "legs spread wide, knees bent deeply outwards, m-shape legs, legs wrapped around partner's waist or driven back",
|
|
||||||
"feet": "toes curled, feet usually visible in air or against partner's back",
|
"feet": "toes curled, feet usually visible in air or against partner's back",
|
||||||
"additional": "sweat drops, heart symbols, motion lines, messy bed"
|
"additional": "sweat drops, heart symbols, motion lines, messy bed"
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -2,14 +2,11 @@
|
|||||||
"action_id": "full_body_blowjob",
|
"action_id": "full_body_blowjob",
|
||||||
"action_name": "Full Body Blowjob",
|
"action_name": "Full Body Blowjob",
|
||||||
"action": {
|
"action": {
|
||||||
"full_body": "fellatio, full_body, from_side",
|
"base": "fellatio, full_body, from_side",
|
||||||
"head": "cheek_bulge",
|
"head": "cheek_bulge, half-closed_eyes",
|
||||||
"eyes": "half-closed_eyes",
|
"upper_body": "reaching, leaning_forward, nude",
|
||||||
"arms": "reaching",
|
"lower_body": "kneeling, kneeling",
|
||||||
"hands": "penis_grab",
|
"hands": "penis_grab",
|
||||||
"torso": "leaning_forward, nude",
|
|
||||||
"pelvis": "kneeling",
|
|
||||||
"legs": "kneeling",
|
|
||||||
"feet": "barefoot",
|
"feet": "barefoot",
|
||||||
"additional": "saliva_trail, head_grab"
|
"additional": "saliva_trail, head_grab"
|
||||||
},
|
},
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user