Compare commits
25 Commits
369c92e3ea
...
multi-char
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d756ea1d0e | ||
|
|
79bbf669e2 | ||
|
|
5e4348ebc1 | ||
|
|
1b8a798c31 | ||
|
|
d95b81dde5 | ||
|
|
ec08eb5d31 | ||
|
|
2c1c3a7ed7 | ||
|
|
ee36caccd6 | ||
|
|
e226548471 | ||
|
|
b9196ef5f5 | ||
|
|
a38915b354 | ||
|
|
da55b0889b | ||
|
|
9b143e65b1 | ||
|
|
27d2a70867 | ||
|
|
3c828a170f | ||
|
|
ae7ba961c1 | ||
|
|
0b8802deb5 | ||
| 0d7d4d404f | |||
|
|
615c400024 | ||
| bb65486995 | |||
|
|
8487b177b4 | ||
| 116941673e | |||
|
|
467c90594c | ||
| a4a21051a5 | |||
|
|
c0e6cff7b7 |
8
.dockerignore
Normal file
8
.dockerignore
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
venv/
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
instance/
|
||||||
|
flask_session/
|
||||||
|
static/uploads/
|
||||||
|
tools/
|
||||||
|
.git/
|
||||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -31,3 +31,6 @@ Thumbs.db
|
|||||||
|
|
||||||
# Logs
|
# Logs
|
||||||
*.log
|
*.log
|
||||||
|
|
||||||
|
# Tools (cloned at runtime — not tracked in this repo)
|
||||||
|
tools/
|
||||||
|
|||||||
511
CLAUDE.md
Normal file
511
CLAUDE.md
Normal file
@@ -0,0 +1,511 @@
|
|||||||
|
# GAZE — Character Browser: LLM Development Guide
|
||||||
|
|
||||||
|
## What This Project Is
|
||||||
|
|
||||||
|
GAZE is a Flask web app for managing AI image generation assets and generating images via ComfyUI. It is a **personal creative tool** for organizing characters, outfits, actions, styles, scenes, and detailers — all of which map to Stable Diffusion LoRAs and prompt fragments — and generating images by wiring those assets into a ComfyUI workflow at runtime.
|
||||||
|
|
||||||
|
The app is deployed locally, connects to a local ComfyUI instance at `http://127.0.0.1:8188`, and uses SQLite for persistence. LoRA and model files live on `/mnt/alexander/AITools/Image Models/`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Architecture
|
||||||
|
|
||||||
|
### File Structure
|
||||||
|
|
||||||
|
```
|
||||||
|
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
|
||||||
|
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.
|
||||||
|
|
||||||
|
**Models**: `Character`, `Look`, `Outfit`, `Action`, `Style`, `Scene`, `Detailer`, `Checkpoint`, `Settings`
|
||||||
|
|
||||||
|
All category models (except Settings and Checkpoint) share this pattern:
|
||||||
|
- `{entity}_id` — canonical ID (from JSON, often matches filename without extension)
|
||||||
|
- `slug` — URL-safe version of the ID (alphanumeric + underscores only, via `re.sub(r'[^a-zA-Z0-9_]', '', id)`)
|
||||||
|
- `name` — display name
|
||||||
|
- `filename` — original JSON filename
|
||||||
|
- `data` — full JSON blob (SQLAlchemy JSON column)
|
||||||
|
- `default_fields` — list of `section::key` strings saved as the user's preferred prompt fields
|
||||||
|
- `image_path` — relative path under `static/uploads/`
|
||||||
|
|
||||||
|
### Data Flow: JSON → DB → Prompt → ComfyUI
|
||||||
|
|
||||||
|
1. **JSON files** in `data/{characters,clothing,actions,styles,scenes,detailers,looks}/` are loaded by `sync_*()` functions into SQLite.
|
||||||
|
2. At generation time, `build_prompt(data, selected_fields, default_fields, active_outfit)` converts the character JSON blob into `{"main": ..., "face": ..., "hand": ...}` prompt strings.
|
||||||
|
3. `_prepare_workflow(workflow, character, prompts, ...)` wires prompts and LoRAs into the loaded `comfy_workflow.json`.
|
||||||
|
4. `queue_prompt(workflow, client_id)` POSTs the workflow to ComfyUI's `/prompt` endpoint.
|
||||||
|
5. The app polls `get_history(prompt_id)` and retrieves the image via `get_image(filename, subfolder, type)`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ComfyUI Workflow Node Map
|
||||||
|
|
||||||
|
The workflow (`comfy_workflow.json`) uses string node IDs. These are the critical nodes:
|
||||||
|
|
||||||
|
| Node | Role |
|
||||||
|
|------|------|
|
||||||
|
| `3` | Main KSampler |
|
||||||
|
| `4` | Checkpoint loader |
|
||||||
|
| `5` | Empty latent (width/height) |
|
||||||
|
| `6` | Positive prompt — contains `{{POSITIVE_PROMPT}}` placeholder |
|
||||||
|
| `7` | Negative prompt |
|
||||||
|
| `8` | VAE decode |
|
||||||
|
| `9` | Save image |
|
||||||
|
| `11` | Face ADetailer |
|
||||||
|
| `13` | Hand ADetailer |
|
||||||
|
| `14` | Face detailer prompt — contains `{{FACE_PROMPT}}` placeholder |
|
||||||
|
| `15` | Hand detailer prompt — contains `{{HAND_PROMPT}}` placeholder |
|
||||||
|
| `16` | Character LoRA (or Look LoRA when a Look is active) |
|
||||||
|
| `17` | Outfit LoRA |
|
||||||
|
| `18` | Action LoRA |
|
||||||
|
| `19` | Style / Detailer / Scene LoRA (priority: style > detailer > scene) |
|
||||||
|
|
||||||
|
LoRA nodes chain: `4 → 16 → 17 → 18 → 19`. Unused LoRA nodes are bypassed by pointing `model_source`/`clip_source` directly to the prior node. All model/clip consumers (nodes 3, 6, 7, 11, 13, 14, 15) are wired to the final `model_source`/`clip_source` at the end of `_prepare_workflow`.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Key Functions by Module
|
||||||
|
|
||||||
|
### `utils.py` — Constants and Pure Helpers
|
||||||
|
|
||||||
|
- **`_IDENTITY_KEYS` / `_WARDROBE_KEYS`** — Lists of canonical field names for the `identity` and `wardrobe` sections. Used by `_ensure_character_fields()`.
|
||||||
|
- **`ALLOWED_EXTENSIONS`** — Permitted upload file extensions.
|
||||||
|
- **`_LORA_DEFAULTS`** — Default LoRA directory paths per category.
|
||||||
|
- **`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`.
|
||||||
|
|
||||||
|
### `services/prompts.py` — Prompt Building
|
||||||
|
|
||||||
|
- **`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']`.
|
||||||
|
|
||||||
|
### `services/workflow.py` — Workflow Wiring
|
||||||
|
|
||||||
|
- **`_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.
|
||||||
|
- **`_apply_checkpoint_settings(workflow, ckpt_data)`** — Applies checkpoint-specific sampler/prompt/VAE settings.
|
||||||
|
- **`_get_default_checkpoint()`** — Returns `(checkpoint_path, checkpoint_data)` from session, database Settings, or workflow file fallback.
|
||||||
|
- **`_log_workflow_prompts(label, workflow)`** — Logs the fully assembled workflow prompts in a readable block.
|
||||||
|
|
||||||
|
### `services/job_queue.py` — Background Job Queue
|
||||||
|
|
||||||
|
- **`_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.
|
||||||
|
|
||||||
|
### `services/comfyui.py` — ComfyUI HTTP Client
|
||||||
|
|
||||||
|
- **`queue_prompt(prompt_workflow, client_id)`** — POSTs workflow to ComfyUI's `/prompt` endpoint.
|
||||||
|
- **`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.
|
||||||
|
|
||||||
|
### `services/llm.py` — LLM Integration
|
||||||
|
|
||||||
|
- **`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.
|
||||||
|
- **`load_prompt(filename)`** — Loads system prompt text from `data/prompts/`.
|
||||||
|
- **`call_mcp_tool()`** — Synchronous wrapper for MCP tool calls.
|
||||||
|
|
||||||
|
### `services/sync.py` — Data Synchronization
|
||||||
|
|
||||||
|
- **`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.
|
||||||
|
|
||||||
|
### `services/file_io.py` — File & DB Helpers
|
||||||
|
|
||||||
|
- **`get_available_loras(category)`** — Scans filesystem for available LoRA files in a category.
|
||||||
|
- **`get_available_checkpoints()`** — Scans checkpoint directories.
|
||||||
|
- **`_count_look_assignments()`** / **`_count_outfit_lora_assignments()`** — DB aggregate queries.
|
||||||
|
|
||||||
|
### `services/mcp.py` — MCP/Docker Lifecycle
|
||||||
|
|
||||||
|
- **`ensure_mcp_server_running()`** — Ensures the danbooru-mcp Docker container is running.
|
||||||
|
- **`ensure_character_mcp_server_running()`** — Ensures the character-mcp Docker container is running.
|
||||||
|
|
||||||
|
### Route-local Helpers
|
||||||
|
|
||||||
|
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()`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## JSON Data Schemas
|
||||||
|
|
||||||
|
### Character (`data/characters/*.json`)
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"character_id": "tifa_lockhart",
|
||||||
|
"character_name": "Tifa Lockhart",
|
||||||
|
"identity": { "base_specs": "", "hair": "", "eyes": "", "hands": "", "arms": "", "torso": "", "pelvis": "", "legs": "", "feet": "", "extra": "" },
|
||||||
|
"defaults": { "expression": "", "pose": "", "scene": "" },
|
||||||
|
"wardrobe": {
|
||||||
|
"default": { "full_body": "", "headwear": "", "top": "", "bottom": "", "legwear": "", "footwear": "", "hands": "", "gloves": "", "accessories": "" }
|
||||||
|
},
|
||||||
|
"styles": { "aesthetic": "", "primary_color": "", "secondary_color": "", "tertiary_color": "" },
|
||||||
|
"lora": { "lora_name": "Illustrious/Looks/tifa.safetensors", "lora_weight": 0.8, "lora_triggers": "" },
|
||||||
|
"tags": [],
|
||||||
|
"participants": { "orientation": "1F", "solo_focus": "true" }
|
||||||
|
}
|
||||||
|
```
|
||||||
|
`participants` is optional; when absent, `(solo:1.2)` is injected. `orientation` is parsed by `parse_orientation()` into Danbooru tags (`1girl`, `hetero`, etc.).
|
||||||
|
|
||||||
|
### Outfit (`data/clothing/*.json`)
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"outfit_id": "french_maid_01",
|
||||||
|
"outfit_name": "French Maid",
|
||||||
|
"wardrobe": { "full_body": "", "headwear": "", "top": "", "bottom": "", "legwear": "", "footwear": "", "hands": "", "accessories": "" },
|
||||||
|
"lora": { "lora_name": "Illustrious/Clothing/maid.safetensors", "lora_weight": 0.8, "lora_triggers": "" },
|
||||||
|
"tags": []
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Action (`data/actions/*.json`)
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"action_id": "sitting",
|
||||||
|
"action_name": "Sitting",
|
||||||
|
"action": { "full_body": "", "additional": "", "head": "", "eyes": "", "arms": "", "hands": "" },
|
||||||
|
"lora": { "lora_name": "", "lora_weight": 1.0, "lora_triggers": "" },
|
||||||
|
"tags": []
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Scene (`data/scenes/*.json`)
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"scene_id": "beach",
|
||||||
|
"scene_name": "Beach",
|
||||||
|
"scene": { "background": "", "foreground": "", "furniture": "", "colors": "", "lighting": "", "theme": "" },
|
||||||
|
"lora": { "lora_name": "", "lora_weight": 1.0, "lora_triggers": "" },
|
||||||
|
"tags": []
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Style (`data/styles/*.json`)
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"style_id": "watercolor",
|
||||||
|
"style_name": "Watercolor",
|
||||||
|
"style": { "artist_name": "", "artistic_style": "" },
|
||||||
|
"lora": { "lora_name": "", "lora_weight": 1.0, "lora_triggers": "" }
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Detailer (`data/detailers/*.json`)
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"detailer_id": "detailed_skin",
|
||||||
|
"detailer_name": "Detailed Skin",
|
||||||
|
"prompt": ["detailed skin", "pores"],
|
||||||
|
"focus": { "face": true, "hands": true },
|
||||||
|
"lora": { "lora_name": "", "lora_weight": 1.0, "lora_triggers": "" }
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Look (`data/looks/*.json`)
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"look_id": "tifa_casual",
|
||||||
|
"look_name": "Tifa Casual",
|
||||||
|
"character_id": "tifa_lockhart",
|
||||||
|
"positive": "casual clothes, jeans",
|
||||||
|
"negative": "revealing",
|
||||||
|
"lora": { "lora_name": "Illustrious/Looks/tifa_casual.safetensors", "lora_weight": 0.85, "lora_triggers": "" },
|
||||||
|
"tags": []
|
||||||
|
}
|
||||||
|
```
|
||||||
|
Looks occupy LoRA node 16, overriding the character's own LoRA. The Look's `negative` is prepended to the workflow's negative prompt.
|
||||||
|
|
||||||
|
### Checkpoint (`data/checkpoints/*.json`)
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"checkpoint_path": "Illustrious/model.safetensors",
|
||||||
|
"checkpoint_name": "Model Display Name",
|
||||||
|
"base_positive": "anime",
|
||||||
|
"base_negative": "text, logo",
|
||||||
|
"steps": 25,
|
||||||
|
"cfg": 5,
|
||||||
|
"sampler_name": "euler_ancestral",
|
||||||
|
"scheduler": "normal",
|
||||||
|
"vae": "integrated"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
Checkpoint JSONs are keyed by `checkpoint_path`. If no JSON exists for a discovered model file, `_default_checkpoint_data()` provides defaults.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## URL Routes
|
||||||
|
|
||||||
|
### Characters
|
||||||
|
- `GET /` — character gallery (index)
|
||||||
|
- `GET /character/<slug>` — character detail with generation UI
|
||||||
|
- `POST /character/<slug>/generate` — queue generation (AJAX or form); returns `{"job_id": ...}`
|
||||||
|
- `POST /character/<slug>/replace_cover_from_preview` — promote preview to cover
|
||||||
|
- `GET/POST /character/<slug>/edit` — edit character data
|
||||||
|
- `POST /character/<slug>/upload` — upload cover image
|
||||||
|
- `POST /character/<slug>/save_defaults` — save default field selection
|
||||||
|
- `POST /character/<slug>/outfit/switch|add|delete|rename` — manage per-character wardrobe outfits
|
||||||
|
- `GET/POST /create` — create new character (blank or LLM-generated)
|
||||||
|
- `POST /rescan` — sync DB from JSON files
|
||||||
|
|
||||||
|
### Category Pattern (Outfits, Actions, Styles, Scenes, Detailers)
|
||||||
|
Each category follows the same URL pattern:
|
||||||
|
- `GET /<category>/` — gallery
|
||||||
|
- `GET /<category>/<slug>` — detail + generation UI
|
||||||
|
- `POST /<category>/<slug>/generate` — queue generation; returns `{"job_id": ...}`
|
||||||
|
- `POST /<category>/<slug>/replace_cover_from_preview`
|
||||||
|
- `GET/POST /<category>/<slug>/edit`
|
||||||
|
- `POST /<category>/<slug>/upload`
|
||||||
|
- `POST /<category>/<slug>/save_defaults`
|
||||||
|
- `POST /<category>/<slug>/clone` — duplicate entry
|
||||||
|
- `POST /<category>/<slug>/save_json` — save raw JSON (from modal editor)
|
||||||
|
- `POST /<category>/rescan`
|
||||||
|
- `POST /<category>/bulk_create` — LLM-generate entries from LoRA files on disk
|
||||||
|
|
||||||
|
### Looks
|
||||||
|
- `GET /looks` — gallery
|
||||||
|
- `GET /look/<slug>` — detail
|
||||||
|
- `GET/POST /look/<slug>/edit`
|
||||||
|
- `POST /look/<slug>/generate` — queue generation; returns `{"job_id": ...}`
|
||||||
|
- `POST /look/<slug>/replace_cover_from_preview`
|
||||||
|
- `GET/POST /look/create`
|
||||||
|
- `POST /looks/rescan`
|
||||||
|
|
||||||
|
### Generator (Mix & Match)
|
||||||
|
- `GET/POST /generator` — freeform generator with multi-select accordion UI
|
||||||
|
- `POST /generator/preview_prompt` — AJAX: preview composed prompt without generating
|
||||||
|
|
||||||
|
### Checkpoints
|
||||||
|
- `GET /checkpoints` — gallery
|
||||||
|
- `GET /checkpoint/<slug>` — detail + generation settings editor
|
||||||
|
- `POST /checkpoint/<slug>/save_json`
|
||||||
|
- `POST /checkpoints/rescan`
|
||||||
|
|
||||||
|
### Job Queue API
|
||||||
|
All generation routes use the background job queue. Frontend polls:
|
||||||
|
- `GET /api/queue/<job_id>/status` — returns `{"status": "pending"|"running"|"done"|"failed", "result": {...}}`
|
||||||
|
|
||||||
|
Image retrieval is handled server-side by the `_make_finalize()` callback; there are no separate client-facing finalize routes.
|
||||||
|
|
||||||
|
### Utilities
|
||||||
|
- `POST /set_default_checkpoint` — save default checkpoint to session and persist to `comfy_workflow.json`
|
||||||
|
- `GET /get_missing_{characters,outfits,actions,scenes,styles,detailers,looks,checkpoints}` — AJAX: list items without cover images (sorted by display name)
|
||||||
|
- `POST /generate_missing` — batch generate covers for all characters missing one (uses job queue)
|
||||||
|
- `POST /clear_all_covers` / `clear_all_{outfit,action,scene,style,detailer,look,checkpoint}_covers`
|
||||||
|
- `GET /gallery` — global image gallery browsing `static/uploads/`
|
||||||
|
- `GET/POST /settings` — LLM provider configuration
|
||||||
|
- `POST /resource/<category>/<slug>/delete` — soft (JSON only) or hard (JSON + safetensors) delete
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Frontend
|
||||||
|
|
||||||
|
- Bootstrap 5.3 (CDN). Custom styles in `static/style.css`.
|
||||||
|
- All templates extend `templates/layout.html`. The base layout provides:
|
||||||
|
- `{% block content %}` — main page content
|
||||||
|
- `{% block scripts %}` — additional JS at end of body
|
||||||
|
- Navbar with links to all sections
|
||||||
|
- Global default checkpoint selector (saves to session via AJAX)
|
||||||
|
- Resource delete modal (soft/hard) shared across gallery pages
|
||||||
|
- `initJsonEditor(saveUrl)` — shared JSON editor modal (simple form + raw textarea tabs)
|
||||||
|
- Context processors inject `all_checkpoints`, `default_checkpoint_path`, and `COMFYUI_WS_URL` into every template.
|
||||||
|
- **No `{% block head %}` exists** in layout.html — do not try to use it.
|
||||||
|
- Generation is async: JS submits the form via AJAX (`X-Requested-With: XMLHttpRequest`), receives a `{"job_id": ...}` response, then polls `/api/queue/<job_id>/status` every ~1.5 seconds until `status == "done"`. The server-side worker handles all ComfyUI polling and image saving via the `_make_finalize()` callback. There are no client-facing finalize HTTP routes.
|
||||||
|
- **Batch generation** (library pages): Uses a two-phase pattern:
|
||||||
|
1. **Queue phase**: All jobs are submitted upfront via sequential fetch calls, collecting job IDs
|
||||||
|
2. **Poll phase**: All jobs are polled concurrently via `Promise.all()`, updating UI as each completes
|
||||||
|
3. **Progress tracking**: Displays currently processing items in real-time using a `Set` to track active jobs
|
||||||
|
4. **Sorting**: All batch operations sort items by display `name` (not `filename`) for better UX
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## LLM Integration
|
||||||
|
|
||||||
|
### System Prompts
|
||||||
|
Text files in `data/prompts/` define JSON output schemas for LLM-generated entries:
|
||||||
|
- `character_system.txt` — character JSON schema
|
||||||
|
- `outfit_system.txt` — outfit JSON schema
|
||||||
|
- `action_system.txt`, `scene_system.txt`, `style_system.txt`, `detailer_system.txt`, `look_system.txt`, `checkpoint_system.txt`
|
||||||
|
|
||||||
|
Used by: character/outfit/action/scene/style create forms, and bulk_create routes.
|
||||||
|
|
||||||
|
### Danbooru MCP Tools
|
||||||
|
The LLM loop in `call_llm()` provides three tools via a Docker-based MCP server (`danbooru-mcp:latest`):
|
||||||
|
- `search_tags(query, limit, category)` — prefix search
|
||||||
|
- `validate_tags(tags)` — exact-match validation
|
||||||
|
- `suggest_tags(partial, limit, category)` — autocomplete
|
||||||
|
|
||||||
|
The LLM uses these to verify and discover correct Danbooru-compatible tags for prompts.
|
||||||
|
|
||||||
|
All system prompts (`character_system.txt`, `outfit_system.txt`, `action_system.txt`, `scene_system.txt`, `style_system.txt`, `detailer_system.txt`, `look_system.txt`, `checkpoint_system.txt`) instruct the LLM to use these tools before finalising any tag values. `checkpoint_system.txt` applies them specifically to the `base_positive` and `base_negative` fields.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## LoRA File Paths
|
||||||
|
|
||||||
|
LoRA filenames in JSON are stored as paths relative to ComfyUI's `models/lora/` root:
|
||||||
|
|
||||||
|
| Category | Path prefix | Example |
|
||||||
|
|----------|-------------|---------|
|
||||||
|
| Character / Look | `Illustrious/Looks/` | `Illustrious/Looks/tifa_v2.safetensors` |
|
||||||
|
| Outfit | `Illustrious/Clothing/` | `Illustrious/Clothing/maid.safetensors` |
|
||||||
|
| Action | `Illustrious/Poses/` | `Illustrious/Poses/sitting.safetensors` |
|
||||||
|
| Style | `Illustrious/Styles/` | `Illustrious/Styles/watercolor.safetensors` |
|
||||||
|
| Detailer | `Illustrious/Detailers/` | `Illustrious/Detailers/skin.safetensors` |
|
||||||
|
| Scene | `Illustrious/Backgrounds/` | `Illustrious/Backgrounds/beach.safetensors` |
|
||||||
|
|
||||||
|
Checkpoint paths: `Illustrious/<filename>.safetensors` or `Noob/<filename>.safetensors`.
|
||||||
|
|
||||||
|
Absolute paths on disk:
|
||||||
|
- Checkpoints: `/mnt/alexander/AITools/Image Models/Stable-diffusion/{Illustrious,Noob}/`
|
||||||
|
- LoRAs: `/mnt/alexander/AITools/Image Models/lora/Illustrious/{Looks,Clothing,Poses,Styles,Detailers,Backgrounds}/`
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Adding a New Category
|
||||||
|
|
||||||
|
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.
|
||||||
|
2. **Sync function** (`services/sync.py`): Add `sync_newcategory()` following the pattern of `sync_outfits()`.
|
||||||
|
3. **Data directory** (`app.py`): Add `app.config['NEWCATEGORY_DIR'] = 'data/newcategory'`.
|
||||||
|
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. **Route registration** (`routes/__init__.py`): Import and call `newcategory.register_routes(app)`.
|
||||||
|
6. **Templates**: Create `templates/newcategory/{index,detail,edit,create}.html` extending `layout.html`.
|
||||||
|
7. **Nav**: Add link to navbar in `templates/layout.html`.
|
||||||
|
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.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Session Keys
|
||||||
|
|
||||||
|
The Flask filesystem session stores:
|
||||||
|
- `default_checkpoint` — checkpoint_path string for the global default
|
||||||
|
- `prefs_{slug}` — selected_fields list for character detail page
|
||||||
|
- `preview_{slug}` — relative image path of last character preview
|
||||||
|
- `prefs_outfit_{slug}`, `preview_outfit_{slug}`, `char_outfit_{slug}` — outfit detail state
|
||||||
|
- `prefs_action_{slug}`, `preview_action_{slug}`, `char_action_{slug}` — action detail state
|
||||||
|
- `prefs_scene_{slug}`, `preview_scene_{slug}`, `char_scene_{slug}` — scene detail state
|
||||||
|
- `prefs_detailer_{slug}`, `preview_detailer_{slug}`, `char_detailer_{slug}`, `action_detailer_{slug}`, `extra_pos_detailer_{slug}`, `extra_neg_detailer_{slug}` — detailer detail state (selected fields, preview image, character, action LoRA, extra positive prompt, extra negative prompt)
|
||||||
|
- `prefs_style_{slug}`, `preview_style_{slug}`, `char_style_{slug}` — style detail state
|
||||||
|
- `prefs_look_{slug}`, `preview_look_{slug}` — look detail state
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Running the App
|
||||||
|
|
||||||
|
### Directly (development)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd /mnt/alexander/Projects/character-browser
|
||||||
|
source venv/bin/activate
|
||||||
|
python app.py
|
||||||
|
```
|
||||||
|
|
||||||
|
The app runs in debug mode on port 5000 by default. ComfyUI must be running at `http://127.0.0.1:8188`.
|
||||||
|
|
||||||
|
The DB is initialised and all sync functions are called inside `with app.app_context():` at the bottom of `app.py` before `app.run()`.
|
||||||
|
|
||||||
|
### Docker
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
The compose file (`docker-compose.yml`) runs two services:
|
||||||
|
- **`danbooru-mcp`** — built from `https://git.liveaodh.com/aodhan/danbooru-mcp.git`; the MCP tag-search container used by `call_llm()`.
|
||||||
|
- **`app`** — the Flask app, exposed on host port **5782** → container port 5000.
|
||||||
|
|
||||||
|
Key environment variables set by compose:
|
||||||
|
- `COMFYUI_URL=http://10.0.0.200:8188` — points at ComfyUI on the Docker host network.
|
||||||
|
- `SKIP_MCP_AUTOSTART=true` — disables the app's built-in danbooru-mcp launch logic (compose manages it).
|
||||||
|
|
||||||
|
Volumes mounted into the app container:
|
||||||
|
- `./data`, `./static/uploads`, `./instance`, `./flask_session` — persistent app data.
|
||||||
|
- `/Volumes/ImageModels:/ImageModels:ro` — model files for checkpoint/LoRA scanning (**requires Docker Desktop file sharing enabled for `/Volumes/ImageModels`**).
|
||||||
|
- `/var/run/docker.sock` — Docker socket so the app can exec danbooru-mcp tool containers.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Common Pitfalls
|
||||||
|
|
||||||
|
- **SQLAlchemy JSON mutation**: After modifying a JSON column dict in place, always call `flag_modified(obj, "data")` or the change won't be detected.
|
||||||
|
- **Dual write**: Every edit route writes back to both the DB (`db.session.commit()`) and the JSON file on disk. Both must be kept in sync.
|
||||||
|
- **Slug generation**: `re.sub(r'[^a-zA-Z0-9_]', '', id)` — note this removes hyphens and dots, not just replaces them. Character IDs like `yuna_(ff10)` become slug `yunaffx10`. This is intentional.
|
||||||
|
- **Checkpoint slugs use underscore replacement**: `re.sub(r'[^a-zA-Z0-9_]', '_', ...)` (replaces with `_`, not removes) to preserve readability in paths.
|
||||||
|
- **LoRA chaining**: If a LoRA node has no LoRA (name is empty/None), the node is skipped and `model_source`/`clip_source` pass through unchanged. Do not set the node inputs for skipped nodes.
|
||||||
|
- **AJAX detection**: `request.headers.get('X-Requested-With') == 'XMLHttpRequest'` determines whether to return JSON or redirect.
|
||||||
|
- **Session must be marked modified for JSON responses**: After setting session values in AJAX-responding routes, set `session.modified = True`.
|
||||||
|
- **Detailer `prompt` is a list**: The `prompt` field in detailer JSON is stored as a list of strings (e.g. `["detailed skin", "pores"]`), not a plain string. When merging into `tags` for `build_prompt`, use `extend` for lists and `append` for strings — never append the list object itself or `", ".join()` will fail on the nested list item.
|
||||||
|
- **`_make_finalize` action semantics**: Pass `action=None` when the route should always update the DB cover (e.g. batch generate, checkpoint generate). Pass `action=request.form.get('action')` for routes that support both "preview" (no DB update) and "replace" (update DB). The factory skips the DB write when `action` is truthy and not `"replace"`.
|
||||||
29
Dockerfile
Normal file
29
Dockerfile
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
FROM python:3.12-slim
|
||||||
|
|
||||||
|
# Install system deps: git (for danbooru-mcp repo clone) + docker CLI
|
||||||
|
RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||||
|
git \
|
||||||
|
curl \
|
||||||
|
ca-certificates \
|
||||||
|
&& install -m 0755 -d /etc/apt/keyrings \
|
||||||
|
&& curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc \
|
||||||
|
&& chmod a+r /etc/apt/keyrings/docker.asc \
|
||||||
|
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian $(. /etc/os-release && echo "$VERSION_CODENAME") stable" \
|
||||||
|
> /etc/apt/sources.list.d/docker.list \
|
||||||
|
&& apt-get update && apt-get install -y --no-install-recommends docker-ce-cli docker-compose-plugin \
|
||||||
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
|
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
COPY requirements.txt .
|
||||||
|
RUN pip install --no-cache-dir -r requirements.txt
|
||||||
|
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
# Writable dirs that will typically be bind-mounted at runtime
|
||||||
|
RUN mkdir -p static/uploads instance flask_session data/characters data/clothing \
|
||||||
|
data/actions data/styles data/scenes data/detailers data/checkpoints data/looks
|
||||||
|
|
||||||
|
EXPOSE 5000
|
||||||
|
|
||||||
|
CMD ["python", "app.py"]
|
||||||
61
README.md
61
README.md
@@ -5,16 +5,25 @@ A local web-based GUI for managing character profiles (JSON) and generating cons
|
|||||||
## Features
|
## Features
|
||||||
|
|
||||||
- **Character Gallery**: Automatically scans your `characters/` folder and builds a searchable, sortable database.
|
- **Character Gallery**: Automatically scans your `characters/` folder and builds a searchable, sortable database.
|
||||||
- **Granular Prompt Control**: Every field in your character JSON (Identity, Wardrobe, Styles) has a checkbox. You decide exactly what is sent to the AI.
|
- **Outfit Gallery**: Manage reusable outfit presets that can be applied to any character.
|
||||||
|
- **Actions Gallery**: A library of reusable poses and actions (e.g., "Belly Dancing", "Sword Fighting") that can be previewed on any character model.
|
||||||
|
- **Styles Gallery**: Manage art style / artist LoRA presets with AI-assisted bulk creation from your styles LoRA folder.
|
||||||
|
- **Scenes Gallery**: Background and environment LoRA presets, previewable with any character.
|
||||||
|
- **Detailers Gallery**: Detail enhancement LoRA presets for fine-tuning face, hands, and other features.
|
||||||
|
- **Checkpoints Gallery**: Browse all your installed SDXL checkpoints (Illustrious & Noob families). Stores per-checkpoint generation settings (steps, CFG, sampler, VAE, base prompts) via JSON files in `data/checkpoints/`. Supports AI-assisted metadata generation from accompanying HTML files.
|
||||||
|
- **AI-Powered Creation**: Create and populate gallery entries using AI to generate profiles from descriptions or LoRA HTML files, or manually create blank templates.
|
||||||
|
- **Character-Integrated Previews**: Standalone items (Outfits/Actions/Styles/Scenes/Detailers/Checkpoints) can be previewed directly on a specific character's model.
|
||||||
|
- **Granular Prompt Control**: Every field in your JSON models (Identity, Wardrobe, Styles, Action details) has a checkbox. You decide exactly what is sent to the AI.
|
||||||
- **ComfyUI Integration**:
|
- **ComfyUI Integration**:
|
||||||
- **SDXL Optimized**: Designed for high-quality SDXL workflows.
|
- **SDXL Optimized**: Designed for high-quality SDXL/Illustrious workflows.
|
||||||
- **Localized ADetailer**: Automated Face and Hand detailing with focused prompts (e.g., only eye color and expression are sent to the face detailer).
|
- **Localized ADetailer**: Automated Face and Hand detailing with focused prompts (e.g., only eye color and expression are sent to the face detailer).
|
||||||
- **LoRA Support**: Automatically detects and applies LoRAs specified in your character sheets.
|
- **Quad LoRA Chaining**: Chains up to four distinct LoRAs (Character + Outfit + Action + Style/Detailer/Scene) sequentially in the generation workflow.
|
||||||
|
- **Per-Checkpoint Settings**: Steps, CFG, sampler name, VAE, and base prompts are applied automatically from each checkpoint's JSON profile.
|
||||||
- **Real-time Progress**: Live progress bars and queue status via WebSockets (with a reliable polling fallback).
|
- **Real-time Progress**: Live progress bars and queue status via WebSockets (with a reliable polling fallback).
|
||||||
- **Batch Processing**:
|
- **Batch Processing**:
|
||||||
- **Fill Missing**: Generate covers for every character missing one with a single click.
|
- **Fill Missing**: Generate covers for every item missing one with a single click, across all galleries.
|
||||||
- **Refresh All**: Unassign all current covers and generate a fresh set for the whole collection.
|
- **Bulk Create from LoRAs/Checkpoints**: Auto-generate JSON metadata for entire directories using an LLM.
|
||||||
- **Advanced Generator**: A dedicated page to mix-and-match characters with different checkpoints (Illustrious/Noob support) and custom prompt additions.
|
- **Advanced Generator**: A dedicated mix-and-match page combining any character, outfit, action, style, scene, and detailer in a single generation.
|
||||||
- **Smart URLs**: Sanitized, human-readable URLs (slugs) that handle special characters and slashes gracefully.
|
- **Smart URLs**: Sanitized, human-readable URLs (slugs) that handle special characters and slashes gracefully.
|
||||||
|
|
||||||
## Prerequisites
|
## Prerequisites
|
||||||
@@ -30,6 +39,20 @@ A local web-based GUI for managing character profiles (JSON) and generating cons
|
|||||||
|
|
||||||
## Setup & Installation
|
## Setup & Installation
|
||||||
|
|
||||||
|
### Option A — Docker (recommended)
|
||||||
|
|
||||||
|
1. **Clone the repository.**
|
||||||
|
2. Edit `docker-compose.yml` if needed:
|
||||||
|
- Set `COMFYUI_URL` to your ComfyUI host/port.
|
||||||
|
- Adjust the `/Volumes/ImageModels` volume path to your model directory. If you're on Docker Desktop, add the path under **Settings → Resources → File Sharing** first.
|
||||||
|
3. **Start services:**
|
||||||
|
```bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
The app will be available at `http://localhost:5782`.
|
||||||
|
|
||||||
|
### Option B — Local (development)
|
||||||
|
|
||||||
1. **Clone the repository** to your local machine.
|
1. **Clone the repository** to your local machine.
|
||||||
2. **Configure Paths**: Open `app.py` and update the following variables to match your system:
|
2. **Configure Paths**: Open `app.py` and update the following variables to match your system:
|
||||||
```python
|
```python
|
||||||
@@ -45,13 +68,18 @@ A local web-based GUI for managing character profiles (JSON) and generating cons
|
|||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
|
### Creating Content
|
||||||
|
- **AI Generation**: Toggle "Use AI to generate profile from description" on, then describe your character, outfit, or action. The AI will generate a complete profile with appropriate tags.
|
||||||
|
- **Manual Creation**: Toggle AI generation off to create a blank template you can edit yourself.
|
||||||
|
- **Auto-naming**: Leave the filename field empty to auto-generate one from the name. If a file already exists, a number will be appended automatically.
|
||||||
|
|
||||||
### Gallery Management
|
### Gallery Management
|
||||||
- **Rescan**: Use the "Rescan Character Files" button if you've added new JSON files or manually edited them.
|
- **Rescan**: Use the "Rescan" buttons if you've added new JSON files or manually edited them.
|
||||||
- **Save Defaults**: On a character page, select your favorite prompt combination and click "Save as Default Selection" to remember it for future quick generations.
|
- **Save Defaults**: On any detail page, select your favorite prompt combination and click "Save as Default Selection" to remember it for future generations.
|
||||||
|
|
||||||
### Generation
|
### Generation
|
||||||
- **Preview**: Generates an image and shows it to you without replacing your current cover.
|
- **Preview**: Generates an image and shows it to you without replacing your current cover.
|
||||||
- **Replace**: Generates an image and sets it as the character's official gallery cover.
|
- **Replace**: Generates an image and sets it as the item's official gallery cover.
|
||||||
- **Clean Start**: If you want to wipe the database and all generated images to start fresh:
|
- **Clean Start**: If you want to wipe the database and all generated images to start fresh:
|
||||||
```bash
|
```bash
|
||||||
./launch.sh --clean
|
./launch.sh --clean
|
||||||
@@ -59,9 +87,16 @@ A local web-based GUI for managing character profiles (JSON) and generating cons
|
|||||||
|
|
||||||
## File Structure
|
## File Structure
|
||||||
|
|
||||||
- `/characters`: Your character JSON files.
|
- `/data/characters`: Character JSON files.
|
||||||
- `/static/uploads`: Generated images (organized by character subfolders).
|
- `/data/clothing`: Outfit preset JSON files.
|
||||||
- `/templates`: HTML UI using Bootstrap 5.
|
- `/data/actions`: Action/Pose preset JSON files.
|
||||||
|
- `/data/styles`: Art style / artist LoRA JSON files.
|
||||||
|
- `/data/scenes`: Scene/background LoRA JSON files.
|
||||||
|
- `/data/detailers`: Detailer LoRA JSON files.
|
||||||
|
- `/data/checkpoints`: Per-checkpoint metadata JSON files (steps, CFG, sampler, VAE, base prompts).
|
||||||
|
- `/data/prompts`: LLM system prompts used by the AI-assisted bulk creation features.
|
||||||
|
- `/static/uploads`: Generated images (organized by subfolders).
|
||||||
- `app.py`: Flask backend and prompt-building logic.
|
- `app.py`: Flask backend and prompt-building logic.
|
||||||
- `comfy_workflow.json`: The API-format workflow used for generations.
|
- `comfy_workflow.json`: The API-format workflow used for generations.
|
||||||
- `models.py`: SQLite database schema.
|
- `models.py`: SQLAlchemy database models.
|
||||||
|
- `DEVELOPMENT_GUIDE.md`: Architectural patterns for extending the browser.
|
||||||
|
|||||||
@@ -1,53 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "aerith_gainsborough",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, slender build, fair skin",
|
|
||||||
"hair": "long brown hair, braided, ",
|
|
||||||
"eyes": "green eyes",
|
|
||||||
"hands": "pink nails",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "small breasts",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": "pink hair ribbon"
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "",
|
|
||||||
"top": "pink dress, red bolero jacket",
|
|
||||||
"legwear": "long pink dress",
|
|
||||||
"footwear": "brown boots",
|
|
||||||
"hands": "",
|
|
||||||
"accessories": "gold bracelets, flower basket"
|
|
||||||
},
|
|
||||||
"red_dress": {
|
|
||||||
"headwear": "red hair ribbons",
|
|
||||||
"top": "long dress, frilled dress, red dress",
|
|
||||||
"legwear": "long dress, frilled dress, red dress",
|
|
||||||
"footwear": "white high heels",
|
|
||||||
"hands": "red nails",
|
|
||||||
"accessories": "gold bracelets"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "floral, gentle, final fantasy style",
|
|
||||||
"primary_color": "pink",
|
|
||||||
"secondary_color": "red",
|
|
||||||
"tertiary_color": "brown"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "Illustrious/Looks/Aerith.safetensors",
|
|
||||||
"lora_weight": 1.0,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"Final Fantasy VII"
|
|
||||||
],
|
|
||||||
"character_name": "Aerith Gainsborough"
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "android_18",
|
|
||||||
"character_name": "Android 18",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, slender build, fair skin",
|
|
||||||
"hair": "shoulder-length blonde hair, tucked behind one ear",
|
|
||||||
"eyes": "blue eyes",
|
|
||||||
"hands": "blue nails",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "medium breasts",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": ""
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "black long sleeved shirt, striped sleeves",
|
|
||||||
"top": "blue denim vest,",
|
|
||||||
"legwear": "blue denim skirt, black stockings",
|
|
||||||
"footwear": "brown boots",
|
|
||||||
"hands": "",
|
|
||||||
"accessories": "gold hoop earrings"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "wasteland, mountains, anime, dragon ball style",
|
|
||||||
"primary_color": "blue",
|
|
||||||
"secondary_color": "black",
|
|
||||||
"tertiary_color": "white"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "",
|
|
||||||
"lora_weight": 1.0,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"Dragon Ball Z"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "biwa_hayahide_(Umamusume)",
|
|
||||||
"character_name": "Biwa Hayahide",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, horse ears, horse tail, tall",
|
|
||||||
"hair": "long grey hair, wild hair",
|
|
||||||
"eyes": "purple eyes, red framed glasses",
|
|
||||||
"hands": "",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "large breasts",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": ""
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "white shirt",
|
|
||||||
"top": "tracen school uniform",
|
|
||||||
"legwear": "pleated skirt",
|
|
||||||
"footwear": "heeled shoes",
|
|
||||||
"hands": "",
|
|
||||||
"accessories": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "library,intellectual,",
|
|
||||||
"primary_color": "maroon",
|
|
||||||
"secondary_color": "white",
|
|
||||||
"tertiary_color": "grey"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "",
|
|
||||||
"lora_weight": 1.0,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"Umamusume"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "camilla_(fire_emblem)",
|
|
||||||
"character_name": "Camilla Nohr",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, curvaceous build, fair skin",
|
|
||||||
"hair": "long wavy lavender hair, hair covering one eye",
|
|
||||||
"eyes": "purple eyes",
|
|
||||||
"hands": "purple nails",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "large breasts",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": "black headband with horns"
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "",
|
|
||||||
"top": "black armor, cleavage",
|
|
||||||
"legwear": "black leggings, armored plates",
|
|
||||||
"footwear": "black armored boots",
|
|
||||||
"hands": "",
|
|
||||||
"accessories": "purple cape, large axe"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "dark fantasy, gothic, fire emblem style",
|
|
||||||
"primary_color": "black",
|
|
||||||
"secondary_color": "gold",
|
|
||||||
"tertiary_color": "purple"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "",
|
|
||||||
"lora_weight": 1.0,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"Fire Emblem"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "chun_li",
|
|
||||||
"character_name": "Chun-Li",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, muscular build, fair skin, asian",
|
|
||||||
"hair": "black hair, hair buns",
|
|
||||||
"eyes": "brown eyes",
|
|
||||||
"hands": "blue nails",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "medium breasts",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "thick thighs",
|
|
||||||
"feet": "",
|
|
||||||
"extra": ""
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "",
|
|
||||||
"top": "blue qipao, gold embroidery, white accents, puffy shoulders",
|
|
||||||
"legwear": "brown tights",
|
|
||||||
"footwear": "white lace-up boots",
|
|
||||||
"hands": "",
|
|
||||||
"accessories": "white hair ribbons, spiked bracelets"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "chinese style, market,",
|
|
||||||
"primary_color": "blue",
|
|
||||||
"secondary_color": "white",
|
|
||||||
"tertiary_color": "gold"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "",
|
|
||||||
"lora_weight": 1.0,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"Street Fighter"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "ciri",
|
|
||||||
"character_name": "Ciri",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, athletic build",
|
|
||||||
"hair": "ashen grey hair, messy bun",
|
|
||||||
"eyes": "emerald green eyes, mascara",
|
|
||||||
"hands": "green nails",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "medium breasts",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": "scar over eye"
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "white blouse",
|
|
||||||
"top": "",
|
|
||||||
"legwear": "brown leather trousers",
|
|
||||||
"footwear": "brown leather boots",
|
|
||||||
"hands": "brown leather gloves",
|
|
||||||
"accessories": "silver sword on back, witcher medallion"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "gritty, fantasy, witcher style",
|
|
||||||
"primary_color": "white",
|
|
||||||
"secondary_color": "brown",
|
|
||||||
"tertiary_color": "silver"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "",
|
|
||||||
"lora_weight": 1.0,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"The Witcher 3"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "delinquent_mother_flim13",
|
|
||||||
"character_name": "Delinquent Mother",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, milf, gyaru, tall",
|
|
||||||
"hair": "blonde hair, long hair",
|
|
||||||
"eyes": "sharp eyes, black eyes, white pupil,",
|
|
||||||
"hands": "painted nails",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "very large breasts",
|
|
||||||
"pelvis": "wide hips",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "painted nails",
|
|
||||||
"extra": ""
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "cleavage",
|
|
||||||
"top": "light brown sweater, ",
|
|
||||||
"legwear": "black skirt",
|
|
||||||
"footwear": "red high heels",
|
|
||||||
"hands": "",
|
|
||||||
"accessories": "necklace, rings"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "living room",
|
|
||||||
"primary_color": "pink",
|
|
||||||
"secondary_color": "black",
|
|
||||||
"tertiary_color": "gold"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "Illustrious/Looks/Gyaru_mom_Flim13_IL_V1.safetensors",
|
|
||||||
"lora_weight": 0.8,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"Original",
|
|
||||||
"flim13"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "gold_city_(Umamusume)",
|
|
||||||
"character_name": "Gold City",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, horse ears, horse tail, tall",
|
|
||||||
"hair": "blonde hair, wavy hair",
|
|
||||||
"eyes": "blue eyes",
|
|
||||||
"hands": "",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "medium breasts",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": ""
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "white shirt",
|
|
||||||
"top": "tracen school uniform",
|
|
||||||
"legwear": "pleated skirt",
|
|
||||||
"footwear": "heeled shoes",
|
|
||||||
"hands": "",
|
|
||||||
"accessories": "choker, earrings"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "shopping,modeling,school yard",
|
|
||||||
"primary_color": "gold",
|
|
||||||
"secondary_color": "white",
|
|
||||||
"tertiary_color": "black"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "",
|
|
||||||
"lora_weight": 1.0,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"Umamusume"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "gold_ship_(Umamusume)",
|
|
||||||
"character_name": "Gold Ship",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, horse ears, horse tail, tall",
|
|
||||||
"hair": "grey hair, short hair",
|
|
||||||
"eyes": "red eyes",
|
|
||||||
"hands": "",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "medium breasts",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": ""
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "white shirt",
|
|
||||||
"top": "tracen school uniform",
|
|
||||||
"legwear": "pleated skirt",
|
|
||||||
"footwear": "heeled shoes",
|
|
||||||
"hands": "",
|
|
||||||
"accessories": "ear covers, hat"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "horse race track,energetic, sporty",
|
|
||||||
"primary_color": "red",
|
|
||||||
"secondary_color": "white",
|
|
||||||
"tertiary_color": "gold"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "",
|
|
||||||
"lora_weight": 1.0,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"Umamusume"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,47 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "jasmine_disney",
|
|
||||||
"character_name": "Jasmine",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, dark skin, ",
|
|
||||||
"hair": "black hair, long hair, voluminous hair, banded hair, sectioned hair",
|
|
||||||
"eyes": "brown eyes, ",
|
|
||||||
"hands": "teal nails",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "medium breasts",
|
|
||||||
"pelvis": "narrow waist",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": "heavy eyeliner, winged eyeliner"
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "teal crop top, tube top, off-shoulder, cleavage",
|
|
||||||
"top": "",
|
|
||||||
"legwear": "teal harem pants, baggy pants, sheer fabric",
|
|
||||||
"footwear": "gold shoes, curling toes, pointed shoes",
|
|
||||||
"hands": "",
|
|
||||||
"accessories": "gold hoop earrings, large gold necklace, blue headband, jewel on headband"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "desert palace, large fountain, arabian, disney, cartoon, vibrant, ferns",
|
|
||||||
"primary_color": "teal",
|
|
||||||
"secondary_color": "gold",
|
|
||||||
"tertiary_color": "black"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "Illustrious/Looks/Jasmine-IL_V2.safetensors",
|
|
||||||
"lora_weight": 0.8,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"Aladdin",
|
|
||||||
"princess",
|
|
||||||
"disney"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "jinx_(league_of_legends)",
|
|
||||||
"character_name": "Jinx",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, slender build, pale skin,",
|
|
||||||
"hair": "long aqua hair, twin braids, very long hair, bangs",
|
|
||||||
"eyes": "pink eyes, ",
|
|
||||||
"hands": "black and pink nails",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "flat chest,",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": "cloud tattoo,"
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "",
|
|
||||||
"top": "pink and black bikini, asymmetrical_bikini ",
|
|
||||||
"legwear": "pink shorts, single pink stocking",
|
|
||||||
"footwear": "combat boots",
|
|
||||||
"hands": "black fingerless gloves, fishnet elbow gloves,",
|
|
||||||
"accessories": "ammo belts, choker, bullet necklace,"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "punk, chaotic,",
|
|
||||||
"primary_color": "pink",
|
|
||||||
"secondary_color": "black",
|
|
||||||
"tertiary_color": "aqua"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "Illustrious/Looks/jinx_default_lol-000021.safetensors",
|
|
||||||
"lora_weight": 0.8,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"League of Legends"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "komi_shouko",
|
|
||||||
"character_name": "Komi Shouko",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, slender build, pale skin, asian",
|
|
||||||
"hair": "long dark purple hair, hime cut,",
|
|
||||||
"eyes": "dark purple eyes,",
|
|
||||||
"hands": "",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "medium breasts",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "black pantyhose",
|
|
||||||
"feet": "",
|
|
||||||
"extra": ""
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "white shirt",
|
|
||||||
"top": "itan private high school uniform, blazer, striped bow tie",
|
|
||||||
"legwear": "plaid skirt",
|
|
||||||
"footwear": "loafers",
|
|
||||||
"hands": "",
|
|
||||||
"accessories": ""
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "blackboard,anime, manga, clean lines",
|
|
||||||
"primary_color": "purple",
|
|
||||||
"secondary_color": "magenta",
|
|
||||||
"tertiary_color": "white"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "",
|
|
||||||
"lora_weight": 0.8,
|
|
||||||
"lora_triggers": "komi shouko, itan private high school uniform"
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"Komi Can't Communicate"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "marin_kitagawa",
|
|
||||||
"character_name": "Marin Kitagawa",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, slender build, fair skin, asian",
|
|
||||||
"hair": "long blonde hair, pink tips",
|
|
||||||
"eyes": "pink eyes (contacts)",
|
|
||||||
"hands": "long pink nails",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "medium breasts",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": "piercings"
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "black bikini with yellow flower print",
|
|
||||||
"top": "white school shirt, loosely tied blue tie",
|
|
||||||
"legwear": "blue plaid miniskirt",
|
|
||||||
"footwear": "black loafers, black socks",
|
|
||||||
"hands": "",
|
|
||||||
"accessories": "choker, colored bracelets"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "gyaru, modern, anime style, sewing machine",
|
|
||||||
"primary_color": "white",
|
|
||||||
"secondary_color": "blue",
|
|
||||||
"tertiary_color": "pink"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "",
|
|
||||||
"lora_weight": 1.0,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"My Dress-Up Darling"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "princess_peach",
|
|
||||||
"character_name": "Princess Peach",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, slender build, fair skin",
|
|
||||||
"hair": "long blonde hair, voluminous, crown",
|
|
||||||
"eyes": "blue eyes, long eyelashes",
|
|
||||||
"hands": "",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "medium breasts",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": "pink lips, blue earrings"
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "white petticoat",
|
|
||||||
"top": "pink floor-length ball gown, puffy sleeves, dark pink panniers",
|
|
||||||
"legwear": "long skirt",
|
|
||||||
"footwear": "red high heels",
|
|
||||||
"hands": "white opera gloves",
|
|
||||||
"accessories": "gold crown with red and blue jewels, blue brooch"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "royal, whimsical, nintendo style",
|
|
||||||
"primary_color": "pink",
|
|
||||||
"secondary_color": "gold",
|
|
||||||
"tertiary_color": "blue"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "Illustrious/Looks/Princess_Peach_Shiny_Style_V4.0_Illustrious_1652958.safetensors",
|
|
||||||
"lora_weight": 0.8,
|
|
||||||
"lora_triggers": "princess peach, crown, pink dress, shiny skin, royal elegance"
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"Super Mario"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "rosalina",
|
|
||||||
"character_name": "Rosalina",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, tall, slender build, fair skin",
|
|
||||||
"hair": "long platinum blonde hair, side-swept bangs covering one eye",
|
|
||||||
"eyes": "light blue eyes",
|
|
||||||
"hands": "turquoise nails",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "medium breasts",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": "star-shaped earrings"
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "",
|
|
||||||
"top": "turquoise off-the-shoulder gown, silver trim",
|
|
||||||
"legwear": "long skirt",
|
|
||||||
"footwear": "silver high heels",
|
|
||||||
"hands": "",
|
|
||||||
"accessories": "silver crown with blue jewels, star wand, luma"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "celestial, elegant, mario style, stars, night,",
|
|
||||||
"primary_color": "turquoise",
|
|
||||||
"secondary_color": "silver",
|
|
||||||
"tertiary_color": "yellow"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "",
|
|
||||||
"lora_weight": 1.0,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"Super Mario"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "ryouko_(tenchi_muyou!)",
|
|
||||||
"character_name": "Ryouko Hakubi",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, slim build,",
|
|
||||||
"hair": "long teal hair, spiky, voluminous",
|
|
||||||
"eyes": "golden eyes, cat-like pupils",
|
|
||||||
"hands": "",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "medium breasts",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": "red gem on forehead,"
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "long white dress, plunging neckline, black belt",
|
|
||||||
"top": "black and orange long sleeve jacket with purple trim,",
|
|
||||||
"legwear": "side_slit,, red trousers",
|
|
||||||
"footwear": "",
|
|
||||||
"hands": "red gloves",
|
|
||||||
"accessories": "red gems, wristbands"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "90s anime, sci-fi",
|
|
||||||
"primary_color": "teal",
|
|
||||||
"secondary_color": "white",
|
|
||||||
"tertiary_color": "red"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "",
|
|
||||||
"lora_weight": 0.8,
|
|
||||||
"lora_triggers": "ryouko hakubi, space pirate"
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"Tenchi Muyou!",
|
|
||||||
"Tenchi Muyo!"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "sarah_miller_(the_last_of_us)",
|
|
||||||
"character_name": "Sarah Miller",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, loli, small build",
|
|
||||||
"hair": "blonde hair, short hair",
|
|
||||||
"eyes": "blue eyes",
|
|
||||||
"hands": "",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "flat chest",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": ""
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "grey t-shirt, white shirt",
|
|
||||||
"top": "",
|
|
||||||
"legwear": "blue jeans",
|
|
||||||
"footwear": "sneakers",
|
|
||||||
"hands": "",
|
|
||||||
"accessories": "wristwatch"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "casual, 2013 fashion, living room",
|
|
||||||
"primary_color": "grey",
|
|
||||||
"secondary_color": "blue",
|
|
||||||
"tertiary_color": "white"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "Illustrious/Looks/Sarah_Miller_Illustrious.safetensors",
|
|
||||||
"lora_weight": 0.8,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"The Last of Us"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,51 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "scarlet_ff7",
|
|
||||||
"character_name": "Scarlet",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, mature female, voluptuous, ",
|
|
||||||
"hair": "blonde hair, wavy hair, short hair, swept back",
|
|
||||||
"eyes": "blue eyes, narrow eyes, eyeshadow",
|
|
||||||
"hands": "manicured nails, red nails",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "large breasts, cleavage",
|
|
||||||
"pelvis": "curvy, wide hips",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": "red lipstick, heavy makeup"
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "",
|
|
||||||
"top": "red dress, formal dress, pencil dress, sleeveless, chest cutout",
|
|
||||||
"legwear": "long skirt, high slit, side slit,black stockings",
|
|
||||||
"footwear": "high heels, red heels, stiletto heels",
|
|
||||||
"hands": "",
|
|
||||||
"accessories": "jewelry, gold earrings, necklace"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "corporate, sci-fi, low lighting",
|
|
||||||
"primary_color": "red",
|
|
||||||
"secondary_color": "gold",
|
|
||||||
"tertiary_color": "black"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "Illustrious/Looks/ffscarlet-illu-nvwls-v2.safetensors",
|
|
||||||
"lora_weight": 0.8,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"final fantasy vii",
|
|
||||||
"shinra",
|
|
||||||
"antagonist",
|
|
||||||
"milf",
|
|
||||||
"red dress",
|
|
||||||
"blonde hair",
|
|
||||||
"smirk"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "shantae",
|
|
||||||
"character_name": "Shantae",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, dark skin, pointy ears",
|
|
||||||
"hair": "purple hair, very long hair, ponytail",
|
|
||||||
"eyes": "blue eyes",
|
|
||||||
"hands": "",
|
|
||||||
"arms": "gold bracelets",
|
|
||||||
"torso": "small breasts, perky breasts",
|
|
||||||
"pelvis": "wide hips",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": ""
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "",
|
|
||||||
"top": "red bikini top, red harem pants, gold trim",
|
|
||||||
"legwear": "",
|
|
||||||
"footwear": "gold shoes",
|
|
||||||
"hands": "",
|
|
||||||
"accessories": "gold tiara, hoop earrings"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "genie, dancer, arabian",
|
|
||||||
"primary_color": "red",
|
|
||||||
"secondary_color": "gold",
|
|
||||||
"tertiary_color": "purple"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "",
|
|
||||||
"lora_weight": 1.0,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"Shantae"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "sucy_manbavaran",
|
|
||||||
"character_name": "Sucy Manbavaran",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, lanky build, pale skin",
|
|
||||||
"hair": "light purple hair, hair covering one eye",
|
|
||||||
"eyes": "red eyes",
|
|
||||||
"hands": "black nails",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "small breasts",
|
|
||||||
"pelvis": "narrow waist",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": "dark circles under eyes"
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "",
|
|
||||||
"top": "dark purple witch robes",
|
|
||||||
"legwear": "long skirt with frayed edges",
|
|
||||||
"footwear": "brown boots",
|
|
||||||
"hands": "",
|
|
||||||
"accessories": "pointed witch hat, potion bottle"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "mushroom, gothic, whimsical, little witch academia style",
|
|
||||||
"primary_color": "purple",
|
|
||||||
"secondary_color": "mauve",
|
|
||||||
"tertiary_color": "green"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "",
|
|
||||||
"lora_weight": 1.0,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"Little Witch Academia"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "tifa_lockhart",
|
|
||||||
"character_name": "Tifa Lockhart",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, athletic build, fair skin",
|
|
||||||
"hair": "long black hair, tied end",
|
|
||||||
"eyes": "red eyes",
|
|
||||||
"hands": "dark red nails",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "large breasts",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": ""
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "black sports bra",
|
|
||||||
"top": "white tank top, black suspenders",
|
|
||||||
"legwear": "black miniskirt",
|
|
||||||
"footwear": "red boots, thigh high black socks",
|
|
||||||
"hands": "red fingerless gloves",
|
|
||||||
"accessories": "silver earrings"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "martial arts, final fantasy style",
|
|
||||||
"primary_color": "white",
|
|
||||||
"secondary_color": "black",
|
|
||||||
"tertiary_color": "red"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "",
|
|
||||||
"lora_weight": 1.0,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"Final Fantasy VII"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "tracer",
|
|
||||||
"character_name": "Tracer",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, slender build, fair skin",
|
|
||||||
"hair": "short spiky brown hair",
|
|
||||||
"eyes": "brown eyes",
|
|
||||||
"hands": "",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "small breasts",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": "freckles"
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "orange leggings",
|
|
||||||
"top": "brown flight jacket, yellow vest",
|
|
||||||
"legwear": "orange leggings",
|
|
||||||
"footwear": "white and orange sneakers",
|
|
||||||
"hands": "",
|
|
||||||
"accessories": "chronal accelerator, yellow goggles"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "sci-fi, pilot, overwatch style",
|
|
||||||
"primary_color": "orange",
|
|
||||||
"secondary_color": "brown",
|
|
||||||
"tertiary_color": "white"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "",
|
|
||||||
"lora_weight": 1.0,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"Overwatch"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "widowmaker",
|
|
||||||
"character_name": "Widowmaker",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, slender build, blue skin",
|
|
||||||
"hair": "long purple hair, ponytail",
|
|
||||||
"eyes": "yellow eyes",
|
|
||||||
"hands": "",
|
|
||||||
"arms": "spider tattoo on arm",
|
|
||||||
"torso": "large breasts",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": ""
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "",
|
|
||||||
"top": "purple bodysuit, plunging neckline",
|
|
||||||
"legwear": "bodysuit",
|
|
||||||
"footwear": "purple high-heeled boots",
|
|
||||||
"hands": "purple gauntlets",
|
|
||||||
"accessories": "sniper rifle, visor"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "sci-fi, assassin, overwatch style",
|
|
||||||
"primary_color": "purple",
|
|
||||||
"secondary_color": "black",
|
|
||||||
"tertiary_color": "pink"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "",
|
|
||||||
"lora_weight": 1.0,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"Overwatch"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "yor_briar",
|
|
||||||
"character_name": "Yor Briar",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, slender build, fair skin",
|
|
||||||
"hair": "long black hair, styled with gold headband",
|
|
||||||
"eyes": "red eyes",
|
|
||||||
"hands": "black nails",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "medium breasts",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": ""
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "",
|
|
||||||
"top": "black backless halter dress, red rose pattern inside",
|
|
||||||
"legwear": "black thigh-high boots",
|
|
||||||
"footwear": "black boots",
|
|
||||||
"hands": "black fingerless gloves",
|
|
||||||
"accessories": "gold rose-themed headband, gold needle weapons"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "elegant, assassin, spy x family style",
|
|
||||||
"primary_color": "black",
|
|
||||||
"secondary_color": "red",
|
|
||||||
"tertiary_color": "gold"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "",
|
|
||||||
"lora_weight": 1.0,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"Spy x Family"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "yuffie_kisaragi",
|
|
||||||
"character_name": "Yuffie Kisaragi",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, slender build, fair skin",
|
|
||||||
"hair": "short black hair, bob cut",
|
|
||||||
"eyes": "brown eyes",
|
|
||||||
"hands": "",
|
|
||||||
"arms": "black sleeve on one arm",
|
|
||||||
"torso": "small breasts",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": "headband"
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "",
|
|
||||||
"top": "green turtleneck sweater vest, midriff",
|
|
||||||
"legwear": "beige shorts",
|
|
||||||
"footwear": "boots, socks",
|
|
||||||
"hands": "fingerless glove on one hand, large gauntlet on one arm",
|
|
||||||
"accessories": "shuriken"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "ninja, adventurer, final fantasy style",
|
|
||||||
"primary_color": "green",
|
|
||||||
"secondary_color": "beige",
|
|
||||||
"tertiary_color": "black"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "",
|
|
||||||
"lora_weight": 1.0,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"Final Fantasy VII"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,45 +0,0 @@
|
|||||||
{
|
|
||||||
"character_id": "yuna_(ff10)",
|
|
||||||
"character_name": "Yuna",
|
|
||||||
"identity": {
|
|
||||||
"base_specs": "1girl, slender, fair skin",
|
|
||||||
"hair": "short brown hair, bob cut",
|
|
||||||
"eyes": "heterochromia, blue eye, green eye",
|
|
||||||
"hands": "",
|
|
||||||
"arms": "",
|
|
||||||
"torso": "small breasts",
|
|
||||||
"pelvis": "",
|
|
||||||
"legs": "",
|
|
||||||
"feet": "",
|
|
||||||
"extra": ""
|
|
||||||
},
|
|
||||||
"defaults": {
|
|
||||||
"expression": "",
|
|
||||||
"pose": "",
|
|
||||||
"scene": ""
|
|
||||||
},
|
|
||||||
"wardrobe": {
|
|
||||||
"default": {
|
|
||||||
"headwear": "white kimono top, yellow obi",
|
|
||||||
"top": "",
|
|
||||||
"legwear": "long blue skirt, floral pattern",
|
|
||||||
"footwear": "boots",
|
|
||||||
"hands": "detached sleeves",
|
|
||||||
"accessories": "summoner staff, necklace"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"styles": {
|
|
||||||
"aesthetic": "sunset, pink sky, shrine maiden,fantasy, final fantasy x style",
|
|
||||||
"primary_color": "white",
|
|
||||||
"secondary_color": "blue",
|
|
||||||
"tertiary_color": "yellow"
|
|
||||||
},
|
|
||||||
"lora": {
|
|
||||||
"lora_name": "",
|
|
||||||
"lora_weight": 0.8,
|
|
||||||
"lora_triggers": ""
|
|
||||||
},
|
|
||||||
"tags": [
|
|
||||||
"Final Fantasy X"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
},
|
},
|
||||||
"4": {
|
"4": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"ckpt_name": "Noob/oneObsession_v19Atypical.safetensors"
|
"ckpt_name": ""
|
||||||
},
|
},
|
||||||
"class_type": "CheckpointLoaderSimple"
|
"class_type": "CheckpointLoaderSimple"
|
||||||
},
|
},
|
||||||
@@ -169,5 +169,45 @@
|
|||||||
"clip": ["4", 1]
|
"clip": ["4", 1]
|
||||||
},
|
},
|
||||||
"class_type": "LoraLoader"
|
"class_type": "LoraLoader"
|
||||||
|
},
|
||||||
|
"17": {
|
||||||
|
"inputs": {
|
||||||
|
"lora_name": "",
|
||||||
|
"strength_model": 0.8,
|
||||||
|
"strength_clip": 0.8,
|
||||||
|
"model": ["16", 0],
|
||||||
|
"clip": ["16", 1]
|
||||||
|
},
|
||||||
|
"class_type": "LoraLoader"
|
||||||
|
},
|
||||||
|
"18": {
|
||||||
|
"inputs": {
|
||||||
|
"lora_name": "",
|
||||||
|
"strength_model": 1.0,
|
||||||
|
"strength_clip": 1.0,
|
||||||
|
"model": ["17", 0],
|
||||||
|
"clip": ["17", 1]
|
||||||
|
},
|
||||||
|
"class_type": "LoraLoader"
|
||||||
|
},
|
||||||
|
"19": {
|
||||||
|
"inputs": {
|
||||||
|
"lora_name": "",
|
||||||
|
"strength_model": 1.0,
|
||||||
|
"strength_clip": 1.0,
|
||||||
|
"model": ["18", 0],
|
||||||
|
"clip": ["18", 1]
|
||||||
|
},
|
||||||
|
"class_type": "LoraLoader"
|
||||||
|
},
|
||||||
|
"20": {
|
||||||
|
"inputs": {
|
||||||
|
"lora_name": "",
|
||||||
|
"strength_model": 1.0,
|
||||||
|
"strength_clip": 1.0,
|
||||||
|
"model": ["19", 0],
|
||||||
|
"clip": ["19", 1]
|
||||||
|
},
|
||||||
|
"class_type": "LoraLoader"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
29
data/actions/3p_sex_000037.json
Normal file
29
data/actions/3p_sex_000037.json
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"action_id": "3p_sex_000037",
|
||||||
|
"action_name": "3P Sex 000037",
|
||||||
|
"action": {
|
||||||
|
"base": "threesome",
|
||||||
|
"head": "blush, half-closed_eyes",
|
||||||
|
"upper_body": "reaching, nude",
|
||||||
|
"lower_body": "sex, spread_legs",
|
||||||
|
"hands": "groping",
|
||||||
|
"feet": "toes_curled",
|
||||||
|
"additional": "sweat"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/3P_SEX-000037.safetensors",
|
||||||
|
"lora_weight": 0.8,
|
||||||
|
"lora_triggers": "threesome, group_sex",
|
||||||
|
"lora_weight_min": 0.8,
|
||||||
|
"lora_weight_max": 0.8
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"threesome",
|
||||||
|
"group_sex",
|
||||||
|
"nude",
|
||||||
|
"sex",
|
||||||
|
"blush",
|
||||||
|
"groping",
|
||||||
|
"sweat"
|
||||||
|
]
|
||||||
|
}
|
||||||
32
data/actions/4p_sex.json
Normal file
32
data/actions/4p_sex.json
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"action_id": "4p_sex",
|
||||||
|
"action_name": "4P Sex",
|
||||||
|
"action": {
|
||||||
|
"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., 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.",
|
||||||
|
"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.",
|
||||||
|
"feet": "Toes curled, dynamic positioning based on stance (kneeling or lying).",
|
||||||
|
"additional": "Sexual fluids, messy after-sex atmosphere, sweat, steaming body."
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/4P_sex.safetensors",
|
||||||
|
"lora_weight": 0.6,
|
||||||
|
"lora_triggers": "4P_sexV1",
|
||||||
|
"lora_weight_min": 0.6,
|
||||||
|
"lora_weight_max": 0.6
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"4P_sexV1",
|
||||||
|
"group sex",
|
||||||
|
"foursome",
|
||||||
|
"4P",
|
||||||
|
"double penetration",
|
||||||
|
"fellatio",
|
||||||
|
"all fours",
|
||||||
|
"uncensored",
|
||||||
|
"hetero",
|
||||||
|
"sex"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"action_id": "_malebolgia__oral_sex_tounge_afterimage_concept_2_0_illustrious",
|
||||||
|
"action_name": "Malebolgia Oral Sex Tounge Afterimage Concept 2 0 Illustrious",
|
||||||
|
"action": {
|
||||||
|
"base": "kneeling, leaning forward, engaged in oral activity",
|
||||||
|
"head": "facing target, mouth wide open, intense expression, looking up, half-closed",
|
||||||
|
"upper_body": "reaching forward, angled towards partner",
|
||||||
|
"lower_body": "stationary, kneeling on the floor",
|
||||||
|
"hands": "grasping partner's thighs or hips",
|
||||||
|
"feet": "tucked behind",
|
||||||
|
"additional": "afterimage, motion blur, multiple tongues, rapid tongue movement, speed lines, saliva trails"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "MF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/[Malebolgia] Oral Sex Tounge Afterimage Concept 2.0 Illustrious.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "[Malebolgia] Oral Sex Tounge Afterimage Concept 2.0 Illustrious",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"oral",
|
||||||
|
"rapid motion",
|
||||||
|
"tongue play",
|
||||||
|
"motion blur",
|
||||||
|
"surreal"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"action_id": "actually_reliable_penis_kissing_3_variants_illustrious",
|
||||||
|
"action_name": "Actually Reliable Penis Kissing 3 Variants Illustrious",
|
||||||
|
"action": {
|
||||||
|
"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, looking up at partner or closed in enjoyment, half-closed",
|
||||||
|
"upper_body": "reaching forward or resting on partner's legs, leaning forward, arched back",
|
||||||
|
"lower_body": "kneeling pose, hips pushed back, kneeling on the ground",
|
||||||
|
"hands": "gently holding the shaft, cupping testicles, or resting on partner's thighs",
|
||||||
|
"feet": "toes curled or flat",
|
||||||
|
"additional": "saliva connection, affectionate oral interaction, unsucked penis"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "MF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/Actually_Reliable_Penis_Kissing_3_Variants_Illustrious.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "Actually_Reliable_Penis_Kissing_3_Variants_Illustrious",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"penis kissing",
|
||||||
|
"fellatio",
|
||||||
|
"oral sex",
|
||||||
|
"kneeling",
|
||||||
|
"saliva",
|
||||||
|
"tongue",
|
||||||
|
"close-up"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"action_id": "after_sex_fellatio_illustriousxl_lora_nochekaiser_r1",
|
||||||
|
"action_name": "After Sex Fellatio Illustriousxl Lora Nochekaiser R1",
|
||||||
|
"action": {
|
||||||
|
"base": "completely_nude, lying, on_back, m_legs, spread_legs",
|
||||||
|
"head": "looking_at_viewer, tongue, open_mouth, blush, messing_hair, half-closed_eyes, blue_eyes",
|
||||||
|
"upper_body": "arms_at_sides, on_bed, large_breasts, nipples, sweat",
|
||||||
|
"lower_body": "pussy, cum_in_pussy, leaking_cum, m_legs, spread_legs, legs_up",
|
||||||
|
"hands": "on_bed, pressing_bed",
|
||||||
|
"feet": "barefoot, toes",
|
||||||
|
"additional": "after_sex, after_vaginal, fellatio, penis, cum, cumdrip, messy_body, bed_sheet"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/after-sex-fellatio-illustriousxl-lora-nochekaiser_r1.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "after sex fellatio",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"after_sex",
|
||||||
|
"after_vaginal",
|
||||||
|
"fellatio",
|
||||||
|
"cum_in_pussy",
|
||||||
|
"m_legs",
|
||||||
|
"lying",
|
||||||
|
"on_back",
|
||||||
|
"on_bed",
|
||||||
|
"cumdrip",
|
||||||
|
"completely_nude",
|
||||||
|
"nipples",
|
||||||
|
"tongue",
|
||||||
|
"penis",
|
||||||
|
"cum"
|
||||||
|
]
|
||||||
|
}
|
||||||
32
data/actions/afterfellatio_ill.json
Normal file
32
data/actions/afterfellatio_ill.json
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"action_id": "afterfellatio_ill",
|
||||||
|
"action_name": "Afterfellatio Ill",
|
||||||
|
"action": {
|
||||||
|
"base": "kneeling, leaning_forward, pov",
|
||||||
|
"head": "looking_at_viewer, blush, tilted_head, cum_on_face, half-closed_eyes, tears",
|
||||||
|
"upper_body": "arms_down, reaching_towards_viewer, leaning_forward",
|
||||||
|
"lower_body": "kneeling, kneeling",
|
||||||
|
"hands": "handjob, touching_penis",
|
||||||
|
"feet": "barefoot",
|
||||||
|
"additional": "cum_string, cum_in_mouth, closed_mouth"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/afterfellatio_ill.safetensors",
|
||||||
|
"lora_weight": 0.8,
|
||||||
|
"lora_triggers": "after fellatio, cum in mouth, closed mouth, cum string",
|
||||||
|
"lora_weight_min": 0.8,
|
||||||
|
"lora_weight_max": 0.8
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"after_fellatio",
|
||||||
|
"cum_in_mouth",
|
||||||
|
"cum_string",
|
||||||
|
"closed_mouth",
|
||||||
|
"blush",
|
||||||
|
"half-closed_eyes",
|
||||||
|
"looking_at_viewer",
|
||||||
|
"kneeling",
|
||||||
|
"pov",
|
||||||
|
"handjob"
|
||||||
|
]
|
||||||
|
}
|
||||||
32
data/actions/afteroral.json
Normal file
32
data/actions/afteroral.json
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"action_id": "afteroral",
|
||||||
|
"action_name": "Afteroral",
|
||||||
|
"action": {
|
||||||
|
"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., Half-closed or dazed expression, potentially with runny mascara or makeup.",
|
||||||
|
"upper_body": "Relaxed or wiping mouth., Heaving chest indicative of heavy breathing.",
|
||||||
|
"lower_body": "N/A (typically upper body focus), N/A",
|
||||||
|
"hands": "Resting or near face.",
|
||||||
|
"feet": "N/A",
|
||||||
|
"additional": "Presence of bodily fluids like saliva trails or excessive cum on face and messy makeup."
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/afteroral.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "after oral, after deepthroat",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"after_fellatio",
|
||||||
|
"runny_makeup",
|
||||||
|
"smeared_lipstick",
|
||||||
|
"saliva_trail",
|
||||||
|
"excessive_cum",
|
||||||
|
"messy_hair",
|
||||||
|
"heavy_breathing",
|
||||||
|
"cum_bubble",
|
||||||
|
"penis_on_face",
|
||||||
|
"sweat"
|
||||||
|
]
|
||||||
|
}
|
||||||
34
data/actions/afterpaizuri.json
Normal file
34
data/actions/afterpaizuri.json
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"action_id": "afterpaizuri",
|
||||||
|
"action_name": "Afterpaizuri",
|
||||||
|
"action": {
|
||||||
|
"base": "kneeling or sitting, displaying upper body aftermath, exhausted posture",
|
||||||
|
"head": "flushed face, messy hair, panting, mouth slightly open, tongue out, 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",
|
||||||
|
"lower_body": "hips settling back, kneeling posture, kneeling, thighs together or slightly spread",
|
||||||
|
"hands": "presenting breasts or cleaning face",
|
||||||
|
"feet": "tucked under buttocks or relaxed",
|
||||||
|
"additional": "semen on breasts, semen on face, heavy breathing, sweat, sticky fluids"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "F"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/afterpaizuri.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "afterpaizuri",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"after paizuri",
|
||||||
|
"semen on breasts",
|
||||||
|
"semen on face",
|
||||||
|
"messy",
|
||||||
|
"blush",
|
||||||
|
"dazed",
|
||||||
|
"sweat",
|
||||||
|
"disheveled"
|
||||||
|
]
|
||||||
|
}
|
||||||
40
data/actions/aftersexbreakv2.json
Normal file
40
data/actions/aftersexbreakv2.json
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
"action_id": "aftersexbreakv2",
|
||||||
|
"action_name": "Aftersexbreakv2",
|
||||||
|
"action": {
|
||||||
|
"base": "lying, on_back, on_bed, bowlegged_pose, spread_legs, twisted_torso",
|
||||||
|
"head": "messy_hair, head_back, sweaty_face, rolling_eyes, half-closed_eyes, ahegao",
|
||||||
|
"upper_body": "arms_spread, arms_above_head, sweat, nipples, collarbone, heavy_breathing",
|
||||||
|
"lower_body": "hips, navel, female_pubic_hair, spread_legs, legs_up, bent_legs",
|
||||||
|
"hands": "relaxed_hands",
|
||||||
|
"feet": "barefoot",
|
||||||
|
"additional": "condom_wrapper, used_tissue, stained_sheets, cum_pool, bead_of_sweat"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/AfterSexBreakV2.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "aftersexbreak, after sex, male sitting",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"after_sex",
|
||||||
|
"lying",
|
||||||
|
"on_back",
|
||||||
|
"on_bed",
|
||||||
|
"fucked_silly",
|
||||||
|
"spread_legs",
|
||||||
|
"bowlegged_pose",
|
||||||
|
"sweat",
|
||||||
|
"blush",
|
||||||
|
"messy_hair",
|
||||||
|
"heavy_breathing",
|
||||||
|
"rolling_eyes",
|
||||||
|
"ahegao",
|
||||||
|
"cum_pool",
|
||||||
|
"condom_wrapper",
|
||||||
|
"used_tissue",
|
||||||
|
"bed_sheet",
|
||||||
|
"stained_sheets"
|
||||||
|
]
|
||||||
|
}
|
||||||
32
data/actions/against_glass_bs.json
Normal file
32
data/actions/against_glass_bs.json
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"action_id": "against_glass_bs",
|
||||||
|
"action_name": "Against Glass Bs",
|
||||||
|
"action": {
|
||||||
|
"base": "leaning forward, body pressed directly against the viewing plane/glass surface",
|
||||||
|
"head": "face close to camera, breath fog on glass, cheek slightly pressed, looking directly at viewer, intimate gaze",
|
||||||
|
"upper_body": "reaching forward towards the viewer, chest squished against glass, leaning into the surface",
|
||||||
|
"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",
|
||||||
|
"feet": "planted firmly on the ground",
|
||||||
|
"additional": "transparent surface, condensation, distortion from glass, surface interaction"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "MF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/Against_glass_bs.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "Against_glass_bs",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"against glass",
|
||||||
|
"pressed against glass",
|
||||||
|
"palms on glass",
|
||||||
|
"view through glass",
|
||||||
|
"cheek press",
|
||||||
|
"distorted view"
|
||||||
|
]
|
||||||
|
}
|
||||||
32
data/actions/amateur_pov_filming.json
Normal file
32
data/actions/amateur_pov_filming.json
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"action_id": "amateur_pov_filming",
|
||||||
|
"action_name": "Amateur Pov Filming",
|
||||||
|
"action": {
|
||||||
|
"base": "selfie pose, standing or sitting, facing viewer or mirror",
|
||||||
|
"head": "looking_at_viewer, blush, maybe open mouth or shy expression, looking_at_viewer, contact with camera",
|
||||||
|
"upper_body": "raised to hold phone or camera, upper body in frame, breasts, nipples",
|
||||||
|
"lower_body": "hips visible if full body mirror selfie, standing or sitting",
|
||||||
|
"hands": "holding_phone, holding_id_card, or adjusting clothes",
|
||||||
|
"feet": "barefoot if visible",
|
||||||
|
"additional": "phone recording interface, smartphone, mirror, amateur aesthetic"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/Amateur_POV_Filming.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "Homemade_PornV1, recording, pov, prostitution",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"recording",
|
||||||
|
"pov",
|
||||||
|
"selfie",
|
||||||
|
"holding_phone",
|
||||||
|
"smartphone",
|
||||||
|
"mirror_selfie",
|
||||||
|
"holding_id_card",
|
||||||
|
"looking_at_viewer",
|
||||||
|
"prostitution",
|
||||||
|
"indoors"
|
||||||
|
]
|
||||||
|
}
|
||||||
28
data/actions/arch_back_sex_v1_1_illustriousxl.json
Normal file
28
data/actions/arch_back_sex_v1_1_illustriousxl.json
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"action_id": "arch_back_sex_v1_1_illustriousxl",
|
||||||
|
"action_name": "Arch Back Sex V1 1 Illustriousxl",
|
||||||
|
"action": {
|
||||||
|
"base": "doggystyle, sex_from_behind, all_fours",
|
||||||
|
"head": "head_back, looking_back, closed_eyes, blush",
|
||||||
|
"upper_body": "arms_support, arched_back",
|
||||||
|
"lower_body": "lifted_hip, kneeling, spread_legs",
|
||||||
|
"hands": "grabbing_another's_ass",
|
||||||
|
"feet": "toes",
|
||||||
|
"additional": "kiss, sweat, saliva, intense_pleasure"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/arch-back-sex-v1.1-illustriousxl.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "kiss, arched_back, sex_from_behind",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"hetero",
|
||||||
|
"sex",
|
||||||
|
"vaginal",
|
||||||
|
"penis",
|
||||||
|
"nude",
|
||||||
|
"indoors"
|
||||||
|
]
|
||||||
|
}
|
||||||
37
data/actions/arm_grab_missionary_ill_10.json
Normal file
37
data/actions/arm_grab_missionary_ill_10.json
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
{
|
||||||
|
"action_id": "arm_grab_missionary_ill_10",
|
||||||
|
"action_name": "Arm Grab Missionary Ill 10",
|
||||||
|
"action": {
|
||||||
|
"base": "missionary, lying, on_back, sex, vaginal",
|
||||||
|
"head": "expressive face, open mouth, one_eye_closed, blushing, looking_at_viewer (optional), dilated_pupils",
|
||||||
|
"upper_body": "arms_up, pinned, restrained, grabbed_wrists, breasts, nipples, medium_breasts",
|
||||||
|
"lower_body": "legs_spread, lifted_pelvis, spread_legs, legs_up, knees_up, straddling (if applicable)",
|
||||||
|
"hands": "interlocked_fingers, holding_hands",
|
||||||
|
"feet": "barefoot (implied)",
|
||||||
|
"additional": "faceless_male, male_focus, motion_lines, sweat"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/arm_grab_missionary_ill-10.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "arm_grab_missionary",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"missionary",
|
||||||
|
"spread_legs",
|
||||||
|
"interlocked_fingers",
|
||||||
|
"holding_hands",
|
||||||
|
"arms_up",
|
||||||
|
"pinned",
|
||||||
|
"lying",
|
||||||
|
"on_back",
|
||||||
|
"sex",
|
||||||
|
"vaginal",
|
||||||
|
"faceless_male",
|
||||||
|
"one_eye_closed",
|
||||||
|
"open_mouth",
|
||||||
|
"breasts",
|
||||||
|
"nipples"
|
||||||
|
]
|
||||||
|
}
|
||||||
29
data/actions/ballsdeep_il_v2_2_s.json
Normal file
29
data/actions/ballsdeep_il_v2_2_s.json
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"action_id": "ballsdeep_il_v2_2_s",
|
||||||
|
"action_name": "Ballsdeep Il V2 2 S",
|
||||||
|
"action": {
|
||||||
|
"base": "sexual intercourse, variable position (prone, girl on top, or from behind)",
|
||||||
|
"head": "expression of intensity or pleasure, often looking back or face down, rolled back or squeezed shut",
|
||||||
|
"upper_body": "grasping sheets or holding partner, arched or pressed against contrasting surface",
|
||||||
|
"lower_body": "hips pushed firmly against partner's hips, joined genitals, spread wide or wrapped around partner",
|
||||||
|
"hands": "clenched or grabbing",
|
||||||
|
"feet": "toes curled",
|
||||||
|
"additional": "deep penetration, testicles pressed flat against skin, stomach bulge visible"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/BallsDeep-IL-V2.2-S.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "deep penetration",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"deep_penetration",
|
||||||
|
"testicles",
|
||||||
|
"stomach_bulge",
|
||||||
|
"sex",
|
||||||
|
"anal",
|
||||||
|
"vaginal",
|
||||||
|
"gaping"
|
||||||
|
]
|
||||||
|
}
|
||||||
30
data/actions/bathingtogether.json
Normal file
30
data/actions/bathingtogether.json
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"action_id": "bathingtogether",
|
||||||
|
"action_name": "Bathingtogether",
|
||||||
|
"action": {
|
||||||
|
"base": "bathing, sitting, partially_submerged",
|
||||||
|
"head": "looking_at_viewer, facing_viewer, eye_contact",
|
||||||
|
"upper_body": "arms_resting, bare_shoulders",
|
||||||
|
"lower_body": "submerged, knees_up, submerged",
|
||||||
|
"hands": "resting",
|
||||||
|
"feet": "no_shoes",
|
||||||
|
"additional": "bathtub, steam, water, bubbles, wet"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/bathingtogether.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "bathing together",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"bathing",
|
||||||
|
"bathtub",
|
||||||
|
"partially_submerged",
|
||||||
|
"pov",
|
||||||
|
"looking_at_viewer",
|
||||||
|
"wet",
|
||||||
|
"steam",
|
||||||
|
"bare_shoulders"
|
||||||
|
]
|
||||||
|
}
|
||||||
32
data/actions/before_after_1230829.json
Normal file
32
data/actions/before_after_1230829.json
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"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_name": "Before After 1230829",
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/before_after_1230829.safetensors",
|
||||||
|
"lora_triggers": "before_after",
|
||||||
|
"lora_weight": 0.9,
|
||||||
|
"lora_weight_max": 0.7,
|
||||||
|
"lora_weight_min": 0.6
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"before_and_after",
|
||||||
|
"2koma",
|
||||||
|
"facial",
|
||||||
|
"bukkake",
|
||||||
|
"cum",
|
||||||
|
"cum_on_face",
|
||||||
|
"orgasm",
|
||||||
|
"heavy_breathing",
|
||||||
|
"upper_body",
|
||||||
|
"split_theme"
|
||||||
|
]
|
||||||
|
}
|
||||||
28
data/actions/belly_dancing.json
Normal file
28
data/actions/belly_dancing.json
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"action_id": "belly_dancing",
|
||||||
|
"action_name": "Belly Dancing",
|
||||||
|
"action": {
|
||||||
|
"base": "belly dancing, standing",
|
||||||
|
"head": "",
|
||||||
|
"upper_body": "hands above head",
|
||||||
|
"lower_body": "swaying hips",
|
||||||
|
"hands": "palms together",
|
||||||
|
"feet": "",
|
||||||
|
"additional": ""
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "false",
|
||||||
|
"orientation": "F"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"belly dancing",
|
||||||
|
"dance"
|
||||||
|
]
|
||||||
|
}
|
||||||
28
data/actions/bentback.json
Normal file
28
data/actions/bentback.json
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"action_id": "bentback",
|
||||||
|
"action_name": "Bentback",
|
||||||
|
"action": {
|
||||||
|
"base": "bent_over, leaning_forward, from_behind",
|
||||||
|
"head": "looking_at_viewer, looking_back, open_eyes",
|
||||||
|
"upper_body": "arms_at_sides, twisted_torso, arched_back",
|
||||||
|
"lower_body": "ass_focus, kneepits",
|
||||||
|
"hands": "hands_on_legs",
|
||||||
|
"feet": "barefoot",
|
||||||
|
"additional": "unnatural_body"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/BentBack.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "bentback, kneepits",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"bent_over",
|
||||||
|
"from_behind",
|
||||||
|
"looking_back",
|
||||||
|
"kneepits",
|
||||||
|
"twisted_torso",
|
||||||
|
"ass_focus"
|
||||||
|
]
|
||||||
|
}
|
||||||
31
data/actions/blowjobcomicpart2.json
Normal file
31
data/actions/blowjobcomicpart2.json
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"action_id": "blowjobcomicpart2",
|
||||||
|
"action_name": "Blowjobcomicpart2",
|
||||||
|
"action": {
|
||||||
|
"base": "3koma, comic layout, vertical panel sequence",
|
||||||
|
"head": "tongue_out, open mouth, saliva, empty_eyes, rolled eyes",
|
||||||
|
"upper_body": "arms_down or holding_head, visible torso",
|
||||||
|
"lower_body": "sexual_activity, kneeling or sitting",
|
||||||
|
"hands": "fingers_on_penis",
|
||||||
|
"feet": "out_of_frame",
|
||||||
|
"additional": "fellatio, irrumatio, licking_penis, ejaculation, excessive_cum"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/BlowjobComicPart2.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "bjmcut",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"3koma",
|
||||||
|
"comic",
|
||||||
|
"fellatio",
|
||||||
|
"irrumatio",
|
||||||
|
"licking_penis",
|
||||||
|
"ejaculation",
|
||||||
|
"excessive_cum",
|
||||||
|
"empty_eyes",
|
||||||
|
"tongue_out"
|
||||||
|
]
|
||||||
|
}
|
||||||
29
data/actions/bodybengirl.json
Normal file
29
data/actions/bodybengirl.json
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"action_id": "bodybengirl",
|
||||||
|
"action_name": "Bodybengirl",
|
||||||
|
"action": {
|
||||||
|
"base": "suspended_congress, lifting_person, dangling legs",
|
||||||
|
"head": "",
|
||||||
|
"upper_body": "dangling arms, torso_grab, bent_over",
|
||||||
|
"lower_body": "legs_hanging",
|
||||||
|
"hands": "",
|
||||||
|
"feet": "",
|
||||||
|
"additional": "1boy, 1girl, suspended, size difference, loli"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/BodyBenGirl.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "bentstand-behind",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"suspended_congress",
|
||||||
|
"torso_grab",
|
||||||
|
"bent_over",
|
||||||
|
"reaching",
|
||||||
|
"standing",
|
||||||
|
"1boy",
|
||||||
|
"1girl"
|
||||||
|
]
|
||||||
|
}
|
||||||
30
data/actions/bodybengirlpart2.json
Normal file
30
data/actions/bodybengirlpart2.json
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"action_id": "bodybengirlpart2",
|
||||||
|
"action_name": "Bodybengirlpart2",
|
||||||
|
"action": {
|
||||||
|
"base": "body suspended in mid-air, held by torso, bent over forward",
|
||||||
|
"head": "embarrassed, sweating, scared, open, looking away or down",
|
||||||
|
"upper_body": "arms hanging down, limp arms, arms at sides, torso grab, bent forward",
|
||||||
|
"lower_body": "hips raised if bent over, legs dangling, knees together, feet apart",
|
||||||
|
"hands": "hands open, limp",
|
||||||
|
"feet": "feet off ground, dangling",
|
||||||
|
"additional": "motion lines, sweat drops"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/BodyBenGirlPart2.safetensors",
|
||||||
|
"lora_weight": 0.9,
|
||||||
|
"lora_triggers": "bentstand-behind, dangling legs, dangling arms, from_side, arms hanging down, torso_grab, suspended",
|
||||||
|
"lora_weight_min": 0.9,
|
||||||
|
"lora_weight_max": 0.9
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"torso_grab",
|
||||||
|
"suspension",
|
||||||
|
"bent_over",
|
||||||
|
"knees_together_feet_apart",
|
||||||
|
"arms_at_sides",
|
||||||
|
"motion_lines",
|
||||||
|
"embarrassed",
|
||||||
|
"sweat"
|
||||||
|
]
|
||||||
|
}
|
||||||
32
data/actions/bored_retrain_000115_1336316.json
Normal file
32
data/actions/bored_retrain_000115_1336316.json
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"action_id": "bored_retrain_000115_1336316",
|
||||||
|
"action_name": "Bored Retrain 000115 1336316",
|
||||||
|
"action": {
|
||||||
|
"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, 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",
|
||||||
|
"lower_body": "sitting back, relaxed weight, stretched out under a table or loosely crossed",
|
||||||
|
"hands": "palm supporting chin or cheek, fingers lazily curled",
|
||||||
|
"feet": "resting idly",
|
||||||
|
"additional": "sighing context, waiting, lethargic atmosphere"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "MF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/Bored_Retrain-000115_1336316.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "Bored_Retrain-000115_1336316",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"boredom",
|
||||||
|
"uninterested",
|
||||||
|
"slouching",
|
||||||
|
"ennui",
|
||||||
|
"tired",
|
||||||
|
"cheek resting on hand"
|
||||||
|
]
|
||||||
|
}
|
||||||
32
data/actions/breast_pressh.json
Normal file
32
data/actions/breast_pressh.json
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"action_id": "breast_pressh",
|
||||||
|
"action_name": "Breast Pressh",
|
||||||
|
"action": {
|
||||||
|
"base": "sandwiched, girl_sandwich, standing, height_difference, size_difference",
|
||||||
|
"head": "head_between_breasts, face_between_breasts, cheek_squash, eyes_closed, squints",
|
||||||
|
"upper_body": "hugging, arms_around_waist, breast_press, chest_to_chest",
|
||||||
|
"lower_body": "hips_touching, standing, legs_apart",
|
||||||
|
"hands": "hands_on_back",
|
||||||
|
"feet": "barefoot",
|
||||||
|
"additional": "1boy, 2girls, multiple_girls, hetero"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/breast_pressH.safetensors",
|
||||||
|
"lora_weight": 0.6,
|
||||||
|
"lora_triggers": "breast_pressH",
|
||||||
|
"lora_weight_min": 0.6,
|
||||||
|
"lora_weight_max": 0.6
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"height_difference",
|
||||||
|
"girl_sandwich",
|
||||||
|
"breast_press",
|
||||||
|
"sandwiched",
|
||||||
|
"size_difference",
|
||||||
|
"head_between_breasts",
|
||||||
|
"cheek_squash",
|
||||||
|
"face_between_breasts",
|
||||||
|
"1boy",
|
||||||
|
"2girls"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"action_id": "breast_smother_illustriousxl_lora_nochekaiser",
|
||||||
|
"action_name": "Breast Smother Illustriousxl Lora Nochekaiser",
|
||||||
|
"action": {
|
||||||
|
"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, looking down, half-closed, affectionate gaze",
|
||||||
|
"upper_body": "wrapping around the partner's head or neck, leaning slightly backward, chest prominent, squished breasts, cleavage",
|
||||||
|
"lower_body": "close contact, standing or sitting, posture relaxed",
|
||||||
|
"hands": "cradling the back of the head, fingers interlocked in hair, pressing face deeper",
|
||||||
|
"feet": "planted on ground",
|
||||||
|
"additional": "face buried in breasts, chest covering face, soft lighting, skin compression"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "MF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/breast-smother-illustriousxl-lora-nochekaiser.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "breast-smother-illustriousxl-lora-nochekaiser",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"breast smother",
|
||||||
|
"buried in breasts",
|
||||||
|
"face in cleavage",
|
||||||
|
"motorboating",
|
||||||
|
"breast press",
|
||||||
|
"hugging",
|
||||||
|
"embrace",
|
||||||
|
"pov",
|
||||||
|
"large breasts"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"action_id": "breast_sucking_fingering_illustriousxl_lora_nochekaiser",
|
||||||
|
"action_name": "Breast Sucking Fingering Illustriousxl Lora Nochekaiser",
|
||||||
|
"action": {
|
||||||
|
"base": "duo, sexual interaction, close-up, breast sucking, fingering, intimate embrace",
|
||||||
|
"head": "face buried in breasts, sucking nipple, kissing breast, saliva, 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",
|
||||||
|
"lower_body": "legs spread, pussy exposed, vaginal manipulation, open legs, m-legs, intertwined legs",
|
||||||
|
"hands": "fingering, fingers inside, rubbing clitoris, squeezing breast, groping",
|
||||||
|
"feet": "toes curled, relaxed feet",
|
||||||
|
"additional": "saliva trail, sweat, motion lines, uncensored"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "MF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/breast-sucking-fingering-illustriousxl-lora-nochekaiser.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "breast-sucking-fingering-illustriousxl-lora-nochekaiser",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"breast sucking",
|
||||||
|
"fingering",
|
||||||
|
"nipple suck",
|
||||||
|
"fingers in pussy",
|
||||||
|
"duo",
|
||||||
|
"sexual act",
|
||||||
|
"exposed breasts",
|
||||||
|
"pussy juice",
|
||||||
|
"saliva",
|
||||||
|
"stimulation"
|
||||||
|
]
|
||||||
|
}
|
||||||
34
data/actions/brokenglass_illusxl_incrs_v1.json
Normal file
34
data/actions/brokenglass_illusxl_incrs_v1.json
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"action_id": "brokenglass_illusxl_incrs_v1",
|
||||||
|
"action_name": "Brokenglass Illusxl Incrs V1",
|
||||||
|
"action": {
|
||||||
|
"base": "dynamic shot of character seemingly breaking through a barrier",
|
||||||
|
"head": "intense expression, face visible through cracks, sharp focus, wide open",
|
||||||
|
"upper_body": "outstretched towards the viewer or shielding face, twisted slightly to suggest impact force",
|
||||||
|
"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",
|
||||||
|
"feet": "grounded or trailing",
|
||||||
|
"additional": "foreground filled with sharp broken glass shards, spiderweb cracks glowing with light, refractive surfaces, cinematic debris"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "F"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/BrokenGlass_illusXL_Incrs_v1.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "BrokenGlass_illusXL_Incrs_v1",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"broken glass",
|
||||||
|
"shattered",
|
||||||
|
"cracked screen",
|
||||||
|
"fragmentation",
|
||||||
|
"glass shards",
|
||||||
|
"impact",
|
||||||
|
"cinematic",
|
||||||
|
"destruction"
|
||||||
|
]
|
||||||
|
}
|
||||||
34
data/actions/butt_smother_ag_000043.json
Normal file
34
data/actions/butt_smother_ag_000043.json
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"action_id": "butt_smother_ag_000043",
|
||||||
|
"action_name": "Butt Smother Ag 000043",
|
||||||
|
"action": {
|
||||||
|
"base": "1boy,1girl,facesitting, character sitting on face, pov from below, dominant pose",
|
||||||
|
"head": "looking down at viewer, looking back over shoulder, looking at viewer, half-closed eyes, seductive gaze",
|
||||||
|
"upper_body": "arms reaching back, supporting weight, back arched, leaning forward",
|
||||||
|
"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",
|
||||||
|
"feet": "feet planted on ground, toes curled",
|
||||||
|
"additional": "extreme close-up, squished face, muffling, soft lighting on skin"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "MF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/Butt_smother_ag-000043.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "Butt_smother_ag-000043",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"facesitting",
|
||||||
|
"butt smother",
|
||||||
|
"femdom",
|
||||||
|
"pov",
|
||||||
|
"big ass",
|
||||||
|
"ass focus",
|
||||||
|
"suffocation",
|
||||||
|
"submissive view"
|
||||||
|
]
|
||||||
|
}
|
||||||
28
data/actions/buttjob.json
Normal file
28
data/actions/buttjob.json
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"action_id": "buttjob",
|
||||||
|
"action_name": "Buttjob",
|
||||||
|
"action": {
|
||||||
|
"base": "bent over, buttjob",
|
||||||
|
"head": "",
|
||||||
|
"upper_body": "",
|
||||||
|
"lower_body": "buttjob",
|
||||||
|
"hands": "",
|
||||||
|
"feet": "",
|
||||||
|
"additional": ""
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "MF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/buttjob.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "buttjob",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"buttjob",
|
||||||
|
"butt"
|
||||||
|
]
|
||||||
|
}
|
||||||
35
data/actions/carwashv2.json
Normal file
35
data/actions/carwashv2.json
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"action_id": "carwashv2",
|
||||||
|
"action_name": "Carwashv2",
|
||||||
|
"action": {
|
||||||
|
"base": "washing_vehicle, bending_over",
|
||||||
|
"head": "wet_hair",
|
||||||
|
"upper_body": "wet_clothes, breast_press, breasts_on_glass",
|
||||||
|
"lower_body": "",
|
||||||
|
"hands": "holding_sponge, holding_hose",
|
||||||
|
"feet": "",
|
||||||
|
"additional": "car, motor_vehicle, soap_bubbles"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/CarWashV2.safetensors",
|
||||||
|
"lora_weight": 0.8,
|
||||||
|
"lora_triggers": "w4sh1n, w4sh0ut",
|
||||||
|
"lora_weight_min": 0.8,
|
||||||
|
"lora_weight_max": 0.8
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"car",
|
||||||
|
"motor_vehicle",
|
||||||
|
"washing_vehicle",
|
||||||
|
"soap_bubbles",
|
||||||
|
"wet",
|
||||||
|
"wet_hair",
|
||||||
|
"wet_clothes",
|
||||||
|
"holding_sponge",
|
||||||
|
"holding_hose",
|
||||||
|
"breasts_on_glass",
|
||||||
|
"breast_press",
|
||||||
|
"outdoors",
|
||||||
|
"car_interior"
|
||||||
|
]
|
||||||
|
}
|
||||||
33
data/actions/cat_stretchill.json
Normal file
33
data/actions/cat_stretchill.json
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"action_id": "cat_stretchill",
|
||||||
|
"action_name": "Cat Stretchill",
|
||||||
|
"action": {
|
||||||
|
"base": "kneeling, all_fours, cat_stretch, pose",
|
||||||
|
"head": "looking_ahead, head_down, closed_eyes, trembling",
|
||||||
|
"upper_body": "outstretched_arms, reaching_forward, hands_on_ground, arched_back, chest_down",
|
||||||
|
"lower_body": "hips_up, buttocks_up, kneeling, knees_on_ground",
|
||||||
|
"hands": "palms_down",
|
||||||
|
"feet": "feet_up",
|
||||||
|
"additional": "cat_ears, cat_tail, trembling"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/cat_stretchILL.safetensors",
|
||||||
|
"lora_weight": 0.7,
|
||||||
|
"lora_triggers": "stretching, cat stretch, downward dog, trembling",
|
||||||
|
"lora_weight_min": 0.7,
|
||||||
|
"lora_weight_max": 0.7
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"cat_stretch",
|
||||||
|
"kneeling",
|
||||||
|
"all_fours",
|
||||||
|
"stretching",
|
||||||
|
"arched_back",
|
||||||
|
"outstretched_arms",
|
||||||
|
"hands_on_ground",
|
||||||
|
"downward_dog",
|
||||||
|
"trembling",
|
||||||
|
"cat_ears",
|
||||||
|
"cat_tail"
|
||||||
|
]
|
||||||
|
}
|
||||||
32
data/actions/charm_person_magic.json
Normal file
32
data/actions/charm_person_magic.json
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"action_id": "charm_person_magic",
|
||||||
|
"action_name": "Charm Person Magic",
|
||||||
|
"action": {
|
||||||
|
"base": "casting_spell, standing, magical_presence",
|
||||||
|
"head": "smile, confident_expression, glowing_eyes, looking_at_viewer, glowing_eyes",
|
||||||
|
"upper_body": "outstretched_hand, reaching_towards_viewer, arms_up, upper_body, facing_viewer",
|
||||||
|
"lower_body": "n/a, n/a",
|
||||||
|
"hands": "open_hand, hand_gesture",
|
||||||
|
"feet": "n/a",
|
||||||
|
"additional": "aura, soft_light, magic_effects, sparkling"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/charm_person_magic.safetensors",
|
||||||
|
"lora_weight": 0.7,
|
||||||
|
"lora_triggers": "charm_person_(magic), cham_aura",
|
||||||
|
"lora_weight_min": 0.7,
|
||||||
|
"lora_weight_max": 0.7
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"casting_spell",
|
||||||
|
"magic",
|
||||||
|
"aura",
|
||||||
|
"outstretched_hand",
|
||||||
|
"reaching_towards_viewer",
|
||||||
|
"glowing_eyes",
|
||||||
|
"looking_at_viewer",
|
||||||
|
"smile",
|
||||||
|
"cowboy_shot",
|
||||||
|
"solo"
|
||||||
|
]
|
||||||
|
}
|
||||||
29
data/actions/cheekbulge.json
Normal file
29
data/actions/cheekbulge.json
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"action_id": "cheekbulge",
|
||||||
|
"action_name": "Cheekbulge",
|
||||||
|
"action": {
|
||||||
|
"base": "fellatio",
|
||||||
|
"head": "cheek_bulge, head_tilt, saliva, penis in mouth, fellatio, looking_up",
|
||||||
|
"upper_body": "arms_behind_back, upper_body",
|
||||||
|
"lower_body": "kneeling, kneeling",
|
||||||
|
"hands": "hands_on_head",
|
||||||
|
"feet": "plantar_flexion",
|
||||||
|
"additional": "deepthroat, pov, penis"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/cheekbulge.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "cheek bulge, male pov",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"cheek_bulge",
|
||||||
|
"deepthroat",
|
||||||
|
"fellatio",
|
||||||
|
"saliva",
|
||||||
|
"head_tilt",
|
||||||
|
"penis",
|
||||||
|
"pov"
|
||||||
|
]
|
||||||
|
}
|
||||||
34
data/actions/chokehold.json
Normal file
34
data/actions/chokehold.json
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"action_id": "chokehold",
|
||||||
|
"action_name": "Chokehold",
|
||||||
|
"action": {
|
||||||
|
"base": "rear_naked_choke, from_behind, struggling, kneeling",
|
||||||
|
"head": "head_back, expressionless, open_mouth, rolling_eyes, tearing_up, empty_eyes",
|
||||||
|
"upper_body": "arm_around_neck, struggling, grabbing_arm, leaning_forward, arched_back",
|
||||||
|
"lower_body": "kneeling, bent_over, kneeling, spread_legs",
|
||||||
|
"hands": "clenched_hands, struggling",
|
||||||
|
"feet": "barefoot, toes_curled",
|
||||||
|
"additional": "distress, blushing, saliva, veins"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/chokehold.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "choke hold",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"choke_hold",
|
||||||
|
"rear_naked_choke",
|
||||||
|
"strangling",
|
||||||
|
"arm_around_neck",
|
||||||
|
"from_behind",
|
||||||
|
"struggling",
|
||||||
|
"head_back",
|
||||||
|
"clenched_teeth",
|
||||||
|
"rolling_eyes",
|
||||||
|
"drooling",
|
||||||
|
"saliva",
|
||||||
|
"ohogao"
|
||||||
|
]
|
||||||
|
}
|
||||||
36
data/actions/cleavageteasedwnsty_000008.json
Normal file
36
data/actions/cleavageteasedwnsty_000008.json
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"action_id": "cleavageteasedwnsty_000008",
|
||||||
|
"action_name": "Cleavageteasedwnsty 000008",
|
||||||
|
"action": {
|
||||||
|
"base": "leaning_forward, sexually_suggestive",
|
||||||
|
"head": "looking_at_viewer, smile, blush, one_eye_closed, blue_eyes, looking_at_viewer",
|
||||||
|
"upper_body": "arms_bent_at_elbows, cleavage, breasts_squeezed_together, areola_slip, bare_shoulders, collarbone",
|
||||||
|
"lower_body": "n/a, n/a",
|
||||||
|
"hands": "hands_on_own_chest, clothes_pull, adjusting_clothes",
|
||||||
|
"feet": "n/a",
|
||||||
|
"additional": "teasing, undressing"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/CleavageTeaseDwnsty-000008.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "pulling down own clothes, teasing",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"clothes_pull",
|
||||||
|
"shirt_pull",
|
||||||
|
"teasing",
|
||||||
|
"breasts_squeezed_together",
|
||||||
|
"areola_slip",
|
||||||
|
"undressing",
|
||||||
|
"leaning_forward",
|
||||||
|
"cleavage",
|
||||||
|
"hands_on_own_chest",
|
||||||
|
"collarbone",
|
||||||
|
"bare_shoulders",
|
||||||
|
"sexually_suggestive",
|
||||||
|
"blush",
|
||||||
|
"one_eye_closed"
|
||||||
|
]
|
||||||
|
}
|
||||||
30
data/actions/closeup_facial_illus.json
Normal file
30
data/actions/closeup_facial_illus.json
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"action": {
|
||||||
|
"base": "close-up, portrait",
|
||||||
|
"head": "facial, open_mouth, tongue, saliva, blush, looking_at_viewer, eyes_open",
|
||||||
|
"upper_body": "",
|
||||||
|
"lower_body": "",
|
||||||
|
"hands": "",
|
||||||
|
"feet": "",
|
||||||
|
"additional": "nsfw, semen, cum"
|
||||||
|
},
|
||||||
|
"action_id": "closeup_facial_illus",
|
||||||
|
"action_name": "Closeup Facial Illus",
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/Closeup_Facial_iLLus.safetensors",
|
||||||
|
"lora_triggers": "Closeup Facial",
|
||||||
|
"lora_weight": 1,
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"facial",
|
||||||
|
"close-up",
|
||||||
|
"portrait",
|
||||||
|
"open_mouth",
|
||||||
|
"tongue",
|
||||||
|
"looking_at_viewer",
|
||||||
|
"saliva",
|
||||||
|
"blush"
|
||||||
|
]
|
||||||
|
}
|
||||||
28
data/actions/cof.json
Normal file
28
data/actions/cof.json
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"action_id": "cof",
|
||||||
|
"action_name": "Cum on Figure",
|
||||||
|
"action": {
|
||||||
|
"base": "figurine, mini-girl, cum on body, cum on figurine",
|
||||||
|
"head": "",
|
||||||
|
"upper_body": "",
|
||||||
|
"lower_body": "",
|
||||||
|
"hands": "",
|
||||||
|
"feet": "",
|
||||||
|
"additional": "cum,excessive cum"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "F"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/cof.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "cof",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"cum",
|
||||||
|
"figurine"
|
||||||
|
]
|
||||||
|
}
|
||||||
32
data/actions/cooperative_grinding.json
Normal file
32
data/actions/cooperative_grinding.json
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"action_id": "cooperative_grinding",
|
||||||
|
"action_name": "Cooperative Grinding",
|
||||||
|
"action": {
|
||||||
|
"base": "duo, standing, carrying, straddling, lift and carry, legs wrapped around waist, body to body",
|
||||||
|
"head": "head thrown back, blushing, heavy breathing, intense pleasure, 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",
|
||||||
|
"lower_body": "hips touching, grinding, mating press, pelvic curtain, legs wrapped around, thighs spread, lifted legs",
|
||||||
|
"hands": "grabbing, squeezing, gripping back",
|
||||||
|
"feet": "dangling feet, arched toes",
|
||||||
|
"additional": "sweat, motion lines, intimate, erotic atmosphere"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "false",
|
||||||
|
"orientation": "MFF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/cooperative_grinding.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "cooperative_grinding",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"standing sex",
|
||||||
|
"carry",
|
||||||
|
"legs wrapped around",
|
||||||
|
"straddle",
|
||||||
|
"grinding",
|
||||||
|
"lift and carry"
|
||||||
|
]
|
||||||
|
}
|
||||||
32
data/actions/cooperativepaizuri.json
Normal file
32
data/actions/cooperativepaizuri.json
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"action_id": "cooperativepaizuri",
|
||||||
|
"action_name": "Cooperativepaizuri",
|
||||||
|
"action": {
|
||||||
|
"base": "cooperative_paizuri, 2girls, 1boy, sexual_activity",
|
||||||
|
"head": "smile, open_mouth, facial, looking_at_partner, half_closed_eyes",
|
||||||
|
"upper_body": "arms_around_neck, grabbing_penis, large_breasts, breasts_touching, nipples",
|
||||||
|
"lower_body": "penis, glans, erection, kneeling, straddling",
|
||||||
|
"hands": "on_penis, guiding_penis",
|
||||||
|
"feet": "barefoot",
|
||||||
|
"additional": "pov, cum_on_body, fluids"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/cooperativepaizuri.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "cooperative paizuri",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"cooperative_paizuri",
|
||||||
|
"2girls",
|
||||||
|
"1boy",
|
||||||
|
"paizuri",
|
||||||
|
"breasts",
|
||||||
|
"penis",
|
||||||
|
"facial",
|
||||||
|
"pov",
|
||||||
|
"from_side",
|
||||||
|
"large_breasts"
|
||||||
|
]
|
||||||
|
}
|
||||||
29
data/actions/covering_privates_illustrious_v1_0.json
Normal file
29
data/actions/covering_privates_illustrious_v1_0.json
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
{
|
||||||
|
"action_id": "covering_privates_illustrious_v1_0",
|
||||||
|
"action_name": "Covering Privates Illustrious V1 0",
|
||||||
|
"action": {
|
||||||
|
"base": "covering_privates",
|
||||||
|
"head": "embarrassed, blush, looking_at_viewer",
|
||||||
|
"upper_body": "arm_across_chest, upper_body",
|
||||||
|
"lower_body": "hips, legs_together",
|
||||||
|
"hands": "covering_breasts, covering_crotch",
|
||||||
|
"feet": "standing",
|
||||||
|
"additional": "modesty"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/covering privates_illustrious_V1.0.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "covering privates, covering crotch, covering breasts",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"covering_privates",
|
||||||
|
"covering_breasts",
|
||||||
|
"covering_crotch",
|
||||||
|
"embarrassed",
|
||||||
|
"blush",
|
||||||
|
"arm_across_chest",
|
||||||
|
"legs_together"
|
||||||
|
]
|
||||||
|
}
|
||||||
23
data/actions/coveringownmouth_ill_v1.json
Normal file
23
data/actions/coveringownmouth_ill_v1.json
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
{
|
||||||
|
"action_id": "coveringownmouth_ill_v1",
|
||||||
|
"action_name": "Coveringownmouth Ill V1",
|
||||||
|
"action": {
|
||||||
|
"base": "character covering their mouth with their hand",
|
||||||
|
"head": "lower face obscured by hand, neutral or expressive (depending on context)",
|
||||||
|
"upper_body": "arm raised towards face, upper body visible",
|
||||||
|
"lower_body": "variable, variable",
|
||||||
|
"hands": "hand placed over mouth, palm inward",
|
||||||
|
"feet": "variable",
|
||||||
|
"additional": "often indicates surprise, embarrassment, or silence"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/CoveringOwnMouth_Ill_V1.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "covering_own_mouth",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"covering_own_mouth"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"action_id": "cowgirl_position_breast_press_illustriousxl_lora_nochekaiser",
|
||||||
|
"action_name": "Cowgirl Position Breast Press Illustriousxl Lora Nochekaiser",
|
||||||
|
"action": {
|
||||||
|
"base": "straddling pose, body leaning forward directly into the camera view",
|
||||||
|
"head": "face close to the viewer, looking down or directly ahead, 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",
|
||||||
|
"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",
|
||||||
|
"feet": "tucked behind or out of frame",
|
||||||
|
"additional": "pov, squish, breast deformation, intimate distance"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "false",
|
||||||
|
"orientation": "MFF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/cowgirl-position-breast-press-illustriousxl-lora-nochekaiser.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "cowgirl-position-breast-press-illustriousxl-lora-nochekaiser",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"cowgirl position",
|
||||||
|
"breast press",
|
||||||
|
"straddling",
|
||||||
|
"pov",
|
||||||
|
"leaning forward",
|
||||||
|
"close-up",
|
||||||
|
"breast deformation",
|
||||||
|
"squish"
|
||||||
|
]
|
||||||
|
}
|
||||||
32
data/actions/cuckold_ntr_il_nai_py.json
Normal file
32
data/actions/cuckold_ntr_il_nai_py.json
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"action_id": "cuckold_ntr_il_nai_py",
|
||||||
|
"action_name": "Cuckold Ntr Il Nai Py",
|
||||||
|
"action": {
|
||||||
|
"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, looking at viewer, tears, heart-shaped pupils or rolled back",
|
||||||
|
"upper_body": "supporting body weight on surface, arched back, leaning forward",
|
||||||
|
"lower_body": "hips raised high, exposed, kneeling, spread wide",
|
||||||
|
"hands": "gripping sheets or surface tightly",
|
||||||
|
"feet": "toes curled",
|
||||||
|
"additional": "sweat, rude, messy hair, partner silhouette implied behind"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "MF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/Cuckold NTR-IL_NAI_PY.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "Cuckold NTR-IL_NAI_PY",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"ntr",
|
||||||
|
"cuckold",
|
||||||
|
"pov",
|
||||||
|
"from behind",
|
||||||
|
"doggy style",
|
||||||
|
"looking back"
|
||||||
|
]
|
||||||
|
}
|
||||||
33
data/actions/cum_bathillustrious.json
Normal file
33
data/actions/cum_bathillustrious.json
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"action_id": "cum_bathillustrious",
|
||||||
|
"action_name": "Cum Bathillustrious",
|
||||||
|
"action": {
|
||||||
|
"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, 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",
|
||||||
|
"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",
|
||||||
|
"feet": "submerged",
|
||||||
|
"additional": "tiled bathroom background, steam, excessive cum, sticky texture, overflowing tub"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "F"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/cum_bathIllustrious.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "cum_bathIllustrious",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"cum_bath",
|
||||||
|
"covered_in_cum",
|
||||||
|
"bathtub",
|
||||||
|
"wet",
|
||||||
|
"naked",
|
||||||
|
"bukkake",
|
||||||
|
"messy"
|
||||||
|
]
|
||||||
|
}
|
||||||
32
data/actions/cum_in_cleavage_illustrious.json
Normal file
32
data/actions/cum_in_cleavage_illustrious.json
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"action_id": "cum_in_cleavage_illustrious",
|
||||||
|
"action_name": "Cum In Cleavage Illustrious",
|
||||||
|
"action": {
|
||||||
|
"base": "passionate upper body focus, intimacy",
|
||||||
|
"head": "blush, mouth slightly open, expression of pleasure or service, 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",
|
||||||
|
"lower_body": "not visible or seated, not visible",
|
||||||
|
"hands": "holding own breasts, squeezing or pressing breasts together",
|
||||||
|
"feet": "not visible",
|
||||||
|
"additional": "pool of liquid in cleavage, messy, erotic context"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/cum_in_cleavage_illustrious.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "cum_in_cleavage, holding own breasts",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"cum_on_breasts",
|
||||||
|
"paizuri",
|
||||||
|
"cleavage",
|
||||||
|
"breasts",
|
||||||
|
"breast_lift",
|
||||||
|
"plump",
|
||||||
|
"mature_female",
|
||||||
|
"short_hair",
|
||||||
|
"black_hair",
|
||||||
|
"indoors"
|
||||||
|
]
|
||||||
|
}
|
||||||
34
data/actions/cum_inside_slime_v0_2.json
Normal file
34
data/actions/cum_inside_slime_v0_2.json
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"action_id": "cum_inside_slime_v0_2",
|
||||||
|
"action_name": "Cum Inside Slime V0 2",
|
||||||
|
"action": {
|
||||||
|
"base": "front view, focus on midsection, semi-transparent body structure",
|
||||||
|
"head": "flustered expression, open mouth, heavy blush, tongue out, 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",
|
||||||
|
"lower_body": "glowing with internal white fluid, see-through outer layer, thighs touching, slime texture dripping",
|
||||||
|
"hands": "cupping lower belly, emphasizing fullness",
|
||||||
|
"feet": "standing firmly or slightly melting into floor",
|
||||||
|
"additional": "internal cum, x-ray, cross-section, viscous liquid, glowing interior"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "MF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/Cum_inside_slime_v0.2.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "Cum_inside_slime_v0.2",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"slime girl",
|
||||||
|
"monster girl",
|
||||||
|
"transparent skin",
|
||||||
|
"internal cum",
|
||||||
|
"cum filled",
|
||||||
|
"x-ray",
|
||||||
|
"stomach fill",
|
||||||
|
"viscous"
|
||||||
|
]
|
||||||
|
}
|
||||||
42
data/actions/cum_shot.json
Normal file
42
data/actions/cum_shot.json
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"action_id": "cum_shot",
|
||||||
|
"action_name": "Cum Shot",
|
||||||
|
"action": {
|
||||||
|
"base": "portrait or upper body focus, capturing the moment of ejaculation or aftermath",
|
||||||
|
"head": "tilted back or facing forward, expression of pleasure or shock, closed or rolling back, eyelashes detailed",
|
||||||
|
"upper_body": "out of frame or hands touching face, chest visible, potentially with cum_on_body",
|
||||||
|
"lower_body": "usually out of frame in this context, out of frame",
|
||||||
|
"hands": "optional, touching face or wiping",
|
||||||
|
"feet": "out of frame",
|
||||||
|
"additional": "white fluids, messy, dripping, shiny skin"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/cum_shot.safetensors",
|
||||||
|
"lora_weight": 0.8,
|
||||||
|
"lora_triggers": "cum, facial, ejaculation",
|
||||||
|
"lora_weight_min": 0.8,
|
||||||
|
"lora_weight_max": 0.8
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"cum",
|
||||||
|
"facial",
|
||||||
|
"ejaculation",
|
||||||
|
"cum_on_body",
|
||||||
|
"cum_on_breasts",
|
||||||
|
"cum_in_eye",
|
||||||
|
"cum_in_mouth",
|
||||||
|
"bukkake",
|
||||||
|
"after_sex",
|
||||||
|
"messy_body",
|
||||||
|
"sticky",
|
||||||
|
"white_fluid",
|
||||||
|
"open_mouth",
|
||||||
|
"tongue",
|
||||||
|
"bukkake",
|
||||||
|
"tongue_out",
|
||||||
|
"saliva",
|
||||||
|
"sweat",
|
||||||
|
"blush",
|
||||||
|
"ahegao"
|
||||||
|
]
|
||||||
|
}
|
||||||
36
data/actions/cum_swap.json
Normal file
36
data/actions/cum_swap.json
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"action_id": "cum_swap",
|
||||||
|
"action_name": "Cum Swap",
|
||||||
|
"action": {
|
||||||
|
"base": "two characters in close intimate proximity, upper bodies pressed together",
|
||||||
|
"head": "faces close, mouths open and connected, engaging in a deep kiss, half-closed, heavy lidded, blushing cheeks",
|
||||||
|
"upper_body": "embracing partner, wrapped around neck or waist, chests touching, leaning inward",
|
||||||
|
"lower_body": "aligned with torso, standing or sitting positions",
|
||||||
|
"hands": "cupping partner's face, holding back of head, fingers entagled in hair",
|
||||||
|
"feet": "grounded or out of frame",
|
||||||
|
"additional": "visible liquid bridge between mouths, thick white fluid transfer, saliva trail, messy chin"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "false",
|
||||||
|
"orientation": "FF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/Cum_Swap.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "Cum_Swap",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"cum swap",
|
||||||
|
"mouth to mouth",
|
||||||
|
"kissing",
|
||||||
|
"open mouth",
|
||||||
|
"liquid bridge",
|
||||||
|
"saliva",
|
||||||
|
"semen",
|
||||||
|
"duo",
|
||||||
|
"sharing fluids",
|
||||||
|
"intimacy"
|
||||||
|
]
|
||||||
|
}
|
||||||
31
data/actions/cumblastfacial.json
Normal file
31
data/actions/cumblastfacial.json
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"action_id": "cumblastfacial",
|
||||||
|
"action_name": "Cumblastfacial",
|
||||||
|
"action": {
|
||||||
|
"base": "solo, bukkake",
|
||||||
|
"head": "facial, head_tilt, looking_up, cum_in_eye",
|
||||||
|
"upper_body": "arms_down, cum_on_upper_body",
|
||||||
|
"lower_body": "standing, standing",
|
||||||
|
"hands": "hands_down",
|
||||||
|
"feet": "standing",
|
||||||
|
"additional": "projectile_cum, excessive_cum, ejaculation"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/cumblastfacial.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "xcbfacialx",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"facial",
|
||||||
|
"projectile_cum",
|
||||||
|
"bukkake",
|
||||||
|
"excessive_cum",
|
||||||
|
"ejaculation",
|
||||||
|
"head_tilt",
|
||||||
|
"looking_up",
|
||||||
|
"cum_in_eye",
|
||||||
|
"cum_on_hair"
|
||||||
|
]
|
||||||
|
}
|
||||||
30
data/actions/cuminhands.json
Normal file
30
data/actions/cuminhands.json
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"action_id": "cuminhands",
|
||||||
|
"action_name": "Cuminhands",
|
||||||
|
"action": {
|
||||||
|
"base": "after_fellatio",
|
||||||
|
"head": "facial, cum_string, cum_in_mouth, looking_at_hands",
|
||||||
|
"upper_body": "arms_bent, upper_body",
|
||||||
|
"lower_body": "n/a, n/a",
|
||||||
|
"hands": "cupping_hands, cum_on_hands",
|
||||||
|
"feet": "n/a",
|
||||||
|
"additional": "excessive_cum"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/cuminhands.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "cum on hands, cupping hands, excessive cum, cum on face, cum in mouth, cum string",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"cum_on_hands",
|
||||||
|
"cupping_hands",
|
||||||
|
"excessive_cum",
|
||||||
|
"facial",
|
||||||
|
"cum_in_mouth",
|
||||||
|
"cum_string",
|
||||||
|
"after_fellatio",
|
||||||
|
"looking_at_hands"
|
||||||
|
]
|
||||||
|
}
|
||||||
33
data/actions/cumshot.json
Normal file
33
data/actions/cumshot.json
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"action_id": "cumshot",
|
||||||
|
"action_name": "Cumshot",
|
||||||
|
"action": {
|
||||||
|
"base": "close-up portrait shot, high angle view",
|
||||||
|
"head": "head tilted back, mouth slightly open, tongue out, face covered in white fluid, eyes closed or rolling back, expression of pleasure, wet eyelashes",
|
||||||
|
"upper_body": "out of frame, upper chest and collarbone visible",
|
||||||
|
"lower_body": "kout of frame, out of frame",
|
||||||
|
"hands": "out of frame",
|
||||||
|
"feet": "out of frame",
|
||||||
|
"additional": "seminal fluid dripping from face, splashing liquid, thick texture, messy"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "MF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/cumshot.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "cumshot",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"cum",
|
||||||
|
"cum on face",
|
||||||
|
"facial",
|
||||||
|
"messy",
|
||||||
|
"tongue out",
|
||||||
|
"seminal fluid",
|
||||||
|
"detailed liquid"
|
||||||
|
]
|
||||||
|
}
|
||||||
35
data/actions/cumtube_000035.json
Normal file
35
data/actions/cumtube_000035.json
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"action_id": "cumtube_000035",
|
||||||
|
"action_name": "Cumtube 000035",
|
||||||
|
"action": {
|
||||||
|
"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, 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",
|
||||||
|
"lower_body": "kneeling, hips resting on heels, legs folded underneath, knees apart",
|
||||||
|
"hands": "firmly grasping the sides of the tube",
|
||||||
|
"feet": "toes pointed backward",
|
||||||
|
"additional": "clear tube filled with white viscous liquid, heavy splatter, overflowing liquid, messy environment, bubbles inside tube"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "MF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/cumtube-000035.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "cumtube-000035",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"cumtube",
|
||||||
|
"viscous liquid",
|
||||||
|
"excessive liquid",
|
||||||
|
"facial mess",
|
||||||
|
"pouring",
|
||||||
|
"drinking",
|
||||||
|
"holding object",
|
||||||
|
"open mouth",
|
||||||
|
"wet skin"
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"action_id": "cunnilingus_on_back_illustriousxl_lora_nochekaiser",
|
||||||
|
"action_name": "Cunnilingus On Back Illustriousxl Lora Nochekaiser",
|
||||||
|
"action": {
|
||||||
|
"base": "lying, on_back, spread_legs, nude",
|
||||||
|
"head": "torogao, blush, sweat, half-closed_eyes",
|
||||||
|
"upper_body": "bent_arms, navel, nipples, sweat",
|
||||||
|
"lower_body": "cunnilingus, pussy, spread_legs, thighs",
|
||||||
|
"hands": "hands_on_own_chest",
|
||||||
|
"feet": "",
|
||||||
|
"additional": "on_bed, pillow, from_side"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/cunnilingus-on-back-illustriousxl-lora-nochekaiser.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "cunnilingus on back",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"cunnilingus",
|
||||||
|
"lying",
|
||||||
|
"on_back",
|
||||||
|
"spread_legs",
|
||||||
|
"hands_on_own_chest",
|
||||||
|
"torogao",
|
||||||
|
"half-closed_eyes",
|
||||||
|
"sweat",
|
||||||
|
"blush",
|
||||||
|
"navel",
|
||||||
|
"nipples",
|
||||||
|
"hetero",
|
||||||
|
"on_bed",
|
||||||
|
"from_side"
|
||||||
|
]
|
||||||
|
}
|
||||||
30
data/actions/danglinglegs.json
Normal file
30
data/actions/danglinglegs.json
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
{
|
||||||
|
"action_id": "danglinglegs",
|
||||||
|
"action_name": "Danglinglegs",
|
||||||
|
"action": {
|
||||||
|
"base": "suspended_congress, lifting_person, standing_sex",
|
||||||
|
"head": "clenched_teeth, head_back, eyes_closed",
|
||||||
|
"upper_body": "arms_around_neck, body_lifted",
|
||||||
|
"lower_body": "hips_held, legs_apart, feet_off_ground",
|
||||||
|
"hands": "hands_on_shoulders",
|
||||||
|
"feet": "toes_up, barefoot",
|
||||||
|
"additional": "size_difference, larger_male, sex_from_behind"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/danglinglegs.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "dangling legs, lifted by penis, suspended on penis",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"suspended_congress",
|
||||||
|
"lifting_person",
|
||||||
|
"standing_sex",
|
||||||
|
"sex_from_behind",
|
||||||
|
"size_difference",
|
||||||
|
"toes_up",
|
||||||
|
"barefoot",
|
||||||
|
"clenched_teeth"
|
||||||
|
]
|
||||||
|
}
|
||||||
40
data/actions/deep_kiss_000007.json
Normal file
40
data/actions/deep_kiss_000007.json
Normal file
@@ -0,0 +1,40 @@
|
|||||||
|
{
|
||||||
|
"action_id": "deep_kiss_000007",
|
||||||
|
"action_name": "Deep Kiss 000007",
|
||||||
|
"action": {
|
||||||
|
"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, eyes tightly closed, passionate expression",
|
||||||
|
"upper_body": "arms wrapped around neck, arms holding waist, engulfing embrace, chest to chest contact, breasts pressed against chest",
|
||||||
|
"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",
|
||||||
|
"feet": "standing, on tiptoes",
|
||||||
|
"additional": "saliva trail, saliva string, connecting tongue, romantic atmosphere"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "MF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/Deep_Kiss-000007.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "Deep_Kiss-000007",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"deep kiss",
|
||||||
|
"french kiss",
|
||||||
|
"kissing",
|
||||||
|
"tongue",
|
||||||
|
"saliva",
|
||||||
|
"saliva trail",
|
||||||
|
"open mouth",
|
||||||
|
"couple",
|
||||||
|
"intimate",
|
||||||
|
"romance",
|
||||||
|
"love",
|
||||||
|
"passionate",
|
||||||
|
"eyes closed",
|
||||||
|
"duo"
|
||||||
|
]
|
||||||
|
}
|
||||||
32
data/actions/deepthroat_ponytailhandle_anime_il_v1.json
Normal file
32
data/actions/deepthroat_ponytailhandle_anime_il_v1.json
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"action_id": "deepthroat_ponytailhandle_anime_il_v1",
|
||||||
|
"action_name": "Deepthroat Ponytailhandle Anime Il V1",
|
||||||
|
"action": {
|
||||||
|
"base": "irrumatio, fellatio, 1boy, 1girl, duo",
|
||||||
|
"head": "forced_oral, head_back, mouth_open, saliva, drooling, crying, tears, glare, wide_eyes",
|
||||||
|
"upper_body": "arms_at_sides, upper_body",
|
||||||
|
"lower_body": "n/a, n/a",
|
||||||
|
"hands": "hands_down",
|
||||||
|
"feet": "n/a",
|
||||||
|
"additional": "grabbing_another's_hair, penis, deepthroat, ponytail"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/Deepthroat_PonytailHandle_Anime_IL_V1.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "deepthroat_ponytailhandle, grabbing another's hair, ponytail",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"irrumatio",
|
||||||
|
"deepthroat",
|
||||||
|
"fellatio",
|
||||||
|
"grabbing_another's_hair",
|
||||||
|
"ponytail",
|
||||||
|
"drooling",
|
||||||
|
"tears",
|
||||||
|
"crying",
|
||||||
|
"penis",
|
||||||
|
"forced"
|
||||||
|
]
|
||||||
|
}
|
||||||
36
data/actions/defeat_ntr_il_nai_py.json
Normal file
36
data/actions/defeat_ntr_il_nai_py.json
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
"action_id": "defeat_ntr_il_nai_py",
|
||||||
|
"action_name": "Defeat Ntr Il Nai Py",
|
||||||
|
"action": {
|
||||||
|
"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, 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",
|
||||||
|
"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",
|
||||||
|
"feet": "tops of feet flat on floor",
|
||||||
|
"additional": "gloom, depression, dramatic shadows, humiliation, emotional devastation"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "MF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/Defeat NTR-IL_NAI_PY.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "Defeat NTR-IL_NAI_PY",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"defeat",
|
||||||
|
"on hands and knees",
|
||||||
|
"all fours",
|
||||||
|
"despair",
|
||||||
|
"crying",
|
||||||
|
"orz",
|
||||||
|
"humiliation",
|
||||||
|
"kneeling",
|
||||||
|
"looking down",
|
||||||
|
"tears"
|
||||||
|
]
|
||||||
|
}
|
||||||
35
data/actions/defeat_suspension_il_nai_py.json
Normal file
35
data/actions/defeat_suspension_il_nai_py.json
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"action_id": "defeat_suspension_il_nai_py",
|
||||||
|
"action_name": "Defeat Suspension Il Nai Py",
|
||||||
|
"action": {
|
||||||
|
"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, 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",
|
||||||
|
"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",
|
||||||
|
"feet": "feet pointing downwards, hovering off the ground, toes dragging",
|
||||||
|
"additional": "ropes, chains, metal hooks, dungeon background, exhaustion"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "MF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/Defeat suspension-IL_NAI_PY.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "Defeat suspension-IL_NAI_PY",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"suspension",
|
||||||
|
"hanging",
|
||||||
|
"bound",
|
||||||
|
"arms_up",
|
||||||
|
"limp",
|
||||||
|
"unconscious",
|
||||||
|
"dangling",
|
||||||
|
"bdsm",
|
||||||
|
"bondage"
|
||||||
|
]
|
||||||
|
}
|
||||||
38
data/actions/defeatspitroast_illustrious.json
Normal file
38
data/actions/defeatspitroast_illustrious.json
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
{
|
||||||
|
"action_id": "defeatspitroast_illustrious",
|
||||||
|
"action_name": "Defeatspitroast Illustrious",
|
||||||
|
"action": {
|
||||||
|
"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, rolled back, half-closed, ahegao",
|
||||||
|
"upper_body": "bent at elbows, supporting upper body weight, sweaty, deeply arched spine",
|
||||||
|
"lower_body": "ass up, presenting rear, kneeling, thighs spread wide",
|
||||||
|
"hands": "gripping the ground or sheets, clenching",
|
||||||
|
"feet": "toes curled",
|
||||||
|
"additional": "messy hair, trembling, heavy breathing, defeated posture"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "MMF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/Defeatspitroast_Illustrious.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "Defeatspitroast_Illustrious",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"doggystyle",
|
||||||
|
"spitroast",
|
||||||
|
"double_penetration",
|
||||||
|
"all_fours",
|
||||||
|
"ass_up",
|
||||||
|
"open_mouth",
|
||||||
|
"tongue_out",
|
||||||
|
"ahegao",
|
||||||
|
"sweat",
|
||||||
|
"looking_back",
|
||||||
|
"",
|
||||||
|
"1girl"
|
||||||
|
]
|
||||||
|
}
|
||||||
27
data/actions/disinterested_sex___bored_female.json
Normal file
27
data/actions/disinterested_sex___bored_female.json
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
{
|
||||||
|
"action_id": "disinterested_sex___bored_female",
|
||||||
|
"action_name": "Disinterested Sex Bored Female",
|
||||||
|
"action": {
|
||||||
|
"base": "1girl,hetero,doggystyle,faceless male, (solo focus:1.2)",
|
||||||
|
"head": "on stomach, resting on pillow, looking at smartphone, bored",
|
||||||
|
"upper_body": "",
|
||||||
|
"lower_body": "",
|
||||||
|
"hands": "holding phone",
|
||||||
|
"feet": "",
|
||||||
|
"additional": ""
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "MF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/Disinterested_Sex___Bored_Female.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "Disinterested_Sex___Bored_Female",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"bored"
|
||||||
|
]
|
||||||
|
}
|
||||||
32
data/actions/display_case_bdsm_illus.json
Normal file
32
data/actions/display_case_bdsm_illus.json
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"action_id": "display_case_bdsm_illus",
|
||||||
|
"action_name": "Display Case Bdsm Illus",
|
||||||
|
"action": {
|
||||||
|
"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, 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",
|
||||||
|
"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",
|
||||||
|
"feet": "resting on the bottom platform of the case",
|
||||||
|
"additional": "glass reflections, airtight container aesthetic, museum or auction setting, objectification"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "F"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/display_case_bdsm_illus.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "display_case_bdsm_illus",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"glass box",
|
||||||
|
"confinement",
|
||||||
|
"exhibitionism",
|
||||||
|
"trapped",
|
||||||
|
"through glass",
|
||||||
|
"human exhibit"
|
||||||
|
]
|
||||||
|
}
|
||||||
35
data/actions/display_case_illustr.json
Normal file
35
data/actions/display_case_illustr.json
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"action_id": "display_case_illustr",
|
||||||
|
"action_name": "Display Case Illustr",
|
||||||
|
"action": {
|
||||||
|
"base": "standing stiffly like an action figure, encased inside a rectangular transparent box",
|
||||||
|
"head": "neutral expression, facing forward, slightly doll-like, fixed gaze, looking at viewer",
|
||||||
|
"upper_body": "resting at sides or slightly bent in a static pose, facing front, rigid posture",
|
||||||
|
"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",
|
||||||
|
"feet": "flat on the floor of the case",
|
||||||
|
"additional": "transparent plastic packaging, cardboard backing with product design, barcode, reflections on glass, sealed box"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "F"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/display_case_illustr.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "display_case_illustr",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"display case",
|
||||||
|
"action figure",
|
||||||
|
"packaging",
|
||||||
|
"in box",
|
||||||
|
"plastic box",
|
||||||
|
"collectible",
|
||||||
|
"sealed",
|
||||||
|
"toy",
|
||||||
|
"transparent"
|
||||||
|
]
|
||||||
|
}
|
||||||
32
data/actions/doggydoublefingering.json
Normal file
32
data/actions/doggydoublefingering.json
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"action_id": "doggydoublefingering",
|
||||||
|
"action_name": "Doggydoublefingering",
|
||||||
|
"action": {
|
||||||
|
"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, open or closed in pleasure",
|
||||||
|
"upper_body": "varied, gripping sheets or supporting body, leaning forward, breasts visible if from front",
|
||||||
|
"lower_body": "hips raised, bent over, kneeling on all fours",
|
||||||
|
"hands": "resting on surface or gripping",
|
||||||
|
"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"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/DoggyDoubleFingering.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "doggydoublefingerfront, from front, 3girls, multiple girls, fingering, sex from behind, doggystyle",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"3girls",
|
||||||
|
"group_sex",
|
||||||
|
"doggystyle",
|
||||||
|
"fingering",
|
||||||
|
"all_fours",
|
||||||
|
"sex_from_behind",
|
||||||
|
"vaginal",
|
||||||
|
"hetero",
|
||||||
|
"harem",
|
||||||
|
"male_fingering"
|
||||||
|
]
|
||||||
|
}
|
||||||
35
data/actions/dunking_face_in_a_bowl_of_cum_r1.json
Normal file
35
data/actions/dunking_face_in_a_bowl_of_cum_r1.json
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"action_id": "dunking_face_in_a_bowl_of_cum_r1",
|
||||||
|
"action_name": "Dunking Face In A Bowl Of Cum R1",
|
||||||
|
"action": {
|
||||||
|
"base": "kneeling, all fours, head_down, held down, close-up, from below, humiliation, (solo focus:1.2)",
|
||||||
|
"head": "face_down, cum in mouth, cum bubble, hand on anothers head, crying, closed_eyes",
|
||||||
|
"upper_body": "",
|
||||||
|
"lower_body": "",
|
||||||
|
"hands": "",
|
||||||
|
"feet": "",
|
||||||
|
"additional": "cum bowl"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/Dunking_face_in_a_bowl_of_cum_r1.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "gokkun, cum bowl",
|
||||||
|
"lora_weight_min": 0.4,
|
||||||
|
"lora_weight_max": 0.6
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"1girl",
|
||||||
|
"solo",
|
||||||
|
"leaning_forward",
|
||||||
|
"head_down",
|
||||||
|
"clutching_head",
|
||||||
|
"drowning",
|
||||||
|
"air_bubble",
|
||||||
|
"crying",
|
||||||
|
"tears",
|
||||||
|
"embarrassed",
|
||||||
|
"disgust",
|
||||||
|
"bowl",
|
||||||
|
"cum"
|
||||||
|
]
|
||||||
|
}
|
||||||
34
data/actions/ekiben_ill_10.json
Normal file
34
data/actions/ekiben_ill_10.json
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
{
|
||||||
|
"action_id": "ekiben_ill_10",
|
||||||
|
"action_name": "Ekiben Ill 10",
|
||||||
|
"action": {
|
||||||
|
"base": "duo, 1boy, 1girl, standing, male lifting female, carrying, sexual position",
|
||||||
|
"head": "looking at another, head back or looking down, eye contact or eyes closed",
|
||||||
|
"upper_body": "arms supporting legs, arms around neck, chest to chest, upright",
|
||||||
|
"lower_body": "connected, groins touching, spread legs, legs up, legs around waist, m-legs, bent knees",
|
||||||
|
"hands": "holding legs, grabbing thighs, gripping",
|
||||||
|
"feet": "dangling feet, plantar flexion",
|
||||||
|
"additional": "strength, suspension, height difference"
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "MF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/ekiben_ill-10.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "ekiben_ill-10",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"ekiben",
|
||||||
|
"lifting",
|
||||||
|
"carrying",
|
||||||
|
"standing",
|
||||||
|
"spread legs",
|
||||||
|
"holding legs",
|
||||||
|
"duo",
|
||||||
|
"sex"
|
||||||
|
]
|
||||||
|
}
|
||||||
31
data/actions/elbow_squeeze__concept_lora_000008.json
Normal file
31
data/actions/elbow_squeeze__concept_lora_000008.json
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
{
|
||||||
|
"action_id": "elbow_squeeze__concept_lora_000008",
|
||||||
|
"action_name": "Elbow Squeeze Concept Lora 000008",
|
||||||
|
"action": {
|
||||||
|
"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., 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.",
|
||||||
|
"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.",
|
||||||
|
"feet": "Planted firmly.",
|
||||||
|
"additional": "Clothing often pulled tight across the chest due to the arm position."
|
||||||
|
},
|
||||||
|
"participants": {
|
||||||
|
"solo_focus": "true",
|
||||||
|
"orientation": "MF"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/Elbow_Squeeze__Concept_Lora-000008.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "Elbow_Squeeze__Concept_Lora-000008",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"elbow squeeze",
|
||||||
|
"arms at sides",
|
||||||
|
"upper body",
|
||||||
|
"squeezing",
|
||||||
|
"tight clothes"
|
||||||
|
]
|
||||||
|
}
|
||||||
33
data/actions/extreme_sex_v1_0_illustriousxl.json
Normal file
33
data/actions/extreme_sex_v1_0_illustriousxl.json
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
{
|
||||||
|
"action_id": "extreme_sex_v1_0_illustriousxl",
|
||||||
|
"action_name": "Extreme Sex V1 0 Illustriousxl",
|
||||||
|
"action": {
|
||||||
|
"base": "sitting, engaging in sexual activity, intense body language",
|
||||||
|
"head": "tilted back, expression of ecstasy, rolling_eyes, loss of focus, cross-eyed (ahegao)",
|
||||||
|
"upper_body": "clinging or holding partner, heaving, covered in sweat",
|
||||||
|
"lower_body": "engaged in action, wrapped around or spread",
|
||||||
|
"hands": "grasping details",
|
||||||
|
"feet": "toes curled",
|
||||||
|
"additional": "drooling, saliva_trail, flushing, messy_hair"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/extreme-sex-v1.0-illustriousxl.safetensors",
|
||||||
|
"lora_weight": 1.0,
|
||||||
|
"lora_triggers": "extreme sex",
|
||||||
|
"lora_weight_min": 1.0,
|
||||||
|
"lora_weight_max": 1.0
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"rolling_eyes",
|
||||||
|
"ahegao",
|
||||||
|
"drooling",
|
||||||
|
"sweat",
|
||||||
|
"open_mouth",
|
||||||
|
"tongue_out",
|
||||||
|
"messy_hair",
|
||||||
|
"heavy_breathing",
|
||||||
|
"blush",
|
||||||
|
"mind_break",
|
||||||
|
"sex"
|
||||||
|
]
|
||||||
|
}
|
||||||
32
data/actions/face_grab_illustrious.json
Normal file
32
data/actions/face_grab_illustrious.json
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
{
|
||||||
|
"action_id": "face_grab_illustrious",
|
||||||
|
"action_name": "Face Grab Illustrious",
|
||||||
|
"action": {
|
||||||
|
"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, looking at viewer, crying, streaming tears",
|
||||||
|
"upper_body": "often not visible or passive, upper body, often nude or partially visible",
|
||||||
|
"lower_body": "usually out of frame, out of frame",
|
||||||
|
"hands": "pov hands, hand grabbing face",
|
||||||
|
"feet": "out of frame",
|
||||||
|
"additional": "context often after fellatio with fluids on face or tongue"
|
||||||
|
},
|
||||||
|
"lora": {
|
||||||
|
"lora_name": "Illustrious/Poses/face_grab_illustrious.safetensors",
|
||||||
|
"lora_weight": 0.5,
|
||||||
|
"lora_triggers": "fcgrb, face grab, grabbing another's face, pov, pov hand, open mouth, tongue out",
|
||||||
|
"lora_weight_min": 0.5,
|
||||||
|
"lora_weight_max": 0.5
|
||||||
|
},
|
||||||
|
"tags": [
|
||||||
|
"grabbing_another's_face",
|
||||||
|
"pov",
|
||||||
|
"pov_hands",
|
||||||
|
"after_fellatio",
|
||||||
|
"cum_on_tongue",
|
||||||
|
"open_mouth",
|
||||||
|
"tongue_out",
|
||||||
|
"pout",
|
||||||
|
"streaming_tears",
|
||||||
|
"cheek_pinching"
|
||||||
|
]
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user