diff --git a/app.py b/app.py index 423c2f3..42ac690 100644 --- a/app.py +++ b/app.py @@ -7,7 +7,7 @@ import random from flask import Flask, render_template, request, redirect, url_for, flash, session from flask_session import Session from werkzeug.utils import secure_filename -from models import db, Character, Settings, Outfit, Action, Style +from models import db, Character, Settings, Outfit, Action, Style, Detailer, Scene app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db' @@ -18,6 +18,8 @@ app.config['CHARACTERS_DIR'] = 'data/characters' app.config['CLOTHING_DIR'] = 'data/clothing' app.config['ACTIONS_DIR'] = 'data/actions' app.config['STYLES_DIR'] = 'data/styles' +app.config['SCENES_DIR'] = 'data/scenes' +app.config['DETAILERS_DIR'] = 'data/detailers' app.config['COMFYUI_URL'] = 'http://127.0.0.1:8188' app.config['ILLUSTRIOUS_MODELS_DIR'] = '/mnt/alexander/AITools/Image Models/Stable-diffusion/Illustrious/' app.config['NOOB_MODELS_DIR'] = '/mnt/alexander/AITools/Image Models/Stable-diffusion/Noob/' @@ -72,6 +74,16 @@ def get_available_style_loras(): loras.append(f"Illustrious/Styles/{f}") return sorted(loras) +def get_available_detailer_loras(): + """Get LoRAs from the Detailers directory for detailer LoRAs.""" + detailers_lora_dir = '/mnt/alexander/AITools/Image Models/lora/Illustrious/Detailers/' + loras = [] + if os.path.exists(detailers_lora_dir): + for f in os.listdir(detailers_lora_dir): + if f.endswith('.safetensors'): + loras.append(f"Illustrious/Detailers/{f}") + return sorted(loras) + def get_available_checkpoints(): checkpoints = [] @@ -92,6 +104,35 @@ def get_available_checkpoints(): def allowed_file(filename): return '.' in filename and filename.rsplit('.', 1)[1].lower() in ALLOWED_EXTENSIONS +def parse_orientation(orientation_str): + if not orientation_str: return [] + + m_count = orientation_str.upper().count('M') + f_count = orientation_str.upper().count('F') + total = m_count + f_count + + tags = [] + + # Gender counts + if m_count == 1: tags.append("1boy") + elif m_count > 1: tags.append(f"{m_count}boys") + + if f_count == 1: tags.append("1girl") + elif f_count > 1: tags.append(f"{f_count}girls") + + # Relationships/Group type + if total == 1: + tags.append("solo") + elif total > 1: + if m_count > 0 and f_count > 0: + tags.append("hetero") + elif f_count > 1 and m_count == 0: + tags.append("yuri") + elif m_count > 1 and f_count == 0: + tags.append("yaoi") + + return tags + def build_prompt(data, selected_fields=None, default_fields=None, active_outfit='default'): def is_selected(section, key): # Priority: @@ -118,6 +159,7 @@ def build_prompt(data, selected_fields=None, default_fields=None, active_outfit= defaults = data.get('defaults', {}) action_data = data.get('action', {}) style_data = data.get('style', {}) + participants = data.get('participants', {}) # Pre-calculate Hand/Glove priority # Priority: wardrobe gloves > wardrobe hands (outfit) > identity hands (character) @@ -130,7 +172,20 @@ def build_prompt(data, selected_fields=None, default_fields=None, active_outfit= hand_val = identity.get('hands') # 1. Main Prompt - parts = ["(solo:1.2)"] + parts = [] + + # Handle participants logic + if participants: + if participants.get('solo_focus') == 'true': + parts.append('(solo focus:1.2)') + + orientation = participants.get('orientation', '') + if orientation: + parts.extend(parse_orientation(orientation)) + else: + # Default behavior + parts.append("(solo:1.2)") + # Use character_id (underscores to spaces) for tags compatibility char_tag = data.get('character_id', '').replace('_', ' ') if char_tag and is_selected('special', 'name'): @@ -139,6 +194,10 @@ def build_prompt(data, selected_fields=None, default_fields=None, active_outfit= for key in ['base_specs', 'hair', 'eyes', 'extra']: val = identity.get(key) if val and is_selected('identity', key): + # Filter out conflicting tags if participants data is present + if participants and key == 'base_specs': + # Remove 1girl, 1boy, solo, etc. + val = re.sub(r'\b(1girl|1boy|solo)\b', '', val).replace(', ,', ',').strip(', ') parts.append(val) # Add defaults (expression, pose, scene) @@ -448,6 +507,63 @@ def sync_styles(): db.session.commit() +def sync_detailers(): + if not os.path.exists(app.config['DETAILERS_DIR']): + return + + current_ids = [] + + for filename in os.listdir(app.config['DETAILERS_DIR']): + if filename.endswith('.json'): + file_path = os.path.join(app.config['DETAILERS_DIR'], filename) + try: + with open(file_path, 'r') as f: + data = json.load(f) + detailer_id = data.get('detailer_id') or filename.replace('.json', '') + + current_ids.append(detailer_id) + + # Generate URL-safe slug + slug = re.sub(r'[^a-zA-Z0-9_]', '', detailer_id) + + # Check if detailer already exists + detailer = Detailer.query.filter_by(detailer_id=detailer_id).first() + name = data.get('detailer_name', detailer_id.replace('_', ' ').title()) + + if detailer: + detailer.data = data + detailer.name = name + detailer.slug = slug + detailer.filename = filename + + # Check if cover image still exists + if detailer.image_path: + full_img_path = os.path.join(app.config['UPLOAD_FOLDER'], detailer.image_path) + if not os.path.exists(full_img_path): + print(f"Image missing for {detailer.name}, clearing path.") + detailer.image_path = None + + flag_modified(detailer, "data") + else: + new_detailer = Detailer( + detailer_id=detailer_id, + slug=slug, + filename=filename, + name=name, + data=data + ) + db.session.add(new_detailer) + except Exception as e: + print(f"Error importing detailer {filename}: {e}") + + # Remove detailers that are no longer in the folder + all_detailers = Detailer.query.all() + for detailer in all_detailers: + if detailer.detailer_id not in current_ids: + db.session.delete(detailer) + + db.session.commit() + def call_llm(prompt, system_prompt="You are a creative assistant."): settings = Settings.query.first() if not settings or not settings.openrouter_api_key: @@ -547,7 +663,7 @@ def generator(): prompts["main"] = f"{prompts['main']}, {custom_positive}" # Prepare workflow with custom checkpoint and negative prompt - workflow = _prepare_workflow(workflow, character, prompts, checkpoint, custom_negative) + workflow = _prepare_workflow(workflow, character, prompts, checkpoint, custom_negative, detailer=None) print(f"Queueing generator prompt for {character.character_id}") prompt_response = queue_prompt(workflow) @@ -1066,7 +1182,7 @@ def replace_cover_from_preview(slug): return redirect(url_for('detail', slug=slug)) -def _prepare_workflow(workflow, character, prompts, checkpoint=None, custom_negative=None, outfit=None, action=None, style=None): +def _prepare_workflow(workflow, character, prompts, checkpoint=None, custom_negative=None, outfit=None, action=None, style=None, detailer=None, scene=None): # 1. Update prompts using replacement to preserve embeddings workflow["6"]["inputs"]["text"] = workflow["6"]["inputs"]["text"].replace("{{POSITIVE_PROMPT}}", prompts["main"]) @@ -1091,7 +1207,7 @@ def _prepare_workflow(workflow, character, prompts, checkpoint=None, custom_nega if checkpoint: workflow["4"]["inputs"]["ckpt_name"] = checkpoint - # 3. Handle LoRAs - Node 16 for character, Node 17 for outfit, Node 18 for action, Node 19 for style + # 3. Handle LoRAs - Node 16 for character, Node 17 for outfit, Node 18 for action, Node 19 for style/detailer # Start with direct checkpoint connections model_source = ["4", 0] clip_source = ["4", 1] @@ -1140,8 +1256,10 @@ def _prepare_workflow(workflow, character, prompts, checkpoint=None, custom_nega clip_source = ["18", 1] print(f"Action LoRA: {action_lora_name} @ {action_lora_data.get('lora_weight', 1.0)}") - # Style LoRA (Node 19) - chains from previous LoRA or checkpoint - style_lora_data = style.data.get('lora', {}) if style else {} + # Style/Detailer/Scene LoRA (Node 19) - chains from previous LoRA or checkpoint + # Priority: Style > Detailer > Scene (Scene LoRAs are rare but supported) + target_obj = style or detailer or scene + style_lora_data = target_obj.data.get('lora', {}) if target_obj else {} style_lora_name = style_lora_data.get('lora_name') if style_lora_name and "19" in workflow: @@ -1153,7 +1271,7 @@ def _prepare_workflow(workflow, character, prompts, checkpoint=None, custom_nega workflow["19"]["inputs"]["clip"] = clip_source model_source = ["19", 0] clip_source = ["19", 1] - print(f"Style LoRA: {style_lora_name} @ {style_lora_data.get('lora_weight', 1.0)}") + print(f"Style/Detailer LoRA: {style_lora_name} @ {style_lora_data.get('lora_weight', 1.0)}") # Apply connections to all model/clip consumers workflow["3"]["inputs"]["model"] = model_source @@ -1985,6 +2103,7 @@ def generate_action_image(slug): # Update 'defaults' with action details action_data = action_obj.data.get('action', {}) combined_data['action'] = action_data # Ensure action section is present for routing + combined_data['participants'] = action_obj.data.get('participants', {}) # Add participants # Aggregate pose-related fields into 'pose' pose_fields = ['full_body', 'arms', 'hands', 'torso', 'pelvis', 'legs', 'feet'] @@ -2080,6 +2199,48 @@ def generate_action_image(slug): # Build prompts for combined data prompts = build_prompt(combined_data, selected_fields, default_fields, active_outfit=active_outfit) + # Handle multiple female characters + participants = action_obj.data.get('participants', {}) + orientation = participants.get('orientation', '') + f_count = orientation.upper().count('F') + + if f_count > 1: + # We need f_count - 1 additional characters + num_extras = f_count - 1 + + # Get all characters excluding the current one + query = Character.query + if character: + query = query.filter(Character.id != character.id) + all_others = query.all() + + if len(all_others) >= num_extras: + extras = random.sample(all_others, num_extras) + + for extra_char in extras: + extra_parts = [] + + # Identity + ident = extra_char.data.get('identity', {}) + for key in ['base_specs', 'hair', 'eyes', 'extra']: + val = ident.get(key) + if val: + # Remove 1girl/solo + val = re.sub(r'\b(1girl|1boy|solo)\b', '', val).replace(', ,', ',').strip(', ') + extra_parts.append(val) + + # Wardrobe (active outfit) + wardrobe = extra_char.get_active_wardrobe() + for key in ['top', 'headwear', 'legwear', 'footwear', 'accessories']: + val = wardrobe.get(key) + if val: + extra_parts.append(val) + + # Append to main prompt + if extra_parts: + prompts["main"] += ", " + ", ".join(extra_parts) + print(f"Added extra character: {extra_char.name}") + # Add colored simple background to the main prompt for action previews if character: primary_color = character.data.get('styles', {}).get('primary_color', '') @@ -2115,6 +2276,7 @@ def generate_action_image(slug): @app.route('/action//finalize_generation/', methods=['POST']) def finalize_action_generation(slug, prompt_id): action_obj = Action.query.filter_by(slug=slug).first_or_404() + action = request.form.get('action', 'preview') try: history = get_history(prompt_id) @@ -2140,6 +2302,11 @@ def finalize_action_generation(slug, prompt_id): relative_path = f"actions/{slug}/{filename}" session[f'preview_action_{slug}'] = relative_path session.modified = True # Ensure session is saved for JSON response + + # If action is 'replace', also update the action's cover image immediately + if action == 'replace': + action_obj.image_path = relative_path + db.session.commit() return {'success': True, 'image_url': url_for('static', filename=f'uploads/{relative_path}')} @@ -2171,6 +2338,90 @@ def save_action_defaults(slug): flash('Default prompt selection saved for this action!') return redirect(url_for('action_detail', slug=slug)) +@app.route('/actions/bulk_create', methods=['POST']) +def bulk_create_actions_from_loras(): + actions_lora_dir = '/mnt/alexander/AITools/Image Models/lora/Illustrious/Poses/' + if not os.path.exists(actions_lora_dir): + flash('Actions LoRA directory not found.', 'error') + return redirect(url_for('actions_index')) + + created_count = 0 + skipped_count = 0 + + system_prompt = """You are a JSON generator. Output ONLY valid JSON matching this exact structure. Do not wrap in markdown blocks. + Structure: + { + "action_id": "WILL_BE_REPLACED", + "action_name": "WILL_BE_REPLACED", + "action": { + "full_body": "string (pose description)", + "head": "string (expression/head position)", + "eyes": "string", + "arms": "string", + "hands": "string", + "torso": "string", + "pelvis": "string", + "legs": "string", + "feet": "string", + "additional": "string" + }, + "lora": { + "lora_name": "WILL_BE_REPLACED", + "lora_weight": 1.0, + "lora_triggers": "WILL_BE_REPLACED" + }, + "tags": ["string", "string"] + } + Use the provided LoRA filename as a clue to what the action/pose represents. Fill the fields with descriptive, high-quality tags.""" + + for filename in os.listdir(actions_lora_dir): + if filename.endswith('.safetensors'): + name_base = filename.rsplit('.', 1)[0] + action_id = re.sub(r'[^a-zA-Z0-9_]', '_', name_base.lower()) + action_name = re.sub(r'[^a-zA-Z0-9]+', ' ', name_base).title() + + json_filename = f"{action_id}.json" + json_path = os.path.join(app.config['ACTIONS_DIR'], json_filename) + + if os.path.exists(json_path): + skipped_count += 1 + continue + + try: + print(f"Asking LLM to describe action: {action_name}") + llm_response = call_llm(f"Describe an action/pose for an AI image generation model based on the LoRA filename: '{filename}'", system_prompt) + + # Clean response + clean_json = llm_response.replace('```json', '').replace('```', '').strip() + action_data = json.loads(clean_json) + + # Enforce system values + action_data['action_id'] = action_id + action_data['action_name'] = action_name + action_data['lora'] = { + "lora_name": f"Illustrious/Poses/{filename}", + "lora_weight": 1.0, + "lora_triggers": name_base + } + + with open(json_path, 'w') as f: + json.dump(action_data, f, indent=2) + created_count += 1 + + # Small delay to avoid API rate limits if many files + time.sleep(0.5) + + except Exception as e: + print(f"Error creating action for {filename}: {e}") + + if created_count > 0: + sync_actions() + flash(f'Successfully created {created_count} new actions with AI descriptions. (Skipped {skipped_count} existing)') + else: + flash(f'No new actions created. {skipped_count} existing actions found.') + + return redirect(url_for('actions_index')) + @app.route('/action/create', methods=['GET', 'POST']) def create_action(): if request.method == 'POST': @@ -2611,6 +2862,19 @@ def get_missing_styles(): missing = Style.query.filter((Style.image_path == None) | (Style.image_path == '')).all() return {'missing': [{'slug': s.slug, 'name': s.name} for s in missing]} +@app.route('/get_missing_detailers') +def get_missing_detailers(): + missing = Detailer.query.filter((Detailer.image_path == None) | (Detailer.image_path == '')).all() + return {'missing': [{'slug': d.slug, 'name': d.name} for d in missing]} + +@app.route('/clear_all_detailer_covers', methods=['POST']) +def clear_all_detailer_covers(): + detailers = Detailer.query.all() + for detailer in detailers: + detailer.image_path = None + db.session.commit() + return {'success': True} + @app.route('/clear_all_style_covers', methods=['POST']) def clear_all_style_covers(): styles = Style.query.all() @@ -2835,6 +3099,925 @@ def clone_style(slug): flash(f'Style cloned as "{new_id}"!') return redirect(url_for('style_detail', slug=new_slug)) +# ============ SCENE ROUTES ============ + +@app.route('/scenes') +def scenes_index(): + scenes = Scene.query.order_by(Scene.name).all() + return render_template('scenes/index.html', scenes=scenes) + +@app.route('/scenes/rescan', methods=['POST']) +def rescan_scenes(): + sync_scenes() + flash('Database synced with scene files.') + return redirect(url_for('scenes_index')) + +@app.route('/scene/') +def scene_detail(slug): + scene = Scene.query.filter_by(slug=slug).first_or_404() + characters = Character.query.order_by(Character.name).all() + + # Load state from session + preferences = session.get(f'prefs_scene_{slug}') + preview_image = session.get(f'preview_scene_{slug}') + selected_character = session.get(f'char_scene_{slug}') + + return render_template('scenes/detail.html', scene=scene, characters=characters, + preferences=preferences, preview_image=preview_image, + selected_character=selected_character) + +@app.route('/scene//edit', methods=['GET', 'POST']) +def edit_scene(slug): + scene = Scene.query.filter_by(slug=slug).first_or_404() + loras = get_available_scene_loras() + + if request.method == 'POST': + try: + # 1. Update basic fields + scene.name = request.form.get('scene_name') + + # 2. Rebuild the data dictionary + new_data = scene.data.copy() + new_data['scene_name'] = scene.name + + # Update scene section + if 'scene' in new_data: + for key in new_data['scene'].keys(): + form_key = f"scene_{key}" + if form_key in request.form: + val = request.form.get(form_key) + # Handle list for furniture/colors if they were originally lists + if key in ['furniture', 'colors'] and isinstance(new_data['scene'][key], list): + val = [v.strip() for v in val.split(',') if v.strip()] + new_data['scene'][key] = val + + # Update lora section + if 'lora' in new_data: + for key in new_data['lora'].keys(): + form_key = f"lora_{key}" + if form_key in request.form: + val = request.form.get(form_key) + if key == 'lora_weight': + try: val = float(val) + except: val = 1.0 + new_data['lora'][key] = val + + scene.data = new_data + flag_modified(scene, "data") + + # 3. Write back to JSON file + scene_file = scene.filename or f"{re.sub(r'[^a-zA-Z0-9_]', '', scene.scene_id)}.json" + file_path = os.path.join(app.config['SCENES_DIR'], scene_file) + + with open(file_path, 'w') as f: + json.dump(new_data, f, indent=2) + + db.session.commit() + flash('Scene updated successfully!') + return redirect(url_for('scene_detail', slug=slug)) + + except Exception as e: + print(f"Edit error: {e}") + flash(f"Error saving changes: {str(e)}") + + return render_template('scenes/edit.html', scene=scene, loras=loras) + +@app.route('/scene//upload', methods=['POST']) +def upload_scene_image(slug): + scene = Scene.query.filter_by(slug=slug).first_or_404() + + if 'image' not in request.files: + flash('No file part') + return redirect(request.url) + + file = request.files['image'] + if file.filename == '': + flash('No selected file') + return redirect(request.url) + + if file and allowed_file(file.filename): + # Create scene subfolder + scene_folder = os.path.join(app.config['UPLOAD_FOLDER'], f"scenes/{slug}") + os.makedirs(scene_folder, exist_ok=True) + + filename = secure_filename(file.filename) + file_path = os.path.join(scene_folder, filename) + file.save(file_path) + + # Store relative path in DB + scene.image_path = f"scenes/{slug}/{filename}" + db.session.commit() + flash('Image uploaded successfully!') + + return redirect(url_for('scene_detail', slug=slug)) + +def _queue_scene_generation(scene_obj, character=None, selected_fields=None, client_id=None): + if character: + combined_data = character.data.copy() + combined_data['character_id'] = character.character_id + + # Update character's 'defaults' with scene details + scene_data = scene_obj.data.get('scene', {}) + + # Build scene tag string + scene_tags = [] + for key in ['background', 'foreground', 'furniture', 'colors', 'lighting', 'theme']: + val = scene_data.get(key) + if val: + if isinstance(val, list): + scene_tags.extend(val) + else: + scene_tags.append(val) + + combined_data['defaults']['scene'] = ", ".join(scene_tags) + + # Merge scene lora triggers if present + scene_lora = scene_obj.data.get('lora', {}) + if scene_lora.get('lora_triggers'): + if 'lora' not in combined_data: combined_data['lora'] = {} + combined_data['lora']['lora_triggers'] = f"{combined_data['lora'].get('lora_triggers', '')}, {scene_lora['lora_triggers']}" + + # Merge character identity and wardrobe fields into selected_fields + if selected_fields: + # Add character identity fields to selection if not already present + for key in ['base_specs', 'hair', 'eyes', 'hands', 'arms', 'torso', 'pelvis', 'legs', 'feet', 'extra']: + if character.data.get('identity', {}).get(key): + field_key = f'identity::{key}' + if field_key not in selected_fields: + selected_fields.append(field_key) + + # Always include character name + if 'special::name' not in selected_fields: + selected_fields.append('special::name') + + # Add active wardrobe fields + wardrobe = character.get_active_wardrobe() + for key in ['full_body', 'headwear', 'top', 'bottom', 'legwear', 'footwear', 'hands', 'gloves', 'accessories']: + if wardrobe.get(key): + field_key = f'wardrobe::{key}' + if field_key not in selected_fields: + selected_fields.append(field_key) + else: + # Auto-include essential character fields + selected_fields = [] + for key in ['base_specs', 'hair', 'eyes']: + if character.data.get('identity', {}).get(key): + selected_fields.append(f'identity::{key}') + selected_fields.append('special::name') + + # Add active wardrobe + wardrobe = character.get_active_wardrobe() + for key in ['full_body', 'top', 'bottom']: + if wardrobe.get(key): + selected_fields.append(f'wardrobe::{key}') + + # Add scene fields + selected_fields.extend(['defaults::scene', 'lora::lora_triggers']) + + default_fields = scene_obj.default_fields + active_outfit = character.active_outfit + else: + # Scene only - no character + scene_data = scene_obj.data.get('scene', {}) + scene_tags = [] + for key in ['background', 'foreground', 'furniture', 'colors', 'lighting', 'theme']: + val = scene_data.get(key) + if val: + if isinstance(val, list): scene_tags.extend(val) + else: scene_tags.append(val) + + combined_data = { + 'character_id': scene_obj.scene_id, + 'defaults': { + 'scene': ", ".join(scene_tags) + }, + 'lora': scene_obj.data.get('lora', {}), + 'tags': scene_obj.data.get('tags', []) + } + if not selected_fields: + selected_fields = ['defaults::scene', 'lora::lora_triggers'] + default_fields = scene_obj.default_fields + active_outfit = 'default' + + with open('comfy_workflow.json', 'r') as f: + workflow = json.load(f) + + prompts = build_prompt(combined_data, selected_fields, default_fields, active_outfit=active_outfit) + + # For scene generation, we want to ensure Node 20 is handled in _prepare_workflow + workflow = _prepare_workflow(workflow, character, prompts, scene=scene_obj) + return queue_prompt(workflow, client_id=client_id) + +@app.route('/scene//generate', methods=['POST']) +def generate_scene_image(slug): + scene_obj = Scene.query.filter_by(slug=slug).first_or_404() + + try: + # Get action type + action = request.form.get('action', 'preview') + client_id = request.form.get('client_id') + + # Get selected fields + selected_fields = request.form.getlist('include_field') + + # Get selected character (if any) + character_slug = request.form.get('character_slug', '') + character = None + + if character_slug == '__random__': + all_characters = Character.query.all() + if all_characters: + character = random.choice(all_characters) + character_slug = character.slug + elif character_slug: + character = Character.query.filter_by(slug=character_slug).first() + + # Save preferences + session[f'char_scene_{slug}'] = character_slug + session[f'prefs_scene_{slug}'] = selected_fields + + # Queue generation using helper + prompt_response = _queue_scene_generation(scene_obj, character, selected_fields, client_id=client_id) + + if 'prompt_id' not in prompt_response: + raise Exception(f"ComfyUI failed: {prompt_response.get('error', 'Unknown error')}") + + prompt_id = prompt_response['prompt_id'] + + if request.headers.get('X-Requested-With') == 'XMLHttpRequest': + return {'status': 'queued', 'prompt_id': prompt_id} + + return redirect(url_for('scene_detail', slug=slug)) + + except Exception as e: + print(f"Generation error: {e}") + if request.headers.get('X-Requested-With') == 'XMLHttpRequest': + return {'error': str(e)}, 500 + flash(f"Error during generation: {str(e)}") + return redirect(url_for('scene_detail', slug=slug)) + +@app.route('/scene//finalize_generation/', methods=['POST']) +def finalize_scene_generation(slug, prompt_id): + scene_obj = Scene.query.filter_by(slug=slug).first_or_404() + action = request.form.get('action', 'preview') + + try: + history = get_history(prompt_id) + if prompt_id not in history: + return {'error': 'History not found'}, 404 + + outputs = history[prompt_id]['outputs'] + for node_id in outputs: + if 'images' in outputs[node_id]: + image_info = outputs[node_id]['images'][0] + image_data = get_image(image_info['filename'], image_info['subfolder'], image_info['type']) + + scene_folder = os.path.join(app.config['UPLOAD_FOLDER'], f"scenes/{slug}") + os.makedirs(scene_folder, exist_ok=True) + + filename = f"gen_{int(time.time())}.png" + file_path = os.path.join(scene_folder, filename) + with open(file_path, 'wb') as f: + f.write(image_data) + + relative_path = f"scenes/{slug}/{filename}" + session[f'preview_scene_{slug}'] = relative_path + session.modified = True # Ensure session is saved for JSON response + + # If action is 'replace', also update the scene's cover image immediately + if action == 'replace': + scene_obj.image_path = relative_path + db.session.commit() + + return {'success': True, 'image_url': url_for('static', filename=f'uploads/{relative_path}')} + + return {'error': 'No image found in output'}, 404 + except Exception as e: + print(f"Finalize error: {e}") + return {'error': str(e)}, 500 + +@app.route('/scene//save_defaults', methods=['POST']) +def save_scene_defaults(slug): + scene = Scene.query.filter_by(slug=slug).first_or_404() + selected_fields = request.form.getlist('include_field') + scene.default_fields = selected_fields + db.session.commit() + flash('Default prompt selection saved for this scene!') + return redirect(url_for('scene_detail', slug=slug)) + +@app.route('/scene//replace_cover_from_preview', methods=['POST']) +def replace_scene_cover_from_preview(slug): + scene = Scene.query.filter_by(slug=slug).first_or_404() + preview_path = session.get(f'preview_scene_{slug}') + + if preview_path: + scene.image_path = preview_path + db.session.commit() + flash('Cover image updated from preview!') + else: + flash('No preview image available', 'error') + + return redirect(url_for('scene_detail', slug=slug)) + +@app.route('/scenes/bulk_create', methods=['POST']) +def bulk_create_scenes_from_loras(): + backgrounds_lora_dir = '/mnt/alexander/AITools/Image Models/lora/Illustrious/Backgrounds/' + if not os.path.exists(backgrounds_lora_dir): + flash('Backgrounds LoRA directory not found.', 'error') + return redirect(url_for('scenes_index')) + + created_count = 0 + skipped_count = 0 + + system_prompt = """You are a JSON generator. Output ONLY valid JSON matching this exact structure. Do not wrap in markdown blocks. + Structure: + { + "scene_id": "WILL_BE_REPLACED", + "scene_name": "WILL_BE_REPLACED", + "description": "string (brief description of the scene)", + "scene": { + "background": "string (Danbooru-style tags)", + "foreground": "string (Danbooru-style tags)", + "furniture": ["string", "string"], + "colors": ["string", "string"], + "lighting": "string", + "theme": "string" + }, + "lora": { + "lora_name": "WILL_BE_REPLACED", + "lora_weight": 1.0, + "lora_triggers": "WILL_BE_REPLACED" + }, + "tags": ["string", "string"] + } + Use the provided LoRA filename as a clue to what the scene represents. Fill the fields with descriptive, high-quality tags.""" + + for filename in os.listdir(backgrounds_lora_dir): + if filename.endswith('.safetensors'): + name_base = filename.rsplit('.', 1)[0] + scene_id = re.sub(r'[^a-zA-Z0-9_]', '_', name_base.lower()) + scene_name = re.sub(r'[^a-zA-Z0-9]+', ' ', name_base).title() + + json_filename = f"{scene_id}.json" + json_path = os.path.join(app.config['SCENES_DIR'], json_filename) + + if os.path.exists(json_path): + skipped_count += 1 + continue + + try: + print(f"Asking LLM to describe scene: {scene_name}") + llm_response = call_llm(f"Describe a scene for an AI image generation model based on the LoRA filename: '{filename}'", system_prompt) + + # Clean response + clean_json = llm_response.replace('```json', '').replace('```', '').strip() + scene_data = json.loads(clean_json) + + # Enforce system values + scene_data['scene_id'] = scene_id + scene_data['scene_name'] = scene_name + scene_data['lora'] = { + "lora_name": f"Illustrious/Backgrounds/{filename}", + "lora_weight": 1.0, + "lora_triggers": name_base + } + + with open(json_path, 'w') as f: + json.dump(scene_data, f, indent=2) + created_count += 1 + + # Small delay to avoid API rate limits if many files + time.sleep(0.5) + + except Exception as e: + print(f"Error creating scene for {filename}: {e}") + + if created_count > 0: + sync_scenes() + flash(f'Successfully created {created_count} new scenes with AI descriptions. (Skipped {skipped_count} existing)') + else: + flash(f'No new scenes created. {skipped_count} existing scenes found.') + + return redirect(url_for('scenes_index')) + +@app.route('/scene/create', methods=['GET', 'POST']) +def create_scene(): + if request.method == 'POST': + name = request.form.get('name') + slug = request.form.get('filename', '').strip() + + if not slug: + slug = re.sub(r'[^a-zA-Z0-9]+', '_', name.lower()).strip('_') + + safe_slug = re.sub(r'[^a-zA-Z0-9_]', '', slug) + if not safe_slug: + safe_slug = 'scene' + + base_slug = safe_slug + counter = 1 + while os.path.exists(os.path.join(app.config['SCENES_DIR'], f"{safe_slug}.json")): + safe_slug = f"{base_slug}_{counter}" + counter += 1 + + scene_data = { + "scene_id": safe_slug, + "scene_name": name, + "scene": { + "background": "", + "foreground": "", + "furniture": [], + "colors": [], + "lighting": "", + "theme": "" + }, + "lora": { + "lora_name": "", + "lora_weight": 1.0, + "lora_triggers": "" + } + } + + try: + file_path = os.path.join(app.config['SCENES_DIR'], f"{safe_slug}.json") + with open(file_path, 'w') as f: + json.dump(scene_data, f, indent=2) + + new_scene = Scene( + scene_id=safe_slug, slug=safe_slug, filename=f"{safe_slug}.json", + name=name, data=scene_data + ) + db.session.add(new_scene) + db.session.commit() + + flash('Scene created successfully!') + return redirect(url_for('scene_detail', slug=safe_slug)) + except Exception as e: + print(f"Save error: {e}") + flash(f"Failed to create scene: {e}") + return redirect(request.url) + + return render_template('scenes/create.html') + +@app.route('/scene//clone', methods=['POST']) +def clone_scene(slug): + scene = Scene.query.filter_by(slug=slug).first_or_404() + + base_id = scene.scene_id + import re + match = re.match(r'^(.+?)_(\d+)$', base_id) + if match: + base_name = match.group(1) + current_num = int(match.group(2)) + else: + base_name = base_id + current_num = 1 + + next_num = current_num + 1 + while True: + new_id = f"{base_name}_{next_num:02d}" + new_filename = f"{new_id}.json" + new_path = os.path.join(app.config['SCENES_DIR'], new_filename) + if not os.path.exists(new_path): + break + next_num += 1 + + new_data = scene.data.copy() + new_data['scene_id'] = new_id + new_data['scene_name'] = f"{scene.name} (Copy)" + + with open(new_path, 'w') as f: + json.dump(new_data, f, indent=2) + + new_slug = re.sub(r'[^a-zA-Z0-9_]', '', new_id) + new_scene = Scene( + scene_id=new_id, slug=new_slug, filename=new_filename, + name=new_data['scene_name'], data=new_data + ) + db.session.add(new_scene) + db.session.commit() + + flash(f'Scene cloned as "{new_id}"!') + return redirect(url_for('scene_detail', slug=new_slug)) + +# ============ DETAILER ROUTES ============ + +@app.route('/detailers') +def detailers_index(): + detailers = Detailer.query.order_by(Detailer.name).all() + return render_template('detailers/index.html', detailers=detailers) + +@app.route('/detailers/rescan', methods=['POST']) +def rescan_detailers(): + sync_detailers() + flash('Database synced with detailer files.') + return redirect(url_for('detailers_index')) + +@app.route('/detailer/') +def detailer_detail(slug): + detailer = Detailer.query.filter_by(slug=slug).first_or_404() + characters = Character.query.order_by(Character.name).all() + + # Load state from session + preferences = session.get(f'prefs_detailer_{slug}') + preview_image = session.get(f'preview_detailer_{slug}') + selected_character = session.get(f'char_detailer_{slug}') + + return render_template('detailers/detail.html', detailer=detailer, characters=characters, + preferences=preferences, preview_image=preview_image, + selected_character=selected_character) + +@app.route('/detailer//edit', methods=['GET', 'POST']) +def edit_detailer(slug): + detailer = Detailer.query.filter_by(slug=slug).first_or_404() + loras = get_available_detailer_loras() + + if request.method == 'POST': + try: + # 1. Update basic fields + detailer.name = request.form.get('detailer_name') + + # 2. Rebuild the data dictionary + new_data = detailer.data.copy() + new_data['detailer_name'] = detailer.name + + # Update fields + if 'prompt' in request.form: + new_data['prompt'] = request.form.get('prompt') + + # Update lora section + if 'lora' in new_data: + for key in new_data['lora'].keys(): + form_key = f"lora_{key}" + if form_key in request.form: + val = request.form.get(form_key) + if key == 'lora_weight': + try: val = float(val) + except: val = 1.0 + new_data['lora'][key] = val + + detailer.data = new_data + flag_modified(detailer, "data") + + # 3. Write back to JSON file + detailer_file = detailer.filename or f"{re.sub(r'[^a-zA-Z0-9_]', '', detailer.detailer_id)}.json" + file_path = os.path.join(app.config['DETAILERS_DIR'], detailer_file) + + with open(file_path, 'w') as f: + json.dump(new_data, f, indent=2) + + db.session.commit() + flash('Detailer updated successfully!') + return redirect(url_for('detailer_detail', slug=slug)) + + except Exception as e: + print(f"Edit error: {e}") + flash(f"Error saving changes: {str(e)}") + + return render_template('detailers/edit.html', detailer=detailer, loras=loras) + +@app.route('/detailer//upload', methods=['POST']) +def upload_detailer_image(slug): + detailer = Detailer.query.filter_by(slug=slug).first_or_404() + + if 'image' not in request.files: + flash('No file part') + return redirect(request.url) + + file = request.files['image'] + if file.filename == '': + flash('No selected file') + return redirect(request.url) + + if file and allowed_file(file.filename): + # Create detailer subfolder + detailer_folder = os.path.join(app.config['UPLOAD_FOLDER'], f"detailers/{slug}") + os.makedirs(detailer_folder, exist_ok=True) + + filename = secure_filename(file.filename) + file_path = os.path.join(detailer_folder, filename) + file.save(file_path) + + # Store relative path in DB + detailer.image_path = f"detailers/{slug}/{filename}" + db.session.commit() + flash('Image uploaded successfully!') + + return redirect(url_for('detailer_detail', slug=slug)) + +def _queue_detailer_generation(detailer_obj, character=None, selected_fields=None, client_id=None): + if character: + combined_data = character.data.copy() + combined_data['character_id'] = character.character_id + + # Merge detailer prompt into character's defaults/tags if relevant + detailer_prompt = detailer_obj.data.get('prompt', '') + # Detailers are usually high-priority refinements + if detailer_prompt: + if 'tags' not in combined_data: combined_data['tags'] = [] + combined_data['tags'].append(detailer_prompt) + + # Merge detailer lora triggers if present + detailer_lora = detailer_obj.data.get('lora', {}) + if detailer_lora.get('lora_triggers'): + if 'lora' not in combined_data: combined_data['lora'] = {} + combined_data['lora']['lora_triggers'] = f"{combined_data['lora'].get('lora_triggers', '')}, {detailer_lora['lora_triggers']}" + + # Merge character identity and wardrobe fields into selected_fields + if selected_fields: + # Add character identity fields to selection if not already present + for key in ['base_specs', 'hair', 'eyes', 'hands', 'arms', 'torso', 'pelvis', 'legs', 'feet', 'extra']: + if character.data.get('identity', {}).get(key): + field_key = f'identity::{key}' + if field_key not in selected_fields: + selected_fields.append(field_key) + + # Always include character name + if 'special::name' not in selected_fields: + selected_fields.append('special::name') + + # Add active wardrobe fields + wardrobe = character.get_active_wardrobe() + for key in ['full_body', 'headwear', 'top', 'bottom', 'legwear', 'footwear', 'hands', 'gloves', 'accessories']: + if wardrobe.get(key): + field_key = f'wardrobe::{key}' + if field_key not in selected_fields: + selected_fields.append(field_key) + else: + # Auto-include essential character fields + selected_fields = [] + for key in ['base_specs', 'hair', 'eyes']: + if character.data.get('identity', {}).get(key): + selected_fields.append(f'identity::{key}') + selected_fields.append('special::name') + + # Add active wardrobe + wardrobe = character.get_active_wardrobe() + for key in ['full_body', 'top', 'bottom']: + if wardrobe.get(key): + selected_fields.append(f'wardrobe::{key}') + + # Add detailer fields + selected_fields.extend(['special::tags', 'lora::lora_triggers']) + + default_fields = detailer_obj.default_fields + active_outfit = character.active_outfit + else: + # Detailer only - no character + combined_data = { + 'character_id': detailer_obj.detailer_id, + 'tags': [detailer_obj.data.get('prompt', '')], + 'lora': detailer_obj.data.get('lora', {}), + } + if not selected_fields: + selected_fields = ['special::tags', 'lora::lora_triggers'] + default_fields = detailer_obj.default_fields + active_outfit = 'default' + + with open('comfy_workflow.json', 'r') as f: + workflow = json.load(f) + + prompts = build_prompt(combined_data, selected_fields, default_fields, active_outfit=active_outfit) + + # Add colored simple background to the main prompt for detailer previews + if character: + primary_color = character.data.get('styles', {}).get('primary_color', '') + if primary_color: + prompts["main"] = f"{prompts['main']}, {primary_color} simple background" + else: + prompts["main"] = f"{prompts['main']}, simple background" + else: + prompts["main"] = f"{prompts['main']}, simple background" + + workflow = _prepare_workflow(workflow, character, prompts, detailer=detailer_obj) + return queue_prompt(workflow, client_id=client_id) + +@app.route('/detailer//generate', methods=['POST']) +def generate_detailer_image(slug): + detailer_obj = Detailer.query.filter_by(slug=slug).first_or_404() + + try: + # Get action type + action = request.form.get('action', 'preview') + client_id = request.form.get('client_id') + + # Get selected fields + selected_fields = request.form.getlist('include_field') + + # Get selected character (if any) + character_slug = request.form.get('character_slug', '') + character = None + + if character_slug == '__random__': + all_characters = Character.query.all() + if all_characters: + character = random.choice(all_characters) + character_slug = character.slug + elif character_slug: + character = Character.query.filter_by(slug=character_slug).first() + + # Save preferences + session[f'char_detailer_{slug}'] = character_slug + session[f'prefs_detailer_{slug}'] = selected_fields + + # Queue generation using helper + prompt_response = _queue_detailer_generation(detailer_obj, character, selected_fields, client_id=client_id) + + if 'prompt_id' not in prompt_response: + raise Exception(f"ComfyUI failed: {prompt_response.get('error', 'Unknown error')}") + + prompt_id = prompt_response['prompt_id'] + + if request.headers.get('X-Requested-With') == 'XMLHttpRequest': + return {'status': 'queued', 'prompt_id': prompt_id} + + return redirect(url_for('detailer_detail', slug=slug)) + + except Exception as e: + print(f"Generation error: {e}") + if request.headers.get('X-Requested-With') == 'XMLHttpRequest': + return {'error': str(e)}, 500 + flash(f"Error during generation: {str(e)}") + return redirect(url_for('detailer_detail', slug=slug)) + +@app.route('/detailer//finalize_generation/', methods=['POST']) +def finalize_detailer_generation(slug, prompt_id): + detailer_obj = Detailer.query.filter_by(slug=slug).first_or_404() + action = request.form.get('action', 'preview') + + try: + history = get_history(prompt_id) + if prompt_id not in history: + return {'error': 'History not found'}, 404 + + outputs = history[prompt_id]['outputs'] + for node_id in outputs: + if 'images' in outputs[node_id]: + image_info = outputs[node_id]['images'][0] + image_data = get_image(image_info['filename'], image_info['subfolder'], image_info['type']) + + detailer_folder = os.path.join(app.config['UPLOAD_FOLDER'], f"detailers/{slug}") + os.makedirs(detailer_folder, exist_ok=True) + + filename = f"gen_{int(time.time())}.png" + file_path = os.path.join(detailer_folder, filename) + with open(file_path, 'wb') as f: + f.write(image_data) + + relative_path = f"detailers/{slug}/{filename}" + session[f'preview_detailer_{slug}'] = relative_path + session.modified = True # Ensure session is saved for JSON response + + # If action is 'replace', also update the detailer's cover image immediately + if action == 'replace': + detailer_obj.image_path = relative_path + db.session.commit() + + return {'success': True, 'image_url': url_for('static', filename=f'uploads/{relative_path}')} + + return {'error': 'No image found in output'}, 404 + except Exception as e: + print(f"Finalize error: {e}") + return {'error': str(e)}, 500 + +@app.route('/detailer//save_defaults', methods=['POST']) +def save_detailer_defaults(slug): + detailer = Detailer.query.filter_by(slug=slug).first_or_404() + selected_fields = request.form.getlist('include_field') + detailer.default_fields = selected_fields + db.session.commit() + flash('Default prompt selection saved for this detailer!') + return redirect(url_for('detailer_detail', slug=slug)) + +@app.route('/detailer//replace_cover_from_preview', methods=['POST']) +def replace_detailer_cover_from_preview(slug): + detailer = Detailer.query.filter_by(slug=slug).first_or_404() + preview_path = session.get(f'preview_detailer_{slug}') + + if preview_path: + detailer.image_path = preview_path + db.session.commit() + flash('Cover image updated from preview!') + else: + flash('No preview image available', 'error') + + return redirect(url_for('detailer_detail', slug=slug)) + +@app.route('/detailers/bulk_create', methods=['POST']) +def bulk_create_detailers_from_loras(): + detailers_lora_dir = '/mnt/alexander/AITools/Image Models/lora/Illustrious/Detailers/' + if not os.path.exists(detailers_lora_dir): + flash('Detailers LoRA directory not found.', 'error') + return redirect(url_for('detailers_index')) + + created_count = 0 + skipped_count = 0 + + system_prompt = """You are a JSON generator. Output ONLY valid JSON matching this exact structure. Do not wrap in markdown blocks. + Structure: + { + "detailer_id": "WILL_BE_REPLACED", + "detailer_name": "WILL_BE_REPLACED", + "prompt": "string (Danbooru-style tags for the effect)", + "lora": { + "lora_name": "WILL_BE_REPLACED", + "lora_weight": 1.0, + "lora_triggers": "WILL_BE_REPLACED" + } + } + Use the provided LoRA filename as a clue to what refinement it provides. Fill the prompt field with descriptive, high-quality tags that trigger or enhance the effect.""" + + for filename in os.listdir(detailers_lora_dir): + if filename.endswith('.safetensors'): + name_base = filename.rsplit('.', 1)[0] + detailer_id = re.sub(r'[^a-zA-Z0-9_]', '_', name_base.lower()) + detailer_name = re.sub(r'[^a-zA-Z0-9]+', ' ', name_base).title() + + json_filename = f"{detailer_id}.json" + json_path = os.path.join(app.config['DETAILERS_DIR'], json_filename) + + if os.path.exists(json_path): + skipped_count += 1 + continue + + try: + llm_response = call_llm(f"Describe a detailer LoRA for AI image generation based on the filename: '{filename}'", system_prompt) + clean_json = llm_response.replace('```json', '').replace('```', '').strip() + detailer_data = json.loads(clean_json) + + detailer_data['detailer_id'] = detailer_id + detailer_data['detailer_name'] = detailer_name + detailer_data['lora'] = { + "lora_name": f"Illustrious/Detailers/{filename}", + "lora_weight": 1.0, + "lora_triggers": name_base + } + + with open(json_path, 'w') as f: + json.dump(detailer_data, f, indent=2) + created_count += 1 + time.sleep(0.5) + except Exception as e: + print(f"Error creating detailer for {filename}: {e}") + + if created_count > 0: + sync_detailers() + flash(f'Successfully created {created_count} new detailers. (Skipped {skipped_count} existing)') + else: + flash(f'No new detailers created.') + + return redirect(url_for('detailers_index')) + +@app.route('/detailer/create', methods=['GET', 'POST']) +def create_detailer(): + if request.method == 'POST': + name = request.form.get('name') + slug = request.form.get('filename', '').strip() + + if not slug: + slug = re.sub(r'[^a-zA-Z0-9]+', '_', name.lower()).strip('_') + + safe_slug = re.sub(r'[^a-zA-Z0-9_]', '', slug) + if not safe_slug: + safe_slug = 'detailer' + + base_slug = safe_slug + counter = 1 + while os.path.exists(os.path.join(app.config['DETAILERS_DIR'], f"{safe_slug}.json")): + safe_slug = f"{base_slug}_{counter}" + counter += 1 + + detailer_data = { + "detailer_id": safe_slug, + "detailer_name": name, + "prompt": "", + "lora": { + "lora_name": "", + "lora_weight": 1.0, + "lora_triggers": "" + } + } + + try: + file_path = os.path.join(app.config['DETAILERS_DIR'], f"{safe_slug}.json") + with open(file_path, 'w') as f: + json.dump(detailer_data, f, indent=2) + + new_detailer = Detailer( + detailer_id=safe_slug, slug=safe_slug, filename=f"{safe_slug}.json", + name=name, data=detailer_data + ) + db.session.add(new_detailer) + db.session.commit() + + flash('Detailer created successfully!') + return redirect(url_for('detailer_detail', slug=safe_slug)) + except Exception as e: + print(f"Save error: {e}") + flash(f"Failed to create detailer: {e}") + return redirect(request.url) + + return render_template('detailers/create.html') + if __name__ == '__main__': with app.app_context(): os.makedirs(app.config['UPLOAD_FOLDER'], exist_ok=True) @@ -2868,4 +4051,5 @@ if __name__ == '__main__': sync_outfits() sync_actions() sync_styles() + sync_detailers() app.run(debug=True, port=5000) diff --git a/comfy_workflow.json b/comfy_workflow.json index 38aa51c..173f9f2 100644 --- a/comfy_workflow.json +++ b/comfy_workflow.json @@ -199,5 +199,15 @@ "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" } } diff --git a/data/actions/3p_sex_000037.json b/data/actions/3p_sex_000037.json new file mode 100644 index 0000000..4866fbd --- /dev/null +++ b/data/actions/3p_sex_000037.json @@ -0,0 +1,33 @@ +{ + "action_id": "3p_sex_000037", + "action_name": "3P Sex 000037", + "action": { + "full_body": "group sex, threesome, 3 subjects, intertwined bodies, on bed", + "head": "pleasured expression, heavy breathing, blush, sweating, tongue out, saliva", + "eyes": "half-closed eyes, rolling back, heart pupils, looking at partner", + "arms": "wrapping around partners, arm locking, grabbing shoulders", + "hands": "groping, fondling, gripping hair, fingers digging into skin", + "torso": "arching back, bare skin, sweat drops, pressing chests together", + "pelvis": "connected, hips grinding, penetration", + "legs": "spread legs, legs in air, wrapped around waist, kneeling", + "feet": "toes curled, arched feet", + "additional": "sex act, bodily fluids, cum, motion blur, intimacy, nsfw" + }, + "participants": { + "solo_focus": "false", + "orientation": "MfF" + }, + "lora": { + "lora_name": "Illustrious/Poses/3P_SEX-000037.safetensors", + "lora_weight": 1.0, + "lora_triggers": "3P_SEX-000037" + }, + "tags": [ + "group sex", + "threesome", + "3p", + "nsfw", + "sexual intercourse", + "pleasure" + ] +} \ No newline at end of file diff --git a/data/actions/4p_sex.json b/data/actions/4p_sex.json new file mode 100644 index 0000000..848d5ce --- /dev/null +++ b/data/actions/4p_sex.json @@ -0,0 +1,35 @@ +{ + "action_id": "4p_sex", + "action_name": "4P Sex", + "action": { + "full_body": "complex group composition involving four subjects in close physical contact, bodies intertwined or overlapping in a cluster", + "head": "heads positioned close together, looking at each other or facing different directions, varied expressions", + "eyes": "open or half-closed, gazing at other subjects", + "arms": "arms reaching out, holding, or embracing other subjects in the group, creating a web of limbs", + "hands": "hands placed on others' bodies, grasping or touching", + "torso": "torsos leaning into each other, pressed together or arranged in a pile", + "pelvis": "pelvises positioned in close proximity, aligned with group arrangement", + "legs": "legs entangled, kneeling, lying down, or wrapped around others", + "feet": "feet resting on the ground or tucked in", + "additional": "high density composition, multiple angles of interaction, tangled arrangement of bodies" + }, + "participants": { + "solo_focus": "false", + "orientation": "MFFF" + }, + "lora": { + "lora_name": "Illustrious/Poses/4P_sex.safetensors", + "lora_weight": 1.0, + "lora_triggers": "4P_sex" + }, + "tags": [ + "4girls", + "group", + "tangled", + "multiple_viewers", + "all_fours", + "entangled_legs", + "close_contact", + "crowded" + ] +} \ No newline at end of file diff --git a/data/actions/_malebolgia__oral_sex_tounge_afterimage_concept_2_0_illustrious.json b/data/actions/_malebolgia__oral_sex_tounge_afterimage_concept_2_0_illustrious.json new file mode 100644 index 0000000..ff56494 --- /dev/null +++ b/data/actions/_malebolgia__oral_sex_tounge_afterimage_concept_2_0_illustrious.json @@ -0,0 +1,32 @@ +{ + "action_id": "_malebolgia__oral_sex_tounge_afterimage_concept_2_0_illustrious", + "action_name": " Malebolgia Oral Sex Tounge Afterimage Concept 2 0 Illustrious", + "action": { + "full_body": "kneeling, leaning forward, engaged in oral activity", + "head": "facing target, mouth wide open, intense expression", + "eyes": "looking up, half-closed", + "arms": "reaching forward", + "hands": "grasping partner's thighs or hips", + "torso": "angled towards partner", + "pelvis": "stationary", + "legs": "kneeling on the floor", + "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" + }, + "tags": [ + "oral", + "rapid motion", + "tongue play", + "motion blur", + "surreal" + ] +} \ No newline at end of file diff --git a/data/actions/actually_reliable_penis_kissing_3_variants_illustrious.json b/data/actions/actually_reliable_penis_kissing_3_variants_illustrious.json new file mode 100644 index 0000000..e1740c9 --- /dev/null +++ b/data/actions/actually_reliable_penis_kissing_3_variants_illustrious.json @@ -0,0 +1,34 @@ +{ + "action_id": "actually_reliable_penis_kissing_3_variants_illustrious", + "action_name": "Actually Reliable Penis Kissing 3 Variants Illustrious", + "action": { + "full_body": "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", + "eyes": "looking up at partner or closed in enjoyment, half-closed", + "arms": "reaching forward or resting on partner's legs", + "hands": "gently holding the shaft, cupping testicles, or resting on partner's thighs", + "torso": "leaning forward, arched back", + "pelvis": "kneeling pose, hips pushed back", + "legs": "kneeling on the ground", + "feet": "toes curled or flat", + "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" + }, + "tags": [ + "penis kissing", + "fellatio", + "oral sex", + "kneeling", + "saliva", + "tongue", + "close-up" + ] +} \ No newline at end of file diff --git a/data/actions/after_sex_fellatio_illustriousxl_lora_nochekaiser_r1.json b/data/actions/after_sex_fellatio_illustriousxl_lora_nochekaiser_r1.json new file mode 100644 index 0000000..39213c4 --- /dev/null +++ b/data/actions/after_sex_fellatio_illustriousxl_lora_nochekaiser_r1.json @@ -0,0 +1,37 @@ +{ + "action_id": "after_sex_fellatio_illustriousxl_lora_nochekaiser_r1", + "action_name": "After Sex Fellatio Illustriousxl Lora Nochekaiser R1", + "action": { + "full_body": "kneeling on the floor in a submissive posture (seiza) or sitting back on heels", + "head": "tilted upwards slightly, heavy blush on cheeks, messy hair, mouth held open", + "eyes": "half-closed, looking up at viewer, glazed expression, maybe heart-shaped pupils", + "arms": "resting slightly limp at sides or hands placed on thighs", + "hands": "resting on thighs or one hand wiping corner of mouth", + "torso": "leaning slightly forward, relaxed posture implying exhaustion", + "pelvis": "hips resting on heels", + "legs": "bent at knees, kneeling", + "feet": "tucked under buttocks", + "additional": "cum on face, cum on mouth, semen, saliva trail, drooling, tongue stuck out, heavy breathing, sweat, after sex atmosphere" + }, + "participants": { + "solo_focus": "true", + "orientation": "F" + }, + "lora": { + "lora_name": "Illustrious/Poses/after-sex-fellatio-illustriousxl-lora-nochekaiser_r1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "after-sex-fellatio-illustriousxl-lora-nochekaiser_r1" + }, + "tags": [ + "after fellatio", + "cum on face", + "messy face", + "saliva", + "tongue out", + "kneeling", + "looking up", + "blush", + "sweat", + "open mouth" + ] +} \ No newline at end of file diff --git a/data/actions/afteroral.json b/data/actions/afteroral.json new file mode 100644 index 0000000..a79d0a1 --- /dev/null +++ b/data/actions/afteroral.json @@ -0,0 +1,34 @@ +{ + "action_id": "afteroral", + "action_name": "Afteroral", + "action": { + "full_body": "", + "head": "cum in mouth, facial, blush, open mouth, tongue out, messy hair, sweat, panting", + "eyes": "half-closed eyes, glazed eyes, looking up, tears", + "arms": "", + "hands": "", + "torso": "", + "pelvis": "", + "legs": "", + "feet": "", + "additional": "saliva, saliva string, heavy breathing, after fellatio, bodily fluids" + }, + "participants": { + "solo_focus": "true", + "orientation": "F" + }, + "lora": { + "lora_name": "Illustrious/Poses/afteroral.safetensors", + "lora_weight": 1.0, + "lora_triggers": "afteroral" + }, + "tags": [ + "after oral", + "wiping mouth", + "saliva", + "kneeling", + "blush", + "messy", + "panting" + ] +} \ No newline at end of file diff --git a/data/actions/afterpaizuri.json b/data/actions/afterpaizuri.json new file mode 100644 index 0000000..57679e8 --- /dev/null +++ b/data/actions/afterpaizuri.json @@ -0,0 +1,35 @@ +{ + "action_id": "afterpaizuri", + "action_name": "Afterpaizuri", + "action": { + "full_body": "kneeling or sitting, displaying upper body aftermath, exhausted posture", + "head": "flushed face, messy hair, panting, mouth slightly open, tongue out", + "eyes": "half-closed eyes, dazed expression, looking at viewer", + "arms": "resting on thighs or gesturing towards chest", + "hands": "presenting breasts or cleaning face", + "torso": "exposed cleavage, chest covered in white liquid, disheveled clothes", + "pelvis": "hips settling back, kneeling posture", + "legs": "kneeling, thighs together or slightly spread", + "feet": "tucked under buttocks or relaxed", + "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" + }, + "tags": [ + "after paizuri", + "semen on breasts", + "semen on face", + "messy", + "blush", + "dazed", + "sweat", + "disheveled" + ] +} \ No newline at end of file diff --git a/data/actions/aftersexbreakv2.json b/data/actions/aftersexbreakv2.json new file mode 100644 index 0000000..2b5919a --- /dev/null +++ b/data/actions/aftersexbreakv2.json @@ -0,0 +1,37 @@ +{ + "action_id": "aftersexbreakv2", + "action_name": "Aftersexbreakv2", + "action": { + "full_body": "lying in bed, exhausted", + "head": "messy hair, flushed face, sweating, panting", + "eyes": "half-closed eyes, ", + "arms": "", + "hands": "", + "torso": "sweaty skin, glistening skin, heavy breathing,", + "pelvis": "cum drip", + "legs": "legs spread", + "feet": "", + "additional": "ripped clothing, panties aside, rumpled bed sheets, messy bed, dim lighting, intimate atmosphere, exhausted" + }, + "participants": { + "solo_focus": "true", + "orientation": "F" + }, + "lora": { + "lora_name": "Illustrious/Poses/AfterSexBreakV2.safetensors", + "lora_weight": 1.0, + "lora_triggers": "AfterSexBreakV2" + }, + "tags": [ + "after sex", + "post-coital", + "lying in bed", + "messy hair", + "sweaty skin", + "covered by sheet", + "bedroom eyes", + "exhausted", + "intimate", + "rumpled sheets" + ] +} \ No newline at end of file diff --git a/data/actions/against_glass_bs.json b/data/actions/against_glass_bs.json new file mode 100644 index 0000000..8da3fa5 --- /dev/null +++ b/data/actions/against_glass_bs.json @@ -0,0 +1,33 @@ +{ + "action_id": "against_glass_bs", + "action_name": "Against Glass Bs", + "action": { + "full_body": "leaning forward, body pressed directly against the viewing plane/glass surface", + "head": "face close to camera, breath fog on glass, cheek slightly pressed", + "eyes": "looking directly at viewer, intimate gaze", + "arms": "reaching forward towards the viewer", + "hands": "palms pressed flat against glass, fingers spread, palm prints", + "torso": "chest squished against glass, leaning into the surface", + "pelvis": "hips pushed forward or slightly angled back depending on angle", + "legs": "standing straight or knees slightly bent for leverage", + "feet": "planted firmly on the ground", + "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" + }, + "tags": [ + "against glass", + "pressed against glass", + "palms on glass", + "view through glass", + "cheek press", + "distorted view" + ] +} \ No newline at end of file diff --git a/data/actions/agressivechoking_000010.json b/data/actions/agressivechoking_000010.json new file mode 100644 index 0000000..1945c44 --- /dev/null +++ b/data/actions/agressivechoking_000010.json @@ -0,0 +1,32 @@ +{ + "action_id": "agressivechoking_000010", + "action_name": "Agressivechoking 000010", + "action": { + "full_body": "dynamic perspective, leaning forward, dominant violent stance, POV", + "head": "face close to camera, angry expression, gritting teeth or shouting, heavy breathing", + "eyes": "intense stare, dilated pupils, furious gaze, sanpaku", + "arms": "extended towards viewer or subject, muscles tensed, shoulders shrugged forward", + "hands": "fingers curled tightly, hand around neck, strangling motion, squeezing", + "torso": "hunched forward, tense upper body", + "pelvis": "weight shifted forward", + "legs": "wide stance for leverage, braced", + "feet": "planted firmly", + "additional": "sweat, speed lines, depth of field, high contrast lighting, shadow over eyes" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/AgressiveChoking-000010.safetensors", + "lora_weight": 1.0, + "lora_triggers": "AgressiveChoking-000010" + }, + "tags": [ + "violence", + "dominance", + "pov", + "combat", + "anger" + ] +} \ No newline at end of file diff --git a/data/actions/ahegao_xl_v3_1278075.json b/data/actions/ahegao_xl_v3_1278075.json new file mode 100644 index 0000000..ffeaf9f --- /dev/null +++ b/data/actions/ahegao_xl_v3_1278075.json @@ -0,0 +1,37 @@ +{ + "action_id": "ahegao_xl_v3_1278075", + "action_name": "Ahegao Xl V3 1278075", + "action": { + "full_body": "portrait or upper body focus, emphasizing facial distortion", + "head": "tilted back slightly, mouth wide open, tongue hanging out, face heavily flushed", + "eyes": "rolled back upwards, cross-eyed, look of exhaustion or ecstasy", + "arms": "raised up near the head", + "hands": "making double peace signs (v-sign) framing the face", + "torso": "facing forward", + "pelvis": "neutral", + "legs": "neutral", + "feet": "not visible", + "additional": "saliva trail, drooling, sweat, heavy blush stickers, heart-shaped pupils" + }, + "participants": { + "solo_focus": "true", + "orientation": "F" + }, + "lora": { + "lora_name": "Illustrious/Poses/Ahegao_XL_v3_1278075.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Ahegao_XL_v3_1278075" + }, + "tags": [ + "ahegao", + "rolling eyes", + "tongue out", + "open mouth", + "blush", + "drooling", + "saliva", + "cross-eyed", + "double peace sign", + "v-sign" + ] +} \ No newline at end of file diff --git a/data/actions/amateur_pov_filming.json b/data/actions/amateur_pov_filming.json new file mode 100644 index 0000000..6dc2bfa --- /dev/null +++ b/data/actions/amateur_pov_filming.json @@ -0,0 +1,34 @@ +{ + "action_id": "amateur_pov_filming", + "action_name": "Amateur Pov Filming", + "action": { + "full_body": "POV shot, subject positioned close to the lens, selfie composition or handheld camera style", + "head": "facing the camera directly, slightly tilted or chin tucked, candid expression", + "eyes": "looking directly at viewer, intense eye contact", + "arms": "one or both arms raised towards the viewer holding the capturing device", + "hands": "holding smartphone, clutching camera, fingers visible on device edges", + "torso": "upper body visible, facing forward, close proximity", + "pelvis": "obscured or out of frame", + "legs": "out of frame", + "feet": "out of frame", + "additional": "phone screen, camera interface, amateur footage quality, blurry background, indoor lighting, candid atmosphere" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Amateur_POV_Filming.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Amateur_POV_Filming" + }, + "tags": [ + "pov", + "selfie", + "holding phone", + "amateur", + "candid", + "recording", + "close-up" + ] +} \ No newline at end of file diff --git a/data/actions/arch_back_sex_v1_1_illustriousxl.json b/data/actions/arch_back_sex_v1_1_illustriousxl.json new file mode 100644 index 0000000..10627c3 --- /dev/null +++ b/data/actions/arch_back_sex_v1_1_illustriousxl.json @@ -0,0 +1,36 @@ +{ + "action_id": "arch_back_sex_v1_1_illustriousxl", + "action_name": "Arch Back Sex V1 1 Illustriousxl", + "action": { + "full_body": "character positioned with an exaggerated spinal curve, emphasizing the posterior", + "head": "thrown back in pleasure or looking back over the shoulder", + "eyes": "half-closed, rolled back, or heavily blushing", + "arms": "supporting body weight on elbows or hands, or reaching forward", + "hands": "gripping bedsheets or pressing firmly against the surface", + "torso": "extremely arched back, chest pressed down or lifted depending on angle", + "pelvis": "tilted upwards, hips raised high", + "legs": "kneeling or lying prone with knees bent", + "feet": "toes curled or extending upwards", + "additional": "sweat, blush, heavy breathing indication" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/arch-back-sex-v1.1-illustriousxl.safetensors", + "lora_weight": 1.0, + "lora_triggers": "arch-back-sex-v1.1-illustriousxl" + }, + "tags": [ + "arch back", + "arched back", + "hips up", + "curved spine", + "ass focus", + "hyper-extension", + "prone", + "kneeling", + "from behind" + ] +} \ No newline at end of file diff --git a/data/actions/arm_grab_missionary_ill_10.json b/data/actions/arm_grab_missionary_ill_10.json new file mode 100644 index 0000000..989940b --- /dev/null +++ b/data/actions/arm_grab_missionary_ill_10.json @@ -0,0 +1,36 @@ +{ + "action_id": "arm_grab_missionary_ill_10", + "action_name": "Arm Grab Missionary Ill 10", + "action": { + "full_body": "lying on back, missionary position, submissive posture", + "head": "head tilted back, blushing, heavy breathing", + "eyes": "looking at viewer, half-closed eyes, rolling eyes", + "arms": "arms raised above head, arms grabbed, wrists held, armpits exposed", + "hands": "hands pinned, helpless", + "torso": "arched back, chest exposed", + "pelvis": "exposed crotch", + "legs": "spread legs, knees bent upwards, m-legs", + "feet": "toes curled", + "additional": "on bed, bed sheet, pov, submission, restraint" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/arm_grab_missionary_ill-10.safetensors", + "lora_weight": 1.0, + "lora_triggers": "arm_grab_missionary_ill-10" + }, + "tags": [ + "arm grab", + "missionary", + "lying on back", + "arms above head", + "wrists held", + "legs spread", + "armpits", + "submission", + "pov" + ] +} \ No newline at end of file diff --git a/data/actions/ballsdeep_il_v2_2_s.json b/data/actions/ballsdeep_il_v2_2_s.json new file mode 100644 index 0000000..cc0b4a4 --- /dev/null +++ b/data/actions/ballsdeep_il_v2_2_s.json @@ -0,0 +1,34 @@ +{ + "action_id": "ballsdeep_il_v2_2_s", + "action_name": "Ballsdeep Il V2 2 S", + "action": { + "full_body": "intense sexual intercourse, intimate close-up on genital connection, visceral physical interaction", + "head": "flushed face, expression of intense pleasure, head thrown back, mouth slightly open, panting", + "eyes": "eyes rolling back, ahegao or tightly closed eyes, heavy breathing", + "arms": "muscular arms tensed, holding partner's hips firmly, veins visible", + "hands": "hands gripping waist or buttocks, fingers digging into skin, pulling partner closer", + "torso": "sweaty skin, arched back, abdominal muscles engaged", + "pelvis": "hips slammed forward, testicles pressed firmly against partner's skin, complete insertion", + "legs": "thighs interlocking, kneeling or legs wrapped around partner's waist", + "feet": "toes curled tightly", + "additional": "sex, vaginal, balls deep, motion blur on hips, bodily fluids, skin indentation, anatomical focus" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/BallsDeep-IL-V2.2-S.safetensors", + "lora_weight": 1.0, + "lora_triggers": "BallsDeep-IL-V2.2-S" + }, + "tags": [ + "nsfw", + "sex", + "vaginal", + "internal view", + "cross-section", + "deep penetration", + "mating press" + ] +} \ No newline at end of file diff --git a/data/actions/bathingtogether.json b/data/actions/bathingtogether.json new file mode 100644 index 0000000..62718fe --- /dev/null +++ b/data/actions/bathingtogether.json @@ -0,0 +1,34 @@ +{ + "action_id": "bathingtogether", + "action_name": "Bathingtogether", + "action": { + "full_body": "two characters sharing a bathtub, sitting close together in water", + "head": "wet hair, flushed cheeks, relaxed expressions, looking at each other", + "eyes": "gentle gaze, half-closed", + "arms": "resting on the tub rim, washing each other, or embracing", + "hands": "holding soap, sponge, or touching skin", + "torso": "wet skin, water droplets, partially submerged, steam rising", + "pelvis": "submerged in soapy water", + "legs": "knees bent, submerged, intertwined", + "feet": "underwater", + "additional": "bathroom tiles, steam clouds, soap bubbles, rubber duck, faucet" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/bathingtogether.safetensors", + "lora_weight": 1.0, + "lora_triggers": "bathingtogether" + }, + "tags": [ + "bathing", + "couple", + "wet", + "steam", + "bathtub", + "shared bath", + "soap bubbles" + ] +} \ No newline at end of file diff --git a/data/actions/before_after_1230829.json b/data/actions/before_after_1230829.json new file mode 100644 index 0000000..2c6016e --- /dev/null +++ b/data/actions/before_after_1230829.json @@ -0,0 +1,33 @@ +{ + "action_id": "before_after_1230829", + "action_name": "Before After 1230829", + "action": { + "full_body": "split view composition, side-by-side comparison, two panels showing the same character", + "head": "varying expressions, sad vs happy, neutral vs excited", + "eyes": "looking at viewer, varying intensity", + "arms": "neutral pose vs confident pose", + "hands": "hanging loosely vs gesturing", + "torso": "visible change in clothing or physique", + "pelvis": "standing or sitting", + "legs": "standing or sitting", + "feet": "neutral stance", + "additional": "transformation, makeover, dividing line, progression, evolution" + }, + "participants": { + "solo_focus": "true", + "orientation": "F" + }, + "lora": { + "lora_name": "Illustrious/Poses/before_after_1230829.safetensors", + "lora_weight": 1.0, + "lora_triggers": "before_after_1230829" + }, + "tags": [ + "split view", + "comparison", + "transformation", + "before and after", + "multiple views", + "concept art" + ] +} \ No newline at end of file diff --git a/data/actions/belly_dancing.json b/data/actions/belly_dancing.json index ba0fd3f..171f772 100644 --- a/data/actions/belly_dancing.json +++ b/data/actions/belly_dancing.json @@ -13,6 +13,10 @@ "feet": "", "additional": "" }, + "participants": { + "solo_focus": "false", + "orientation": "F" + }, "lora": { "lora_name": "", "lora_weight": 1.0, diff --git a/data/actions/bentback.json b/data/actions/bentback.json new file mode 100644 index 0000000..dd76007 --- /dev/null +++ b/data/actions/bentback.json @@ -0,0 +1,34 @@ +{ + "action_id": "bentback", + "action_name": "Bentback", + "action": { + "full_body": "standing, upper body bent forward at the waist, torso parallel to the ground", + "head": "turned to look back, looking over shoulder, chin raised", + "eyes": "looking at viewer, focused gaze", + "arms": "arms extended downward or resting on legs", + "hands": "hands on knees, hands on thighs", + "torso": "back arched, spinal curve emphasized, bent forward", + "pelvis": "hips pushed back, buttocks protruding", + "legs": "straight legs, locked knees or slight bend", + "feet": "feet shoulder-width apart, waiting", + "additional": "view from behind, dorsal view, dynamic posture" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/BentBack.safetensors", + "lora_weight": 1.0, + "lora_triggers": "BentBack" + }, + "tags": [ + "bent over", + "standing", + "hands on knees", + "looking back", + "from behind", + "arched back", + "torso bend" + ] +} \ No newline at end of file diff --git a/data/actions/blowjobcomicpart2.json b/data/actions/blowjobcomicpart2.json new file mode 100644 index 0000000..5f59cdd --- /dev/null +++ b/data/actions/blowjobcomicpart2.json @@ -0,0 +1,35 @@ +{ + "action_id": "blowjobcomicpart2", + "action_name": "Blowjobcomicpart2", + "action": { + "full_body": "kneeling in front of standing partner, intimate interaction, oral sex pose", + "head": "tilted up, mouth open, cheek bulge, blushing, messy face", + "eyes": "rolled back, heart-shaped pupils, crossed eyes, or looking up", + "arms": "reaching forward, holding partner's legs or hips", + "hands": "stroking, gripping thighs, holding shaft, guiding", + "torso": "leaning forward, subordinate posture", + "pelvis": "kneeling on ground", + "legs": "bent at knees, shins on floor", + "feet": "tucked under or toes curled", + "additional": "saliva, slobber, motion lines, speech bubbles, sound effects, comic panel structure, greyscale or screentones" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/BlowjobComicPart2.safetensors", + "lora_weight": 1.0, + "lora_triggers": "BlowjobComicPart2" + }, + "tags": [ + "nsfw", + "fellatio", + "oral sex", + "kneeling", + "comic", + "monochrome", + "saliva", + "ahegao" + ] +} \ No newline at end of file diff --git a/data/actions/bodybengirl.json b/data/actions/bodybengirl.json new file mode 100644 index 0000000..01dfec6 --- /dev/null +++ b/data/actions/bodybengirl.json @@ -0,0 +1,33 @@ +{ + "action_id": "bodybengirl", + "action_name": "Bodybengirl", + "action": { + "full_body": "character standing and bending forward at the waist, hips raised high", + "head": "looking back at viewer or head inverted", + "eyes": "looking at viewer", + "arms": "extended downwards towards the ground", + "hands": "touching toes, ankles, or palms flat on the floor", + "torso": "upper body folded down parallel to or against the legs", + "pelvis": "lifted upwards, prominent posterior view", + "legs": "straight or knees slightly locked, shoulder-width apart", + "feet": "planted firmly on the ground", + "additional": "often viewed from behind or the side to emphasize flexibility and curve" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/BodyBenGirl.safetensors", + "lora_weight": 1.0, + "lora_triggers": "BodyBenGirl" + }, + "tags": [ + "bending over", + "touching toes", + "from behind", + "flexibility", + "standing", + "jack-o' pose" + ] +} \ No newline at end of file diff --git a/data/actions/bodybengirlpart2.json b/data/actions/bodybengirlpart2.json new file mode 100644 index 0000000..43131a9 --- /dev/null +++ b/data/actions/bodybengirlpart2.json @@ -0,0 +1,32 @@ +{ + "action_id": "bodybengirlpart2", + "action_name": "Bodybengirlpart2", + "action": { + "full_body": "standing pose, bending forward at the waist while facing away from the camera", + "head": "turned backward looking over the shoulder", + "eyes": "looking directly at the viewer", + "arms": "extended downwards or resting on upper thighs", + "hands": "placed on knees or hanging freely", + "torso": "bent forward at a 90-degree angle, lower back arched", + "pelvis": "pushed back and tilted upwards", + "legs": "straight or slightly unlocked at the knees", + "feet": "standing firmly on the ground", + "additional": "view from behind, emphasizing hip curvature and flexibility" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/BodyBenGirlPart2.safetensors", + "lora_weight": 1.0, + "lora_triggers": "BodyBenGirlPart2" + }, + "tags": [ + "bent over", + "looking back", + "from behind", + "standing", + "flexible" + ] +} \ No newline at end of file diff --git a/data/actions/bored_retrain_000115_1336316.json b/data/actions/bored_retrain_000115_1336316.json new file mode 100644 index 0000000..fb82534 --- /dev/null +++ b/data/actions/bored_retrain_000115_1336316.json @@ -0,0 +1,33 @@ +{ + "action_id": "bored_retrain_000115_1336316", + "action_name": "Bored Retrain 000115 1336316", + "action": { + "full_body": "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", + "eyes": "half-lidded, dull gaze, looking away or staring into space, heavy eyelids", + "arms": "elbow proped on surface, arm supporting the head, other arm dangling loosely or lying flat", + "hands": "palm supporting chin or cheek, fingers lazily curled", + "torso": "slumped shoulders, curved spine, leaning forward", + "pelvis": "sitting back, relaxed weight", + "legs": "stretched out under a table or loosely crossed", + "feet": "resting idly", + "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" + }, + "tags": [ + "boredom", + "uninterested", + "slouching", + "ennui", + "tired", + "cheek resting on hand" + ] +} \ No newline at end of file diff --git a/data/actions/breast_pressh.json b/data/actions/breast_pressh.json new file mode 100644 index 0000000..2badf6f --- /dev/null +++ b/data/actions/breast_pressh.json @@ -0,0 +1,34 @@ +{ + "action_id": "breast_pressh", + "action_name": "Breast Pressh", + "action": { + "full_body": "character pressing breasts together with hands or arms to enhance cleavage", + "head": "slightly tilted forward, often with a flushed or embarrassed expression", + "eyes": "looking down at chest or shyly at viewer", + "arms": "bent at elbows, brought in front of the chest", + "hands": "placed on the sides or underneath breasts, actively squeezing or pushing them inward", + "torso": "upper body leaned slightly forward or arched back to emphasize the chest area", + "pelvis": "neutral standing or sitting position", + "legs": "standing straight or sitting with knees together", + "feet": "planted firmly on ground if standing", + "additional": "emphasis on soft body physics, squish deformation, and skin indentation around the fingers" + }, + "participants": { + "solo_focus": "false", + "orientation": "FF" + }, + "lora": { + "lora_name": "Illustrious/Poses/breast_pressH.safetensors", + "lora_weight": 1.0, + "lora_triggers": "breast_pressH" + }, + "tags": [ + "breast press", + "squeezing breasts", + "cleavage", + "hands on breasts", + "self groping", + "squish", + "upper body" + ] +} \ No newline at end of file diff --git a/data/actions/breast_smother_illustriousxl_lora_nochekaiser.json b/data/actions/breast_smother_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..adc1bb0 --- /dev/null +++ b/data/actions/breast_smother_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,36 @@ +{ + "action_id": "breast_smother_illustriousxl_lora_nochekaiser", + "action_name": "Breast Smother Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "intimate upper body POV or side view, character pressing another's face into their chest", + "head": "tilted downwards, chin tucked, affectionate or dominant expression", + "eyes": "looking down, half-closed, affectionate gaze", + "arms": "wrapping around the partner's head or neck", + "hands": "cradling the back of the head, fingers interlocked in hair, pressing face deeper", + "torso": "leaning slightly backward, chest prominent, squished breasts, cleavage", + "pelvis": "close contact", + "legs": "standing or sitting, posture relaxed", + "feet": "planted on ground", + "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" + }, + "tags": [ + "breast smother", + "buried in breasts", + "face in cleavage", + "motorboating", + "breast press", + "hugging", + "embrace", + "pov", + "large breasts" + ] +} \ No newline at end of file diff --git a/data/actions/breast_sucking_fingering_illustriousxl_lora_nochekaiser.json b/data/actions/breast_sucking_fingering_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..3192673 --- /dev/null +++ b/data/actions/breast_sucking_fingering_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,37 @@ +{ + "action_id": "breast_sucking_fingering_illustriousxl_lora_nochekaiser", + "action_name": "Breast Sucking Fingering Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "duo, sexual interaction, close-up, breast sucking, fingering, intimate embrace", + "head": "face buried in breasts, sucking nipple, kissing breast, saliva", + "eyes": "eyes closed, heavy breathing, blush, expression of bliss", + "arms": "reaching down, holding partner close, arm around waist", + "hands": "fingering, fingers inside, rubbing clitoris, squeezing breast, groping", + "torso": "large breasts, exposed nipples, nude torso, pressing bodies", + "pelvis": "legs spread, pussy exposed, vaginal manipulation", + "legs": "open legs, m-legs, intertwined legs", + "feet": "toes curled, relaxed feet", + "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" + }, + "tags": [ + "breast sucking", + "fingering", + "nipple suck", + "fingers in pussy", + "duo", + "sexual act", + "exposed breasts", + "pussy juice", + "saliva", + "stimulation" + ] +} \ No newline at end of file diff --git a/data/actions/brokenglass_illusxl_incrs_v1.json b/data/actions/brokenglass_illusxl_incrs_v1.json new file mode 100644 index 0000000..42a45b0 --- /dev/null +++ b/data/actions/brokenglass_illusxl_incrs_v1.json @@ -0,0 +1,35 @@ +{ + "action_id": "brokenglass_illusxl_incrs_v1", + "action_name": "Brokenglass Illusxl Incrs V1", + "action": { + "full_body": "dynamic shot of character seemingly breaking through a barrier", + "head": "intense expression, face visible through cracks", + "eyes": "sharp focus, wide open", + "arms": "outstretched towards the viewer or shielding face", + "hands": "touching the surface of the invisible wall, interacting with fragments", + "torso": "twisted slightly to suggest impact force", + "pelvis": "anchored or mid-air depending on angle", + "legs": "posed dynamically to support the movement", + "feet": "grounded or trailing", + "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" + }, + "tags": [ + "broken glass", + "shattered", + "cracked screen", + "fragmentation", + "glass shards", + "impact", + "cinematic", + "destruction" + ] +} \ No newline at end of file diff --git a/data/actions/butt_smother_ag_000043.json b/data/actions/butt_smother_ag_000043.json new file mode 100644 index 0000000..e9401cd --- /dev/null +++ b/data/actions/butt_smother_ag_000043.json @@ -0,0 +1,35 @@ +{ + "action_id": "butt_smother_ag_000043", + "action_name": "Butt Smother Ag 000043", + "action": { + "full_body": "facesitting, character sitting on face, pov from below, dominant pose", + "head": "looking down at viewer, looking back over shoulder", + "eyes": "looking at viewer, half-closed eyes, seductive gaze", + "arms": "arms reaching back, supporting weight", + "hands": "hands spreading buttocks, hands on thighs, hands grasping victim's head", + "torso": "back arched, leaning forward", + "pelvis": "buttocks pressing down slightly, buttocks covering screen, heavy weight", + "legs": "thighs straddling viewer, knees bent, spread legs", + "feet": "feet planted on ground, toes curled", + "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" + }, + "tags": [ + "facesitting", + "butt smother", + "femdom", + "pov", + "big ass", + "ass focus", + "suffocation", + "submissive view" + ] +} \ No newline at end of file diff --git a/data/actions/buttjob.json b/data/actions/buttjob.json new file mode 100644 index 0000000..35fa03f --- /dev/null +++ b/data/actions/buttjob.json @@ -0,0 +1,35 @@ +{ + "action_id": "buttjob", + "action_name": "Buttjob", + "action": { + "full_body": "bent over, back turned to viewer, kneeling or standing", + "head": "looking back over shoulder", + "eyes": "looking at viewer, half-closed", + "arms": "supporting upper body weight on cool surface or knees", + "hands": "resting on bed, knees or holding buttocks apart", + "torso": "arched back, leaning forward", + "pelvis": "pushed backward, hips elevated high", + "legs": "kneeling with thighs spread or standing bent", + "feet": "arched or plantar flexion", + "additional": "glutes pressed together, friction focus, skin indentation" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/buttjob.safetensors", + "lora_weight": 1.0, + "lora_triggers": "buttjob" + }, + "tags": [ + "buttjob", + "back to viewer", + "bent over", + "arched back", + "kneeling", + "ass focus", + "glutes", + "between buttocks" + ] +} \ No newline at end of file diff --git a/data/actions/carwashv2.json b/data/actions/carwashv2.json new file mode 100644 index 0000000..ca7f268 --- /dev/null +++ b/data/actions/carwashv2.json @@ -0,0 +1,37 @@ +{ + "action_id": "carwashv2", + "action_name": "Carwashv2", + "action": { + "full_body": "leaning forward, bending over car hood, dynamic scrubbing pose, wet body", + "head": "looking at viewer, smiling, wet hair sticking to face", + "eyes": "open, energetic, happy", + "arms": "stretched forward, one arm scrubbing, active motion", + "hands": "holding large yellow sponge, covered in soap suds", + "torso": "bent at waist, leaning forward, arched back, wet clothes clinging", + "pelvis": "hips pushed back, tilted", + "legs": "straddling or standing wide for stability", + "feet": "planted on wet pavement", + "additional": "soap bubbles, heavy foam on body and car, water splashing, car background" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/CarWashV2.safetensors", + "lora_weight": 1.0, + "lora_triggers": "CarWashV2" + }, + "tags": [ + "car wash", + "holding sponge", + "leaning forward", + "bending over", + "wet", + "wet clothes", + "foam", + "bubbles", + "soapy water", + "scrubbing" + ] +} \ No newline at end of file diff --git a/data/actions/cat_stretchill.json b/data/actions/cat_stretchill.json new file mode 100644 index 0000000..51d1888 --- /dev/null +++ b/data/actions/cat_stretchill.json @@ -0,0 +1,35 @@ +{ + "action_id": "cat_stretchill", + "action_name": "Cat Stretchill", + "action": { + "full_body": "character on all fours performing a deep cat stretch, kneeling with chest pressed to the floor and hips raised high", + "head": "chin resting on the floor, looking forward or to the side", + "eyes": "looking up or generally forward", + "arms": "fully extended forward along the ground", + "hands": "palms flat on the floor", + "torso": "deeply arched back, chest touching the ground", + "pelvis": "elevated high in the air, creating a steep angle with the spine", + "legs": "kneeling, bent at the knees", + "feet": "toes touching the ground", + "additional": "emphasizes the curve of the spine and flexibility" + }, + "participants": { + "solo_focus": "true", + "orientation": "F" + }, + "lora": { + "lora_name": "Illustrious/Poses/cat_stretchILL.safetensors", + "lora_weight": 1.0, + "lora_triggers": "cat_stretchILL" + }, + "tags": [ + "all fours", + "ass up", + "kneeling", + "cat pose", + "stretching", + "arms extended", + "on floor", + "arched back" + ] +} \ No newline at end of file diff --git a/data/actions/caught_masturbating_illustrious.json b/data/actions/caught_masturbating_illustrious.json new file mode 100644 index 0000000..cd42e65 --- /dev/null +++ b/data/actions/caught_masturbating_illustrious.json @@ -0,0 +1,40 @@ +{ + "action_id": "caught_masturbating_illustrious", + "action_name": "Caught Masturbating Illustrious", + "action": { + "full_body": "character receiving a sudden shock while in a private moment of self-pleasure, body freezing or jerking in surprise", + "head": "face flushed red with deep blush, expression of pure panic and embarrassment, mouth gaped open in a gasp", + "eyes": "wide-eyed stare, pupils dilated, locking eyes with the intruder (viewer)", + "arms": "shoulders tensed, one arm frantically trying to cover the chest or face, the other halted mid-motion near the crotch", + "hands": "one hand stopping mid-masturbation typically under skirt or inside panties, other hand gesturing to stop or hiding face", + "torso": "leaning back onto elbows or pillows, clothing disheveled, shirt lifted", + "pelvis": "hips exposed, underwear pulled down to thighs or ankles, vulva accessible", + "legs": "legs spread wide in an M-shape or V-shape, knees bent, trembling", + "feet": "toes curled tightly in tension", + "additional": "context of an intruded private bedroom, messy bed sheets, atmosphere of sudden discovery and shame" + }, + "participants": { + "solo_focus": "true", + "orientation": "F" + }, + "lora": { + "lora_name": "Illustrious/Poses/Caught_Masturbating_ILLUSTRIOUS.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Caught_Masturbating_ILLUSTRIOUS" + }, + "tags": [ + "caught", + "masturbation", + "embarrassed", + "blush", + "surprised", + "open mouth", + "looking at viewer", + "panties down", + "hand in panties", + "skirt lift", + "sweat", + "legs spread", + "panic" + ] +} \ No newline at end of file diff --git a/data/actions/charm_person_magic.json b/data/actions/charm_person_magic.json new file mode 100644 index 0000000..044ebb2 --- /dev/null +++ b/data/actions/charm_person_magic.json @@ -0,0 +1,34 @@ +{ + "action_id": "charm_person_magic", + "action_name": "Charm Person Magic", + "action": { + "full_body": "standing, casting pose, dynamic angle, upper body focused", + "head": "facing viewer, head tilted, alluring expression, seductive smile", + "eyes": "looking at viewer, glowing eyes, heart-shaped pupils, hypnotic gaze", + "arms": "reaching towards viewer, one arm outstretched, hand near face", + "hands": "open palm, casting gesture, finger snaps, beckoning motion", + "torso": "facing forward, slight arch", + "pelvis": "hips swayed, weight shifted", + "legs": "standing, crossed legs", + "feet": "out of frame", + "additional": "pink magic, magical aura, sparkles, heart particles, glowing hands, casting spell, enchantment, visual effects" + }, + "participants": { + "solo_focus": "true", + "orientation": "F" + }, + "lora": { + "lora_name": "Illustrious/Poses/charm_person_magic.safetensors", + "lora_weight": 1.0, + "lora_triggers": "charm_person_magic" + }, + "tags": [ + "magic", + "fantasy", + "enchantment", + "hypnotic", + "alluring", + "spellcasting", + "pink energy" + ] +} \ No newline at end of file diff --git a/data/actions/cheekbulge.json b/data/actions/cheekbulge.json new file mode 100644 index 0000000..2284af8 --- /dev/null +++ b/data/actions/cheekbulge.json @@ -0,0 +1,34 @@ +{ + "action_id": "cheekbulge", + "action_name": "Cheekbulge", + "action": { + "full_body": "kneeling, leaning forward, close-up focus on face", + "head": "visible cheek bulge, distorted cheek, stuffed mouth, mouth stretched", + "eyes": "looking up, upturned eyes, teary eyes, eye contact", + "arms": "reaching forward or resting on partner's legs", + "hands": "holding object, guiding, or resting on thighs", + "torso": "angled forward", + "pelvis": "neutral kneeling posture", + "legs": "kneeling, bent knees", + "feet": "toes pointing back", + "additional": "fellatio, oral sex, saliva, saliva trail, penis in mouth, face deformation" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/cheekbulge.safetensors", + "lora_weight": 1.0, + "lora_triggers": "cheekbulge" + }, + "tags": [ + "cheek bulge", + "stuffed mouth", + "fellatio", + "distorted face", + "oral sex", + "looking up", + "face deformation" + ] +} \ No newline at end of file diff --git a/data/actions/chokehold.json b/data/actions/chokehold.json new file mode 100644 index 0000000..a2529d6 --- /dev/null +++ b/data/actions/chokehold.json @@ -0,0 +1,39 @@ +{ + "action_id": "chokehold", + "action_name": "Chokehold", + "action": { + "full_body": "dynamic combat pose, character positioning behind an opponent, executing a rear chokehold, two people grappling", + "head": "chin tucked tight, face pressed close to the opponent's head, intense or straining expression", + "eyes": "focused, narrowed in concentration", + "arms": "one arm wrapped tightly around the opponent's neck, the other arm locking the hold by gripping the bicep or clasping hands", + "hands": "clenching tight, gripping own bicep or locking fingers behind opponent's neck", + "torso": "chest pressed firmly against the opponent's back, leaning back slightly for leverage", + "pelvis": "pressed close to opponent's lower back", + "legs": "wrapped around the opponent's waist (body triangle or hooks in) or wide standing stance for stability", + "feet": "hooked inside opponent's thighs or planted firmly on the ground", + "additional": "struggle, tension, submission hold, restrictive motion, self-defense scenario" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/chokehold.safetensors", + "lora_weight": 1.0, + "lora_triggers": "chokehold" + }, + "tags": [ + "chokehold", + "grappling", + "rear naked choke", + "fighting", + "wrestling", + "martial arts", + "restraining", + "submission", + "headlock", + "strangle", + "duo", + "struggle" + ] +} \ No newline at end of file diff --git a/data/actions/cleavageteasedwnsty_000008.json b/data/actions/cleavageteasedwnsty_000008.json new file mode 100644 index 0000000..d322fe7 --- /dev/null +++ b/data/actions/cleavageteasedwnsty_000008.json @@ -0,0 +1,36 @@ +{ + "action_id": "cleavageteasedwnsty_000008", + "action_name": "Cleavageteasedwnsty 000008", + "action": { + "full_body": "Medium shot or close-up focus on the upper body, character facing forward", + "head": "Looking directly at viewer, chin slightly tucked or tilted, expression varying from shy blush to seductive smile", + "eyes": "Eye contact, focused on the viewer", + "arms": "Elbows bent, forearms brought up towards the chest", + "hands": "Fingers grasping the hem of the collar or neckline of the top, pulling it downwards", + "torso": "Clothing fabric stretched taut, neckline pulled down low to reveal cleavage, emphasis on the chest area", + "pelvis": "Neutral position, often obscured in close-up shots", + "legs": "Neutral or out of frame", + "feet": "Out of frame", + "additional": "Fabric tension lines, revealing skin, seductive atmosphere" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/CleavageTeaseDwnsty-000008.safetensors", + "lora_weight": 1.0, + "lora_triggers": "CleavageTeaseDwnsty-000008" + }, + "tags": [ + "cleavage", + "clothes pull", + "collar pull", + "shirt pull", + "looking at viewer", + "breasts", + "teasing", + "blush", + "holding clothes" + ] +} \ No newline at end of file diff --git a/data/actions/closeup_facial_illus.json b/data/actions/closeup_facial_illus.json new file mode 100644 index 0000000..1b176bc --- /dev/null +++ b/data/actions/closeup_facial_illus.json @@ -0,0 +1,33 @@ +{ + "action_id": "closeup_facial_illus", + "action_name": "Closeup Facial Illus", + "action": { + "full_body": "extreme close-up portrait shot framing the face and upper neck, macro focus", + "head": "facing directly forward, highly detailed facial micro-expressions, blush", + "eyes": "intense gaze, intricate iris details, looking at viewer, eyelashes focus", + "arms": "not visible", + "hands": "not visible", + "torso": "upper collarbone area only", + "pelvis": "not visible", + "legs": "not visible", + "feet": "not visible", + "additional": "illustrative style, shallow depth of field, soft lighting, detailed skin texture, vibrant colors" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Closeup_Facial_iLLus.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Closeup_Facial_iLLus" + }, + "tags": [ + "close-up", + "portrait", + "face focus", + "illustration", + "detailed eyes", + "macro" + ] +} \ No newline at end of file diff --git a/data/actions/cof.json b/data/actions/cof.json new file mode 100644 index 0000000..7ad8e65 --- /dev/null +++ b/data/actions/cof.json @@ -0,0 +1,33 @@ +{ + "action_id": "cof", + "action_name": "Cum on Figure", + "action": { + "full_body": "figurine, mini-girl", + "head": "", + "eyes": "", + "arms": "", + "hands": "", + "torso": "", + "pelvis": "", + "legs": "", + "feet": "", + "additional": "cum, cum on body, excessive cum, cum on face, cum on breasts, cum on chest" + }, + "participants": { + "solo_focus": "true", + "orientation": "F" + }, + "lora": { + "lora_name": "Illustrious/Poses/cof.safetensors", + "lora_weight": 1.0, + "lora_triggers": "cof" + }, + "tags": [ + "standing force", + "carry on front", + "carry", + "lifting", + "legs wrapped", + "straddling" + ] +} \ No newline at end of file diff --git a/data/actions/cooperative_grinding.json b/data/actions/cooperative_grinding.json new file mode 100644 index 0000000..0b14008 --- /dev/null +++ b/data/actions/cooperative_grinding.json @@ -0,0 +1,33 @@ +{ + "action_id": "cooperative_grinding", + "action_name": "Cooperative Grinding", + "action": { + "full_body": "duo, standing, carrying, straddling, lift and carry, legs wrapped around waist, body to body", + "head": "head thrown back, blushing, heavy breathing, intense pleasure", + "eyes": "eyes closed, half-closed eyes, rolled back eyes", + "arms": "arms around neck, holding buttocks, supporting thighs, strong grip", + "hands": "grabbing, squeezing, gripping back", + "torso": "chest to chest, pressed together, close physical contact", + "pelvis": "hips touching, grinding, mating press, pelvic curtain", + "legs": "legs wrapped around, thighs spread, lifted legs", + "feet": "dangling feet, arched toes", + "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" + }, + "tags": [ + "standing sex", + "carry", + "legs wrapped around", + "straddle", + "grinding", + "lift and carry" + ] +} \ No newline at end of file diff --git a/data/actions/cooperativepaizuri.json b/data/actions/cooperativepaizuri.json new file mode 100644 index 0000000..9939fd3 --- /dev/null +++ b/data/actions/cooperativepaizuri.json @@ -0,0 +1,36 @@ +{ + "action_id": "cooperativepaizuri", + "action_name": "Cooperativepaizuri", + "action": { + "full_body": "intimate sexual pose, two people interacting closely", + "head": "flushed face, drooling, tongue out, expression of pleasure or submission", + "eyes": "half-closed eyes, looking down, ahegao or heart-shaped pupils", + "arms": "arms supporting body weight or holding partner", + "hands": "recipient's hands grasping subject's breasts, squeezing breasts together towards center", + "torso": "exposed breasts, heavy cleavage, chest compressed by external hands", + "pelvis": "leaning forward, hips raised or straddling", + "legs": "kneeling, spread legs, or wrapping around partner", + "feet": "arched feet, toes curled", + "additional": "penis sliding between breasts, friction, lubrication, skin indentation" + }, + "participants": { + "solo_focus": "false", + "orientation": "MFF" + }, + "lora": { + "lora_name": "Illustrious/Poses/cooperativepaizuri.safetensors", + "lora_weight": 1.0, + "lora_triggers": "cooperativepaizuri" + }, + "tags": [ + "paizuri", + "assisted paizuri", + "male hand", + "breast squeeze", + "titjob", + "penis between breasts", + "sexual act", + "cleavage", + "big breasts" + ] +} \ No newline at end of file diff --git a/data/actions/covering_privates_illustrious_v1_0.json b/data/actions/covering_privates_illustrious_v1_0.json new file mode 100644 index 0000000..c06a5a3 --- /dev/null +++ b/data/actions/covering_privates_illustrious_v1_0.json @@ -0,0 +1,35 @@ +{ + "action_id": "covering_privates_illustrious_v1_0", + "action_name": "Covering Privates Illustrious V1 0", + "action": { + "full_body": "standing in a defensive, modest posture, body language expressing vulnerability", + "head": "tilted down or looking away in embarrassment", + "eyes": "averted gaze, shy or flustered expression", + "arms": "arms pulled in tight against the body", + "hands": "hands covering crotch, hand over breasts, covering self", + "torso": "slightly hunched forward or twisting away", + "pelvis": "hips slightly turned", + "legs": "legs pressed tightly together, thighs touching, knock-kneed", + "feet": "standing close together, possibly pigeon-toed", + "additional": "blush, steam or light rays (optional)" + }, + "participants": { + "solo_focus": "true", + "orientation": "F" + }, + "lora": { + "lora_name": "Illustrious/Poses/covering privates_illustrious_V1.0.safetensors", + "lora_weight": 1.0, + "lora_triggers": "covering privates_illustrious_V1.0" + }, + "tags": [ + "covering self", + "embarrassed", + "blush", + "hands on crotch", + "arm across chest", + "modesty", + "legs together", + "shy" + ] +} \ No newline at end of file diff --git a/data/actions/coveringownmouth_ill_v1.json b/data/actions/coveringownmouth_ill_v1.json new file mode 100644 index 0000000..aeb7afd --- /dev/null +++ b/data/actions/coveringownmouth_ill_v1.json @@ -0,0 +1,36 @@ +{ + "action_id": "coveringownmouth_ill_v1", + "action_name": "Coveringownmouth Ill V1", + "action": { + "full_body": "character appearing sick or nauseous, posture slightly hunched forward", + "head": "pale complexion, sweatdrops on face, cheeks flushed or blue (if severe), grimacing", + "eyes": "tearing up, wincing, half-closed, or dilated pupils", + "arms": "one or both arms raised sharply towards the face", + "hands": "covering mouth, hand over mouth, fingers clutching face", + "torso": "leaning forward, tense shoulders usually associated with retching or coughing", + "pelvis": "neutral position or slightly bent forward", + "legs": "knees slightly bent or trembling", + "feet": "planted firmly or stumbling", + "additional": "motion lines indicating shaking, gloom lines, vomit (optional/extreme)" + }, + "participants": { + "solo_focus": "true", + "orientation": "F" + }, + "lora": { + "lora_name": "Illustrious/Poses/CoveringOwnMouth_Ill_V1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "CoveringOwnMouth_Ill_V1" + }, + "tags": [ + "covering mouth", + "hand over mouth", + "ill", + "sick", + "nausea", + "queasy", + "motion sickness", + "sweat", + "pale" + ] +} \ No newline at end of file diff --git a/data/actions/cowgirl_position_breast_press_illustriousxl_lora_nochekaiser.json b/data/actions/cowgirl_position_breast_press_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..0919a5b --- /dev/null +++ b/data/actions/cowgirl_position_breast_press_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,35 @@ +{ + "action_id": "cowgirl_position_breast_press_illustriousxl_lora_nochekaiser", + "action_name": "Cowgirl Position Breast Press Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "straddling pose, body leaning forward directly into the camera view", + "head": "face close to the viewer, looking down or directly ahead", + "eyes": "looking at viewer, intense or half-closed gaze", + "arms": "arms extending forward or bent to support weight", + "hands": "placed on an invisible surface or partner's chest", + "torso": "upper body leaning forward, breasts heavily pressed and flattened against the screen/viewer", + "pelvis": "hips wide, seated in a straddling motion", + "legs": "knees bent, thighs spread wide apart", + "feet": "tucked behind or out of frame", + "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" + }, + "tags": [ + "cowgirl position", + "breast press", + "straddling", + "pov", + "leaning forward", + "close-up", + "breast deformation", + "squish" + ] +} \ No newline at end of file diff --git a/data/actions/cuckold_ntr_il_nai_py.json b/data/actions/cuckold_ntr_il_nai_py.json new file mode 100644 index 0000000..3e3db1d --- /dev/null +++ b/data/actions/cuckold_ntr_il_nai_py.json @@ -0,0 +1,33 @@ +{ + "action_id": "cuckold_ntr_il_nai_py", + "action_name": "Cuckold Ntr Il Nai Py", + "action": { + "full_body": "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", + "eyes": "looking at viewer, tears, heart-shaped pupils or rolled back", + "arms": "supporting body weight on surface", + "hands": "gripping sheets or surface tightly", + "torso": "arched back, leaning forward", + "pelvis": "hips raised high, exposed", + "legs": "kneeling, spread wide", + "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" + }, + "tags": [ + "ntr", + "cuckold", + "pov", + "from behind", + "doggy style", + "looking back" + ] +} \ No newline at end of file diff --git a/data/actions/cum_bathillustrious.json b/data/actions/cum_bathillustrious.json new file mode 100644 index 0000000..246d260 --- /dev/null +++ b/data/actions/cum_bathillustrious.json @@ -0,0 +1,34 @@ +{ + "action_id": "cum_bathillustrious", + "action_name": "Cum Bathillustrious", + "action": { + "full_body": "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", + "eyes": "half-closed, glossy, looking at viewer", + "arms": "resting on the rim of the bathtub or submerged", + "hands": "coated in white fluid, dripping", + "torso": "naked, wet skin, heavy coverage of white liquid on chest and stomach", + "pelvis": "submerged in pool of white liquid", + "legs": "knees bent and poking out of the liquid or spread slighty", + "feet": "submerged", + "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" + }, + "tags": [ + "cum_bath", + "covered_in_cum", + "bathtub", + "wet", + "naked", + "bukkake", + "messy" + ] +} \ No newline at end of file diff --git a/data/actions/cum_in_cleavage_illustrious.json b/data/actions/cum_in_cleavage_illustrious.json new file mode 100644 index 0000000..f346d9d --- /dev/null +++ b/data/actions/cum_in_cleavage_illustrious.json @@ -0,0 +1,39 @@ +{ + "action_id": "cum_in_cleavage_illustrious", + "action_name": "Cum In Cleavage Illustrious", + "action": { + "full_body": "close-up or cowboy shot focusing intensely on the upper body and chest area", + "head": "flushed cheeks, heavy breathing, mouth slightly open, expression of embarrassment or pleasure, saliva trail", + "eyes": "half-closed, heart-shaped pupils (optional), looking down at chest or shyly at viewer", + "arms": "arms bent brings hands to chest level", + "hands": "hands squeezing breasts together to deepen cleavage, or pulling clothing aside to reveal the mess", + "torso": "large breasts pressed together, deep cleavage filled with pooling white seminal fluid, cum dripping down skin, messy upper body", + "pelvis": "obscured or hips visible in background", + "legs": "obscured", + "feet": "out of frame", + "additional": "high viscosity liquid detail, shiny skin, wet texture, after sex atmosphere" + }, + "participants": { + "solo_focus": "true", + "orientation": "F" + }, + "lora": { + "lora_name": "Illustrious/Poses/cum_in_cleavage_illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "cum_in_cleavage_illustrious" + }, + "tags": [ + "cum", + "cum in cleavage", + "cum on breasts", + "semen", + "huge breasts", + "cleavage", + "messy", + "sticky", + "paizuri", + "sex act", + "illustration", + "nsfw" + ] +} \ No newline at end of file diff --git a/data/actions/cum_inside_slime_v0_2.json b/data/actions/cum_inside_slime_v0_2.json new file mode 100644 index 0000000..66971ab --- /dev/null +++ b/data/actions/cum_inside_slime_v0_2.json @@ -0,0 +1,35 @@ +{ + "action_id": "cum_inside_slime_v0_2", + "action_name": "Cum Inside Slime V0 2", + "action": { + "full_body": "front view, focus on midsection, semi-transparent body structure", + "head": "flustered expression, open mouth, heavy blush, tongue out", + "eyes": "rolled back, heart-shaped pupils", + "arms": "bent at elbows, hands touching abdomen", + "hands": "cupping lower belly, emphasizing fullness", + "torso": "translucent skin, visible white liquid filling the stomach and womb area, slightly distended belly", + "pelvis": "glowing with internal white fluid, see-through outer layer", + "legs": "thighs touching, slime texture dripping", + "feet": "standing firmly or slightly melting into floor", + "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" + }, + "tags": [ + "slime girl", + "monster girl", + "transparent skin", + "internal cum", + "cum filled", + "x-ray", + "stomach fill", + "viscous" + ] +} \ No newline at end of file diff --git a/data/actions/cum_shot.json b/data/actions/cum_shot.json new file mode 100644 index 0000000..d41f3fa --- /dev/null +++ b/data/actions/cum_shot.json @@ -0,0 +1,36 @@ +{ + "action_id": "cum_shot", + "action_name": "Cum Shot", + "action": { + "full_body": "close-up, portrait, upper body focus, kneeling or sitting", + "head": "mouth open, tongue out, blushing, sweating, cum on face, cum in mouth, semen on hair, messy hair", + "eyes": "half-closed eyes, rolling eyes, heart-shaped pupils, looking at viewer, glazed eyes", + "arms": "arms relaxed or hands framing face", + "hands": "hands on cheeks, making peace sign, or wiping face", + "torso": "exposed upper body, wet skin, cleavage", + "pelvis": "obscured or out of frame", + "legs": "kneeling or out of frame", + "feet": "out of frame", + "additional": "white liquid, splashing, sticky texture, aftermath, detailed fluids, high contrast" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/cum_shot.safetensors", + "lora_weight": 1.0, + "lora_triggers": "cum_shot" + }, + "tags": [ + "cum_shot", + "facial", + "semen", + "cum", + "bukkake", + "aftermath", + "nsfw", + "liquid", + "messy" + ] +} \ No newline at end of file diff --git a/data/actions/cum_swap.json b/data/actions/cum_swap.json new file mode 100644 index 0000000..8402381 --- /dev/null +++ b/data/actions/cum_swap.json @@ -0,0 +1,37 @@ +{ + "action_id": "cum_swap", + "action_name": "Cum Swap", + "action": { + "full_body": "two characters in close intimate proximity, upper bodies pressed together", + "head": "faces close, mouths open and connected, engaging in a deep kiss", + "eyes": "half-closed, heavy lidded, blushing cheeks", + "arms": "embracing partner, wrapped around neck or waist", + "hands": "cupping partner's face, holding back of head, fingers entagled in hair", + "torso": "chests touching, leaning inward", + "pelvis": "aligned with torso", + "legs": "standing or sitting positions", + "feet": "grounded or out of frame", + "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" + }, + "tags": [ + "cum swap", + "mouth to mouth", + "kissing", + "open mouth", + "liquid bridge", + "saliva", + "semen", + "duo", + "sharing fluids", + "intimacy" + ] +} \ No newline at end of file diff --git a/data/actions/cuminhands.json b/data/actions/cuminhands.json new file mode 100644 index 0000000..730c6d2 --- /dev/null +++ b/data/actions/cuminhands.json @@ -0,0 +1,36 @@ +{ + "action_id": "cuminhands", + "action_name": "Cuminhands", + "action": { + "full_body": "upper body focus, character presenting cupped hands towards the viewer", + "head": "looking down at hands or looking at viewer, expression of embarrassment or lewd satisfaction, blushing", + "eyes": "half-closed or wide open, focused on the hands", + "arms": "elbows bent, forearms brought together in front of the chest or stomach", + "hands": "cupped hands, palms facing up, fingers tight together, holding white liquid, messy hands", + "torso": "posture slightly hunched or leaning forward to show hands", + "pelvis": "stationary", + "legs": "kneeling or standing", + "feet": "planted", + "additional": "white liquid, seminal fluid, dripping between fingers, sticky texture, high contrast fluids" + }, + "participants": { + "solo_focus": "true", + "orientation": "F" + }, + "lora": { + "lora_name": "Illustrious/Poses/cuminhands.safetensors", + "lora_weight": 1.0, + "lora_triggers": "cuminhands" + }, + "tags": [ + "cum in hands", + "cupped hands", + "holding cum", + "cum", + "bodily fluids", + "messy", + "palms up", + "sticky", + "white liquid" + ] +} \ No newline at end of file diff --git a/data/actions/cumshot.json b/data/actions/cumshot.json new file mode 100644 index 0000000..a67b4a4 --- /dev/null +++ b/data/actions/cumshot.json @@ -0,0 +1,34 @@ +{ + "action_id": "cumshot", + "action_name": "Cumshot", + "action": { + "full_body": "close-up portrait shot, high angle view", + "head": "head tilted back, mouth slightly open, tongue out, face covered in white fluid", + "eyes": "eyes closed or rolling back, expression of pleasure, wet eyelashes", + "arms": "out of frame", + "hands": "out of frame", + "torso": "upper chest and collarbone visible", + "pelvis": "kout of frame", + "legs": "out of frame", + "feet": "out of frame", + "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" + }, + "tags": [ + "cum", + "cum on face", + "facial", + "messy", + "tongue out", + "seminal fluid", + "detailed liquid" + ] +} \ No newline at end of file diff --git a/data/actions/cumtube_000035.json b/data/actions/cumtube_000035.json new file mode 100644 index 0000000..a6a3ca2 --- /dev/null +++ b/data/actions/cumtube_000035.json @@ -0,0 +1,36 @@ +{ + "action_id": "cumtube_000035", + "action_name": "Cumtube 000035", + "action": { + "full_body": "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", + "eyes": "looking up, anticipating expression, half-closed or rolled back", + "arms": "raised, holding a large clear cylinder", + "hands": "firmly grasping the sides of the tube", + "torso": "chest pushed forward, liquid dripping down neck and chest", + "pelvis": "kneeling, hips resting on heels", + "legs": "legs folded underneath, knees apart", + "feet": "toes pointed backward", + "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" + }, + "tags": [ + "cumtube", + "viscous liquid", + "excessive liquid", + "facial mess", + "pouring", + "drinking", + "holding object", + "open mouth", + "wet skin" + ] +} \ No newline at end of file diff --git a/data/actions/cunnilingus_on_back_illustriousxl_lora_nochekaiser.json b/data/actions/cunnilingus_on_back_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..0c2609d --- /dev/null +++ b/data/actions/cunnilingus_on_back_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,34 @@ +{ + "action_id": "cunnilingus_on_back_illustriousxl_lora_nochekaiser", + "action_name": "Cunnilingus On Back Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "lying on back, receiving oral sex, partner between legs", + "head": "head tilted back, expression of pleasure, blushing, heavy breathing, mouth open", + "eyes": "eyes closed, rolling eyes, or looking down at partner", + "arms": "arms resting on bed or reaching towards partner", + "hands": "gripping bedsheets, clutching pillow, or holding partner's head", + "torso": "arched back, chest heaving", + "pelvis": "hips lifted, crotch exposed to partner", + "legs": "spread legs, legs apart, knees bent, m-legs", + "feet": "toes curled, feet on bed", + "additional": "partner's face in crotch, tongue, saliva, sexual act, intimate focus" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/cunnilingus-on-back-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "cunnilingus-on-back-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "cunnilingus", + "oral sex", + "lying on back", + "spread legs", + "pleasure", + "sex", + "NSFW" + ] +} \ No newline at end of file diff --git a/data/actions/danglinglegs.json b/data/actions/danglinglegs.json new file mode 100644 index 0000000..f2c39ac --- /dev/null +++ b/data/actions/danglinglegs.json @@ -0,0 +1,33 @@ +{ + "action_id": "danglinglegs", + "action_name": "Danglinglegs", + "action": { + "full_body": "holding waist, dangling legs, size difference", + "head": "facing forward or looking down", + "eyes": "relaxed gaze", + "arms": "resting on lap or gripping the edge of the seat", + "hands": "placed on thighs or holding on", + "torso": "upright sitting posture", + "pelvis": "seated on edge", + "legs": "dangling in the air, knees bent at edge, feet not touching the floor", + "feet": "relaxed, hanging loose", + "additional": "sitting on ledge, sitting on desk, high stool" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/danglinglegs.safetensors", + "lora_weight": 1.0, + "lora_triggers": "danglinglegs" + }, + "tags": [ + "dangling legs", + "sitting", + "feet off ground", + "from below", + "ledge", + "high place" + ] +} \ No newline at end of file diff --git a/data/actions/deep_kiss_000007.json b/data/actions/deep_kiss_000007.json new file mode 100644 index 0000000..29ff0e3 --- /dev/null +++ b/data/actions/deep_kiss_000007.json @@ -0,0 +1,41 @@ +{ + "action_id": "deep_kiss_000007", + "action_name": "Deep Kiss 000007", + "action": { + "full_body": "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": "eyes tightly closed, passionate expression", + "arms": "arms wrapped around neck, arms holding waist, engulfing embrace", + "hands": "cupping face, fingers running through hair, gripping shoulders or back", + "torso": "chest to chest contact, breasts pressed against chest", + "pelvis": "hips pressed together, zero distance", + "legs": "standing close, interlocked or one leg lifted behind", + "feet": "standing, on tiptoes", + "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" + }, + "tags": [ + "deep kiss", + "french kiss", + "kissing", + "tongue", + "saliva", + "saliva trail", + "open mouth", + "couple", + "intimate", + "romance", + "love", + "passionate", + "eyes closed", + "duo" + ] +} \ No newline at end of file diff --git a/data/actions/deepthroat_ponytailhandle_anime_il_v1.json b/data/actions/deepthroat_ponytailhandle_anime_il_v1.json new file mode 100644 index 0000000..763d609 --- /dev/null +++ b/data/actions/deepthroat_ponytailhandle_anime_il_v1.json @@ -0,0 +1,40 @@ +{ + "action_id": "deepthroat_ponytailhandle_anime_il_v1", + "action_name": "Deepthroat Ponytailhandle Anime Il V1", + "action": { + "full_body": "kneeling, performing deepthroat fellatio, body angled towards partner", + "head": "tilted back forcedly, mouth stretched wide, gagging, face flushed, hair pulled taught", + "eyes": "tearing up, rolled back, looking up, streaming tears", + "arms": "reaching forward, holding onto partner's legs for support", + "hands": "grasping thighs, fingers digging in", + "torso": "leaning forward, back slightly arched", + "pelvis": "kneeling position", + "legs": "knees on ground, shins flat", + "feet": "toes curled tightly", + "additional": "saliva trails, heavy breathing, hand grabbing ponytail, penis in mouth, irrumatio" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Deepthroat_PonytailHandle_Anime_IL_V1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Deepthroat_PonytailHandle_Anime_IL_V1" + }, + "tags": [ + "deepthroat", + "fellatio", + "oral sex", + "hair pull", + "grabbing hair", + "ponytail", + "kneeling", + "gagging", + "irrumatio", + "tears", + "saliva", + "submissive", + "forced oral" + ] +} \ No newline at end of file diff --git a/data/actions/defeat_ntr_il_nai_py.json b/data/actions/defeat_ntr_il_nai_py.json new file mode 100644 index 0000000..1f8aa92 --- /dev/null +++ b/data/actions/defeat_ntr_il_nai_py.json @@ -0,0 +1,37 @@ +{ + "action_id": "defeat_ntr_il_nai_py", + "action_name": "Defeat Ntr Il Nai Py", + "action": { + "full_body": "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", + "eyes": "crying, tears, empty eyes, or eyes squeezed shut in anguish", + "arms": "arms straight down supporting weight against the floor", + "hands": "hands flat on the ground, palms down, or clenched fists on ground", + "torso": "hunched back, crushed posture, leaning forward", + "pelvis": "hips raised slightly or sitting back on heels in submission", + "legs": "knees on ground, kneeling", + "feet": "tops of feet flat on floor", + "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" + }, + "tags": [ + "defeat", + "on hands and knees", + "all fours", + "despair", + "crying", + "orz", + "humiliation", + "kneeling", + "looking down", + "tears" + ] +} \ No newline at end of file diff --git a/data/actions/defeat_suspension_il_nai_py.json b/data/actions/defeat_suspension_il_nai_py.json new file mode 100644 index 0000000..57caee7 --- /dev/null +++ b/data/actions/defeat_suspension_il_nai_py.json @@ -0,0 +1,36 @@ +{ + "action_id": "defeat_suspension_il_nai_py", + "action_name": "Defeat Suspension Il Nai Py", + "action": { + "full_body": "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": "eyes closed, unconscious, pained expression, or empty gaze", + "arms": "arms stretched vertically upwards, arms above head, shoulders pulled up by weight", + "hands": "wrists bound together, hands tied overhead, handcuffs, shackles", + "torso": "torso elongated by gravity, ribcage visible, stomach stretched", + "pelvis": "hips sagging downwards, dead weight", + "legs": "legs dangling freely, limp legs, knees slightly bent or hanging straight", + "feet": "feet pointing downwards, hovering off the ground, toes dragging", + "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" + }, + "tags": [ + "suspension", + "hanging", + "bound", + "arms_up", + "limp", + "unconscious", + "dangling", + "bdsm", + "bondage" + ] +} \ No newline at end of file diff --git a/data/actions/defeatspitroast_illustrious.json b/data/actions/defeatspitroast_illustrious.json new file mode 100644 index 0000000..19d1e1e --- /dev/null +++ b/data/actions/defeatspitroast_illustrious.json @@ -0,0 +1,39 @@ +{ + "action_id": "defeatspitroast_illustrious", + "action_name": "Defeatspitroast Illustrious", + "action": { + "full_body": "oral sex, vaginal, threesome, double penetration, suspended sex, dangling legs", + "head": "tilted back or looking aside, mouth wide open, tongue sticking out, exhausted expression", + "eyes": "rolled back, half-closed, ahegao", + "arms": "bent at elbows, supporting upper body weight", + "hands": "gripping the ground or sheets, clenching", + "torso": "sweaty, deeply arched spine", + "pelvis": "ass up, presenting rear", + "legs": "kneeling, thighs spread wide", + "feet": "toes curled", + "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" + }, + "tags": [ + "doggystyle", + "spitroast", + "double_penetration", + "all_fours", + "ass_up", + "open_mouth", + "tongue_out", + "ahegao", + "sweat", + "looking_back", + "", + "1girl" + ] +} \ No newline at end of file diff --git a/data/actions/disinterested_sex___bored_female.json b/data/actions/disinterested_sex___bored_female.json new file mode 100644 index 0000000..b3dce49 --- /dev/null +++ b/data/actions/disinterested_sex___bored_female.json @@ -0,0 +1,36 @@ +{ + "action_id": "disinterested_sex___bored_female", + "action_name": "Disinterested Sex Bored Female", + "action": { + "full_body": "female lying on back, legs spread, passive body language, completely disengaged from implicit activity", + "head": "turned slightly or facing forward but focused on phone, resting on pillow", + "eyes": "looking at smartphone, dull gaze, half-closed, unenthusiastic", + "arms": "holding smartphone above face with one or both hands, elbows resting on surface", + "hands": "holding phone, scrolling on screen", + "torso": "lying flat, relaxed, exposed", + "pelvis": "hips passive, legs open", + "legs": "spread wide, knees bent, relaxed", + "feet": "loose, resting on bed", + "additional": "holding smartphone, checking phone, indifference, ignoring, nonchalant attitude" + }, + "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" + }, + "tags": [ + "bored", + "disinterested", + "looking at phone", + "smartphone", + "lying", + "spread legs", + "passive", + "indifferent", + "expressionless" + ] +} \ No newline at end of file diff --git a/data/actions/display_case_bdsm_illus.json b/data/actions/display_case_bdsm_illus.json new file mode 100644 index 0000000..50eb558 --- /dev/null +++ b/data/actions/display_case_bdsm_illus.json @@ -0,0 +1,33 @@ +{ + "action_id": "display_case_bdsm_illus", + "action_name": "Display Case Bdsm Illus", + "action": { + "full_body": "trapped inside a rectangular glass display case, standing or kneeling limitation, whole body confined", + "head": "looking out through the glass, potentially gagged or expressionless", + "eyes": "open, staring at the viewer through reflections", + "arms": "restricted movement, potentially bound behind back or pressed against glass", + "hands": "palms pressed against the transparent wall or tied", + "torso": "upright relative to the container, visible behind glass", + "pelvis": "hips aligned with the standing or kneeling posture", + "legs": "straight or folded to fit inside the box", + "feet": "resting on the bottom platform of the case", + "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" + }, + "tags": [ + "glass box", + "confinement", + "exhibitionism", + "trapped", + "through glass", + "human exhibit" + ] +} \ No newline at end of file diff --git a/data/actions/display_case_illustr.json b/data/actions/display_case_illustr.json new file mode 100644 index 0000000..550d927 --- /dev/null +++ b/data/actions/display_case_illustr.json @@ -0,0 +1,36 @@ +{ + "action_id": "display_case_illustr", + "action_name": "Display Case Illustr", + "action": { + "full_body": "standing stiffly like an action figure, encased inside a rectangular transparent box", + "head": "neutral expression, facing forward, slightly doll-like", + "eyes": "fixed gaze, looking at viewer", + "arms": "resting at sides or slightly bent in a static pose", + "hands": "open palms or loosely curled, possibly pressing against the front glass", + "torso": "facing front, rigid posture", + "pelvis": "aligned with torso", + "legs": "standing straight, feet positioned securely on the box base", + "feet": "flat on the floor of the case", + "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" + }, + "tags": [ + "display case", + "action figure", + "packaging", + "in box", + "plastic box", + "collectible", + "sealed", + "toy", + "transparent" + ] +} \ No newline at end of file diff --git a/data/actions/doggydoublefingering.json b/data/actions/doggydoublefingering.json new file mode 100644 index 0000000..f867c1e --- /dev/null +++ b/data/actions/doggydoublefingering.json @@ -0,0 +1,33 @@ +{ + "action_id": "doggydoublefingering", + "action_name": "Doggydoublefingering", + "action": { + "full_body": "all fours, doggy style, kneeling, presenting rear, from behind", + "head": "looking back, looking at viewer, blushing face", + "eyes": "half-closed eyes, expressionless or aroused", + "arms": "reaching back between legs, reaching towards crotch", + "hands": "fingering, double fingering, both hands used, spreading vaginal lips, manipulating genitals", + "torso": "arched back, curvature of spine", + "pelvis": "hips raised, presenting pussy, exposed gluteal crease", + "legs": "knees bent on ground, thighs spread", + "feet": "toes curled, relaxing instep", + "additional": "pussy juice, focus on buttocks, focus on genitals" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/DoggyDoubleFingering.safetensors", + "lora_weight": 1.0, + "lora_triggers": "DoggyDoubleFingering" + }, + "tags": [ + "masturbation", + "solo", + "ass focus", + "pussy", + "kneeling", + "NSFW" + ] +} \ No newline at end of file diff --git a/data/actions/dunking_face_in_a_bowl_of_cum_r1.json b/data/actions/dunking_face_in_a_bowl_of_cum_r1.json new file mode 100644 index 0000000..2ced770 --- /dev/null +++ b/data/actions/dunking_face_in_a_bowl_of_cum_r1.json @@ -0,0 +1,37 @@ +{ + "action_id": "dunking_face_in_a_bowl_of_cum_r1", + "action_name": "Dunking Face In A Bowl Of Cum R1", + "action": { + "full_body": "leaning forward over a table or surface, bent at the waist", + "head": "face submerged in a bowl, head bent downward", + "eyes": "closed or obscured by liquid", + "arms": "resting on the surface to support weight or holding the bowl", + "hands": "palms flat on table or gripping the sides of the bowl", + "torso": "leaned forward, horizontal alignment", + "pelvis": "pushed back", + "legs": "standing or kneeling", + "feet": "resting on floor", + "additional": "cum pool, large bowl filled with viscous white liquid, semen, messy, splashing, dripping" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Dunking_face_in_a_bowl_of_cum_r1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Dunking_face_in_a_bowl_of_cum_r1" + }, + "tags": [ + "dunking face", + "face in bowl", + "bowl of cum", + "semen", + "messy", + "submerged", + "leaning forward", + "bent over", + "white liquid", + "cum" + ] +} \ No newline at end of file diff --git a/data/actions/ekiben_ill_10.json b/data/actions/ekiben_ill_10.json new file mode 100644 index 0000000..c3be317 --- /dev/null +++ b/data/actions/ekiben_ill_10.json @@ -0,0 +1,35 @@ +{ + "action_id": "ekiben_ill_10", + "action_name": "Ekiben Ill 10", + "action": { + "full_body": "duo, 1boy, 1girl, standing, male lifting female, carrying, sexual position", + "head": "looking at another, head back or looking down", + "eyes": "eye contact or eyes closed", + "arms": "arms supporting legs, arms around neck", + "hands": "holding legs, grabbing thighs, gripping", + "torso": "chest to chest, upright", + "pelvis": "connected, groins touching", + "legs": "spread legs, legs up, legs around waist, m-legs, bent knees", + "feet": "dangling feet, plantar flexion", + "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" + }, + "tags": [ + "ekiben", + "lifting", + "carrying", + "standing", + "spread legs", + "holding legs", + "duo", + "sex" + ] +} \ No newline at end of file diff --git a/data/actions/elbow_squeeze__concept_lora_000008.json b/data/actions/elbow_squeeze__concept_lora_000008.json new file mode 100644 index 0000000..2aae565 --- /dev/null +++ b/data/actions/elbow_squeeze__concept_lora_000008.json @@ -0,0 +1,32 @@ +{ + "action_id": "elbow_squeeze__concept_lora_000008", + "action_name": "Elbow Squeeze Concept Lora 000008", + "action": { + "full_body": "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.", + "eyes": "Looking directly at viewer.", + "arms": "Upper arms squeezing inward against the sides of the ribs/chest, elbows tucked tight to the body.", + "hands": "Forearms angled out or hands clasped near the navel/chest area.", + "torso": "Chest pushed upward or compressed slightly by the lateral pressure of the arms.", + "pelvis": "Neutral stance.", + "legs": "Standing straight or slightly knock-kneed for a shy effect.", + "feet": "Planted firmly.", + "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" + }, + "tags": [ + "elbow squeeze", + "arms at sides", + "upper body", + "squeezing", + "tight clothes" + ] +} \ No newline at end of file diff --git a/data/actions/extreme_sex_v1_0_illustriousxl.json b/data/actions/extreme_sex_v1_0_illustriousxl.json new file mode 100644 index 0000000..ec2c736 --- /dev/null +++ b/data/actions/extreme_sex_v1_0_illustriousxl.json @@ -0,0 +1,37 @@ +{ + "action_id": "extreme_sex_v1_0_illustriousxl", + "action_name": "Extreme Sex V1 0 Illustriousxl", + "action": { + "full_body": "lying on back, mating press, legs lifted high, dynamic angle, foreshortening", + "head": "head leaning back, heavy blush, sweat, mouth open, tongue out, intense expression", + "eyes": "rolling eyes, heart-shaped pupils, eyelashes", + "arms": "arms reaching forward, grabbing sheets, or holding own legs", + "hands": "clenched hands, grabbing", + "torso": "arched back, chest exposed, sweat on skin", + "pelvis": "hips lifted, pelvis tilted upwards", + "legs": "legs spread, m-legs, legs folded towards torso, knees bent", + "feet": "feet in air, toes curled, plantar view", + "additional": "motion lines, shaking, bodily fluids, bed sheet, pillow" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/extreme-sex-v1.0-illustriousxl.safetensors", + "lora_weight": 1.0, + "lora_triggers": "extreme-sex-v1.0-illustriousxl" + }, + "tags": [ + "mating press", + "lying on back", + "legs up", + "open mouth", + "blush", + "sweat", + "m-legs", + "intense", + "ahegao", + "explicit" + ] +} \ No newline at end of file diff --git a/data/actions/face_grab_illustrious.json b/data/actions/face_grab_illustrious.json new file mode 100644 index 0000000..93b5fe2 --- /dev/null +++ b/data/actions/face_grab_illustrious.json @@ -0,0 +1,36 @@ +{ + "action_id": "face_grab_illustrious", + "action_name": "Face Grab Illustrious", + "action": { + "full_body": "medium shot or close up of a character having their face grabbed by a hand", + "head": "face obscured by hand, cheeks squeezed, skin indentation from fingers, annoyed or pained expression", + "eyes": "squinting or partially covered by fingers", + "arms": "raised upwards attempting to pry the hand away", + "hands": "holding the wrist or forearm of the grabbing hand", + "torso": "upper body slightly leaned back from the force of the grab", + "pelvis": "neutral alignment", + "legs": "standing still", + "feet": "planted firmly", + "additional": "the grabbing hand usually belongs to another person or is an off-screen entity, commonly referred to as the iron claw technique" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/face_grab_illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "face_grab_illustrious" + }, + "tags": [ + "face grab", + "iron claw", + "hand on face", + "hand over face", + "skin indentation", + "squeezed face", + "fingers on face", + "forced", + "cheek pinch" + ] +} \ No newline at end of file diff --git a/data/actions/facesit_08.json b/data/actions/facesit_08.json new file mode 100644 index 0000000..6f691f7 --- /dev/null +++ b/data/actions/facesit_08.json @@ -0,0 +1,34 @@ +{ + "action_id": "facesit_08", + "action_name": "Facesit 08", + "action": { + "full_body": "POV perspective from below, character straddling the camera/viewer in a squatting or kneeling position", + "head": "tilted downwards, looking directly at the viewer", + "eyes": "gazing down, maintaining eye contact", + "arms": "resting comfortably", + "hands": "placed on own thighs or knees for support", + "torso": "foreshortened from below, leaning slightly forward", + "pelvis": "positioned directly over the camera lens, dominating the frame", + "legs": "spread wide, knees bent deeply, thighs framing the view", + "feet": "resting on the surface on either side of the viewpoint", + "additional": "extreme low angle, forced perspective, intimate proximity" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/facesit-08.safetensors", + "lora_weight": 1.0, + "lora_triggers": "facesit-08" + }, + "tags": [ + "facesitting", + "pov", + "femdom", + "squatting", + "looking down", + "low angle", + "thighs" + ] +} \ No newline at end of file diff --git a/data/actions/facial_bukkake.json b/data/actions/facial_bukkake.json new file mode 100644 index 0000000..73e2829 --- /dev/null +++ b/data/actions/facial_bukkake.json @@ -0,0 +1,37 @@ +{ + "action_id": "facial_bukkake", + "action_name": "Facial Bukkake", + "action": { + "full_body": "close-up portrait shot, focus primarily on the face and neck area", + "head": "tilted slightly backward, mouth open or tongue out, face heavily covered in white liquid", + "eyes": "closed or looking upward, eyelashes wet/clumped", + "arms": "out of frame or hands interacting with face/hair", + "hands": "holding hair back or wiping cheek", + "torso": "upper chest or shoulders visible, possibly stained", + "pelvis": "not visible", + "legs": "not visible", + "feet": "not visible", + "additional": "streaming white liquid, dripping, messy, wet skin texture, high viscosity" + }, + "participants": { + "solo_focus": "true", + "orientation": "F" + }, + "lora": { + "lora_name": "Illustrious/Poses/facial_bukkake.safetensors", + "lora_weight": 1.0, + "lora_triggers": "facial_bukkake" + }, + "tags": [ + "bukkake", + "facial", + "cum on face", + "semen", + "messy", + "white liquid", + "cum in eyes", + "cum in mouth", + "splatter", + "after sex" + ] +} \ No newline at end of file diff --git a/data/actions/fellatio_on_couch_illustriousxl_lora_nochekaiser.json b/data/actions/fellatio_on_couch_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..9a8aadc --- /dev/null +++ b/data/actions/fellatio_on_couch_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,38 @@ +{ + "action_id": "fellatio_on_couch_illustriousxl_lora_nochekaiser", + "action_name": "Fellatio On Couch Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "kneeling on couch, leaning forward, performing fellatio, sexual act, duo focus", + "head": "face in crotch, mouth open, sucking, cheeks hollowed, saliva trail", + "eyes": "looking up, half-closed eyes, eye contact, ahegao", + "arms": "reaching forward, holding partner's thighs, resting on cushions", + "hands": "stroking penis, gripping legs, guiding head", + "torso": "leaning forward, bent over, arched back", + "pelvis": "kneeling, hips pushed back", + "legs": "kneeling on sofa, spread slightly, knees bent", + "feet": "toes curled, resting on upholstery, plantar flexion", + "additional": "indoor, living room, sofa, couch, fabric texture, motion lines" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/fellatio-on-couch-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "fellatio-on-couch-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "fellatio", + "oral sex", + "on couch", + "kneeling", + "sofa", + "penis", + "cum", + "saliva", + "indoor", + "sex", + "blowjob" + ] +} \ No newline at end of file diff --git a/data/actions/femdom_face_between_breasts.json b/data/actions/femdom_face_between_breasts.json new file mode 100644 index 0000000..23d620e --- /dev/null +++ b/data/actions/femdom_face_between_breasts.json @@ -0,0 +1,34 @@ +{ + "action_id": "femdom_face_between_breasts", + "action_name": "Femdom Face Between Breasts", + "action": { + "full_body": "upper body view, female character pressing a person's face into her chest", + "head": "looking down, chin tucked, dominant expression", + "eyes": "narrowed, looking down at the person", + "arms": "wrapping around the person's head, holding head firmly", + "hands": "fingers tangled in hair, or pressing the back of the head", + "torso": "chest pushed forward, breasts pressed tightly together around a face", + "pelvis": "neutral alignment", + "legs": "standing or sitting", + "feet": "not visible", + "additional": "male face buried in breasts, squished face, soft lighting, close-up" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/femdom_face_between_breasts.safetensors", + "lora_weight": 1.0, + "lora_triggers": "femdom_face_between_breasts" + }, + "tags": [ + "breast smother", + "buried in breasts", + "face between breasts", + "facesitting", + "femdom", + "big breasts", + "cleavage" + ] +} \ No newline at end of file diff --git a/data/actions/femdom_held_down_illust.json b/data/actions/femdom_held_down_illust.json new file mode 100644 index 0000000..b7201ae --- /dev/null +++ b/data/actions/femdom_held_down_illust.json @@ -0,0 +1,37 @@ +{ + "action_id": "femdom_held_down_illust", + "action_name": "Femdom Held Down Illust", + "action": { + "full_body": "dominant character straddling someone, pinning them to the surface, assertive posture, on top", + "head": "looking down at viewer (pov), dominance expression, chin tilted down", + "eyes": "narrowed, intense eye contact, looking down", + "arms": "extended downwards, locked elbows, exerting pressure", + "hands": "forcefully holding wrists against the surface, pinning hands, wrist grab", + "torso": "leaning forward slightly, arching back, looming over", + "pelvis": "straddling the subject's waist or chest, hips grounded", + "legs": "knees bent, kneeling on either side of the subject, thighs active", + "feet": "kneeling position, toes touching the ground or bed", + "additional": "pov, from below, power dynamic, submission, floor or bed background" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Femdom_Held_Down_Illust.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Femdom_Held_Down_Illust" + }, + "tags": [ + "femdom", + "held down", + "pinning", + "straddling", + "on top", + "looking down", + "pov", + "from below", + "wrist grab", + "dominance" + ] +} \ No newline at end of file diff --git a/data/actions/fertilization_illustriousxl_lora_nochekaiser.json b/data/actions/fertilization_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..c8c8224 --- /dev/null +++ b/data/actions/fertilization_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,35 @@ +{ + "action_id": "fertilization_illustriousxl_lora_nochekaiser", + "action_name": "Fertilization Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "lying on back, legs spread, internal view, cross-section, x-ray view of abdomen", + "head": "head resting on pillow, heavy breathing, blushing", + "eyes": "half-closed eyes, rolled back eyes or heart-shaped pupils", + "arms": "arms resting at sides or holding bed sheets", + "hands": "hands clutching sheets or resting on stomach", + "torso": "exposed tummy, navel, transparent skin effect", + "pelvis": "focus on womb, uterus visible, internal female anatomy", + "legs": "legs spread wide, m-legs, knees up", + "feet": "toes curled", + "additional": "visualized fertilization process, sperm, egg, cum inside, glowing internal organs, detailed uterus, biology diagram style" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/fertilization-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "fertilization-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "fertilization", + "internal view", + "cross-section", + "x-ray", + "womb", + "cum inside", + "uterus", + "impregnation" + ] +} \ No newline at end of file diff --git a/data/actions/fff_imminent_masturbation.json b/data/actions/fff_imminent_masturbation.json new file mode 100644 index 0000000..3ed0220 --- /dev/null +++ b/data/actions/fff_imminent_masturbation.json @@ -0,0 +1,39 @@ +{ + "action_id": "fff_imminent_masturbation", + "action_name": "Fff Imminent Masturbation", + "action": { + "full_body": "lying on back, reclining mostly nude, body tense with anticipation", + "head": "tilted back slightly, chin up, face flushed", + "eyes": "half-closed, heavy-lidded, lustful gaze", + "arms": "reaching downwards along the body", + "hands": "hovering near genitals, fingers spreading, one hand grasping thigh, one hand reaching into panties or towards crotch", + "torso": "arched back, chest heaving", + "pelvis": "tilted upward, hips lifted slightly", + "legs": "spread wide, knees bent and falling outward (M-legs)", + "feet": "toes curled", + "additional": "sweaty skin, disheveled clothing, underwear pulled aside, messy sheets" + }, + "participants": { + "solo_focus": "false", + "orientation": "FFF" + }, + "lora": { + "lora_name": "Illustrious/Poses/FFF_imminent_masturbation.safetensors", + "lora_weight": 1.0, + "lora_triggers": "FFF_imminent_masturbation" + }, + "tags": [ + "solo", + "female", + "imminent masturbation", + "hand near crotch", + "hand in panties", + "fingering", + "spread legs", + "lying", + "on bed", + "aroused", + "blush", + "nsfw" + ] +} \ No newline at end of file diff --git a/data/actions/ffm3some_footjob_efeme3ftfe_il_1475115.json b/data/actions/ffm3some_footjob_efeme3ftfe_il_1475115.json new file mode 100644 index 0000000..cb61950 --- /dev/null +++ b/data/actions/ffm3some_footjob_efeme3ftfe_il_1475115.json @@ -0,0 +1,37 @@ +{ + "action_id": "ffm3some_footjob_efeme3ftfe_il_1475115", + "action_name": "Ffm3Some Footjob Efeme3Ftfe Il 1475115", + "action": { + "full_body": "FFM threesome scenario, one male lying on back receiving stimulation, two females sitting or reclining near his, performing a double footjob", + "head": "females looking down at their feet, male head bathed in pleasure, expressions of focus and arousal", + "eyes": "looking at penis, eyes closed, eye contact with male", + "arms": "females arms resting behind them for support or on their own legs", + "hands": "hands resting on bed sheets, gripping sheets, or touching own legs", + "torso": "male torso exposed supine, females upper bodies leaning back or sitting upright", + "pelvis": "hips positioned to extend legs towards the male", + "legs": "females legs extended towards center, male legs spread or straight", + "feet": "barefoot, soles rubbing against penis, toes curling, sandwiching penis between feet, four feet visible", + "additional": "indoors, bed, crumpled sheets, sexual activity, multiple partners" + }, + "participants": { + "solo_focus": "false", + "orientation": "FFM" + }, + "lora": { + "lora_name": "Illustrious/Poses/FFM3SOME-footjob-EFEME3ftfe-IL_1475115.safetensors", + "lora_weight": 1.0, + "lora_triggers": "FFM3SOME-footjob-EFEME3ftfe-IL_1475115" + }, + "tags": [ + "footjob", + "ffm", + "threesome", + "2girls", + "1boy", + "soles", + "barefoot", + "legs", + "penis", + "sexual" + ] +} \ No newline at end of file diff --git a/data/actions/ffm_threesome___kiss_and_fellatio_illustrious.json b/data/actions/ffm_threesome___kiss_and_fellatio_illustrious.json new file mode 100644 index 0000000..d8f4981 --- /dev/null +++ b/data/actions/ffm_threesome___kiss_and_fellatio_illustrious.json @@ -0,0 +1,38 @@ +{ + "action_id": "ffm_threesome___kiss_and_fellatio_illustrious", + "action_name": "Ffm Threesome Kiss And Fellatio Illustrious", + "action": { + "full_body": "FFM threesome composition, 1boy between 2girls, simultaneous sexual activity", + "head": "one female kissing the male deep french kiss, second female bobbing head at crotch level", + "eyes": "eyes closed in pleasure, half-lidded, rolling back", + "arms": "wrapping around neck, holding head, bracing on thighs", + "hands": "fingers tangled in hair, holding penis, guiding head, groping", + "torso": "leaning forward, arched back, sitting upright", + "pelvis": "kneeling, sitting on lap, hips thrust forward", + "legs": "kneeling, spread legs, wrapped around waist", + "feet": "arched feet, curled toes", + "additional": "saliva trail, tongue, penis in mouth, cheek poking, blush, sweat, intimate lighting" + }, + "participants": { + "solo_focus": "false", + "orientation": "FFM" + }, + "lora": { + "lora_name": "Illustrious/Poses/FFM_threesome_-_Kiss_and_Fellatio_Illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "FFM_threesome_-_Kiss_and_Fellatio_Illustrious" + }, + "tags": [ + "ffm", + "threesome", + "group sex", + "kissing", + "fellatio", + "blowjob", + "2girls", + "1boy", + "simultaneous oral", + "french kiss", + "penis in mouth" + ] +} \ No newline at end of file diff --git a/data/actions/ffm_threesome_doggy_style_front_view_illustrious.json b/data/actions/ffm_threesome_doggy_style_front_view_illustrious.json new file mode 100644 index 0000000..8deedc7 --- /dev/null +++ b/data/actions/ffm_threesome_doggy_style_front_view_illustrious.json @@ -0,0 +1,37 @@ +{ + "action_id": "ffm_threesome_doggy_style_front_view_illustrious", + "action_name": "Ffm Threesome Doggy Style Front View Illustrious", + "action": { + "full_body": "threesome, 2girls, 1boy, doggy style, all fours, kneeling, from front, bodies overlapping", + "head": "looking at viewer, head raised, blushing, sweating, tongues out", + "eyes": "open eyes, heart-shaped pupils, eye contact", + "arms": "arms straight, supporting weight, hands on ground", + "hands": "palms flat, fingers spread, on bed sheet", + "torso": "leaning forward, arched back, breasts hanging", + "pelvis": "hips raised high, buttocks touching", + "legs": "knees bent, kneeling, legs spread", + "feet": "toes curled, feet relaxed", + "additional": "sex, penetration, vaginal, motion lines, saliva trail, indoors, bed" + }, + "participants": { + "solo_focus": "false", + "orientation": "FFM" + }, + "lora": { + "lora_name": "Illustrious/Poses/FFM_Threesome_doggy_style_front_view_Illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "FFM_Threesome_doggy_style_front_view_Illustrious" + }, + "tags": [ + "threesome", + "2girls", + "1boy", + "doggy style", + "from front", + "all fours", + "sex", + "penetration", + "blush", + "sweat" + ] +} \ No newline at end of file diff --git a/data/actions/ffm_threesome_one_girl_on_top_and_bj.json b/data/actions/ffm_threesome_one_girl_on_top_and_bj.json new file mode 100644 index 0000000..daa3f4f --- /dev/null +++ b/data/actions/ffm_threesome_one_girl_on_top_and_bj.json @@ -0,0 +1,40 @@ +{ + "action_id": "ffm_threesome_one_girl_on_top_and_bj", + "action_name": "Ffm Threesome One Girl On Top And Bj", + "action": { + "full_body": "FFM threesome scene consisting of a male lying on his back on a bed, one female straddling his hips in a cowgirl position, and a second female positioned near his head or upper body", + "head": "heads close together, expressions of pleasure, mouth open, blushing", + "eyes": "rolled back, heart-shaped pupils, closed eyes, looking down", + "arms": "reaching out, holding hips, caressing face, resting on bed", + "hands": "gripping waist, holding hair, touching chest", + "torso": "arching back, leaning forward, sweat on skin, bare skin", + "pelvis": "interlocking hips, straddling, grinding motion", + "legs": "kneeling, spread wide, bent at knees", + "feet": "toes curled, resting on mattress", + "additional": "bedroom setting, crumpled sheets, intimate atmosphere, soft lighting" + }, + "participants": { + "solo_focus": "false", + "orientation": "FFM" + }, + "lora": { + "lora_name": "Illustrious/Poses/FFM_threesome_one_girl_on_top_and_BJ.safetensors", + "lora_weight": 1.0, + "lora_triggers": "FFM_threesome_one_girl_on_top_and_BJ" + }, + "tags": [ + "2girls", + "1boy", + "ffm", + "threesome", + "cowgirl", + "fellatio", + "woman on top", + "sex", + "vaginal", + "oral", + "group sex", + "lying on back", + "nude" + ] +} \ No newline at end of file diff --git a/data/actions/ffmnursinghandjob_ill_v3.json b/data/actions/ffmnursinghandjob_ill_v3.json new file mode 100644 index 0000000..c2f7ffe --- /dev/null +++ b/data/actions/ffmnursinghandjob_ill_v3.json @@ -0,0 +1,39 @@ +{ + "action_id": "ffmnursinghandjob_ill_v3", + "action_name": "Ffmnursinghandjob Ill V3", + "action": { + "full_body": "threesome, 2girls, 1boy, ffm, male lying on back, two females kneeling or straddling", + "head": "blushing faces, looking down, ecstatic expressions, tongue out", + "eyes": "half-closed eyes, heart-shaped pupils, looking at penis", + "arms": "holding breasts, offering breast, reaching for penis", + "hands": "double handjob, stroking penis, squeezing breasts", + "torso": "exposed breasts, leaning forward, nipples visible", + "pelvis": "hips positioned near male's face or chest", + "legs": "kneeling, spread legs", + "feet": "barefoot", + "additional": "lactation, breast milk, saliva string, messy" + }, + "participants": { + "solo_focus": "false", + "orientation": "FFM" + }, + "lora": { + "lora_name": "Illustrious/Poses/ffmNursingHandjob_ill_v3.safetensors", + "lora_weight": 1.0, + "lora_triggers": "ffmNursingHandjob_ill_v3" + }, + "tags": [ + "threesome", + "2girls", + "1boy", + "ffm", + "handjob", + "double_handjob", + "nursing", + "breast_feeding", + "lactation", + "breast_milk", + "big_breasts", + "kneeling" + ] +} \ No newline at end of file diff --git a/data/actions/finish_blow_ill_v0_90_000004.json b/data/actions/finish_blow_ill_v0_90_000004.json new file mode 100644 index 0000000..38fc260 --- /dev/null +++ b/data/actions/finish_blow_ill_v0_90_000004.json @@ -0,0 +1,33 @@ +{ + "action_id": "finish_blow_ill_v0_90_000004", + "action_name": "Finish Blow Ill V0 90 000004", + "action": { + "full_body": "highly dynamic combat pose, delivering a final powerful strike, lunging forward or mid-air jump", + "head": "intense battle expression, shouting or gritted teeth, hair flowing with motion", + "eyes": "fierce gaze, focused on target, angry eyes", + "arms": "swinging wildy, outstretched with weapon, motion blur on limbs", + "hands": "tightly gripping weapon, two-handed grip, or clenched fist", + "torso": "twisted torso for momentum, leaning into the attack", + "pelvis": "hips rotated to generate power, low center of gravity", + "legs": "wide stance, knees bent, dynamic foreshortening", + "feet": "planted firmly on ground or pointed in air, debris kicks up", + "additional": "light trails, speed lines, impact effects, shockwaves, cinematic lighting, dutch angle, weapon smear" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/finish_blow_ill_v0.90-000004.safetensors", + "lora_weight": 1.0, + "lora_triggers": "finish_blow_ill_v0.90-000004" + }, + "tags": [ + "action shot", + "fighting", + "masterpiece", + "motion blur", + "intense", + "cinematic composition" + ] +} \ No newline at end of file diff --git a/data/actions/fixed_perspective_v3_1558768.json b/data/actions/fixed_perspective_v3_1558768.json new file mode 100644 index 0000000..5057816 --- /dev/null +++ b/data/actions/fixed_perspective_v3_1558768.json @@ -0,0 +1,34 @@ +{ + "action_id": "fixed_perspective_v3_1558768", + "action_name": "Fixed Perspective V3 1558768", + "action": { + "full_body": "Character positioned with exaggerated depth, utilizing strong foreshortening to create a 3D effect aimed at the viewer", + "head": "Face centered and close to the camera, looking directly at the viewer", + "eyes": "Intense eye contact, detailed eyes", + "arms": "One or both arms reaching towards the lens, appearing larger due to perspective", + "hands": "Enlarged hands/fingers reaching out (foreshortened)", + "torso": "Angled to recede into the background", + "pelvis": "Visually smaller, further back", + "legs": "Trailing off into the distance, significantly smaller than the upper body", + "feet": "Small or out of frame due to depth", + "additional": "Fisheye lens effect, dramatic camera angle, depth of field, high distortion, 3D composition" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/fixed_perspective_v3_1558768.safetensors", + "lora_weight": 1.0, + "lora_triggers": "fixed_perspective_v3_1558768" + }, + "tags": [ + "foreshortening", + "perspective", + "fisheye", + "reaching", + "dynamic angle", + "portrait", + "depth of field" + ] +} \ No newline at end of file diff --git a/data/actions/fixed_point_v2.json b/data/actions/fixed_point_v2.json new file mode 100644 index 0000000..4ced49d --- /dev/null +++ b/data/actions/fixed_point_v2.json @@ -0,0 +1,34 @@ +{ + "action_id": "fixed_point_v2", + "action_name": "Fixed Point V2", + "action": { + "full_body": "standing, assertive posture, foreshortening effect on the arm", + "head": "facing viewer, chin slightly tucked or tilted confidentially", + "eyes": "looking at viewer, focused gaze, winking or intense stare", + "arms": "arm extended forward towards the camera, elbow straight or slightly bent", + "hands": "finger gun, pointing, index finger extended, thumb raised, hand gesture", + "torso": "facing forward, slight rotation to align with the pointing arm", + "pelvis": "neutral standing position", + "legs": "standing, hip width apart", + "feet": "grounded", + "additional": "depth of field, focus on hand, perspective usually from front" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/fixed_point_v2.safetensors", + "lora_weight": 1.0, + "lora_triggers": "fixed_point_v2" + }, + "tags": [ + "gesture", + "finger gun", + "pointing", + "aiming", + "looking at viewer", + "foreshortening", + "bang" + ] +} \ No newline at end of file diff --git a/data/actions/flaccid_after_cum_illustrious_000009.json b/data/actions/flaccid_after_cum_illustrious_000009.json new file mode 100644 index 0000000..79b6098 --- /dev/null +++ b/data/actions/flaccid_after_cum_illustrious_000009.json @@ -0,0 +1,34 @@ +{ + "action_id": "flaccid_after_cum_illustrious_000009", + "action_name": "Flaccid After Cum Illustrious 000009", + "action": { + "full_body": "lying on back, limp pose, completely spent, relaxed muscles, spread eagle", + "head": "head tilted back, mouth open, tongue hanging out, messy hair, heavy breathing", + "eyes": "half-closed eyes, eyes rolled back, glassy eyes, ahegao", + "arms": "arms spread wide, limp arms, resting on surface", + "hands": "loosely open hands, twitching fingers", + "torso": "heaving chest, sweating skin, relaxed abdomen", + "pelvis": "exposed, hips flat on surface", + "legs": "legs spread wide, m-legs, knees bent and falling outward", + "feet": "toes curled", + "additional": "covered in white liquid, messy body, bodily fluids, after sex, exhaustion, sweat drops" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Flaccid_After_Cum_Illustrious-000009.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Flaccid_After_Cum_Illustrious-000009" + }, + "tags": [ + "lying", + "sweat", + "blush", + "open mouth", + "bodily fluids", + "spread legs", + "ahegao" + ] +} \ No newline at end of file diff --git a/data/actions/fleshlight_position_doggystyle_dangling_legs_sex_from_behind_hanging_legs_ponyilsdsdxl.json b/data/actions/fleshlight_position_doggystyle_dangling_legs_sex_from_behind_hanging_legs_ponyilsdsdxl.json new file mode 100644 index 0000000..c19c749 --- /dev/null +++ b/data/actions/fleshlight_position_doggystyle_dangling_legs_sex_from_behind_hanging_legs_ponyilsdsdxl.json @@ -0,0 +1,37 @@ +{ + "action_id": "fleshlight_position_doggystyle_dangling_legs_sex_from_behind_hanging_legs_ponyilsdsdxl", + "action_name": "Fleshlight Position Doggystyle Dangling Legs Sex From Behind Hanging Legs Ponyilsdsdxl", + "action": { + "full_body": "doggystyle, sex from behind, hanging legs, vaginal", + "head": "facing down or looking back over shoulder", + "eyes": "half-closed or expression of pleasure", + "arms": "supporting upper body weight, elbows often bent", + "hands": "gripping the sheets or resting flat on the surface", + "torso": "prone, leaning forward, back deeply arched", + "pelvis": "elevated and pushed back to the edge of the surface", + "legs": "dangling down off the edge, knees slightly bent, not supporting weight", + "feet": "hanging freely, toes connecting with nothing, off the ground", + "additional": "on edge of bed, precarious balance, from behind perspective" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Fleshlight_Position_Doggystyle_Dangling_Legs_Sex_From_Behind_Hanging_Legs_PonyILSDSDXL.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Fleshlight_Position_Doggystyle_Dangling_Legs_Sex_From_Behind_Hanging_Legs_PonyILSDSDXL" + }, + "tags": [ + "doggystyle", + "dangling legs", + "hanging legs", + "edge of bed", + "prone", + "arched back", + "from behind", + "raised hips", + "feet off ground", + "sex act" + ] +} \ No newline at end of file diff --git a/data/actions/folded_xl_illustrious_v1_0.json b/data/actions/folded_xl_illustrious_v1_0.json new file mode 100644 index 0000000..b31636f --- /dev/null +++ b/data/actions/folded_xl_illustrious_v1_0.json @@ -0,0 +1,34 @@ +{ + "action_id": "folded_xl_illustrious_v1_0", + "action_name": "Folded Xl Illustrious V1 0", + "action": { + "full_body": "Character standing in a confident or defensive posture with weight shifted to one side", + "head": "Chin slightly raised, facing the viewer directly", + "eyes": "Sharp gaze, expressing confidence, skepticism, or annoyance", + "arms": "Both arms crossed firmly over the chest (folded arms)", + "hands": "Hands tucked under the biceps or grasping the opposite upper arm", + "torso": "Upright posture, chest slightly expanded", + "pelvis": "Hips slightly cocked to one side for attitude", + "legs": "Standing straight, legs apart or one knee relaxed", + "feet": "Planted firmly on the ground", + "additional": "Often implies an attitude of arrogance, patience, or defiance" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Folded XL illustrious V1.0.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Folded XL illustrious V1.0" + }, + "tags": [ + "crossed arms", + "standing", + "confident", + "attitude", + "looking at viewer", + "skeptical", + "upper body" + ] +} \ No newline at end of file diff --git a/data/actions/forced_cunnilingus.json b/data/actions/forced_cunnilingus.json new file mode 100644 index 0000000..10fe4b1 --- /dev/null +++ b/data/actions/forced_cunnilingus.json @@ -0,0 +1,38 @@ +{ + "action_id": "forced_cunnilingus", + "action_name": "Forced Cunnilingus", + "action": { + "full_body": "female lying on back, legs spread wide, partner positioning head between legs performing oral sex", + "head": "head tilted back, blushing, expression of distress or shock, mouth slightly open", + "eyes": "teary eyes, squeezed shut or looking away", + "arms": "arms pinned above head or held down against surface", + "hands": "clenched fists, wrists held", + "torso": "arched back, chest heaving", + "pelvis": "hips lifted slightly, exposed crotch", + "legs": "legs spread, m-legs, knees bent, thighs held apart by partner", + "feet": "toes curled in tension", + "additional": "cunnilingus, saliva trail, partner's head buried in crotch, struggle, non-consensual undertones" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Forced_cunnilingus.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Forced_cunnilingus" + }, + "tags": [ + "cunnilingus", + "oral sex", + "lying on back", + "legs spread", + "legs held", + "pinned down", + "distressed", + "blushing", + "crying", + "vaginal", + "sex act" + ] +} \ No newline at end of file diff --git a/data/actions/foreskin_fellatio_ilxl.json b/data/actions/foreskin_fellatio_ilxl.json new file mode 100644 index 0000000..6a3acb8 --- /dev/null +++ b/data/actions/foreskin_fellatio_ilxl.json @@ -0,0 +1,36 @@ +{ + "action_id": "foreskin_fellatio_ilxl", + "action_name": "Foreskin Fellatio Ilxl", + "action": { + "full_body": "close-up view of an oral sex act with specific emphasis on penile anatomy", + "head": "positioned directly in front of the groin, mouth open and engaging with the penis", + "eyes": "gaze directed upward at partner or focused on the act, potentially closed", + "arms": "reaching forward to stabilize or hold the partner", + "hands": "gripping the penile shaft, fingers specifically manipulating, pulling back, or holding the foreskin", + "torso": "leaning deeply forward", + "pelvis": "kneeling or crouching posture", + "legs": "knees bent, supporting the upper body", + "feet": "tucked behind or resting on the floor", + "additional": "uncut penis, highly detailed foreskin, skin retraction, glans exposure, saliva strands" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/foreskin_fellatio-ILXL.safetensors", + "lora_weight": 1.0, + "lora_triggers": "foreskin_fellatio-ILXL" + }, + "tags": [ + "nsfw", + "fellatio", + "oral sex", + "blowjob", + "uncut", + "foreskin", + "penis", + "male anatomy", + "sexual act" + ] +} \ No newline at end of file diff --git a/data/actions/foreskinplay_r1.json b/data/actions/foreskinplay_r1.json new file mode 100644 index 0000000..885c907 --- /dev/null +++ b/data/actions/foreskinplay_r1.json @@ -0,0 +1,35 @@ +{ + "action_id": "foreskinplay_r1", + "action_name": "Foreskinplay R1", + "action": { + "full_body": "close-up focus on genital area, male solo", + "head": "looking down or out of frame", + "eyes": "focused on crotch", + "arms": "reaching down", + "hands": "fingers manipulating foreskin, pulling back foreskin, pinching skin", + "torso": "lower abs visible, nude or shirt lifted", + "pelvis": "erection, uncircumcised penis, glans exposure", + "legs": "thighs visible, spread slightly", + "feet": "not visible", + "additional": "detailed foreskin texture, phmosis, skin stretching" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/foreskinplay_r1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "foreskinplay_r1" + }, + "tags": [ + "nsfw", + "penis", + "uncircumcised", + "foreskin", + "masturbation", + "male focus", + "penis close-up", + "glans" + ] +} \ No newline at end of file diff --git a/data/actions/frenchkissv1il_000010.json b/data/actions/frenchkissv1il_000010.json new file mode 100644 index 0000000..1f29562 --- /dev/null +++ b/data/actions/frenchkissv1il_000010.json @@ -0,0 +1,37 @@ +{ + "action_id": "frenchkissv1il_000010", + "action_name": "Frenchkissv1Il 000010", + "action": { + "full_body": "two subjects in a close intimate embrace, bodies pressed against each other", + "head": "heads tilted in opposite directions, profiles visible, mouths open and connected in a deep kiss", + "eyes": "closed eyes, eyelashes visible, expression of passion", + "arms": "braided around each other, one set reaching up to the neck, the other around the waist", + "hands": "cupping the face, fingers tangling in hair, or gripping the back of the partner", + "torso": "chests pressed firmly together, zero distance", + "pelvis": "hips aligned and touching", + "legs": "standing close, intertwined, or stepping between partner's legs", + "feet": "grounded, or one person on tiptoes", + "additional": "exchange of saliva, tongues touching, liquid bridge, blush on cheeks, atmospheric lighting" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/FrenchKissV1IL-000010.safetensors", + "lora_weight": 1.0, + "lora_triggers": "FrenchKissV1IL-000010" + }, + "tags": [ + "french kiss", + "kissing", + "couple", + "duo", + "intimate", + "romance", + "tongue", + "saliva", + "deep kiss", + "profile view" + ] +} \ No newline at end of file diff --git a/data/actions/frog_embrace_position_il_nai_py.json b/data/actions/frog_embrace_position_il_nai_py.json new file mode 100644 index 0000000..f0181d7 --- /dev/null +++ b/data/actions/frog_embrace_position_il_nai_py.json @@ -0,0 +1,35 @@ +{ + "action_id": "frog_embrace_position_il_nai_py", + "action_name": "Frog Embrace Position Il Nai Py", + "action": { + "full_body": "intimate couple pose, lying on back, sexual intercourse, intense intimacy", + "head": "tilted back on pillow, expression of pleasure, heavy blushing", + "eyes": "half-closed eyes, eyes rolled back, ahegao", + "arms": "arms reaching up, clinging to partner's back or shoulders", + "hands": "hands clutching partner's back or gripping bedsheets", + "torso": "back slightly arched, chest pressed or exposed", + "pelvis": "pelvis lifted, fully engaged with partner", + "legs": "legs spread wide, knees bent deeply outwards, m-shape legs, legs wrapped around partner's waist or driven back", + "feet": "toes curled, feet usually visible in air or against partner's back", + "additional": "sweat drops, heart symbols, motion lines, messy bed" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Frog embrace position-IL_NAI_PY.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Frog embrace position-IL_NAI_PY" + }, + "tags": [ + "frog pose", + "mating press", + "legs wrapped around", + "legs spread", + "m-shape legs", + "sex", + "intricate interaction", + "lying on back" + ] +} \ No newline at end of file diff --git a/data/actions/futa_on_female_000051_1_.json b/data/actions/futa_on_female_000051_1_.json new file mode 100644 index 0000000..46159af --- /dev/null +++ b/data/actions/futa_on_female_000051_1_.json @@ -0,0 +1,41 @@ +{ + "action_id": "futa_on_female_000051_1_", + "action_name": "Futa On Female 000051 1 ", + "action": { + "full_body": "intimate duo pose, futanari character positioning closely on top of female character, missionary or pressing variance", + "head": "flushed complexion, heavy breathing, looking at partner", + "eyes": "half-closed in pleasure, heart-shaped pupils, watery eyes", + "arms": "arms supporting weight on surface or embracing partner", + "hands": "grasping partner's shoulders or hips, fingers digging into skin", + "torso": "sweaty skin, leaning forward, chest contact", + "pelvis": "interlocked hips, penetrating action, engaged core", + "legs": "kneeling between partner's thighs, thighs touching", + "feet": "toes curled, arched feet", + "additional": "bodily fluids, motion lines, sweat, messy bed sheets" + }, + "participants": { + "solo_focus": "false", + "orientation": "FF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Futa_on_Female-000051(1).safetensors", + "lora_weight": 1.0, + "lora_triggers": "Futa_on_Female-000051(1)" + }, + "tags": [ + "futanari", + "futa_on_female", + "1girl", + "1futanari", + "vaginal", + "sex", + "penis", + "erection", + "pussy", + "cum", + "sweat", + "blush", + "duo", + "nsfw" + ] +} \ No newline at end of file diff --git a/data/actions/gameandsex.json b/data/actions/gameandsex.json new file mode 100644 index 0000000..2604d9a --- /dev/null +++ b/data/actions/gameandsex.json @@ -0,0 +1,37 @@ +{ + "action_id": "gameandsex", + "action_name": "Gameandsex", + "action": { + "full_body": "playing games, on stomach, sex from behind", + "head": "", + "eyes": "", + "arms": "", + "hands": "", + "torso": "", + "pelvis": "", + "legs": "", + "feet": "", + "additional": "handheld game" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/gameandsex.safetensors", + "lora_weight": 1.0, + "lora_triggers": "gameandsex" + }, + "tags": [ + "mr game and watch", + "minimalist", + "flat color", + "silhouette", + "lcd screen", + "retro", + "meme", + "simple background", + "parody", + "stick figure" + ] +} \ No newline at end of file diff --git a/data/actions/gd_v3_0_000010_1462060.json b/data/actions/gd_v3_0_000010_1462060.json new file mode 100644 index 0000000..b03636f --- /dev/null +++ b/data/actions/gd_v3_0_000010_1462060.json @@ -0,0 +1,32 @@ +{ + "action_id": "gd_v3_0_000010_1462060", + "action_name": "Giant Dom", + "action": { + "full_body": "size difference, domination, sex from behind", + "head": "tilted slightly downward, chin tucked", + "eyes": "focused forward, intense gaze", + "arms": "raised in front of chest in a boxing or martial arts guard, elbows tight to ribs", + "hands": "clenched into fists guarding the face and torso", + "torso": "leaned forward slightly, core engaged", + "pelvis": "rotated slightly for balance", + "legs": "knees bent, legs spread in a wide stable base, one leg forward", + "feet": "planted firmly on the ground, weight distributed", + "additional": "ready for action, tension in muscles" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/GD-V3.0-000010_1462060.safetensors", + "lora_weight": 1.0, + "lora_triggers": "GD-V3.0-000010_1462060" + }, + "tags": [ + "fighting_stance", + "martial_arts", + "defensive_pose", + "clenched_hands", + "crouching" + ] +} \ No newline at end of file diff --git a/data/actions/giantdomv2_1.json b/data/actions/giantdomv2_1.json new file mode 100644 index 0000000..aabdaa5 --- /dev/null +++ b/data/actions/giantdomv2_1.json @@ -0,0 +1,33 @@ +{ + "action_id": "giantdomv2_1", + "action_name": "Giantdomv2 1", + "action": { + "full_body": "low angle, from below, worm's-eye view, extreme perspective, towering, foreshortening, size difference, standing tall", + "head": "looking down, chin tucked, smug expression, scornful look, face shaded", + "eyes": "narrowed eyes, cold gaze, looking at viewer, glowing eyes", + "arms": "arms crossed under chest, elbows out", + "hands": "hidden, or gripping biceps", + "torso": "upper body looming, chest prominent due to perspective", + "pelvis": "hips wide, towering over camera", + "legs": "immense legs, thick thighs, legs apart, wide stance", + "feet": "feet planted firmly, boots, crushing perspective", + "additional": "shadow cast over viewer, tiny buildings in background, cinematic lighting, intimidating aura" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/GiantDomV2.1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "GiantDomV2.1" + }, + "tags": [ + "giantess", + "low angle", + "femdom", + "size difference", + "foreshortening", + "dominance" + ] +} \ No newline at end of file diff --git a/data/actions/giantess_cunnilingus_illustrious.json b/data/actions/giantess_cunnilingus_illustrious.json new file mode 100644 index 0000000..5490d02 --- /dev/null +++ b/data/actions/giantess_cunnilingus_illustrious.json @@ -0,0 +1,37 @@ +{ + "action_id": "giantess_cunnilingus_illustrious", + "action_name": "Giantess Cunnilingus Illustrious", + "action": { + "full_body": "giantess, size difference, recumbent, m-legs, lying on back, low angle view, from below", + "head": "pleasured expression, heavy blush, mouth open, head thrown back, panting", + "eyes": "half-closed eyes, rolling eyes, heart-shaped pupils, ahegao", + "arms": "arms spread, resting", + "hands": "hands grasping sheets, clenching", + "torso": "large breasts, heaving chest, arched back", + "pelvis": "legs spread wide, exposed pussy, wet", + "legs": "spread legs, bent knees, thick thighs", + "feet": "toes curled", + "additional": "cunnilingus, oral sex, licking, tongue, saliva, micro male, miniguy, shrunken partner, pov" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Giantess_Cunnilingus_Illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Giantess_Cunnilingus_Illustrious" + }, + "tags": [ + "illustrious (azur lane)", + "giantess", + "cunnilingus", + "size difference", + "micro", + "low angle", + "m-legs", + "oral sex", + "femdom", + "anime center" + ] +} \ No newline at end of file diff --git a/data/actions/giantess_missionary_000037.json b/data/actions/giantess_missionary_000037.json new file mode 100644 index 0000000..9c34e42 --- /dev/null +++ b/data/actions/giantess_missionary_000037.json @@ -0,0 +1,34 @@ +{ + "action_id": "giantess_missionary_000037", + "action_name": "Giantess Missionary 000037", + "action": { + "full_body": "lying on back, missionary position, legs spread, engaging in sexual activity, large female figure dominating perspective", + "head": "head resting on pillow, looking down at partner or looking up in pleasure", + "eyes": "half-closed eyes, looking at viewer, or rolled back", + "arms": "reaching up, wrapping around partner, or resting on surface", + "hands": "grasping sheets, holding partner, or open palms", + "torso": "chest facing up, breasts pressed or swaying", + "pelvis": "hips centered, groin exposed, receiving", + "legs": "spread legs, knees bent, legs in variable m-shape or wrapping around partner", + "feet": "toes curled, feet in air or resting on bed", + "additional": "giantess, size difference, micro male (optional context), low angle view" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Giantess_Missionary-000037.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Giantess_Missionary-000037" + }, + "tags": [ + "missionary", + "giantess", + "lying on back", + "legs spread", + "size difference", + "sex", + "vaginal" + ] +} \ No newline at end of file diff --git a/data/actions/girl_sandwich_ffm_breast_smother_concept_lora.json b/data/actions/girl_sandwich_ffm_breast_smother_concept_lora.json new file mode 100644 index 0000000..524df39 --- /dev/null +++ b/data/actions/girl_sandwich_ffm_breast_smother_concept_lora.json @@ -0,0 +1,34 @@ +{ + "action_id": "girl_sandwich_ffm_breast_smother_concept_lora", + "action_name": "Girl Sandwich Ffm Breast Smother Concept Lora", + "action": { + "full_body": "Three-person composition (FFM), a male subject sandwiched tightly between two female subjects engaging in close contact", + "head": "Male head completely enveloped and squeezed between the chests of the two females, face buried in cleavage", + "eyes": "Male eyes obscured or closed, females looking at viewer or at the male", + "arms": "Females' arms wrapping around the male's neck or head to pull him closer, male arms potentially hugging the females' waists", + "hands": "Hands pressing the back of the male's head, hands on hips", + "torso": "Females' torsos turned inward toward the center, breasts pressed firmly against the male's face from both sides creating a 'sandwich'", + "pelvis": "Hips positioned close together, creating a unified mass", + "legs": "Legs standing close or intertwined, stable stance", + "feet": "Feet planted on the ground", + "additional": "High pressure squeeze, breast smothering, intimacy, suffocating bliss" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Girl_Sandwich_FFM_Breast_Smother_Concept_LoRA.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Girl_Sandwich_FFM_Breast_Smother_Concept_LoRA" + }, + "tags": [ + "ffm", + "girl sandwich", + "breast smother", + "threesome", + "squeezed", + "face buried", + "cleavage" + ] +} \ No newline at end of file diff --git a/data/actions/girls_lineup_il_1144149.json b/data/actions/girls_lineup_il_1144149.json new file mode 100644 index 0000000..d7de43e --- /dev/null +++ b/data/actions/girls_lineup_il_1144149.json @@ -0,0 +1,36 @@ +{ + "action_id": "girls_lineup_il_1144149", + "action_name": "Girls Lineup Il 1144149", + "action": { + "full_body": "standing, police lineup, mugshot, full body shot", + "head": "looking at viewer, neutral expression, facing forward", + "eyes": "open eyes, staring", + "arms": "arms at sides, arms behind back", + "hands": "hands behind back", + "torso": "facing forward, upright posture", + "pelvis": "facing forward", + "legs": "standing straight, feet shoulder width apart", + "feet": "flat on ground", + "additional": "height chart, wall markings, measurement lines, police station background, indoor, simple background" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/girls_lineup_IL_1144149.safetensors", + "lora_weight": 1.0, + "lora_triggers": "girls_lineup_IL_1144149" + }, + "tags": [ + "police lineup", + "mugshot", + "height chart", + "standing", + "criminal", + "arrest", + "prison", + "law enforcement", + "measurement" + ] +} \ No newline at end of file diff --git a/data/actions/glans_handjob.json b/data/actions/glans_handjob.json new file mode 100644 index 0000000..e599012 --- /dev/null +++ b/data/actions/glans_handjob.json @@ -0,0 +1,34 @@ +{ + "action_id": "glans_handjob", + "action_name": "Glans Handjob", + "action": { + "full_body": "close-up macro shot focusing on the genital area", + "head": "out of frame", + "eyes": "out of frame", + "arms": "forearm visible, reaching down", + "hands": "wrapping around the penis, fingers specifically gathering around and stimulating the glans, thumb rubbing the tip", + "torso": "lower abdomen visible", + "pelvis": "stationary", + "legs": "thighs partially visible", + "feet": "out of frame", + "additional": "intense focus on the head of the penis, touching glans" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/glans_handjob.safetensors", + "lora_weight": 1.0, + "lora_triggers": "glans_handjob" + }, + "tags": [ + "handjob", + "glans", + "penis", + "stimulation", + "close-up", + "nsfw", + "rubbing" + ] +} \ No newline at end of file diff --git a/data/actions/glass_box.json b/data/actions/glass_box.json new file mode 100644 index 0000000..7416270 --- /dev/null +++ b/data/actions/glass_box.json @@ -0,0 +1,33 @@ +{ + "action_id": "glass_box", + "action_name": "Glass Box", + "action": { + "full_body": "character standing or crouching inside a confined transparent space, pressing against the front boundary", + "head": "face pressed against glass, cheek squishing against surface, looking at viewer", + "eyes": "wide open, looking forward through the barrier", + "arms": "reaching forward, elbows bent comfortable", + "hands": "palms flattened against the screen, fingers spread, hands on glass", + "torso": "leaning forward against the invisible surface", + "pelvis": "neutral position", + "legs": "standing or slightly bent at knees", + "feet": "flat on the floor of the box", + "additional": "condensation, breath on glass, slight reflection, feeling of confinement" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/glass_box.safetensors", + "lora_weight": 1.0, + "lora_triggers": "glass_box" + }, + "tags": [ + "pressed against glass", + "hands on glass", + "face against glass", + "trapped", + "glass wall", + "behind glass" + ] +} \ No newline at end of file diff --git a/data/actions/glory_wall_stuck_illustrious.json b/data/actions/glory_wall_stuck_illustrious.json new file mode 100644 index 0000000..11c0ff2 --- /dev/null +++ b/data/actions/glory_wall_stuck_illustrious.json @@ -0,0 +1,35 @@ +{ + "action_id": "glory_wall_stuck_illustrious", + "action_name": "Glory Wall Stuck Illustrious", + "action": { + "full_body": "character stuck in wall, bent over pose, viewed from behind, lower body exposed", + "head": "head through hole, hidden inside wall", + "eyes": "not visible", + "arms": "arms through hole, reaching forward or bracing against the other side", + "hands": "not visible", + "torso": "upper torso obscured by wall, bent forward 90 degrees", + "pelvis": "hips trapped in hole, stuck fast, protruding rear", + "legs": "standing, legs spread apart, knees slightly bent for stability", + "feet": "standing on ground, possibly on tiptoes", + "additional": "wooden or concrete wall, circular hole, sense of entrapment, struggling" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Glory_Wall_Stuck_illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Glory_Wall_Stuck_illustrious" + }, + "tags": [ + "stuck in wall", + "glory hole", + "bent over", + "from behind", + "trapped", + "lower body", + "legs apart", + "stuck" + ] +} \ No newline at end of file diff --git a/data/actions/goblin_sucking_boobs_illustrious.json b/data/actions/goblin_sucking_boobs_illustrious.json new file mode 100644 index 0000000..2cf0fab --- /dev/null +++ b/data/actions/goblin_sucking_boobs_illustrious.json @@ -0,0 +1,34 @@ +{ + "action_id": "goblin_sucking_boobs_illustrious", + "action_name": "Goblin Sucking Boobs Illustrious", + "action": { + "full_body": "size difference, intimate interaction, a small goblin clinging to the torso of a larger female character", + "head": "looking down, expression of pleasure or surprise, heavy blush, saliva", + "eyes": "half-closed eyes, heart-shaped pupils, looking at goblin", + "arms": "cradling the goblin, holding the goblin's head, pressing breast to mouth", + "hands": "fingers spread, holding the creature, squeezing breast", + "torso": "exposed breasts, breast sucking, nipple stimulation, arching back", + "pelvis": "slightly pushed forward or seated pose", + "legs": "standing or sitting, relaxed stance", + "feet": "toes curled (if visible)", + "additional": "monster, goblin, green skin, pointy ears, height difference, nursing, lactation" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Goblin_sucking_boobs_Illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Goblin_sucking_boobs_Illustrious" + }, + "tags": [ + "goblin", + "breast sucking", + "size difference", + "monster", + "duo", + "lactation", + "nsfw" + ] +} \ No newline at end of file diff --git a/data/actions/goblins_burrow_il_nai_py.json b/data/actions/goblins_burrow_il_nai_py.json new file mode 100644 index 0000000..ba5305f --- /dev/null +++ b/data/actions/goblins_burrow_il_nai_py.json @@ -0,0 +1,38 @@ +{ + "action_id": "goblins_burrow_il_nai_py", + "action_name": "Goblins Burrow Il Nai Py", + "action": { + "full_body": "size difference, character crouching low to the ground in a deep, feral squat or crawling position", + "head": "tilted upward or hunched low, often with a mischievous or feral expression, tongue out", + "eyes": "wide open, dilated pupils, looking up at viewer", + "arms": "reaching towards the ground between legs or resting on knees, elbows bent", + "hands": "palms on the floor or clawing at the ground, fingers spread", + "torso": "leaning forward sharply, hunched back or arched depending on angle, compact posture", + "pelvis": "lowered close to the heels, anterior pelvic tilt", + "legs": "knees bent deeply and spread wide apart, thighs pressing against ribs or opened outward", + "feet": "resting on toes with heels raised or flat on ground, indicating readiness to pounce", + "additional": "dynamic angle, low perspective, emphasis on hips and flexibility" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Goblins burrow-IL_NAI_PY.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Goblins burrow-IL_NAI_PY" + }, + "tags": [ + "squatting", + "crouching", + "goblin mode", + "feral", + "spread legs", + "knees apart", + "on toes", + "all fours", + "looking up", + "shortstack", + "hunched over" + ] +} \ No newline at end of file diff --git a/data/actions/good_morning_ilxl_v1.json b/data/actions/good_morning_ilxl_v1.json new file mode 100644 index 0000000..6e0a414 --- /dev/null +++ b/data/actions/good_morning_ilxl_v1.json @@ -0,0 +1,35 @@ +{ + "action_id": "good_morning_ilxl_v1", + "action_name": "Good Morning Ilxl V1", + "action": { + "full_body": "sitting in bed, stretching, waking up pose", + "head": "head tilted back, yawning, mouth open", + "eyes": "closed eyes, sleepy expression, squinting", + "arms": "arms up, arms above head, reaching upwards", + "hands": "interlocked fingers, hands clasped, palms facing up", + "torso": "arched back, chest expanded, leaning back", + "pelvis": "sitting, hips grounded on mattress", + "legs": "legs crossed, lower body under blanket, covered legs", + "feet": "hidden feet, toes curled", + "additional": "messy hair, bed sheet, pillow, morning light, pajamas, nightgown, sunbeams" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/good_morning_ilxl_v1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "good_morning_ilxl_v1" + }, + "tags": [ + "stretching", + "waking up", + "yawning", + "arms up", + "in bed", + "messy hair", + "morning light", + "pajamas" + ] +} \ No newline at end of file diff --git a/data/actions/grabbing_breasts_under_clothes_illustrious_v1_0.json b/data/actions/grabbing_breasts_under_clothes_illustrious_v1_0.json new file mode 100644 index 0000000..0b964d4 --- /dev/null +++ b/data/actions/grabbing_breasts_under_clothes_illustrious_v1_0.json @@ -0,0 +1,35 @@ +{ + "action_id": "grabbing_breasts_under_clothes_illustrious_v1_0", + "action_name": "Grabbing Breasts Under Clothes Illustrious V1 0", + "action": { + "full_body": "standing or sitting poses focusing on the upper body interaction with clothing", + "head": "flustered or aroused expression, face blushed, biting lower lip", + "eyes": "half-closed eyes or looking directly at viewer with intensity", + "arms": "arms bent at the elbows, forearms disappearing under the hem of the top", + "hands": "hands under clothes, hands under shirt, hidden hands grasping chest", + "torso": "shirt lifted slightly relative to hand position, visible clothing bulge from hands underneath, fabric stretched over chest", + "pelvis": "neutral position or hips slightly swayed", + "legs": "standing with legs together or knees knocking", + "feet": "neutral stance", + "additional": "clothes deformation, self groping, fabric tension, sexual innuendo" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/grabbing breasts under clothes_illustrious_V1.0.safetensors", + "lora_weight": 1.0, + "lora_triggers": "grabbing breasts under clothes_illustrious_V1.0" + }, + "tags": [ + "hands under clothes", + "grabbing own breasts", + "shirt lift", + "clothes bulge", + "touching chest", + "self groping", + "under shirt", + "blush" + ] +} \ No newline at end of file diff --git a/data/actions/groupsex.json b/data/actions/groupsex.json new file mode 100644 index 0000000..c18513c --- /dev/null +++ b/data/actions/groupsex.json @@ -0,0 +1,35 @@ +{ + "action_id": "groupsex", + "action_name": "Groupsex", + "action": { + "full_body": "multiple subjects, crowded composition, bodies overlapping, group pile, entangled poses", + "head": "various angles, faces close together, looking at viewer or partners, heavy breathing expression", + "eyes": "half-closed, heart-shaped pupils, rolling back, averted gaze", + "arms": "hugging, holding shoulders, reaching out, grabbing sheets, arms intertwined", + "hands": "grasping, touching skin, clutching, pulling", + "torso": "bodies pressed against each other, arching backs, sweating skin", + "pelvis": "close proximity, hips connecting, kneeling or lying down", + "legs": "interlocked, spread, kneeling, bent knees, wrapped around waists", + "feet": "toes curled, plantar flexion, barefoot", + "additional": "intimate atmosphere, steam, high density interaction" + }, + "participants": { + "solo_focus": "true", + "orientation": "MFFF" + }, + "lora": { + "lora_name": "Illustrious/Poses/groupsex.safetensors", + "lora_weight": 1.0, + "lora_triggers": "groupsex" + }, + "tags": [ + "group", + "multiple_girls", + "multiple_girls", + "harem", + "reverse_harem", + "polyamory", + "messy", + "cuddle_pile" + ] +} \ No newline at end of file diff --git a/data/actions/guided_penetration_illustrious_v1_0.json b/data/actions/guided_penetration_illustrious_v1_0.json new file mode 100644 index 0000000..d644d70 --- /dev/null +++ b/data/actions/guided_penetration_illustrious_v1_0.json @@ -0,0 +1,32 @@ +{ + "action_id": "guided_penetration_illustrious_v1_0", + "action_name": "Guided Penetration Illustrious V1 0", + "action": { + "full_body": "intimate sexual position, lying on back or missionary, lower body focus", + "head": "looking down, chin tucked, flushed face, heavy breathing", + "eyes": "focused on genitals, half-closed eyes, arousal", + "arms": "reaching down between legs", + "hands": "hand on penis, guiding penis, holding penis, fingers grasping shaft, touching tip", + "torso": "chest exposed, nipples visible, slight arch", + "pelvis": "exposed genitals, pussy, hips tilted up", + "legs": "spread legs, m legs, open legs, knees bent", + "feet": "relaxed or toes curled", + "additional": "penis, erection, insertion, just the tip, uncensored, sexual intercourse" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/guided penetration_illustrious_V1.0.safetensors", + "lora_weight": 1.0, + "lora_triggers": "guided penetration_illustrious_V1.0" + }, + "tags": [ + "guided penetration", + "hand on penis", + "sex", + "insertion", + "guiding penis" + ] +} \ No newline at end of file diff --git a/data/actions/gyaru_bitch_illustrious.json b/data/actions/gyaru_bitch_illustrious.json new file mode 100644 index 0000000..7ca0ff9 --- /dev/null +++ b/data/actions/gyaru_bitch_illustrious.json @@ -0,0 +1,33 @@ +{ + "action_id": "gyaru_bitch_illustrious", + "action_name": "Gyaru Bitch Illustrious", + "action": { + "full_body": "standing pose, upper body leaning slightly forward to accentuate curves, confident and flashy posture", + "head": "tilted slightly to the side, chin down", + "eyes": "looking directly at viewer, heavy makeup, possibly winking", + "arms": "raised, elbows bent outwards", + "hands": "double peace sign, v-sign near face, aggressive finger splay", + "torso": "arched back significantly, emphasized chest", + "pelvis": "hips cocked to one side", + "legs": "standing with weight on one leg, other leg slightly bent at knee", + "feet": "planted firmly", + "additional": "exuding a haughty or teasing 'gal' atmosphere, flashy accessories" + }, + "participants": { + "solo_focus": "true", + "orientation": "F" + }, + "lora": { + "lora_name": "Illustrious/Poses/Gyaru_bitch_illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Gyaru_bitch_illustrious" + }, + "tags": [ + "double peace sign", + "gyaru", + "smug", + "tongue out", + "leaning forward", + "tan" + ] +} \ No newline at end of file diff --git a/data/actions/gyaru_v_illustriousxl_lora_nochekaiser.json b/data/actions/gyaru_v_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..6a6032a --- /dev/null +++ b/data/actions/gyaru_v_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,35 @@ +{ + "action_id": "gyaru_v_illustriousxl_lora_nochekaiser", + "action_name": "Gyaru V Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "medium shot of a character performing the viral gyaru peace gesture, leaning slightly forward towards the viewer", + "head": "tilted slightly to the side with a confident or playful expression", + "eyes": "looking at viewer, winking or wide open", + "arms": "elbow bent, forearm raised and wrist rotated", + "hands": "inverted v-sign, peace sign fingers pointing down, palm facing inwards towards the body (gyaru peace)", + "torso": "upper body angled towards the camera", + "pelvis": "hips slightly cocked to the side", + "legs": "standing pose, weight on one leg", + "feet": "default standing position", + "additional": "focus on the specific inverted hand gesture characteristic of the 2020s gyaru trend" + }, + "participants": { + "solo_focus": "true", + "orientation": "F" + }, + "lora": { + "lora_name": "Illustrious/Poses/gyaru-v-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "gyaru-v-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "gyaru peace", + "inverted v-sign", + "peace sign", + "hand gesture", + "fingers pointing down", + "leaning forward", + "upper body", + "looking at viewer" + ] +} \ No newline at end of file diff --git a/data/actions/hair_floating_up_000008.json b/data/actions/hair_floating_up_000008.json new file mode 100644 index 0000000..2da06a8 --- /dev/null +++ b/data/actions/hair_floating_up_000008.json @@ -0,0 +1,33 @@ +{ + "action_id": "hair_floating_up_000008", + "action_name": "Hair Floating Up 000008", + "action": { + "full_body": "ethereal stance, appearing weightless or caught in a strong updraft", + "head": "face framed by rising locks, looking straight ahead", + "eyes": "intense gaze, perhaps glowing or wide with power", + "arms": "slightly abducted from sides, floating upwards gently", + "hands": "fingers relaxed and slightly curled, palms facing slightly up", + "torso": "upright posture, clothing billowing upwards against gravity", + "pelvis": "neutral alignment", + "legs": "straight or slightly bent at knees, hovering", + "feet": "toes pointed downwards, not touching the ground", + "additional": "long hair vertically rising and fanning out above the head, antigravity effect, mystical atmosphere" + }, + "participants": { + "solo_focus": "true", + "orientation": "F" + }, + "lora": { + "lora_name": "Illustrious/Poses/Hair_floating_up-000008.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Hair_floating_up-000008" + }, + "tags": [ + "hair floating", + "antigravity", + "ethereal", + "weightlessness", + "rising hair", + "dynamic pose" + ] +} \ No newline at end of file diff --git a/data/actions/handoncheek_kiss_000010.json b/data/actions/handoncheek_kiss_000010.json new file mode 100644 index 0000000..33dbcae --- /dev/null +++ b/data/actions/handoncheek_kiss_000010.json @@ -0,0 +1,34 @@ +{ + "action_id": "handoncheek_kiss_000010", + "action_name": "Handoncheek Kiss 000010", + "action": { + "full_body": "portrait or upper body shot, casual posture", + "head": "slightly tilted, resting weight on hand", + "eyes": "looking at viewer or gazing away thoughtfully", + "arms": "one arm raised, elbow bent comfortably", + "hands": "palm resting against cheek, touching face, soft fingers", + "torso": "facing forward or slightly turned", + "pelvis": "neutral position", + "legs": "standing or sitting", + "feet": "out of frame or neutral", + "additional": "expression of boredom, deep thought, or coyness" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/HandOnCheek-KISS-000010.safetensors", + "lora_weight": 1.0, + "lora_triggers": "HandOnCheek-KISS-000010" + }, + "tags": [ + "hand on cheek", + "touching face", + "resting head on hand", + "thinking", + "bored", + "portrait", + "coy" + ] +} \ No newline at end of file diff --git a/data/actions/head_back_irrumatio_illustriousxl_lora_nochekaiser.json b/data/actions/head_back_irrumatio_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..538e6b8 --- /dev/null +++ b/data/actions/head_back_irrumatio_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,37 @@ +{ + "action_id": "head_back_irrumatio_illustriousxl_lora_nochekaiser", + "action_name": "Head Back Irrumatio Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "kneeling or sitting, body slightly arched backwards to accommodate position", + "head": "head tilted back, chin pointing up, mouth wide open, tongue sticking out", + "eyes": "eyes looking up, rolled back, or squinting", + "arms": "arms resting at sides or hands placed on thighs", + "hands": "resting on thighs, clenching knees, or grabbing partner", + "torso": "back arched, chest projected forward", + "pelvis": "kneeling, neutral alignment", + "legs": "kneeling with shins flat on the surface", + "feet": "toes pointing backward or tucked under", + "additional": "facial fluids, saliva trail, heavy breathing" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/head-back-irrumatio-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "head-back-irrumatio-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "irrumatio", + "fellatio", + "head back", + "open mouth", + "tongue", + "tongue out", + "kneeling", + "saliva", + "looking up", + "oral" + ] +} \ No newline at end of file diff --git a/data/actions/hold_wrist_missionary.json b/data/actions/hold_wrist_missionary.json new file mode 100644 index 0000000..1b022f9 --- /dev/null +++ b/data/actions/hold_wrist_missionary.json @@ -0,0 +1,35 @@ +{ + "action_id": "hold_wrist_missionary", + "action_name": "Hold Wrist Missionary", + "action": { + "full_body": "lying on back, missionary position, partner on top, body pinned down", + "head": "resting on surface, face looking up or to side", + "eyes": "looking at partner or closed", + "arms": "arms stretched above head, biceps exposing underarms", + "hands": "wrists strictly held by partner, hands pinned to surface", + "torso": "chest facing upwards, lying flat", + "pelvis": "hips flat or slightly elevated, exposed", + "legs": "legs spread, knees bent, thighs open in M-shape or wrapped around partner", + "feet": "relaxed or toes curled", + "additional": "intimate interaction, partner's hands visible holding wrists, dominance dynamic" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/hold_wrist_missionary.safetensors", + "lora_weight": 1.0, + "lora_triggers": "hold_wrist_missionary" + }, + "tags": [ + "missionary", + "on back", + "wrists pinned", + "arms above head", + "holding wrists", + "lying on bed", + "duo", + "pinned down" + ] +} \ No newline at end of file diff --git a/data/actions/hugging_doggystyle_illustriousxl_lora_nochekaiser.json b/data/actions/hugging_doggystyle_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..0e48ed6 --- /dev/null +++ b/data/actions/hugging_doggystyle_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,35 @@ +{ + "action_id": "hugging_doggystyle_illustriousxl_lora_nochekaiser", + "action_name": "Hugging Doggystyle Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "duo, 2 persons, doggystyle, from behind, all fours, intimate interaction", + "head": "looking back, head resting on shoulder, cheek to cheek, face buried in hair", + "eyes": "closed eyes, affectionate gaze, half-closed eyes", + "arms": "arms around waist, arms around neck, hugging, supporting body weight", + "hands": "hands on ground, hands clasping partner, grabbing sheets", + "torso": "arched back, bent over, chest pressed against back, leaning forward", + "pelvis": "kneeling, hips raised, bottom up", + "legs": "kneeling, bent knees, legs spread", + "feet": "barefoot, toes curled", + "additional": "sex from behind, affectionate, cuddling, romantic, indoor" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/hugging-doggystyle-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "hugging-doggystyle-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "hugging_doggystyle", + "doggystyle", + "hugging", + "from behind", + "all fours", + "duo", + "intimate", + "kneeling" + ] +} \ No newline at end of file diff --git a/data/actions/hugkissingbreast_press_pov_illustrious_000005.json b/data/actions/hugkissingbreast_press_pov_illustrious_000005.json new file mode 100644 index 0000000..80c4311 --- /dev/null +++ b/data/actions/hugkissingbreast_press_pov_illustrious_000005.json @@ -0,0 +1,35 @@ +{ + "action_id": "hugkissingbreast_press_pov_illustrious_000005", + "action_name": "Hugkissingbreast Press Pov Illustrious 000005", + "action": { + "full_body": "pov, close-up, leaning towards viewer, intimate interaction", + "head": "face close to camera, tilted head, kissing motion", + "eyes": "closed eyes, half-closed eyes, affectionate gaze", + "arms": "reaching forward, wrapping around viewer, arms visible on sides", + "hands": "hands on viewer's shoulders, hands behind viewer's neck, or out of frame", + "torso": "chest pressed against viewer, breasts squished, breast press", + "pelvis": "close proximity to viewer, angled forward", + "legs": "not visible or cropped", + "feet": "not visible", + "additional": "blush, saliva trail, deeply romantic atmosphere, soft lighting" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Hugkissingbreast_press_pov_Illustrious-000005.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Hugkissingbreast_press_pov_Illustrious-000005" + }, + "tags": [ + "pov", + "hug", + "kissing", + "breast press", + "close-up", + "intimate", + "squeezing", + "couple" + ] +} \ No newline at end of file diff --git a/data/actions/id_card_after_sex_illustriousxl_lora_nochekaiser.json b/data/actions/id_card_after_sex_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..09eae22 --- /dev/null +++ b/data/actions/id_card_after_sex_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,37 @@ +{ + "action_id": "id_card_after_sex_illustriousxl_lora_nochekaiser", + "action_name": "Id Card After Sex Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "upper body shot, solo, character presenting identification in a disheveled state", + "head": "messy hair, hair over eyes, heavy blush, sweaty face, panting, mouth slightly open, slobber", + "eyes": "half-closed eyes, glazed eyes, moisture, looking at viewer", + "arms": "arm raised to chest or face level", + "hands": "holding id card, holding object, showing card to viewer", + "torso": "disheveled clothing, unbuttoned shirt, collarbone, sweat on skin, breast focus (if applicable)", + "pelvis": "not visible", + "legs": "not visible", + "feet": "not visible", + "additional": "blurry background, indoor lighting, intimate atmosphere, mugshot style composition" + }, + "participants": { + "solo_focus": "true", + "orientation": "F" + }, + "lora": { + "lora_name": "Illustrious/Poses/id-card-after-sex-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "id-card-after-sex-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "holding id card", + "messy hair", + "disheveled", + "heavy breathing", + "sweat", + "blush", + "upper body", + "after sex", + "glazed eyes", + "open mouth" + ] +} \ No newline at end of file diff --git a/data/actions/illustrious_standing_cunnilingus_000010.json b/data/actions/illustrious_standing_cunnilingus_000010.json new file mode 100644 index 0000000..338bf1d --- /dev/null +++ b/data/actions/illustrious_standing_cunnilingus_000010.json @@ -0,0 +1,33 @@ +{ + "action_id": "illustrious_standing_cunnilingus_000010", + "action_name": "Illustrious Standing Cunnilingus 000010", + "action": { + "full_body": "duo focus, standing position, one person lifting another, standing cunnilingus, carry", + "head": "face buried in crotch, head between legs, ecstatic expression, tongue out", + "eyes": "eyes closed, rolling eyes, heart-shaped pupils", + "arms": "arms under buttocks, holding legs, arms wrapped around neck", + "hands": "squeezing butt, hands on head, fingers in hair", + "torso": "back arched, chest pressed", + "pelvis": "pussy exposed, genital contact", + "legs": "legs wrapped around waist, spread legs, legs over shoulders", + "feet": "toes curled, feet dangling", + "additional": "saliva, motion lines, sexual act" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Illustrious_Standing_Cunnilingus-000010.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Illustrious_Standing_Cunnilingus-000010" + }, + "tags": [ + "standing cunnilingus", + "lifting person", + "carry", + "legs around waist", + "oral sex", + "nsfw" + ] +} \ No newline at end of file diff --git a/data/actions/illustriousxl_size_difference_large_female.json b/data/actions/illustriousxl_size_difference_large_female.json new file mode 100644 index 0000000..5d759c5 --- /dev/null +++ b/data/actions/illustriousxl_size_difference_large_female.json @@ -0,0 +1,34 @@ +{ + "action_id": "illustriousxl_size_difference_large_female", + "action_name": "Illustriousxl Size Difference Large Female", + "action": { + "full_body": "towering female figure standing over a tiny environment or person, emphasizing extreme scale difference", + "head": "tilted downwards, looking down with curiosity or affection", + "eyes": "gazing intently at the object in hand or on the ground", + "arms": "elbows bent, lifting one hand closer to the face for inspection", + "hands": "palm open and facing up, cupping a tiny person or object gently", + "torso": "leaning slightly forward to reduce the distance to the smaller subject", + "pelvis": "neutral standing posture, hips slightly shifted", + "legs": "standing firm and pillar-like to emphasize stability and size", + "feet": "planted firmly on the ground, perhaps next to tiny buildings or trees for scale comparison", + "additional": "low angle view, depth of field, giantess theme, macro perspective on hand" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/IllustriousXL_Size_difference_large_female.safetensors", + "lora_weight": 1.0, + "lora_triggers": "IllustriousXL_Size_difference_large_female" + }, + "tags": [ + "size difference", + "giantess", + "looking down", + "holding tiny person", + "perspective", + "interaction", + "scale comparison" + ] +} \ No newline at end of file diff --git a/data/actions/ilst.json b/data/actions/ilst.json new file mode 100644 index 0000000..9ebfafd --- /dev/null +++ b/data/actions/ilst.json @@ -0,0 +1,34 @@ +{ + "action_id": "ilst", + "action_name": "Imminent Facesitting", + "action": { + "full_body": "pov, facesitting", + "head": "", + "eyes": "", + "arms": "", + "hands": "", + "torso": "", + "pelvis": "pussy, pussy juice", + "legs": "", + "feet": "", + "additional": "" + }, + "participants": { + "solo_focus": "true", + "orientation": "F" + }, + "lora": { + "lora_name": "Illustrious/Poses/ILST.safetensors", + "lora_weight": 1.0, + "lora_triggers": "ILST" + }, + "tags": [ + "standing split", + "leg hold", + "high kick", + "gymnastics", + "yoga", + "stretching", + "balance" + ] +} \ No newline at end of file diff --git a/data/actions/imminent_penetration_illustriousxl_lora_nochekaiser.json b/data/actions/imminent_penetration_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..e1c0a75 --- /dev/null +++ b/data/actions/imminent_penetration_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,37 @@ +{ + "action_id": "imminent_penetration_illustriousxl_lora_nochekaiser", + "action_name": "Imminent Penetration Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "lying on back, intimate close-up, sexual activity, extreme proximity to viewer", + "head": "heavily blushing, panting, mouth open, sweat, expression of anticipation or arousal", + "eyes": "half-closed eyes, upturned eyes, looking at viewer", + "arms": "reaching out or clutching bedsheets", + "hands": "hands gripping, knuckles white", + "torso": "arched back, heaving chest", + "pelvis": "hips lifted, genitals exposed, genital contact", + "legs": "spread legs, m-legs, knees up, legs apart", + "feet": "toes curled", + "additional": "imminent penetration, penis tip, touching, just the tip, friction, pov, insertion validation" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/imminent-penetration-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "imminent-penetration-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "imminent penetration", + "tip", + "touching", + "pov", + "sex", + "spread legs", + "blush", + "sweat", + "genital close-up", + "nsfw" + ] +} \ No newline at end of file diff --git a/data/actions/immobilizationalpha_2_illustrious_dim_12_sv_cumulative_0_75.json b/data/actions/immobilizationalpha_2_illustrious_dim_12_sv_cumulative_0_75.json new file mode 100644 index 0000000..a89f357 --- /dev/null +++ b/data/actions/immobilizationalpha_2_illustrious_dim_12_sv_cumulative_0_75.json @@ -0,0 +1,32 @@ +{ + "action_id": "immobilizationalpha_2_illustrious_dim_12_sv_cumulative_0_75", + "action_name": "Immobilizationalpha 2 Illustrious Dim 12 Sv Cumulative 0 75", + "action": { + "full_body": "restrained, immobilized, pinned to wall, spread eagle", + "head": "looking at viewer, slight distress", + "eyes": "open eyes", + "arms": "arms spread, arms restrained, wrists bound, cuffs", + "hands": "hands tied, open hands", + "torso": "straps on body, chest harness", + "pelvis": "facing viewer", + "legs": "legs spread, legs restrained, ankles bound", + "feet": "feet hanging", + "additional": "chains, metal cuffs, dungeon or sci-fi setting, wall" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/immobilizationAlpha_2_Illustrious_DIM-12_sv_cumulative_0.75.safetensors", + "lora_weight": 1.0, + "lora_triggers": "immobilizationAlpha_2_Illustrious_DIM-12_sv_cumulative_0.75" + }, + "tags": [ + "bondage", + "restrained", + "immobilization", + "cuffs", + "wall" + ] +} \ No newline at end of file diff --git a/data/actions/implied_fellatio_illustriousxl_lora_nochekaiser.json b/data/actions/implied_fellatio_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..da7e7a0 --- /dev/null +++ b/data/actions/implied_fellatio_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,37 @@ +{ + "action_id": "implied_fellatio_illustriousxl_lora_nochekaiser", + "action_name": "Implied Fellatio Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "medium shot or close-up focusing on the face and upper body, often angled from above or slightly below to enhance the suggestive context", + "head": "tilted slightly back or forward, mouth open in an O-shape, tongue visible or sticking out, cheeks heavily flushed with blush", + "eyes": "gazing upward or directly at the viewer, eyelids half-closed (bedroom eyes), potentially heart-shaped pupils", + "arms": "bent at the elbows, bringing hands up towards the face", + "hands": "holding a cylindrical object (such as a microphone, bottle, popsicle, corndog, or banana) close to the open mouth", + "torso": "leaning forward or arching back slightly, emphasizing the chest and neck line", + "pelvis": "often obscured, likely in a kneeling or sitting position", + "legs": "kneeling or sitting under the body if visible", + "feet": "tucked under or out of frame", + "additional": "saliva strings connecting mouth to object, drool, steam breath, messy face" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/implied-fellatio-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "implied-fellatio-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "implied fellatio", + "open mouth", + "tongue", + "saliva", + "holding object", + "looking at viewer", + "blush", + "suggestive", + "tongue out", + "drooling" + ] +} \ No newline at end of file diff --git a/data/actions/impossiblefit.json b/data/actions/impossiblefit.json new file mode 100644 index 0000000..9ec6608 --- /dev/null +++ b/data/actions/impossiblefit.json @@ -0,0 +1,35 @@ +{ + "action_id": "impossiblefit", + "action_name": "Impossiblefit", + "action": { + "full_body": "character standing, struggling to close or pull up extremely tight clothing that is too small for their body type", + "head": "tilted down looking at waist, face flushed or straining", + "eyes": "focused downwards on the clothing gap", + "arms": "bent at elbows, exerting force", + "hands": "gripping waistband, pulling zipper tab, or pinching fabric edges together", + "torso": "stomach sucked in, torso arched slightly backward or scrunched forward", + "pelvis": "hips emphasized, flesh compressed by tight fabric, potential muffin top", + "legs": "standing close together, knees sometimes bent for leverage", + "feet": "planted on ground, or hopping on one foot", + "additional": "clothing gap, open zipper, bursting buttons, skin indentation, clothes too small" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/impossiblefit.safetensors", + "lora_weight": 1.0, + "lora_triggers": "impossiblefit" + }, + "tags": [ + "tight clothing", + "clothes too small", + "struggling", + "clothing gap", + "muffin top", + "zipper", + "embarrassed", + "curvy" + ] +} \ No newline at end of file diff --git a/data/actions/instant_loss_caught_il_nai_py.json b/data/actions/instant_loss_caught_il_nai_py.json new file mode 100644 index 0000000..5c610ca --- /dev/null +++ b/data/actions/instant_loss_caught_il_nai_py.json @@ -0,0 +1,37 @@ +{ + "action_id": "instant_loss_caught_il_nai_py", + "action_name": "Instant Loss Caught Il Nai Py", + "action": { + "full_body": "character exhibiting immediate total defeat, body going completely limp and incapacitated", + "head": "head thrown back or slumped forward in unconsciousness, mouth falling open", + "eyes": "eyes rolled back (ahoge), empty eyes, or spiral eyes, indicating loss of consciousness", + "arms": "arms dangling uselessly at sides or floating limply if suspended", + "hands": "fingers loose and uncurled, wrists limp", + "torso": "posture collapsed, arching back or slumped over, defenseless", + "pelvis": "hips neutral or pushed forward due to limpness", + "legs": "knees buckled, legs giving way or dangling if lifted", + "feet": "feet relaxed, toes pointing down", + "additional": "drooling, tongue out, heavy breathing, flushed skin, sweat, mind break visual cues" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Instant loss caught-IL_NAI_PY.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Instant loss caught-IL_NAI_PY" + }, + "tags": [ + "instant_loss", + "defeat", + "fainted", + "limp", + "unconscious", + "mind_break", + "eyes_rolled_back", + "tongue_out", + "drooling", + "caught" + ] +} \ No newline at end of file diff --git a/data/actions/irrumatio_illustrious.json b/data/actions/irrumatio_illustrious.json new file mode 100644 index 0000000..ee256f1 --- /dev/null +++ b/data/actions/irrumatio_illustrious.json @@ -0,0 +1,37 @@ +{ + "action_id": "irrumatio_illustrious", + "action_name": "Irrumatio Illustrious", + "action": { + "full_body": "duo, sexual act, male standing, female kneeling in front, height difference", + "head": "head tilted back, mouth wide open, penis in mouth, cheek bulge, face forced into crotch", + "eyes": "upturned eyes, rolling eyes, ahegao, tearing up", + "arms": "male arms reaching down, female arms holding male legs or limp at sides", + "hands": "male hands grabbing female's head, grabbing hair, guiding head", + "torso": "male hips thrust forward, female slightly leaning forward", + "pelvis": "crotch to face contact, oral penetration", + "legs": "male standing straight or legs spread, female kneeling on floor", + "feet": "feet obscured or toes on ground", + "additional": "deepthroat, saliva, rough sex, domination" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/irrumatio_illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "irrumatio_illustrious" + }, + "tags": [ + "irrumatio", + "fellatio", + "oral sex", + "head grab", + "grabbing hair", + "deepthroat", + "kneeling", + "penis", + "rough sex", + "duo" + ] +} \ No newline at end of file diff --git a/data/actions/just_the_tip.json b/data/actions/just_the_tip.json new file mode 100644 index 0000000..edaf73e --- /dev/null +++ b/data/actions/just_the_tip.json @@ -0,0 +1,35 @@ +{ + "action_id": "just_the_tip", + "action_name": "Just The Tip", + "action": { + "full_body": "character standing in a bashful, introverted pose, body slightly crunched inward", + "head": "tilted slightly downward or looking up through bangs, blushing cheeks", + "eyes": "averted gaze or shy eye contact, puppy dog eyes", + "arms": "bent at the elbows, brought together in front of the chest", + "hands": "index finger tips touching each other (et style), other fingers curled into loose fists", + "torso": "leaning forward slightly in embarrassment", + "pelvis": "neutral position", + "legs": "knees knocked together (knock-kneed)", + "feet": "pigeon-toed stance (toes pointing inward)", + "additional": "floating easy-going atmosphere or embarrassment lines" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/just_the_tip.safetensors", + "lora_weight": 1.0, + "lora_triggers": "just_the_tip" + }, + "tags": [ + "shyness", + "fingers touching", + "index fingers together", + "blush", + "embarrassed", + "pigeon toed", + "knock-kneed", + "bashful" + ] +} \ No newline at end of file diff --git a/data/actions/kijyoui_illustrious_v1_0.json b/data/actions/kijyoui_illustrious_v1_0.json new file mode 100644 index 0000000..6447d29 --- /dev/null +++ b/data/actions/kijyoui_illustrious_v1_0.json @@ -0,0 +1,35 @@ +{ + "action_id": "kijyoui_illustrious_v1_0", + "action_name": "Kijyoui Illustrious V1 0", + "action": { + "full_body": "character straddling a partner, sitting on top, kneeling position", + "head": "looking down at viewer, flushed face, head tilted back", + "eyes": "half-closed eyes, looking at viewer", + "arms": "arms resting on partner's chest or bracing on bed, arms raised", + "hands": "hands grasping partner, hands on own hips", + "torso": "arched back, leaning forward or upright, bouncing breasts", + "pelvis": "hips wide, grinding, sitting on crotch", + "legs": "spread legs, knees bent, thighs prominent", + "feet": "feet tucked under, dorsal flexion", + "additional": "pov, motion lines, sweat, messy hair, sexual act" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/kijyoui_illustrious_V1.0.safetensors", + "lora_weight": 1.0, + "lora_triggers": "kijyoui_illustrious_V1.0" + }, + "tags": [ + "straddling", + "on_top", + "kneeling", + "cowgirl_position", + "sex", + "vaginal", + "pov", + "spread_legs" + ] +} \ No newline at end of file diff --git a/data/actions/kiss_multiple_view_close_up_illustrious.json b/data/actions/kiss_multiple_view_close_up_illustrious.json new file mode 100644 index 0000000..8043de4 --- /dev/null +++ b/data/actions/kiss_multiple_view_close_up_illustrious.json @@ -0,0 +1,34 @@ +{ + "action_id": "kiss_multiple_view_close_up_illustrious", + "action_name": "Kiss Multiple View Close Up Illustrious", + "action": { + "full_body": "close-up framing of two characters sharing an intimate kiss", + "head": "profiles facing each other, heads slightly tilted, lips pressed together, noses touching", + "eyes": "closed eyes, eyelashes visible, tender expression", + "arms": "arms embracing neck or shoulders (if visible within frame)", + "hands": "cupping the partner's cheek, holding the chin, or fingers running through hair", + "torso": "upper chests pressing against each other, leaning forward", + "pelvis": "not visible (cropped)", + "legs": "not visible (cropped)", + "feet": "not visible (cropped)", + "additional": "bokeh background, romantic atmosphere, mouth-to-mouth contact, blushing cheeks" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Kiss_multiple_view_close_up_Illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Kiss_multiple_view_close_up_Illustrious" + }, + "tags": [ + "romance", + "intimacy", + "couple", + "love", + "affection", + "lipstick", + "face-to-face" + ] +} \ No newline at end of file diff --git a/data/actions/kissing_penis_illustriousxl_lora_nochekaiser.json b/data/actions/kissing_penis_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..09cf897 --- /dev/null +++ b/data/actions/kissing_penis_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,34 @@ +{ + "action_id": "kissing_penis_illustriousxl_lora_nochekaiser", + "action_name": "Kissing Penis Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "kneeling or crouching, leaning forward towards partner's groin area", + "head": "face close to crotch, mouth touching or kissing the glans", + "eyes": "looking toward object, looking up (ahegao possible), or closed eyes", + "arms": "reaching forward, bent at elbows", + "hands": "holding the penis shaft, cupping testicles, or resting on partner's thighs", + "torso": "leaning forward, slight arch", + "pelvis": "kneeling on the ground or bed", + "legs": "kneeling, bent knees", + "feet": "toes curled or flat on surface", + "additional": "saliva, penis, erection, glans, sexual act, intimacy" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/kissing-penis-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "kissing-penis-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "kissing penis", + "fellatio", + "oral sex", + "blowjob", + "penis", + "kneeling", + "nsfw" + ] +} \ No newline at end of file diff --git a/data/actions/kissstanding_on_one_leg_il_000014.json b/data/actions/kissstanding_on_one_leg_il_000014.json new file mode 100644 index 0000000..d280d6f --- /dev/null +++ b/data/actions/kissstanding_on_one_leg_il_000014.json @@ -0,0 +1,39 @@ +{ + "action_id": "kissstanding_on_one_leg_il_000014", + "action_name": "Kissstanding On One Leg Il 000014", + "action": { + "full_body": "Two characters in a romantic standing embrace, usually seen clearly from the side", + "head": "Faces close together, lips locked in a kiss, heads tilted slightly in opposite directions", + "eyes": "Closed eyes signifying intimacy", + "arms": "One person's arms wrapped around the other's neck, the other person's arms holding the partner's waist or back", + "hands": "Hands clutching clothing or resting gently on the back/waist", + "torso": "Chests pressing against each other, leaning in", + "pelvis": "Hips close together, facing each other", + "legs": "One character stands on one leg while the other leg is bent backward at the knee (foot pop); the partner stands firmly on both legs", + "feet": "One foot lifted in the air behind the body, others planted on the ground", + "additional": "Romantic atmosphere, height difference, anime trope 'foot pop'" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/KIssStanding-On-One-Leg-IL-000014.safetensors", + "lora_weight": 1.0, + "lora_triggers": "KIssStanding-On-One-Leg-IL-000014" + }, + "tags": [ + "kiss", + "kissing", + "couple", + "standing on one leg", + "one leg up", + "foot pop", + "hugging", + "embrace", + "romantic", + "closed eyes", + "side view", + "love" + ] +} \ No newline at end of file diff --git a/data/actions/kneeling_upright_sex_from_behind_illustriousxl_lora_nochekaiser.json b/data/actions/kneeling_upright_sex_from_behind_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..c10095e --- /dev/null +++ b/data/actions/kneeling_upright_sex_from_behind_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,35 @@ +{ + "action_id": "kneeling_upright_sex_from_behind_illustriousxl_lora_nochekaiser", + "action_name": "Kneeling Upright Sex From Behind Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "kneeling, upright posture, viewing from behind", + "head": "head turned back, blushing, mouth slightly open", + "eyes": "half-closed eyes, looking back", + "arms": "arms behind back, hands placed on heels or holding partner", + "hands": "hands grasping", + "torso": "straight back, slight arch, accentuated curve", + "pelvis": "legs spread, presenting rear", + "legs": "kneeling, knees apart, thighs vertical", + "feet": "toes curling, barefoot", + "additional": "sex from behind, doggy style, penetration, intercourse" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/kneeling-upright-sex-from-behind-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "kneeling-upright-sex-from-behind-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "kneeling", + "upright", + "from behind", + "doggystyle", + "arched back", + "looking back", + "sex", + "nsfw" + ] +} \ No newline at end of file diff --git a/data/actions/lap_pov_illustriousxl_lora_nochekaiser.json b/data/actions/lap_pov_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..bf60814 --- /dev/null +++ b/data/actions/lap_pov_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,34 @@ +{ + "action_id": "lap_pov_illustriousxl_lora_nochekaiser", + "action_name": "Lap Pov Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "pov, sitting on lap, straddling, shot from above, close-up, intimate distance", + "head": "looking up, chin tilted up, face close to camera", + "eyes": "eye contact, looking at viewer, intense gaze", + "arms": "arms around neck, embracing viewer, or hands resting on viewer's chest", + "hands": "touching viewer, resting on shoulders", + "torso": "upper body close to viewer, leaning slightly back", + "pelvis": "sitting on viewer's thighs, weight settled", + "legs": "knees bent, thighs visible, straddling viewer's legs, spread legs", + "feet": "out of frame or dangling", + "additional": "viewer's legs visible beneath, depth of field, own hands (pov)" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/lap-pov-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "lap-pov-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "pov", + "sitting on lap", + "straddling", + "looking up", + "from above", + "intricate details", + "highly detailed" + ] +} \ No newline at end of file diff --git a/data/actions/leg_hug_v1_ill_10.json b/data/actions/leg_hug_v1_ill_10.json new file mode 100644 index 0000000..aa1bf00 --- /dev/null +++ b/data/actions/leg_hug_v1_ill_10.json @@ -0,0 +1,35 @@ +{ + "action_id": "leg_hug_v1_ill_10", + "action_name": "Leg Hug V1 Ill 10", + "action": { + "full_body": "kneeling or crouching low on the ground, clinging to a standing person's leg", + "head": "cheek pressing against the thigh or calf, looking up or nuzzling", + "eyes": "looking up pleadingly or closed in affection", + "arms": "encircling the leg, wrapped tightly", + "hands": "clasped together around the leg or gripping clothing", + "torso": "leaning forward, pressed against the leg", + "pelvis": "positioned low, near the ground", + "legs": "kneeling, bent at knees", + "feet": "tucked under or resting on the floor", + "additional": "implies severe height difference or submission, begging, pleading, or deep affection" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/leg_hug_v1_ill-10.safetensors", + "lora_weight": 1.0, + "lora_triggers": "leg_hug_v1_ill-10" + }, + "tags": [ + "leg hug", + "hugging leg", + "clinging", + "kneeling", + "pleading", + "affectionate", + "size difference", + "attached" + ] +} \ No newline at end of file diff --git a/data/actions/leg_pull_ilv1_0.json b/data/actions/leg_pull_ilv1_0.json new file mode 100644 index 0000000..e28197c --- /dev/null +++ b/data/actions/leg_pull_ilv1_0.json @@ -0,0 +1,35 @@ +{ + "action_id": "leg_pull_ilv1_0", + "action_name": "Leg Pull Ilv1 0", + "action": { + "full_body": "Character standing on one leg while pulling the other foot behind their buttocks to stretch the quadriceps", + "head": "Facing forward, chin level", + "eyes": "Looking straight ahead", + "arms": "One arm reaching back to hold the foot, the other arm extended for balance or resting on hip", + "hands": "One hand gripping the ankle or foot behind the back", + "torso": "Upright posture, chest open", + "pelvis": "Hips squared forward", + "legs": "One leg straight and planted, the other bent at the knee with the lower leg pulled up behind the thigh", + "feet": "Standing foot flat, lifted foot held near the glutes", + "additional": "fitness attire, stretching context" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Leg-Pull-ILV1.0.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Leg-Pull-ILV1.0" + }, + "tags": [ + "stretching", + "standing on one leg", + "quadriceps stretch", + "holding foot", + "single leg balance", + "exercise", + "fitness", + "yoga pose" + ] +} \ No newline at end of file diff --git a/data/actions/legsup_missionary.json b/data/actions/legsup_missionary.json new file mode 100644 index 0000000..ec0582c --- /dev/null +++ b/data/actions/legsup_missionary.json @@ -0,0 +1,36 @@ +{ + "action_id": "legsup_missionary", + "action_name": "Legsup Missionary", + "action": { + "full_body": "character lying on back on bed, performing missionary position with legs raised high", + "head": "resting back on pillow, face looking up", + "eyes": "open, looking at partner or viewer, sultry expression", + "arms": "resting on bed sheets beside head or embracing invisible partner", + "hands": "clutching bed sheets or holding own legs", + "torso": "flat on back, chest facing upward, arching slightly", + "pelvis": "tilted upwards, hips raised off mattress", + "legs": "raised vertically, knees bent, thighs spread wide, ankles in the air or positioned over shoulders", + "feet": "soles visible, toes pointing up or curled", + "additional": "on bed, messy sheets, pillow, pov perspective, intimate atmosphere" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/legsup_missionary.safetensors", + "lora_weight": 1.0, + "lora_triggers": "legsup_missionary" + }, + "tags": [ + "missionary", + "legs up", + "lying on back", + "spread legs", + "legs over shoulders", + "on bed", + "pov", + "sex act", + "vaginal" + ] +} \ No newline at end of file diff --git a/data/actions/licking_penis.json b/data/actions/licking_penis.json new file mode 100644 index 0000000..75fc174 --- /dev/null +++ b/data/actions/licking_penis.json @@ -0,0 +1,36 @@ +{ + "action_id": "licking_penis", + "action_name": "Licking Penis", + "action": { + "full_body": "kneeling or bending forward, engaging in oral stimulation", + "head": "positioned close to crotch, tongue extended, mouth open", + "eyes": "looking up or closed, focused on the act", + "arms": "reaching forward to support weight or hold partner", + "hands": "holding the penis shaft or resting on partner's legs", + "torso": "leaning forward, slight arch in back", + "pelvis": "kneeling or sitting on heels", + "legs": "bent at knees, resting on ground", + "feet": "tucked behind or toes touching ground", + "additional": "saliva trails, tongue contacting glans, close-up composition" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/licking_penis.safetensors", + "lora_weight": 1.0, + "lora_triggers": "licking_penis" + }, + "tags": [ + "fellatio", + "oral", + "licking", + "tongue_out", + "penis", + "saliva", + "kneeling", + "blowjob", + "glans" + ] +} \ No newline at end of file diff --git a/data/actions/licking_testicles.json b/data/actions/licking_testicles.json new file mode 100644 index 0000000..35b1c8a --- /dev/null +++ b/data/actions/licking_testicles.json @@ -0,0 +1,36 @@ +{ + "action_id": "licking_testicles", + "action_name": "Licking Testicles", + "action": { + "full_body": "kneeling or crouching between partner's spread legs, leaning forward to perform oral interaction", + "head": "positioned directly under partner's groin, face close to testicles, mouth open", + "eyes": "looking up towards partner or closed in focus", + "arms": "reaching forward, holding partner's thighs or buttocks", + "hands": "grasping the thighs or buttocks to stabilize positioning", + "torso": "leaning forward, possibly arching back depending on angle", + "pelvis": "hips positioned low, kneeling", + "legs": "kneeling on the ground, knees apart", + "feet": "tucked under or flat behind", + "additional": "tongue extended, touching or licking testicles, saliva" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/licking_testicles.safetensors", + "lora_weight": 1.0, + "lora_triggers": "licking_testicles" + }, + "tags": [ + "licking testicles", + "ball licking", + "oral", + "fellatio", + "kneeling", + "between legs", + "tongue out", + "saliva", + "nsfw" + ] +} \ No newline at end of file diff --git a/data/actions/lickkkp.json b/data/actions/lickkkp.json new file mode 100644 index 0000000..73d421b --- /dev/null +++ b/data/actions/lickkkp.json @@ -0,0 +1,33 @@ +{ + "action_id": "lickkkp", + "action_name": "Lickkkp", + "action": { + "full_body": "A focus on the interaction between the character and an object near the mouth.", + "head": "Tilted slightly forward or sideways, mouth open.", + "eyes": "Focused intently on the object or gazing upwards at the viewer.", + "arms": "Elbows bent, bringing hands close to the face.", + "hands": "Holding a popsicle, lollipop, or finger positioned for checking.", + "torso": "Leaning slightly towards the object of interest.", + "pelvis": "Neutral alignment, stationary.", + "legs": "Standing or sitting in a relaxed posture.", + "feet": "Plant or crossed comfortably.", + "additional": "Tongue extended outward making contact, saliva trails, wet tongue texture." + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/LicKKKP.safetensors", + "lora_weight": 1.0, + "lora_triggers": "LicKKKP" + }, + "tags": [ + "licking", + "tongue out", + "saliva", + "open mouth", + "oral fixation", + "close-up" + ] +} \ No newline at end of file diff --git a/data/actions/lotusposition.json b/data/actions/lotusposition.json new file mode 100644 index 0000000..a928dba --- /dev/null +++ b/data/actions/lotusposition.json @@ -0,0 +1,37 @@ +{ + "action_id": "lotusposition", + "action_name": "Lotusposition", + "action": { + "full_body": "sitting in lotus position, padmasana, meditative posture, yoga pose, whole body visible", + "head": "facing forward, calm expression, chin slightly tucked", + "eyes": "closed eyes, relaxing, or soft gaze downwards", + "arms": "arms relaxed, wrists resting on knees, elbows slightly bent", + "hands": "gyan mudra, index fingers touching thumbs, palms facing up, open hands", + "torso": "posture erect, straight spine, chest open, upright", + "pelvis": "grounded, sitting on floor, hips externally rotated", + "legs": "crossed legs tightly, feet resting on opposite thighs, flexibility", + "feet": "soles facing upward, feet visible on thighs, barefoot", + "additional": "serene atmosphere, tranquility, zen, spiritual practice" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/lotusposition.safetensors", + "lora_weight": 1.0, + "lora_triggers": "lotusposition" + }, + "tags": [ + "lotus position", + "meditation", + "yoga", + "sitting", + "padmasana", + "crossed legs", + "zen", + "peaceful", + "flexible", + "barefoot" + ] +} \ No newline at end of file diff --git a/data/actions/mask_pull_up.json b/data/actions/mask_pull_up.json new file mode 100644 index 0000000..6b25599 --- /dev/null +++ b/data/actions/mask_pull_up.json @@ -0,0 +1,33 @@ +{ + "action_id": "mask_pull_up", + "action_name": "Mask Pull Up", + "action": { + "full_body": "Upper body or portrait shot of a character interacting with their face covering", + "head": "Facing forward, chin slightly tucked or level", + "eyes": "focused gaze looking directly at the viewer", + "arms": "Elbows bent, raised towards the face", + "hands": "Fingers grasping the top edge of a mask or fabric, pulling it upwards", + "torso": "Shoulders squared", + "pelvis": "n/a", + "legs": "n/a", + "feet": "n/a", + "additional": "The mask fabric is taut where pulled, potentially covering the mouth and nose or in the process of doing so" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/mask_pull_up.safetensors", + "lora_weight": 1.0, + "lora_triggers": "mask_pull_up" + }, + "tags": [ + "adjusting_mask", + "mask_pull", + "hand_on_mask", + "covering_mouth", + "upper_body", + "mask" + ] +} \ No newline at end of file diff --git a/data/actions/masturbation_h.json b/data/actions/masturbation_h.json new file mode 100644 index 0000000..8907f20 --- /dev/null +++ b/data/actions/masturbation_h.json @@ -0,0 +1,37 @@ +{ + "action_id": "masturbation_h", + "action_name": "Masturbation H", + "action": { + "full_body": "lying on back, body arched in pleasure, intimate perspective", + "head": "tilted back, flushed face, mouth open, heavy breathing, tongue out, salivating", + "eyes": "half-closed eyes, rolled back, heart pupils, tearing up", + "arms": "one arm across chest, other reaching down between legs", + "hands": "fondling breasts, rubbing clitoris, fingering, fingers inserted", + "torso": "sweaty skin, heaving chest, arched back", + "pelvis": "lifted hips, exposed crotch", + "legs": "spread legs, m-legs, knees bent, thighs open", + "feet": "toes curled, plantar flexion", + "additional": "pussy juice, messy sheets, unbuttoned clothes, intense pleasure" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/masturbation_h.safetensors", + "lora_weight": 1.0, + "lora_triggers": "masturbation_h" + }, + "tags": [ + "masturbation", + "fingering", + "spread_legs", + "arched_back", + "ahegao", + "sweat", + "blush", + "lying_on_bed", + "nipple_tweak", + "sex_act" + ] +} \ No newline at end of file diff --git a/data/actions/mating_press___size_diff_000010_1726954.json b/data/actions/mating_press___size_diff_000010_1726954.json new file mode 100644 index 0000000..3ed804e --- /dev/null +++ b/data/actions/mating_press___size_diff_000010_1726954.json @@ -0,0 +1,36 @@ +{ + "action_id": "mating_press___size_diff_000010_1726954", + "action_name": "Mating Press Size Diff 000010 1726954", + "action": { + "full_body": "mating press, lying on back, partner on top, size difference, height difference, close bodies", + "head": "head tilted back, heavy breathing, blushing, mouth open, sweat", + "eyes": "half-closed eyes, rolled back eyes, ahegao", + "arms": "arms resting on bed, arms above head, clutching sheets", + "hands": "fists, gripping bedsheets, holding onto partner", + "torso": "arched back, chest pressed", + "pelvis": "hips raised, pelvis lifted, groins touching", + "legs": "legs up, legs folded, knees to chest, spread legs, legs held by partner, feet past shoulders", + "feet": "toes curled, suspended in air", + "additional": "sex, vaginal penetration, duo, male on top, bed, pillows, intimate, deeply inserted" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Mating_Press_-_Size_Diff-000010_1726954.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Mating_Press_-_Size_Diff-000010_1726954" + }, + "tags": [ + "mating press", + "size difference", + "legs up", + "lying on back", + "partner on top", + "knees to chest", + "sex", + "vaginal", + "legs folded" + ] +} \ No newline at end of file diff --git a/data/actions/mating_press_from_above_illustriousxl_lora_nochekaiser.json b/data/actions/mating_press_from_above_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..2c68f8e --- /dev/null +++ b/data/actions/mating_press_from_above_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,36 @@ +{ + "action_id": "mating_press_from_above_illustriousxl_lora_nochekaiser", + "action_name": "Mating Press From Above Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "lying on back, mating press pose, supine", + "head": "resting on surface, looking up at viewer", + "eyes": "half-closed eyes, rolling eyes, ahegao", + "arms": "arms at sides or reaching up", + "hands": "grabbing sheets or holding legs", + "torso": "back flat against surface, chest heaving", + "pelvis": "hips exposed, legs spread wide", + "legs": "legs up, knees bent towards shoulders, thighs pressed back", + "feet": "feet in air, toes curled", + "additional": "from above, high angle, pov, bed sheet, sweat, intimate" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/mating-press-from-above-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "mating-press-from-above-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "mating press", + "from above", + "lying on back", + "legs up", + "spread legs", + "knees to chest", + "pov", + "high angle", + "sex" + ] +} \ No newline at end of file diff --git a/data/actions/mating_press_from_side_illustriousxl_lora_nochekaiser.json b/data/actions/mating_press_from_side_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..ec9241e --- /dev/null +++ b/data/actions/mating_press_from_side_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,36 @@ +{ + "action_id": "mating_press_from_side_illustriousxl_lora_nochekaiser", + "action_name": "Mating Press From Side Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "lying on back, legs lifted high toward chest, profile view, receiving forceful thrusts", + "head": "head pressed against pillow, chin tilted up, neck exposed", + "eyes": "rolled back or squeezed shut, ahegao or heavy breathing", + "arms": "reaching out to hold partner or gripping bedsheets tightly", + "hands": "clenched fists or grabbing partner's back", + "torso": "back arched slightly, chest heaving", + "pelvis": "lifted off the mattress, hips tilted upwards", + "legs": "legs up, thighs pressed against torso, knees bent, ankles crossed behind partner's back or resting on partner's shoulders", + "feet": "toes curled or pointing upwards", + "additional": "sex, profile, side view, sweat, bed, crumpled sheets" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/mating-press-from-side-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "mating-press-from-side-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "mating press", + "from side", + "legs up", + "lying on back", + "sex", + "vaginal", + "side view", + "profile", + "legs over head" + ] +} \ No newline at end of file diff --git a/data/actions/midis_cumshower_lr_v1_naixl_vpred_.json b/data/actions/midis_cumshower_lr_v1_naixl_vpred_.json new file mode 100644 index 0000000..c825ab2 --- /dev/null +++ b/data/actions/midis_cumshower_lr_v1_naixl_vpred_.json @@ -0,0 +1,36 @@ +{ + "action_id": "midis_cumshower_lr_v1_naixl_vpred_", + "action_name": "Midis Cumshower Lr V1 Naixl Vpred ", + "action": { + "full_body": "kneeling or standing pose, body seemingly under a waterfall of viscous liquid", + "head": "tilted back, looking up, facial, face covered in white liquid, dripping heavily", + "eyes": "eyes closed or squinting, eyelashes wet and clumped, messy face", + "arms": "arms relaxed or hands touching face, skin slick with liquid", + "hands": "messy hands, covered in cum, spread palms", + "torso": "chest covered in liquid, streams running down the body, wet skin shine", + "pelvis": "kneeling or stationary", + "legs": "thighs wet, liquid pooling", + "feet": "bare feet", + "additional": "heavy cum, excessive cum, bukkake, splashing liquid, messy" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/midis_CumShower_LR-V1[NAIXL-vPred].safetensors", + "lora_weight": 1.0, + "lora_triggers": "midis_CumShower_LR-V1[NAIXL-vPred]" + }, + "tags": [ + "cum_shower", + "bukkake", + "heavy_cum", + "facial", + "covered_in_cum", + "excessive_cum", + "dripping_cum", + "messy", + "body_bukkake" + ] +} \ No newline at end of file diff --git a/data/actions/midis_cunnilingus_v0_6_naixl_vpred_.json b/data/actions/midis_cunnilingus_v0_6_naixl_vpred_.json new file mode 100644 index 0000000..a7fae26 --- /dev/null +++ b/data/actions/midis_cunnilingus_v0_6_naixl_vpred_.json @@ -0,0 +1,33 @@ +{ + "action_id": "midis_cunnilingus_v0_6_naixl_vpred_", + "action_name": "Midis Cunnilingus V0 6 Naixl Vpred ", + "action": { + "full_body": "duo focus, cunnilingus, oral sex, sexual act, female receiving oral sex, partner positioning between legs", + "head": "face buried in crotch, face between legs, tongue out, licking", + "eyes": "eyes closed, rolling eyes, expression of pleasure", + "arms": "holding thighs, gripping hips, supporting body weight", + "hands": "spreading labia, touching clitoris, fingering", + "torso": "leaning forward, prone", + "pelvis": "hips raised, exposed vulva, pelvic tilt", + "legs": "spread legs, open legs, legs over shoulders, m-legs, knees bent", + "feet": "toes curled, plantar flexion", + "additional": "pussy juice, saliva trail, wet pussy, intimacy" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/midis_Cunnilingus_V0.6[NAIXL-vPred].safetensors", + "lora_weight": 1.0, + "lora_triggers": "midis_Cunnilingus_V0.6[NAIXL-vPred]" + }, + "tags": [ + "cunnilingus", + "oral sex", + "pussy licking", + "nsfw", + "sexual act", + "duo" + ] +} \ No newline at end of file diff --git a/data/actions/midis_expressivelanguagelovingit_v0_5_il_.json b/data/actions/midis_expressivelanguagelovingit_v0_5_il_.json new file mode 100644 index 0000000..704572a --- /dev/null +++ b/data/actions/midis_expressivelanguagelovingit_v0_5_il_.json @@ -0,0 +1,35 @@ +{ + "action_id": "midis_expressivelanguagelovingit_v0_5_il_", + "action_name": "Midis Expressivelanguagelovingit V0 5 Il ", + "action": { + "full_body": "character displaying intense affection, leaning forward enthusiastically", + "head": "tilted slightly to the side, huge smile, blushing cheeks", + "eyes": "closed happy eyes (><) or heart-shaped pupils", + "arms": "brought together in front of the chest or face", + "hands": "fingers curved to form a heart shape (heart hands)", + "torso": "facing viewer, upper body focus", + "pelvis": "neutral", + "legs": "standing or obscured", + "feet": "obscured", + "additional": "floating pink hearts, sparkles, radiating happiness" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/midis_ExpressiveLanguageLovingit_V0.5[IL].safetensors", + "lora_weight": 1.0, + "lora_triggers": "midis_ExpressiveLanguageLovingit_V0.5[IL]" + }, + "tags": [ + "heart hands", + "hands forming heart", + "love", + "smile", + "blush", + "closed eyes", + "happy", + "adoration" + ] +} \ No newline at end of file diff --git a/data/actions/midis_onbackoral_v0_4_il_.json b/data/actions/midis_onbackoral_v0_4_il_.json new file mode 100644 index 0000000..35f5929 --- /dev/null +++ b/data/actions/midis_onbackoral_v0_4_il_.json @@ -0,0 +1,34 @@ +{ + "action_id": "midis_onbackoral_v0_4_il_", + "action_name": "Midis Onbackoral V0 4 Il ", + "action": { + "full_body": "lying on back, supine position, sensual pose", + "head": "head resting on surface, head tilted back, blush", + "eyes": "rolling eyes, eyes closed, or looking down", + "arms": "arms at sides, grabbing bedsheets, or arms above head", + "hands": "clenched hands, fingers curling", + "torso": "arched back, chest upward", + "pelvis": "hips lifted, pelvis exposed", + "legs": "spread legs, legs apart, knees bent, m-legs, open legs", + "feet": "toes curled, feet in air", + "additional": "pov, view from above, between legs, bed, messy sheets" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/midis_OnBackOral_V0.4[IL].safetensors", + "lora_weight": 1.0, + "lora_triggers": "midis_OnBackOral_V0.4[IL]" + }, + "tags": [ + "lying on back", + "spread legs", + "pov", + "legs apart", + "supine", + "m-legs", + "sensual" + ] +} \ No newline at end of file diff --git a/data/actions/mirror_sex_ilxl_v1.json b/data/actions/mirror_sex_ilxl_v1.json new file mode 100644 index 0000000..6e352f3 --- /dev/null +++ b/data/actions/mirror_sex_ilxl_v1.json @@ -0,0 +1,35 @@ +{ + "action_id": "mirror_sex_ilxl_v1", + "action_name": "Mirror Sex Ilxl V1", + "action": { + "full_body": "leaning forward facing a large vertical mirror, body pressed against the glass surface, bent over at waist", + "head": "looking into the reflection or turned back over shoulder", + "eyes": "making eye contact through reflection", + "arms": "extended forward, reaching for the glass", + "hands": "palms pressed flat against the mirror, fingers splayed", + "torso": "leaning forward, arched back", + "pelvis": "tilted upwards, buttocks protruding backwards", + "legs": "spread apart, knees slightly bent for stability", + "feet": "planted firmly or on toes", + "additional": "clear mirror reflection showing the front view of the body, creating a dual-perspective composition" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/mirror_sex_ilxl_v1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "mirror_sex_ilxl_v1" + }, + "tags": [ + "mirror", + "reflection", + "leaning forward", + "hands on mirror", + "bent over", + "from behind", + "dual view", + "sexual pose" + ] +} \ No newline at end of file diff --git a/data/actions/ms_il_cum_vomit_lite.json b/data/actions/ms_il_cum_vomit_lite.json new file mode 100644 index 0000000..15dd923 --- /dev/null +++ b/data/actions/ms_il_cum_vomit_lite.json @@ -0,0 +1,35 @@ +{ + "action_id": "ms_il_cum_vomit_lite", + "action_name": "Ms Il Cum Vomit Lite", + "action": { + "full_body": "hunched over, leaning forward, kneeling or bent over stance", + "head": "mouth wide open, agape, head tilted downward, tongue protruding, expression of nausea or distress, cheek bulge", + "eyes": "tearing up, crying, eyes squeezed shut or rolled back", + "arms": "bracing against the floor or holding stomach", + "hands": "palms flat on ground or clutching abdomen", + "torso": "curved spine, heaving chest", + "pelvis": "pushed back to balance upper body weight", + "legs": "knees bent, kneeling on floor", + "feet": "resting on floor", + "additional": "thick stream of white liquid, cum vomit, excessive cum, messy face, cum drool, fluid dripping from chin, puddle on ground" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/MS_IL_Cum_Vomit_Lite.safetensors", + "lora_weight": 1.0, + "lora_triggers": "MS_IL_Cum_Vomit_Lite" + }, + "tags": [ + "cum_vomit", + "vomiting", + "open_mouth", + "excessive_cum", + "messy_face", + "tears", + "bodily_fluids", + "white_liquid" + ] +} \ No newline at end of file diff --git a/data/actions/mtu_virusillustrious.json b/data/actions/mtu_virusillustrious.json new file mode 100644 index 0000000..ae2e9ba --- /dev/null +++ b/data/actions/mtu_virusillustrious.json @@ -0,0 +1,43 @@ +{ + "action_id": "mtu_virusillustrious", + "action_name": "Mtu Virusillustrious", + "action": { + "full_body": "standing in a graceful, ladylike posture, slightly turned to the side but facing forward", + "head": "tilted slightly downward with a gentle, serene smile, exuding elegance", + "eyes": "detailed blue eyes looking affectionately at the viewer", + "arms": "right arm raised with hand delicately touching the brim of her large hat, left arm resting naturally by her side", + "hands": "wearing white bridal gloves, graceful finger positioning", + "torso": "clad in her signature white strapless dress with ruffled neckline, emphasizing a voluptuous figure", + "pelvis": "hips positioned with a slight feminine curve", + "legs": "legs standing together, covered in translucent white pantyhose", + "feet": "wearing white high heels", + "additional": "surrounded by a soft, radiant aura, perhaps with white flower petals drifting in the air, captured in a clean, high-quality anime art style" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/mtu_virusIllustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "mtu_virusIllustrious" + }, + "tags": [ + "1girl", + "illustrious (azur lane)", + "white dress", + "large breasts", + "white hair", + "long hair", + "floppy hat", + "detached sleeves", + "pantyhose", + "strapless dress", + "gloves", + "blue eyes", + "solo", + "upper body", + "elegant", + "detailed background" + ] +} \ No newline at end of file diff --git a/data/actions/multiple_asses_r1.json b/data/actions/multiple_asses_r1.json new file mode 100644 index 0000000..6872768 --- /dev/null +++ b/data/actions/multiple_asses_r1.json @@ -0,0 +1,36 @@ +{ + "action_id": "multiple_asses_r1", + "action_name": "Multiple Asses R1", + "action": { + "full_body": "multiple subjects standing in a row or group turned away from the camera, full rear view", + "head": "facing forward away from camera or turned slightly to look back", + "eyes": "looking at viewer over shoulder or not visible", + "arms": "relaxed at sides or hands resting on hips", + "hands": "resting on waist or touching thighs", + "torso": "visible back, slightly arched lower back", + "pelvis": "hips wide, buttocks emphasized and focused in composition", + "legs": "standing straight or slightly bent at knees, shoulder-width apart", + "feet": "planted on ground, heels slightly raised or flat", + "additional": "focus on varying shapes and sizes of buttocks, depth of field focused on rear" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Multiple_Asses_r1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Multiple_Asses_r1" + }, + "tags": [ + "from behind", + "ass", + "butt", + "multiple girls", + "group", + "back view", + "looking back", + "medium shot", + "lower body focus" + ] +} \ No newline at end of file diff --git a/data/actions/multiple_fellatio_illustrious_v1_0.json b/data/actions/multiple_fellatio_illustrious_v1_0.json new file mode 100644 index 0000000..f288de8 --- /dev/null +++ b/data/actions/multiple_fellatio_illustrious_v1_0.json @@ -0,0 +1,34 @@ +{ + "action_id": "multiple_fellatio_illustrious_v1_0", + "action_name": "Multiple Fellatio Illustrious V1 0", + "action": { + "full_body": "multiple views, kneeling or sitting position, flanked by two partners, maintaining balance while engaging multiple subjects", + "head": "mouth wide open, jaw stretched, head tilted back or neutral, heavily blushing face, messy hair", + "eyes": "rolled back (ahegao), heart-shaped pupils, or crossed eyes, streaming tears", + "arms": "raised to hold partners or resting on their legs", + "hands": "stroking shafts, guiding penises towards mouth, or resting on partners' thighs", + "torso": "chest pushed forward, leaning in towards the action", + "pelvis": "hips settled on heels or slightly raised in a kneeling stance", + "legs": "kneeling, shins flat against the surface, knees spread apart", + "feet": "toes curled or resting flat", + "additional": "saliva trails, double fellatio, penis in mouth, penis on face, cum on face, high motion lines, explicit sexual activity" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/multiple fellatio_illustrious_V1.0.safetensors", + "lora_weight": 1.0, + "lora_triggers": "multiple fellatio_illustrious_V1.0" + }, + "tags": [ + "multiple fellatio", + "double fellatio", + "oral sex", + "kneeling", + "group sex", + "ahegao", + "saliva" + ] +} \ No newline at end of file diff --git a/data/actions/multiple_views_sex.json b/data/actions/multiple_views_sex.json new file mode 100644 index 0000000..d2a7c8d --- /dev/null +++ b/data/actions/multiple_views_sex.json @@ -0,0 +1,35 @@ +{ + "action_id": "multiple_views_sex", + "action_name": "Multiple Views Sex", + "action": { + "full_body": "multiple views, split view, character sheet, three-view drawing, front view, side view, back view", + "head": "neutral expression, looking forward, head visible from multiple angles", + "eyes": "open, direct gaze (in front view)", + "arms": "arms at sides, A-pose or T-pose, relaxed", + "hands": "open hands, relaxed", + "torso": "standing straight, visible from front, side, and back", + "pelvis": "facing forward (front view), facing side (side view)", + "legs": "standing straight, legs slightly apart", + "feet": "flat on floor", + "additional": "simple background, white background, concept art style, anatomy reference" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Multiple_views_sex.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Multiple_views_sex" + }, + "tags": [ + "multiple views", + "character turnaround", + "reference sheet", + "split view", + "from front", + "from side", + "from back", + "model sheet" + ] +} \ No newline at end of file diff --git a/data/actions/multipleviews.json b/data/actions/multipleviews.json new file mode 100644 index 0000000..e2101ad --- /dev/null +++ b/data/actions/multipleviews.json @@ -0,0 +1,35 @@ +{ + "action_id": "multipleviews", + "action_name": "Multipleviews", + "action": { + "full_body": "character sheet layout displaying the same character from multiple angles (front, side, back), standing pose", + "head": "neutral expression, face forward (front view), profile (side view)", + "eyes": "looking straight ahead", + "arms": "arms at sides, slight A-pose to show details", + "hands": "relaxed at sides", + "torso": "upright, various angles", + "pelvis": "facing front, side, and back", + "legs": "standing straight, shoulder width apart", + "feet": "standing flat", + "additional": "simple background, concept art style, turnaround, split view" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/multipleviews.safetensors", + "lora_weight": 1.0, + "lora_triggers": "multipleviews" + }, + "tags": [ + "multiple views", + "character sheet", + "reference sheet", + "turnaround", + "front view", + "side view", + "back view", + "concept art" + ] +} \ No newline at end of file diff --git a/data/actions/multiview_oralsex.json b/data/actions/multiview_oralsex.json new file mode 100644 index 0000000..7a5b318 --- /dev/null +++ b/data/actions/multiview_oralsex.json @@ -0,0 +1,34 @@ +{ + "action_id": "multiview_oralsex", + "action_name": "Multiview Oralsex", + "action": { + "full_body": "multiple views of a character displayed in a grid or sequence, showing different angles of a kneeling pose", + "head": "tilted slightly upward or forward, varying by angle, mouth slightly open or neutral", + "eyes": "focused upward or closed, depending on the specific view", + "arms": "reaching forward or resting on a surface", + "hands": "gesturing or holding onto a support", + "torso": "leaning forward, back slightly arched", + "pelvis": "positioned low, kneeling grounded stance", + "legs": "knees bent on the ground, shins flat against the surface", + "feet": "toes supporting or flat, visible in rear views", + "additional": "character sheet style, white or simple background to emphasize the pose analysis" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/multiview_oralsex.safetensors", + "lora_weight": 1.0, + "lora_triggers": "multiview_oralsex" + }, + "tags": [ + "multiview", + "character sheet", + "reference sheet", + "kneeling", + "leaning forward", + "multiple angles", + "pose check" + ] +} \ No newline at end of file diff --git a/data/actions/neba.json b/data/actions/neba.json new file mode 100644 index 0000000..26d1345 --- /dev/null +++ b/data/actions/neba.json @@ -0,0 +1,32 @@ +{ + "action_id": "neba", + "action_name": "Neba", + "action": { + "full_body": "character posing while stretching a viscous, sticky substance between body parts", + "head": "tilted slightly forward or back, focused on the substance", + "eyes": "focused gaze, watching the strands stretch", + "arms": "extended outwards or pulled apart to create tension in the liquid", + "hands": "fingers spread, pulling sticky material apart with visible strands connecting them", + "torso": "posture adjusts to accommodate the stretching motion", + "pelvis": "neutral or slightly shifted weight", + "legs": "standing or sitting planted firmly", + "feet": "neutral placement", + "additional": "thick, stringy strands (neba neba) connecting hands to other surfaces or body parts, implies viscosity" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/neba.safetensors", + "lora_weight": 1.0, + "lora_triggers": "neba" + }, + "tags": [ + "neba neba", + "sticky", + "stretching", + "viscous", + "slime" + ] +} \ No newline at end of file diff --git a/data/actions/nipple_licking_handjob.json b/data/actions/nipple_licking_handjob.json new file mode 100644 index 0000000..8b22bda --- /dev/null +++ b/data/actions/nipple_licking_handjob.json @@ -0,0 +1,35 @@ +{ + "action_id": "nipple_licking_handjob", + "action_name": "Nipple Licking Handjob", + "action": { + "full_body": "duo, sexual interaction, 1girl, 1boy, female performing oral on chest while using hands", + "head": "face near male chest, tongue out, licking nipple, sucking nipple, saliva", + "eyes": "looking at breast, half-closed eyes", + "arms": "reaching down towards male crotch", + "hands": "holding penis, handjob, stroking, gripping shaft", + "torso": "leaning forward, pressing against partner", + "pelvis": "kneeling or sitting", + "legs": "kneeling", + "feet": "toes curled", + "additional": "erect nipples, penis, male chest, simultaneous stimulation" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Nipple_licking_Handjob.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Nipple_licking_Handjob" + }, + "tags": [ + "nipple licking", + "handjob", + "sucking nipple", + "tongue on nipple", + "holding penis", + "stimulation", + "duo", + "NSFW" + ] +} \ No newline at end of file diff --git a/data/actions/nm_fullmouthcum_ill.json b/data/actions/nm_fullmouthcum_ill.json new file mode 100644 index 0000000..f6fc59e --- /dev/null +++ b/data/actions/nm_fullmouthcum_ill.json @@ -0,0 +1,35 @@ +{ + "action_id": "nm_fullmouthcum_ill", + "action_name": "Nm Fullmouthcum Ill", + "action": { + "full_body": "portrait or upper body shot focusing on facial distortion", + "head": "face flushed, cheeks bulging significantly, puffy cheeks, stuffed cheeks, lips pursed or slightly leaking liquid", + "eyes": "tearing up, watery eyes, squashed or wide open depending on intensity", + "arms": "optional, hands often near face", + "hands": "wiping mouth or framing face, messy with liquid", + "torso": "visible upper chest", + "pelvis": "not visible or kneeling", + "legs": "not visible", + "feet": "not visible", + "additional": "mouth full, holding breath, white liquid dripping, semen in mouth, cum drip, excess saliva, struggling to swallow" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/NM_FullMouthCum_ill.safetensors", + "lora_weight": 1.0, + "lora_triggers": "NM_FullMouthCum_ill" + }, + "tags": [ + "stuffed cheeks", + "puffy cheeks", + "mouth full", + "cum in mouth", + "bulging cheeks", + "semen in mouth", + "holding breath", + "cheeks" + ] +} \ No newline at end of file diff --git a/data/actions/ntr_000006.json b/data/actions/ntr_000006.json new file mode 100644 index 0000000..107b9bf --- /dev/null +++ b/data/actions/ntr_000006.json @@ -0,0 +1,35 @@ +{ + "action_id": "ntr_000006", + "action_name": "Ntr 000006", + "action": { + "full_body": "character lying on back on a bed or messy sheets, body language conveying distress or reluctance", + "head": "face flushed, expression of anguish, sorrow, or shock, mouth slightly open", + "eyes": "tearing up, thick tears streaming down face, looking at viewer with a pleading or broken gaze", + "arms": "arms raised near the head, elbows bent", + "hands": "hands clutching the bed sheets or pillow tightly in frustration or despair", + "torso": "arched slightly off the mattress or sunken into soft bedding", + "pelvis": "hips resting on the bed", + "legs": "knees bent upwards, legs restless or spread", + "feet": "resting on the bed surface", + "additional": "sweat drops on skin, disheveled hair, dramatic shadows, messy bed" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/ntr-000006.safetensors", + "lora_weight": 1.0, + "lora_triggers": "ntr-000006" + }, + "tags": [ + "ntr", + "crying", + "tears", + "lying", + "distress", + "sweat", + "flushed face", + "bed" + ] +} \ No newline at end of file diff --git a/data/actions/ooframe.json b/data/actions/ooframe.json new file mode 100644 index 0000000..ceb7f4c --- /dev/null +++ b/data/actions/ooframe.json @@ -0,0 +1,32 @@ +{ + "action_id": "ooframe", + "action_name": "Ooframe", + "action": { + "full_body": "character standing, performing a framing gesture with hands", + "head": "facing forward, peering through the gap created by fingers", + "eyes": "focused, one eye possibly closed as if looking through a viewfinder", + "arms": "raised to eye level, elbows bent outwards", + "hands": "thumbs and index fingers touching to form a rectangular frame shape", + "torso": "facing viewer, upper body focus", + "pelvis": "neutral stance", + "legs": "standing straight or partially obscured", + "feet": "planted on ground", + "additional": "mimicking a camera, director pose, perspective focus" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/OOFrame.safetensors", + "lora_weight": 1.0, + "lora_triggers": "OOFrame" + }, + "tags": [ + "finger frame", + "framing", + "hands up", + "looking through fingers", + "gesture" + ] +} \ No newline at end of file diff --git a/data/actions/oral_under_the_table_illustrious.json b/data/actions/oral_under_the_table_illustrious.json new file mode 100644 index 0000000..37ff164 --- /dev/null +++ b/data/actions/oral_under_the_table_illustrious.json @@ -0,0 +1,33 @@ +{ + "action_id": "oral_under_the_table_illustrious", + "action_name": "Oral Under The Table Illustrious", + "action": { + "full_body": "kneeling or crouching beneath a table, positioned between the legs of a seated person", + "head": "tilted upwards, looking up at the person above", + "eyes": "looking up, upturned eyes", + "arms": "reaching forward to hold the partner's legs or resting on the floor to support weight", + "hands": "grasping thighs or placed on the ground", + "torso": "leaning forward, enclosed within the space under the table", + "pelvis": "kneeling pose, hips low", + "legs": "kneeling on the floor, tucked underneath", + "feet": "resting on the floor behind or toes tucked", + "additional": "table legs visible, tablecloth draping down, partner's legs visible on either side of the subject, dim lighting or shadows" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Oral_Under_the_Table_Illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Oral_Under_the_Table_Illustrious" + }, + "tags": [ + "under table", + "kneeling", + "looking up", + "between legs", + "oral", + "tablecloth" + ] +} \ No newline at end of file diff --git a/data/actions/panty_aside_illustrious_v1_0.json b/data/actions/panty_aside_illustrious_v1_0.json new file mode 100644 index 0000000..9d5dc7a --- /dev/null +++ b/data/actions/panty_aside_illustrious_v1_0.json @@ -0,0 +1,32 @@ +{ + "action_id": "panty_aside_illustrious_v1_0", + "action_name": "Panty Aside Illustrious V1 0", + "action": { + "full_body": "pulling panties aside, revealing pose, front view, standing or lying on back", + "head": "looking at viewer, blush, embarrassed or seductive expression", + "eyes": "eye contact, alluring gaze", + "arms": "arms reaching down, arm at side", + "hands": "hand on hip, fingers hooking panties, pulling fabric, thumb inside waistband", + "torso": "bare midriff, navel, exposed slightly", + "pelvis": "panties, underwear, hip bone, side tie, exposed hip, gap", + "legs": "thighs, bare legs, slightly parted", + "feet": "standing or feet out of frame", + "additional": "lingerie, teasing, skin indentation, exposure" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/panty aside_illustrious_V1.0.safetensors", + "lora_weight": 1.0, + "lora_triggers": "panty aside_illustrious_V1.0" + }, + "tags": [ + "panty aside", + "pulling panties aside", + "underwear", + "lingerie", + "teasing" + ] +} \ No newline at end of file diff --git a/data/actions/panty_pull_one_leg_up_illustrious_v1_0.json b/data/actions/panty_pull_one_leg_up_illustrious_v1_0.json new file mode 100644 index 0000000..acbe628 --- /dev/null +++ b/data/actions/panty_pull_one_leg_up_illustrious_v1_0.json @@ -0,0 +1,36 @@ +{ + "action_id": "panty_pull_one_leg_up_illustrious_v1_0", + "action_name": "Panty Pull One Leg Up Illustrious V1 0", + "action": { + "full_body": "standing on one leg, balancing while lifting the other leg high, body slightly bent or twisting to reach the hip", + "head": "looking down at hips or looking at viewer with an embarrassed expression", + "eyes": "focused on the action or shy glance", + "arms": "reaching down towards the pelvis, hands positioned at the hips", + "hands": "holding panties, pulling panties to the side, adjusting underwear, fingers hooking the waistband", + "torso": "leaning forward slightly, stretching", + "pelvis": "hips tilted, crotch area prominent due to leg lift", + "legs": "one leg up, lifting leg, standing on one leg, high leg lift, thighs apart", + "feet": "barefoot or wearing socks, toes pointed on the lifted leg", + "additional": "panties, underwear, changing clothes, adjusting clothes, side indent" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/panty pull one leg up_illustrious_V1.0.safetensors", + "lora_weight": 1.0, + "lora_triggers": "panty pull one leg up_illustrious_V1.0" + }, + "tags": [ + "panty pull", + "one leg up", + "standing on one leg", + "panties", + "underwear", + "clothed female nude", + "adjusting panties", + "balance", + "leg lift" + ] +} \ No newline at end of file diff --git a/data/actions/pantygag.json b/data/actions/pantygag.json new file mode 100644 index 0000000..e0420da --- /dev/null +++ b/data/actions/pantygag.json @@ -0,0 +1,37 @@ +{ + "action_id": "pantygag", + "action_name": "Pantygag", + "action": { + "full_body": "kneeling or sitting in a restrained posture", + "head": "panties stuffed into open mouth, fabric wrapped around lower face, cheeks bulging", + "eyes": "wide open, slightly tearing or looking up in embarrassment", + "arms": "positioned behind the back", + "hands": "wrists bound together", + "torso": "slightly arched, chest forward", + "pelvis": "hips stationary, taking weight if sitting", + "legs": "knees bent, shins touching the ground", + "feet": "toes pointing backward or feet crossed", + "additional": "detailed fabric texture of the underwear used as a gag" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/pantygag.safetensors", + "lora_weight": 1.0, + "lora_triggers": "pantygag" + }, + "tags": [ + "pantygag", + "panties in mouth", + "gagged", + "open mouth", + "bulging cheeks", + "kneeling", + "bound wrists", + "restrained", + "flushed face", + "drool" + ] +} \ No newline at end of file diff --git a/data/actions/penis_over_one_eye_illustriousxl_lora_nochekaiser.json b/data/actions/penis_over_one_eye_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..6b8835e --- /dev/null +++ b/data/actions/penis_over_one_eye_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,33 @@ +{ + "action_id": "penis_over_one_eye_illustriousxl_lora_nochekaiser", + "action_name": "Penis Over One Eye Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "close-up, bust shot, portrait, sexual act", + "head": "penis draped over one eye, penis on face, slight head tilt", + "eyes": "one eye covered, one eye visible, looking at viewer", + "arms": "arms lowered or holding partner", + "hands": "hands on penis or resting on partner's hips", + "torso": "upper body, chest", + "pelvis": "obscured or out of frame", + "legs": "out of frame", + "feet": "out of frame", + "additional": "explicit, penis covering eye, facial obstruction, messy" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/penis-over-one-eye-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "penis-over-one-eye-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "penis over one eye", + "penis on face", + "one eye covered", + "covering eye", + "face fuck", + "explicit" + ] +} \ No newline at end of file diff --git a/data/actions/penis_under_mask_naixl_v1.json b/data/actions/penis_under_mask_naixl_v1.json new file mode 100644 index 0000000..90b472b --- /dev/null +++ b/data/actions/penis_under_mask_naixl_v1.json @@ -0,0 +1,36 @@ +{ + "action_id": "penis_under_mask_naixl_v1", + "action_name": "Penis Under Mask Naixl V1", + "action": { + "full_body": "close-up, sexual activity, fellatio, or 1boy 1girl", + "head": "wearing face mask, surgical mask, penis in mouth, penis under mask, mask bulging, cheeks bulging, saliva trail", + "eyes": "half-closed eyes, upturned eyes, teary eyes, or ahegao", + "arms": "arms resting or holding partner", + "hands": "hands guiding head or pulling down mask strap", + "torso": "upper body, collarbone, exposed chest", + "pelvis": "crotch shot, focus on insertion", + "legs": "kneeling or out of frame", + "feet": "out of frame", + "additional": "interior mouth view obscured, fabric stretching, distortion" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Penis_under_Mask_NAIXL_v1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Penis_under_Mask_NAIXL_v1" + }, + "tags": [ + "penis under mask", + "face mask", + "surgical mask", + "fellatio", + "oral sex", + "bulge in mask", + "mask pull", + "obscured face", + "nsfw" + ] +} \ No newline at end of file diff --git a/data/actions/penis_worship_il.json b/data/actions/penis_worship_il.json new file mode 100644 index 0000000..cb6eb84 --- /dev/null +++ b/data/actions/penis_worship_il.json @@ -0,0 +1,35 @@ +{ + "action_id": "penis_worship_il", + "action_name": "Penis Worship Il", + "action": { + "full_body": "kneeling on the floor, slight forward lean, submissive posture", + "head": "tilted back, face looking upward, chin up", + "eyes": "looking up, crossed eyes, rolling eyes, or intense eye contact", + "arms": "reaching forward or resting on thighs", + "hands": "holding object, touching shaft, or hands clasped in prayer gesture", + "torso": "arched back, chest pressed forward", + "pelvis": "kneeling, hips pushed back or resting on heels", + "legs": "knees on ground, shins flat", + "feet": "toes curled or resting flat", + "additional": "pov, penis in foreground, saliva trail, reverence, anticipation" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Penis_Worship_IL.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Penis_Worship_IL" + }, + "tags": [ + "penis worship", + "kneeling", + "submissive", + "looking up", + "open mouth", + "tongue", + "pov", + "fellatio" + ] +} \ No newline at end of file diff --git a/data/actions/pet_play_illustriousxl_lora_nochekaiser.json b/data/actions/pet_play_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..ca013eb --- /dev/null +++ b/data/actions/pet_play_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,37 @@ +{ + "action_id": "pet_play_illustriousxl_lora_nochekaiser", + "action_name": "Pet Play Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "on all fours, crawling, submissive posture, pet play stance", + "head": "looking up, head tilted, wearing animal ears", + "eyes": "looking at viewer, wide expressive eyes, potentially heart-shaped pupils", + "arms": "arms extended straight down to the floor", + "hands": "hands flat on the ground or wearing oversized paw gloves", + "torso": "arched back, leaning forward relative to hips", + "pelvis": "hips raised or level with shoulders", + "legs": "kneels on the floor, legs bent", + "feet": "feet resting on the floor behind, optionally barefoot or paws", + "additional": "wearing a spiked collar, leash attached to collar, fluffy tail, bone gag or tongue out" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/pet-play-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "pet-play-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "pet play", + "all fours", + "crawling", + "human pet", + "animal ears", + "collar", + "leash", + "submissive", + "paw gloves", + "tail" + ] +} \ No newline at end of file diff --git a/data/actions/petplay.json b/data/actions/petplay.json new file mode 100644 index 0000000..fe4a31c --- /dev/null +++ b/data/actions/petplay.json @@ -0,0 +1,37 @@ +{ + "action_id": "petplay", + "action_name": "Petplay", + "action": { + "full_body": "on all fours, crawling position, mimicking animal posture", + "head": "tilted up, looking deep into camera, wearing collar", + "eyes": "wide puppy eyes, pleading gaze", + "arms": "extended straight down to floor", + "hands": "palms flat on ground, supporting upper body weight", + "torso": "parallel to the floor, arched back", + "pelvis": "hips raised, rear facing out", + "legs": "knees bent and resting on the floor", + "feet": "toes curled on ground", + "additional": "leash attached to collar, animal ears, tail" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Petplay.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Petplay" + }, + "tags": [ + "petplay", + "all fours", + "on hands and knees", + "collar", + "leash", + "submissive", + "human cleaner", + "dog girl", + "cat girl", + "animal ears" + ] +} \ No newline at end of file diff --git a/data/actions/ponyplay_illustrious.json b/data/actions/ponyplay_illustrious.json new file mode 100644 index 0000000..1470c59 --- /dev/null +++ b/data/actions/ponyplay_illustrious.json @@ -0,0 +1,37 @@ +{ + "action_id": "ponyplay_illustrious", + "action_name": "Ponyplay Illustrious", + "action": { + "full_body": "on all fours, quadrupedal pose, mimicking a horse", + "head": "wearing bridle, bit gag in mouth, looking forward", + "eyes": "wide, submissive, focused", + "arms": "straightened, supporting weight, vertical", + "hands": "wearing hoof gloves or resting on fists", + "torso": "arched back, wearing leather harness", + "pelvis": "hips raised, faxt tail attached to rear", + "legs": "knees on ground, thighs perpendicular to floor", + "feet": "wearing hoof boots or pointing backwards", + "additional": "reins attached to bridle, fetish gear, animalistic posture" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Ponyplay_Illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Ponyplay_Illustrious" + }, + "tags": [ + "ponyplay", + "human pony", + "on all fours", + "bdsm", + "leather harness", + "bridle", + "bit gag", + "hooves", + "animal play", + "fetish" + ] +} \ No newline at end of file diff --git a/data/actions/pose_nipple_licking_handjob_3.json b/data/actions/pose_nipple_licking_handjob_3.json new file mode 100644 index 0000000..8163d0a --- /dev/null +++ b/data/actions/pose_nipple_licking_handjob_3.json @@ -0,0 +1,35 @@ +{ + "action_id": "pose_nipple_licking_handjob_3", + "action_name": "Pose Nipple Licking Handjob 3", + "action": { + "full_body": "duo, intimate pose, character leaning forward over partner, sexual activity, close proximity", + "head": "face near chest, licking, tongue out, sucking nipple, mouth open", + "eyes": "half-closed eyes, focused expression, lustful gaze", + "arms": "reaching down towards crotch, engaging contact", + "hands": "handjob, gripping penis, stroking, manual stimulation, skin tight", + "torso": "leaning forward, chest pressed or close, exposed nipples", + "pelvis": "erection, penis, genital exposure", + "legs": "kneeling, straddling, sitting", + "feet": "out of frame or curled", + "additional": "saliva, arousal, sweat" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/pose_nipple_licking_handjob_3.safetensors", + "lora_weight": 1.0, + "lora_triggers": "pose_nipple_licking_handjob_3" + }, + "tags": [ + "nipple_licking", + "handjob", + "duo", + "sexual_act", + "penis", + "licking", + "sucking", + "tongue" + ] +} \ No newline at end of file diff --git a/data/actions/pov_cellphone_screen_stevechopz.json b/data/actions/pov_cellphone_screen_stevechopz.json new file mode 100644 index 0000000..3d74e22 --- /dev/null +++ b/data/actions/pov_cellphone_screen_stevechopz.json @@ -0,0 +1,37 @@ +{ + "action_id": "pov_cellphone_screen_stevechopz", + "action_name": "Pov Cellphone Screen Stevechopz", + "action": { + "full_body": "first-person perspective view of a hand holding a smartphone in the foreground, framing a subject on the screen", + "head": "subject's face visible on the digital display, looking into the lens", + "eyes": "direct eye contact from the subject on the screen", + "arms": "viewer's arm extending into frame holding the device", + "hands": "viewer's hand gripping a black smartphone, one hand holding phone", + "torso": "subject on screen cropped from chest up or full body depending on zoom", + "pelvis": "n/a", + "legs": "n/a", + "feet": "n/a", + "additional": "phone layout, camera ui, recording stats, blurred background behind the phone, depth of field" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/POV_Cellphone_Screen_SteveChopz.safetensors", + "lora_weight": 1.0, + "lora_triggers": "POV_Cellphone_Screen_SteveChopz" + }, + "tags": [ + "pov", + "holding phone", + "smartphone", + "phone screen", + "display", + "recording", + "camera interface", + "depth of field", + "technology", + "social media" + ] +} \ No newline at end of file diff --git a/data/actions/pov_cowgirl_looking_down_illustrious_000005.json b/data/actions/pov_cowgirl_looking_down_illustrious_000005.json new file mode 100644 index 0000000..7733855 --- /dev/null +++ b/data/actions/pov_cowgirl_looking_down_illustrious_000005.json @@ -0,0 +1,35 @@ +{ + "action_id": "pov_cowgirl_looking_down_illustrious_000005", + "action_name": "Pov Cowgirl Looking Down Illustrious 000005", + "action": { + "full_body": "cowgirl position, straddling, sitting on viewer, female on top", + "head": "looking down, face mostly visible", + "eyes": "looking at viewer, eye contact", + "arms": "arms resting on thighs or reaching down", + "hands": "hands on knees or hands on viewer", + "torso": "leaning forward, viewed from below", + "pelvis": "hips wide, straddling camera, intimate proximity", + "legs": "kneeling, knees apart, bent knees, thighs framing view", + "feet": "tucked behind or out of frame", + "additional": "pov, from below, foreshortening, depth of field" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Pov_Cowgirl_Looking_Down_Illustrious-000005.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Pov_Cowgirl_Looking_Down_Illustrious-000005" + }, + "tags": [ + "pov", + "cowgirl position", + "straddling", + "looking down", + "from below", + "female on top", + "kneeling", + "intimate" + ] +} \ No newline at end of file diff --git a/data/actions/pov_facesitting_femdom.json b/data/actions/pov_facesitting_femdom.json new file mode 100644 index 0000000..e41c71a --- /dev/null +++ b/data/actions/pov_facesitting_femdom.json @@ -0,0 +1,37 @@ +{ + "action_id": "pov_facesitting_femdom", + "action_name": "Pov Facesitting Femdom", + "action": { + "full_body": "POV shot from below, female subject straddling the camera view, dominance pose", + "head": "looking down at viewer, chin tucked, dominant expression, smirk or sneer", + "eyes": "narrowed eyes, intense contact, looking at viewer", + "arms": "resting on own knees or reaching down towards camera", + "hands": "resting on thighs or grabbing sides of the frame (viewer's head)", + "torso": "leaning forward slightly, extreme foreshortening", + "pelvis": "prominent, centered directly above the camera lens, covering the view", + "legs": "knees bent wide, thighs framing the sides of the image, straddling", + "feet": "out of frame or planted firmly on the surface on either side", + "additional": "extreme low angle, foreshortening, intimate distance, soft lighting" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/POV_Facesitting_Femdom.safetensors", + "lora_weight": 1.0, + "lora_triggers": "POV_Facesitting_Femdom" + }, + "tags": [ + "facesitting", + "pov", + "from below", + "femdom", + "straddling", + "looking at viewer", + "thighs", + "dominant", + "low angle", + "foreshortening" + ] +} \ No newline at end of file diff --git a/data/actions/pov_lying_on_top_illustrious_000005.json b/data/actions/pov_lying_on_top_illustrious_000005.json new file mode 100644 index 0000000..a1ea23d --- /dev/null +++ b/data/actions/pov_lying_on_top_illustrious_000005.json @@ -0,0 +1,32 @@ +{ + "action_id": "pov_lying_on_top_illustrious_000005", + "action_name": "Pov Lying On Top Illustrious 000005", + "action": { + "full_body": "lying on stomach, lying on top of viewer, straddling, body pressing against camera", + "head": "looking down, face in close proximity to viewer", + "eyes": "intense eye contact, looking at viewer", + "arms": "elbows bent supporting weight, or hugging viewer", + "hands": "placed on viewer's chest or beside head", + "torso": "upper body centered, leaning forward", + "pelvis": "hips aligned with viewer", + "legs": "kneeling or spread along viewer's sides", + "feet": "out of frame or blurred in background", + "additional": "pov, from below, intimate, hair hanging down due to gravity" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Pov_Lying_on_Top_Illustrious-000005.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Pov_Lying_on_Top_Illustrious-000005" + }, + "tags": [ + "pov", + "lying on top", + "looking down", + "from below", + "intimate" + ] +} \ No newline at end of file diff --git a/data/actions/pov_mirror_fellatio_illustrious.json b/data/actions/pov_mirror_fellatio_illustrious.json new file mode 100644 index 0000000..cc7f874 --- /dev/null +++ b/data/actions/pov_mirror_fellatio_illustrious.json @@ -0,0 +1,36 @@ +{ + "action_id": "pov_mirror_fellatio_illustrious", + "action_name": "Pov Mirror Fellatio Illustrious", + "action": { + "full_body": "POV shot, looking into a large mirror, reflection shows a character kneeling in front of the viewer performing oral sex", + "head": "head angled slightly up towards the reflection, facing the mirror", + "eyes": "eye contact with the viewer via the mirror reflection", + "arms": "reaching forward to hold the viewer's hips or thighs", + "hands": "hands grasping the viewer or guiding the action", + "torso": "leaning forward, back slightly arched", + "pelvis": "kneeling position, hips lower than head", + "legs": "kneeling on the floor, knees bent", + "feet": "tucked under or resting on the floor", + "additional": "bathroom setting, mirror frame visible, viewer's body partially visible in reflection" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/POV_mirror_fellatio_Illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "POV_mirror_fellatio_Illustrious" + }, + "tags": [ + "pov", + "mirror", + "reflection", + "fellatio", + "oral sex", + "kneeling", + "looking at viewer", + "bathroom", + "nsfw" + ] +} \ No newline at end of file diff --git a/data/actions/pov_morning_wood.json b/data/actions/pov_morning_wood.json new file mode 100644 index 0000000..ca85358 --- /dev/null +++ b/data/actions/pov_morning_wood.json @@ -0,0 +1,35 @@ +{ + "action_id": "pov_morning_wood", + "action_name": "Pov Morning Wood", + "action": { + "full_body": "pov, first-person view, lying on back, lying in bed, from waist down or full body view", + "head": "out of frame or looking at viewer, messy hair", + "eyes": "sleepy or out of frame", + "arms": "resting at sides or behind head", + "hands": "relaxed on sheets", + "torso": "shirtless, toned, navel", + "pelvis": "prominent bulge, erection under fabric, underwear, boxers, briefs, crotch focus", + "legs": "legs spread slightly, lying on bed, thighs", + "feet": "barefoot, toes pointing up or relaxed", + "additional": "messy bed sheets, sunlight, morning atmosphere, duvet, tenting sheets" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Pov_morning_wood.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Pov_morning_wood" + }, + "tags": [ + "pov", + "morning wood", + "bulge", + "crotch focus", + "lying", + "bed", + "underwear", + "male focus" + ] +} \ No newline at end of file diff --git a/data/actions/pov_sex.json b/data/actions/pov_sex.json new file mode 100644 index 0000000..67ef417 --- /dev/null +++ b/data/actions/pov_sex.json @@ -0,0 +1,39 @@ +{ + "action_id": "pov_sex", + "action_name": "Pov Sex", + "action": { + "full_body": "pov, first-person view, partner lying on back, intimate proximity, from above", + "head": "head resting on pillow, chin tilted up, flushed face, messy hair, heavy breathing expression", + "eyes": "looking at viewer, intense eye contact, half-closed eyes, bedroom eyes, pupils dilated", + "arms": "reaching up towards camera, embracing viewer or gripping bed sheets", + "hands": "fingers curled, holding viewer's shoulders or clutching sheets", + "torso": "supine, lying on bed, chest exposed, slightly arched back", + "pelvis": "legs spread wide, hips elevated, engaging with viewer", + "legs": "wrapped around viewer's waist or knees bent and spread, legs up", + "feet": "toes curled, typically out of focus or frame", + "additional": "sweat drop, disheveled bed sheets, viewer's hands visible on partner's body, cinematic lighting" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/POV_SEX.safetensors", + "lora_weight": 1.0, + "lora_triggers": "POV_SEX" + }, + "tags": [ + "pov", + "looking at viewer", + "missionary", + "lying on back", + "legs wrapped", + "sex", + "intimate", + "sweat", + "blush", + "bed", + "messy sheets", + "from above" + ] +} \ No newline at end of file diff --git a/data/actions/pov_sitting_on_lap_illustrious_000005.json b/data/actions/pov_sitting_on_lap_illustrious_000005.json new file mode 100644 index 0000000..d039852 --- /dev/null +++ b/data/actions/pov_sitting_on_lap_illustrious_000005.json @@ -0,0 +1,35 @@ +{ + "action_id": "pov_sitting_on_lap_illustrious_000005", + "action_name": "Pov Sitting On Lap Illustrious 000005", + "action": { + "full_body": "pov, sitting on lap, straddling, close physical proximity", + "head": "facing viewer, slightly looking down", + "eyes": "intense eye contact, looking at viewer", + "arms": "shoulders raise, arms wrapped around viewer's neck or resting on viewer's chest", + "hands": "interlocked behind viewer's head or touching viewer's shoulders", + "torso": "leaning forward, upper body close to camera", + "pelvis": "seated directly on viewer", + "legs": "legs apart, straddling, knees bent outward, thighs visible at bottom of frame", + "feet": "out of frame or dangling", + "additional": "intimate atmosphere, foreshortening, first-person perspective" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Pov_Sitting_on_Lap_Illustrious-000005.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Pov_Sitting_on_Lap_Illustrious-000005" + }, + "tags": [ + "pov", + "sitting on lap", + "straddling", + "arms around neck", + "looking at viewer", + "intimate", + "legs apart", + "close-up" + ] +} \ No newline at end of file diff --git a/data/actions/povlaplyingblowjob_handjob_fingering_illustrious.json b/data/actions/povlaplyingblowjob_handjob_fingering_illustrious.json new file mode 100644 index 0000000..0051b6d --- /dev/null +++ b/data/actions/povlaplyingblowjob_handjob_fingering_illustrious.json @@ -0,0 +1,38 @@ +{ + "action_id": "povlaplyingblowjob_handjob_fingering_illustrious", + "action_name": "Povlaplyingblowjob Handjob Fingering Illustrious", + "action": { + "full_body": "pov, from above, lying on lap, lying on back, between legs", + "head": "looking up, mouth around penis, fellatio, sucking", + "eyes": "looking at viewer, eye contact, half-closed eyes", + "arms": "arms reaching up, holding penis", + "hands": "stroking penis, handjob, hand on penis", + "torso": "supine, chest exposed", + "pelvis": "legs spread, being fingered, fingers in pussy", + "legs": "spread legs, knees bent", + "feet": "out of frame", + "additional": "saliva, penis, erotic, nsfw, sexual act, cum on face" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/POVLapLyingBlowjob_Handjob_Fingering_Illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "POVLapLyingBlowjob_Handjob_Fingering_Illustrious" + }, + "tags": [ + "pov", + "lying on lap", + "lying on back", + "fellatio", + "blowjob", + "handjob", + "fingering", + "from above", + "looking at viewer", + "submissive", + "sexual acts" + ] +} \ No newline at end of file diff --git a/data/actions/povprincesscarryillustrious.json b/data/actions/povprincesscarryillustrious.json new file mode 100644 index 0000000..175508e --- /dev/null +++ b/data/actions/povprincesscarryillustrious.json @@ -0,0 +1,33 @@ +{ + "action_id": "povprincesscarryillustrious", + "action_name": "Povprincesscarryillustrious", + "action": { + "full_body": "pov, princess carry, being carried, held in arms, intimate distance", + "head": "looking up at viewer, face close, blushing, shy smile", + "eyes": "looking at viewer, affectionate gaze, eye contact", + "arms": "arms reaching up, arms around neck, holding on", + "hands": "hands clasping behind neck or resting on chest", + "torso": "leaning back slightly, supported", + "pelvis": "tilted upward", + "legs": "legs bent, hanging freely, knees together", + "feet": "dangling", + "additional": "romance, viewer holding girl, from above, high angle" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/POVPrincessCarryIllustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "POVPrincessCarryIllustrious" + }, + "tags": [ + "pov", + "princess carry", + "being carried", + "romance", + "illustrious (azur lane)", + "couple" + ] +} \ No newline at end of file diff --git a/data/actions/princess_carry_fellatio_r1.json b/data/actions/princess_carry_fellatio_r1.json new file mode 100644 index 0000000..face246 --- /dev/null +++ b/data/actions/princess_carry_fellatio_r1.json @@ -0,0 +1,37 @@ +{ + "action_id": "princess_carry_fellatio_r1", + "action_name": "Princess Carry Fellatio R1", + "action": { + "full_body": "duo, 1boy, 1girl, standing, lift, the male character is standing and holding the female character in his arms off the ground, the female character is performing oral sex while being carried", + "head": "female head positioned at male crotch level, face touching penis, cheek bulging, eyes looking up or closed", + "eyes": "upturned eyes, half-closed eyes, or heart-shaped pupils", + "arms": "male arms wrapping around female back and under knees (cradle hold/princess carry), female hands holding male hips or guiding penis", + "hands": "hands on hips, gripping clothing", + "torso": "female body curled inward towards male, male torso upright and leaning slightly back to support weight", + "pelvis": "male hips thrust forward, female pelvis suspended in air adjacent to male waist", + "legs": "male legs standing apart for balance, female legs bent at knees and supported by male arm, feet dangling", + "feet": "toes pointing down or curled", + "additional": "height difference, suspended in air, gravity defiance, fluid motion" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Princess_Carry_Fellatio_r1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Princess_Carry_Fellatio_r1" + }, + "tags": [ + "princess carry", + "fellatio", + "standing", + "lifted by other", + "carrying", + "standing fellatio", + "oral", + "duo", + "holding up", + "nsfw" + ] +} \ No newline at end of file diff --git a/data/actions/prison_guard_size_diff_000011_1658658.json b/data/actions/prison_guard_size_diff_000011_1658658.json new file mode 100644 index 0000000..4199636 --- /dev/null +++ b/data/actions/prison_guard_size_diff_000011_1658658.json @@ -0,0 +1,34 @@ +{ + "action_id": "prison_guard_size_diff_000011_1658658", + "action_name": "Prison Guard Size Diff 000011 1658658", + "action": { + "full_body": "standing tall and imposing, looming over the viewer to emphasize extreme size difference, dominant posture", + "head": "looking down with a stern, authoritative expression, chin tucked", + "eyes": "intimidating gaze, narrowed eyes directed downwards", + "arms": "crossed firmly over chest or hands resting heavily on hips", + "hands": "gripping waist or resting on utility belt", + "torso": "broad, upright, uniformed chest", + "pelvis": "squared hips facing forward", + "legs": "wide stance, legs straight and solid", + "feet": "heavy boots planted firmly", + "additional": "low angle perspective, perspective distortion, prison corridor background" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Prison_Guard_Size_Diff-000011_1658658.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Prison_Guard_Size_Diff-000011_1658658" + }, + "tags": [ + "height gap", + "giantess", + "intimidation", + "corrections officer", + "low angle", + "dominance", + "perspective" + ] +} \ No newline at end of file diff --git a/data/actions/reclining_cowgirl_position.json b/data/actions/reclining_cowgirl_position.json new file mode 100644 index 0000000..0c1d485 --- /dev/null +++ b/data/actions/reclining_cowgirl_position.json @@ -0,0 +1,35 @@ +{ + "action_id": "reclining_cowgirl_position", + "action_name": "Reclining Cowgirl Position", + "action": { + "full_body": "reclining cowgirl pose, female on top, straddling partner, leaning backwards", + "head": "tilted back, neck exposed, chin up", + "eyes": "half-closed, rolling back, or closed in pleasure", + "arms": "arms extended backward, supporting upper body weight behind the torso", + "hands": "hands resting on partner's shins or on the bed for stability", + "torso": "arched back, spine curved, chest thrust forward, leaning back", + "pelvis": "seated on partner's hips, straddling, crotch contact", + "legs": "knees bent, thighs spread wide, straddling partner's torso", + "feet": "toes pointed, tucked under or resting on the mattress", + "additional": "partner lying on back underneath, intimate setting, bed sheets" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Reclining_Cowgirl_Position.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Reclining_Cowgirl_Position" + }, + "tags": [ + "cowgirl position", + "sex", + "woman on top", + "leaning back", + "straddling", + "arched back", + "erotic", + "vaginal sex" + ] +} \ No newline at end of file diff --git a/data/actions/regression_illustrious.json b/data/actions/regression_illustrious.json new file mode 100644 index 0000000..cc74004 --- /dev/null +++ b/data/actions/regression_illustrious.json @@ -0,0 +1,32 @@ +{ + "action_id": "regression_illustrious", + "action_name": "Regression Illustrious", + "action": { + "full_body": "sitting on floor, curled up, huddled, hugging knees, making body appear smaller", + "head": "resting on knees or looking up from low angle, shy expression", + "eyes": "wide innocent eyes, looking up", + "arms": "wrapping around shins, hugging legs tight", + "hands": "clasped together in front of shins or hiding inside sleeves", + "torso": "hunched forward slightly, compacted", + "pelvis": "sitting flat on the ground", + "legs": "knees pulled up tight to chest, deep flexion", + "feet": "heels close to body, toes pointing inward", + "additional": "oversized clothing, vulnerable posture, perspective from above looking down" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Regression_Illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Regression_Illustrious" + }, + "tags": [ + "sitting", + "hugging knees", + "curled up", + "floor", + "vulnerable" + ] +} \ No newline at end of file diff --git a/data/actions/removing_condom.json b/data/actions/removing_condom.json new file mode 100644 index 0000000..88490f6 --- /dev/null +++ b/data/actions/removing_condom.json @@ -0,0 +1,36 @@ +{ + "action_id": "removing_condom", + "action_name": "Removing Condom", + "action": { + "full_body": "medium shot or close-up focusing on lower torso and groin area", + "head": "looking down, head tilted slightly forward", + "eyes": "gaze directed at the penis and hands", + "arms": "arms bent, reaching downwards towards the crotch", + "hands": "fingers grasping the ring of the condom, pinching and pulling or rolling it off", + "torso": "bare chest, abdominal muscles defined", + "pelvis": "fully exposed penis, condom partially removed or being pulled off the shaft", + "legs": "thighs visible, standing or sitting posture", + "feet": "out of frame or planted on ground", + "additional": "used condom, transparent latex texture, post-coital context" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Removing_condom.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Removing_condom" + }, + "tags": [ + "removing condom", + "condom", + "penis", + "hands on penis", + "male focus", + "after sex", + "nsfw", + "close up", + "holding condom" + ] +} \ No newline at end of file diff --git a/data/actions/res_facial.json b/data/actions/res_facial.json new file mode 100644 index 0000000..e698874 --- /dev/null +++ b/data/actions/res_facial.json @@ -0,0 +1,33 @@ +{ + "action_id": "res_facial", + "action_name": "Res Facial", + "action": { + "full_body": "upper body portrait shot, character is leaning slightly forward toward the camera", + "head": "facing directly at the viewer, chin slightly tucked", + "eyes": "intense gaze, looking directly into the camera", + "arms": "bent upwards at the elbows", + "hands": "palms resting gently against cheeks or framing the face to emphasize the expression", + "torso": "upper torso visible, facing forward", + "pelvis": "not visible", + "legs": "not visible", + "feet": "not visible", + "additional": "soft lighting highlighting facial contours" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/res_facial.safetensors", + "lora_weight": 1.0, + "lora_triggers": "res_facial" + }, + "tags": [ + "close-up", + "portrait", + "looking_at_viewer", + "face_focus", + "touching_face", + "detailed_eyes" + ] +} \ No newline at end of file diff --git a/data/actions/reverse_nursing_handjob_illustriousxl_lora_nochekaiser.json b/data/actions/reverse_nursing_handjob_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..48b27f1 --- /dev/null +++ b/data/actions/reverse_nursing_handjob_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,37 @@ +{ + "action_id": "reverse_nursing_handjob_illustriousxl_lora_nochekaiser", + "action_name": "Reverse Nursing Handjob Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "A character sitting in a reverse cowgirl position on a partner's lap, facing away from them, engaging in manual stimulation.", + "head": "Turned to the side looking back over the shoulder, or facing forward with head tilted back.", + "eyes": "Half-closed or looking back at the partner with a seductive gaze.", + "arms": "Reaching backwards or down between the thighs to access the partner.", + "hands": "Gripping and stroking the penis, performing a handjob.", + "torso": "Back arched or leaning forward, displaying the spine and shoulders to the partner.", + "pelvis": "Settled firmly on the partner's lap, hips spread.", + "legs": "Straddling the partner's thighs, knees bent and wide apart.", + "feet": "Toes curled or resting flat on the surface.", + "additional": "The partner is visible underneath or behind, usually lying down or sitting." + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/reverse-nursing-handjob-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "reverse-nursing-handjob-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "reverse nursing handjob", + "handjob", + "reverse cowgirl", + "sitting on lap", + "straddling", + "from behind", + "penis", + "nsfw", + "looking back", + "sex act" + ] +} \ No newline at end of file diff --git a/data/actions/reversefellatio.json b/data/actions/reversefellatio.json new file mode 100644 index 0000000..8545954 --- /dev/null +++ b/data/actions/reversefellatio.json @@ -0,0 +1,35 @@ +{ + "action_id": "reversefellatio", + "action_name": "Reversefellatio", + "action": { + "full_body": "lying supine on a surface (bed/couch), body flat, head positioned over the edge", + "head": "inverted, hanging upside down, neck hyper-extended and exposed, hair hanging down due to gravity", + "eyes": "looking up (inverted) or rolled back, expressive", + "arms": "resting alongside the head or reaching back to hold the edge", + "hands": "gripping sheets or relaxed", + "torso": "lying flat on back, chest facing up, slightly arched", + "pelvis": "resting flat on the surface", + "legs": "extended straight or knees bent with feet on the surface", + "feet": "resting on the surface", + "additional": "gravity effects on hair and clothing, inverted perspective, often implies receiving oral sex from above/behind" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/reversefellatio.safetensors", + "lora_weight": 1.0, + "lora_triggers": "reversefellatio" + }, + "tags": [ + "reverse fellatio", + "upside-down", + "head hanging off bed", + "lying on back", + "supine", + "neck exposed", + "inverted face", + "from above" + ] +} \ No newline at end of file diff --git a/data/actions/reversemilking_illu_dwnsty.json b/data/actions/reversemilking_illu_dwnsty.json new file mode 100644 index 0000000..bf3a6bf --- /dev/null +++ b/data/actions/reversemilking_illu_dwnsty.json @@ -0,0 +1,34 @@ +{ + "action_id": "reversemilking_illu_dwnsty", + "action_name": "Reversemilking Illu Dwnsty", + "action": { + "full_body": "character straddling partner or object while facing away, reverse cowgirl stance, kneeling position", + "head": "turned back looking over shoulder or facing forward away from view", + "eyes": "looking back at viewer or closed in pleasure", + "arms": "arms supporting weight on the surface or reaching back to hold partner", + "hands": "hands pressing down on bed or holding own thighs", + "torso": "back arched, leaning forward slightly to accentuate buttocks", + "pelvis": "hips lowered, buttocks spread, engaging in straddling motion", + "legs": "knees bent, legs spread wide, straddling", + "feet": "toes dragging or feet flat on bed", + "additional": "emphasis on dorsal view and buttocks, motion lines often implied" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/ReverseMilking_Illu_Dwnsty.safetensors", + "lora_weight": 1.0, + "lora_triggers": "ReverseMilking_Illu_Dwnsty" + }, + "tags": [ + "reverse cowgirl", + "straddling", + "from behind", + "ass focus", + "looking back", + "back arched", + "kneeling" + ] +} \ No newline at end of file diff --git a/data/actions/rimjob_male.json b/data/actions/rimjob_male.json new file mode 100644 index 0000000..928a250 --- /dev/null +++ b/data/actions/rimjob_male.json @@ -0,0 +1,36 @@ +{ + "action_id": "rimjob_male", + "action_name": "Rimjob Male", + "action": { + "full_body": ", duo, rimjob, anilingus, male performing oral sex on another male's anus, dynamic angle", + "head": "face buried in buttocks, tongue extended, licking, face between cheeks", + "eyes": "half-closed eyes, expression of pleasure, focused gaze", + "arms": "reaching forward, holding hips, embracing buttocks", + "hands": "spreading butt cheeks, gripping waist, hands on ass", + "torso": "bent over, arched back, leaning forward into the action", + "pelvis": "buttocks up, presenting anus, exposed ass, gap", + "legs": "kneeling, spread legs, doggystyle pose, thighs apart", + "feet": "toes curled, barefoot", + "additional": "saliva, tongue connection, sweat, detail, cinematic lighting" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/RimJob_male.safetensors", + "lora_weight": 1.0, + "lora_triggers": "RimJob_male" + }, + "tags": [ + "rimjob", + "anilingus", + "ass licking", + "", + "yaoi", + "male focus", + "anal", + "oral sex", + "nsfw" + ] +} \ No newline at end of file diff --git a/data/actions/rubbing_eyes_illustrious_v1_0.json b/data/actions/rubbing_eyes_illustrious_v1_0.json new file mode 100644 index 0000000..1fd9593 --- /dev/null +++ b/data/actions/rubbing_eyes_illustrious_v1_0.json @@ -0,0 +1,34 @@ +{ + "action_id": "rubbing_eyes_illustrious_v1_0", + "action_name": "Rubbing Eyes Illustrious V1 0", + "action": { + "full_body": "character rubbing eyes with hands, sleepy or emotional posture", + "head": "tilted slightly downwards or forwards", + "eyes": "closed eyes, rubbing eyes", + "arms": "elbows bent, arms raised towards face", + "hands": "hands touching face, knuckles or palms pressing against eyelids, fists", + "torso": "slightly hunched or relaxed shoulders", + "pelvis": "neutral position", + "legs": "standing or sitting legs", + "feet": "planted on ground", + "additional": "sleepy, tired, waking up, crying" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/rubbing eyes_illustrious_V1.0.safetensors", + "lora_weight": 1.0, + "lora_triggers": "rubbing eyes_illustrious_V1.0" + }, + "tags": [ + "rubbing eyes", + "eyes closed", + "hands on face", + "sleepy", + "tired", + "waking up", + "messy hair" + ] +} \ No newline at end of file diff --git a/data/actions/saliva_swap_illustrious.json b/data/actions/saliva_swap_illustrious.json new file mode 100644 index 0000000..99a488a --- /dev/null +++ b/data/actions/saliva_swap_illustrious.json @@ -0,0 +1,37 @@ +{ + "action_id": "saliva_swap_illustrious", + "action_name": "Saliva Swap Illustrious", + "action": { + "full_body": "close-up or medium shot of two characters engaged in a passionate french kiss", + "head": "heads tilted, faces pressing together, cheeks flushed with heavy blush", + "eyes": "eyes closed, shut tight, or half-closed with hearts in eyes indicating pleasure", + "arms": "wrapping around the partner's neck or waist, embracing tightly", + "hands": "cupping cheeks, holding the back of the head, or grabbing shoulders", + "torso": "chests pressed intimately against one another", + "pelvis": "hips close together", + "legs": "standing close or intertwined if sitting", + "feet": "neutral or tip-toes", + "additional": "thick saliva trail connecting mouths, tongues touching, open mouths, exchange of fluids, messy kiss" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/saliva_swap_illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "saliva_swap_illustrious" + }, + "tags": [ + "kissing", + "french kiss", + "saliva", + "saliva trail", + "tongue", + "open mouth", + "duo", + "romantic", + "intimate", + "blush" + ] +} \ No newline at end of file diff --git a/data/actions/selfie_illustriousxl_lora_nochekaiser.json b/data/actions/selfie_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..b9a530a --- /dev/null +++ b/data/actions/selfie_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,35 @@ +{ + "action_id": "selfie_illustriousxl_lora_nochekaiser", + "action_name": "Selfie Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "taking a selfie, upper body frame, slight angle from above or level", + "head": "facing viewer, chin slightly tucked or tilted, engaging expression", + "eyes": "looking at viewer, focused on lens", + "arms": "one arm extended forward holding device, other arm relaxed or touching face", + "hands": "holding smartphone, fingers wrapped around phone, maybe making a peace sign with free hand", + "torso": "visible upper body, turned slightly towards the extended arm", + "pelvis": "usually out of frame", + "legs": "out of frame", + "feet": "out of frame", + "additional": "holding phone, smartphone visible in foreground or implied, perspective distortion" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/selfie-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "selfie-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "selfie", + "holding phone", + "smartphone", + "looking at viewer", + "arm extended", + "close-up", + "point of view", + "social media style" + ] +} \ No newline at end of file diff --git a/data/actions/sex_from_behind_below_view__illustrious_v1_0.json b/data/actions/sex_from_behind_below_view__illustrious_v1_0.json new file mode 100644 index 0000000..9163b70 --- /dev/null +++ b/data/actions/sex_from_behind_below_view__illustrious_v1_0.json @@ -0,0 +1,36 @@ +{ + "action_id": "sex_from_behind_below_view__illustrious_v1_0", + "action_name": "Sex From Behind Below View Illustrious V1 0", + "action": { + "full_body": "sex from behind, doggy style, view from below, low angle perspective", + "head": "looking down or head thrown back, mouth slightly open, blushing", + "eyes": "half-closed eyes, rolling back, pleasure", + "arms": "supporting body weight, resting on elbows or hands planted", + "hands": "gripping bed sheets, fingers curled", + "torso": "arched back, leaning forward, breasts hanging down", + "pelvis": "hips raised high, receiving penetration from behind", + "legs": "kneeling, knees bent, thighs spread apart", + "feet": "toes curled, resting on insteps", + "additional": "worm's eye view, intimate close-up, motion lines, sweat droplets" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/sex from behind below view__illustrious_V1.0.safetensors", + "lora_weight": 1.0, + "lora_triggers": "sex from behind below view__illustrious_V1.0" + }, + "tags": [ + "sex from behind", + "doggy style", + "from below", + "low angle", + "all fours", + "arched back", + "worm's eye view", + "vaginal", + "kneeling" + ] +} \ No newline at end of file diff --git a/data/actions/sex_machine.json b/data/actions/sex_machine.json new file mode 100644 index 0000000..39de57f --- /dev/null +++ b/data/actions/sex_machine.json @@ -0,0 +1,34 @@ +{ + "action_id": "sex_machine", + "action_name": "Sex Machine", + "action": { + "full_body": "lying on back, mating press, legs lifted high and spread wide, body compacted, hips elevated", + "head": "head thrown back into pillow, mouth wide open, tongue out, expression of intense pleasure", + "eyes": "eyes rolled back, heart-shaped pupils, eyelids heavy", + "arms": "reaching forward or gripping bedsheets tightly above head, strained muscles", + "hands": "clenched fists, fingers digging into fabric", + "torso": "arched back, chest heaving, glistening with sweat", + "pelvis": "tilted upward, exposed, engaged in action", + "legs": "legs up, knees bent heavily towards shoulders, m-legs, wide stance", + "feet": "toes curled, pointing upward or resting on partner's shoulders", + "additional": "messy bed sheets, motion lines, steam, liquid details, high contrast" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Sex_Machine.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Sex_Machine" + }, + "tags": [ + "mating press", + "legs up", + "ahegao", + "sweaty", + "messy bed", + "intense", + "nsfw" + ] +} \ No newline at end of file diff --git a/data/actions/sex_machine_update_epoch_10.json b/data/actions/sex_machine_update_epoch_10.json new file mode 100644 index 0000000..9f21f1e --- /dev/null +++ b/data/actions/sex_machine_update_epoch_10.json @@ -0,0 +1,35 @@ +{ + "action_id": "sex_machine_update_epoch_10", + "action_name": "Sex Machine Update Epoch 10", + "action": { + "full_body": "lying on back, supine, constrained pose, deeply engaged with machinery", + "head": "head thrown back, mouth open, heavy breathing, flushed face, expression of intense pleasure", + "eyes": "eyes rolled back, tightly closed, or heart-shaped pupils", + "arms": "reaching back, gripping the bed frame or machine handles", + "hands": "clenching bedsheets, clutching handles tightly, knuckles white", + "torso": "arched back, sweaty skin, chest heaving", + "pelvis": "lifted hips, exposed, angled towards mechanism", + "legs": "legs spread wide, m-legs, knees bent, open stance", + "feet": "toes curled, arched feet", + "additional": "sex machine, fucking machine, mechanical arm, dildo, piston, gears, wires, motion blur, tripod" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Sex Machine Update_epoch_10.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Sex Machine Update_epoch_10" + }, + "tags": [ + "sex machine", + "fucking machine", + "mechanical sex", + "spread legs", + "lying on back", + "pleasure", + "dildo", + "robotics" + ] +} \ No newline at end of file diff --git a/data/actions/sexualcoaching.json b/data/actions/sexualcoaching.json new file mode 100644 index 0000000..11139b5 --- /dev/null +++ b/data/actions/sexualcoaching.json @@ -0,0 +1,35 @@ +{ + "action_id": "sexualcoaching", + "action_name": "Sexualcoaching", + "action": { + "full_body": "standing upright, commanding and instructive posture, body angled slightly towards a whiteboard or viewer", + "head": "facing forward, confident expression, chin slightly raised", + "eyes": "direct eye contact, sharp and attentive gaze, possibly over glasses", + "arms": "one arm extended pointing with a stick or finger, other arm resting on hip or holding a book", + "hands": "holding a pointer stick, resting on waist", + "torso": "arched back, chest forward, professional but provoking stance", + "pelvis": "hips swayed slightly to one side", + "legs": "standing straight, legs close together", + "feet": "wearing high heels, planted firmly", + "additional": "classroom setting, whiteboard in background, holding pointer, wearing business attire or teacher outfit" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/sexualcoaching.safetensors", + "lora_weight": 1.0, + "lora_triggers": "sexualcoaching" + }, + "tags": [ + "teacher", + "classroom", + "holding pointer", + "whiteboard", + "business suit", + "glasses", + "standing", + "presentation" + ] +} \ No newline at end of file diff --git a/data/actions/sgb_ilxl_v1.json b/data/actions/sgb_ilxl_v1.json new file mode 100644 index 0000000..6ee31c8 --- /dev/null +++ b/data/actions/sgb_ilxl_v1.json @@ -0,0 +1,35 @@ +{ + "action_id": "sgb_ilxl_v1", + "action_name": "Sgb Ilxl V1", + "action": { + "full_body": "character performing a vertical standing split (I-balance), standing on one leg with the other extended straight up", + "head": "upright, facing forward", + "eyes": "looking at viewer", + "arms": "reaching upwards to support the lifted leg", + "hands": "grasping the ankle, foot, or calf of the vertical leg", + "torso": "erect, maintaining balance", + "pelvis": "tilted upward to allow the leg to reach vertical extension", + "legs": "one leg planted firmly on the ground, the other lifted 180 degrees vertically alongside the head", + "feet": "raised foot pointed towards the sky", + "additional": "demonstrating extreme flexibility and gymnastics ability" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/sgb_ilxl_v1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "sgb_ilxl_v1" + }, + "tags": [ + "standing split", + "i-balance", + "holding leg", + "leg up", + "high kick", + "stretching", + "gymnastics", + "flexible" + ] +} \ No newline at end of file diff --git a/data/actions/sitting_on_mouth_000012_illustrious.json b/data/actions/sitting_on_mouth_000012_illustrious.json new file mode 100644 index 0000000..7808fb6 --- /dev/null +++ b/data/actions/sitting_on_mouth_000012_illustrious.json @@ -0,0 +1,35 @@ +{ + "action_id": "sitting_on_mouth_000012_illustrious", + "action_name": "Sitting On Mouth 000012 Illustrious", + "action": { + "full_body": "sitting directly on top of camera, straddling position, pov from below, squatting or kneeling", + "head": "tilted down, looking down at viewer", + "eyes": "looking at viewer, eye contact", + "arms": "resting on knees or supporting weight on bed/floor", + "hands": "hands on knees, grabbing thighs, or caressing own legs", + "torso": "foward leaning, foreshortened perspective", + "pelvis": "centered in view, pressing down", + "legs": "spread legs, knees bent, thighs framing the image", + "feet": "planted on surface on either side of viewer or out of frame", + "additional": "intimate proximity, focus on thighs and hips, view from bottom" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Sitting_On_Mouth-000012 Illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Sitting_On_Mouth-000012 Illustrious" + }, + "tags": [ + "facesitting", + "sitting on face", + "pov", + "from below", + "straddling", + "looking down", + "thighs", + "crotch focus" + ] +} \ No newline at end of file diff --git a/data/actions/small_dom_big_sub.json b/data/actions/small_dom_big_sub.json new file mode 100644 index 0000000..2781254 --- /dev/null +++ b/data/actions/small_dom_big_sub.json @@ -0,0 +1,37 @@ +{ + "action_id": "small_dom_big_sub", + "action_name": "Small Dom Big Sub", + "action": { + "full_body": "two characters, extreme size difference, height difference, small character standing confidently, large character kneeling submissively, giantess trope aesthetic", + "head": "tilted down, looking down, tilted up, looking up, eye contact", + "eyes": "condescending gaze, adoring gaze, locking eyes", + "arms": "arms crossed, hands on hips, arms resting on thighs", + "hands": "hands on hips, hands on knees", + "torso": "straight posture, leaning forward, hulking frame vs petite frame", + "pelvis": "facing forward, angled slightly", + "legs": "standing straight, kneeling, bent knees", + "feet": "flat on ground, toes on ground", + "additional": "low angle, perspective exaggeration, comparison" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Small_Dom_Big_Sub.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Small_Dom_Big_Sub" + }, + "tags": [ + "size difference", + "height difference", + "kneeling", + "standing", + "looking up", + "looking down", + "female domination", + "duo", + "minigirl", + "giantess" + ] +} \ No newline at end of file diff --git a/data/actions/spread_pussy_one_hand_pony_v1_0.json b/data/actions/spread_pussy_one_hand_pony_v1_0.json new file mode 100644 index 0000000..ba51861 --- /dev/null +++ b/data/actions/spread_pussy_one_hand_pony_v1_0.json @@ -0,0 +1,37 @@ +{ + "action_id": "spread_pussy_one_hand_pony_v1_0", + "action_name": "Spread Pussy One Hand Pony V1 0", + "action": { + "full_body": "lying on back, legs spread wide, lower body focus", + "head": "tilted forward, looking at viewer", + "eyes": "aroused, half-closed eyes, heart-shaped pupils", + "arms": "one arm reaching down between legs, other arm resting at side", + "hands": "one hand on crotch, fingers spreading pussy, spreading labia", + "torso": "arched back, navel exposed", + "pelvis": "hips wide, genitals exposed, vulva visible", + "legs": "legs apart, m-legs, knees bent", + "feet": "toes curled", + "additional": "pussy juice, wet, detailed, uncensored" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/spread pussy one hand_pony_V1.0.safetensors", + "lora_weight": 1.0, + "lora_triggers": "spread pussy one hand_pony_V1.0" + }, + "tags": [ + "spread pussy", + "one hand", + "spreading", + "pussy", + "open legs", + "vaginal", + "fingering", + "genitals", + "uncensored", + "lower body" + ] +} \ No newline at end of file diff --git a/data/actions/srjxia.json b/data/actions/srjxia.json new file mode 100644 index 0000000..c8565d8 --- /dev/null +++ b/data/actions/srjxia.json @@ -0,0 +1,32 @@ +{ + "action_id": "srjxia", + "action_name": "Srjxia", + "action": { + "full_body": "standing, leaning on object, leaning on sword, confident pose, solo", + "head": "looking at viewer, arrogant expression, slight head tilt", + "eyes": "purple eyes, narrow gaze", + "arms": "one hand on hip, one hand holding sword handle", + "hands": "resting on sword hilt, hand on hip", + "torso": "straight posture, slight twist", + "pelvis": "weight shifted to one leg", + "legs": "crossed legs or standing relaxedly", + "feet": "standing on ground", + "additional": "giant sword, claymore, weapon, embers, magma, fire particles" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/srjxia.safetensors", + "lora_weight": 1.0, + "lora_triggers": "srjxia" + }, + "tags": [ + "arknights", + "character focus", + "demon girl", + "weapon focus", + "anime style" + ] +} \ No newline at end of file diff --git a/data/actions/standing_breast_press_handjob_illustriousxl_lora_nochekaiser.json b/data/actions/standing_breast_press_handjob_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..7c1de05 --- /dev/null +++ b/data/actions/standing_breast_press_handjob_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,36 @@ +{ + "action_id": "standing_breast_press_handjob_illustriousxl_lora_nochekaiser", + "action_name": "Standing Breast Press Handjob Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "standing, medium shot, front view, sexual activity", + "head": "looking at viewer, blushing, slightly tilted forward, mouth open, salivating", + "eyes": "half-closed eyes, intense stare, eye contact", + "arms": "arms bent, elbows close to torso, reaching towards chest", + "hands": "hands on breasts, squeezing breasts together, hand gripping penis, handjob motion", + "torso": "large breasts, cleavage, breasts pressed together, breast press, chest flushed", + "pelvis": "facing forward, hips stationary", + "legs": "standing straight, thighs touching", + "feet": "standing on ground", + "additional": "paizuri, titjob, sandwiching, penis between breasts, cum on breasts, breast smother" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/standing-breast-press-handjob-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "standing-breast-press-handjob-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "standing", + "breast press", + "handjob", + "paizuri", + "titjob", + "squeezing breasts", + "cleavage", + "large breasts", + "penis" + ] +} \ No newline at end of file diff --git a/data/actions/stealth_sex_ntr_il_nai_py.json b/data/actions/stealth_sex_ntr_il_nai_py.json new file mode 100644 index 0000000..9e22d00 --- /dev/null +++ b/data/actions/stealth_sex_ntr_il_nai_py.json @@ -0,0 +1,39 @@ +{ + "action_id": "stealth_sex_ntr_il_nai_py", + "action_name": "Stealth Sex Ntr Il Nai Py", + "action": { + "full_body": "duo, male and female, standing, doggy style, hiding behind structure, secretive pose", + "head": "looking back, nervous expression, heavy breathing, flushed face", + "eyes": "anxious, looking sideways, half-closed", + "arms": "arms restraining partner, one arm around neck", + "hands": "hand covering mouth, hand over mouth, gripping waist, shushing gesture", + "torso": "leaning forward, pressed against wall, clothes disheveled", + "pelvis": "hips connected, penetration, lifted skirt, pants down", + "legs": "standing, bent knees, legs spread", + "feet": "standing on toes, heels", + "additional": "sweat, motion lines, situational awareness, cheating theme" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Stealth sex NTR-IL_NAI_PY.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Stealth sex NTR-IL_NAI_PY" + }, + "tags": [ + "stealth sex", + "ntr", + "cheating", + "covering mouth", + "hand over mouth", + "shushing", + "hiding", + "sex from behind", + "standing sex", + "secret", + "nervous", + "quiet" + ] +} \ No newline at end of file diff --git a/data/actions/stealthfellatio.json b/data/actions/stealthfellatio.json new file mode 100644 index 0000000..ac1027a --- /dev/null +++ b/data/actions/stealthfellatio.json @@ -0,0 +1,37 @@ +{ + "action_id": "stealthfellatio", + "action_name": "Stealthfellatio", + "action": { + "full_body": "duo, one person sitting at a table or desk, the other person hiding underneath performing oral sex, split composition showing above and below surface", + "head": "receiver looking ahead trying to maintain composure, giver's head positioned at crotch level", + "eyes": "nervous glance, looking away, or rolled back in pleasure", + "arms": "resting casually on the table top or gripping the edge of the desk tightly", + "hands": "hands folded on table or clutching thighs", + "torso": "receiver sitting upright, giver crouched or bent over", + "pelvis": "sexual contact, fellatio, penis in mouth", + "legs": "receiver legs spread, giver kneeling between legs", + "feet": "flat on floor", + "additional": "under the table, secret sex, public setting, tablecloth, cutaway view, risk of getting caught" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/stealthfellatio.safetensors", + "lora_weight": 1.0, + "lora_triggers": "stealthfellatio" + }, + "tags": [ + "stealth", + "under_table", + "fellatio", + "blowjob", + "public_sex", + "secret_sex", + "under_desk", + "flustered", + "duo", + "table_hiding" + ] +} \ No newline at end of file diff --git a/data/actions/step_stool_sexv1.json b/data/actions/step_stool_sexv1.json new file mode 100644 index 0000000..a5113c8 --- /dev/null +++ b/data/actions/step_stool_sexv1.json @@ -0,0 +1,34 @@ +{ + "action_id": "step_stool_sexv1", + "action_name": "Step Stool Sexv1", + "action": { + "full_body": "character bent over a step stool, leaning forward, displaying backside", + "head": "looking back over shoulder, face visible", + "eyes": "looking at viewer", + "arms": "extended downward, stiff or slightly bent", + "hands": "gripping the steps or legs of the stool for support", + "torso": "bent forward at the waist 90 degrees, arched back", + "pelvis": "raised high, pushed back", + "legs": "standing straight, feet shoulder-width apart behind the stool", + "feet": "flat on the floor", + "additional": "step stool prop, domestic setting, depth of field" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Step-Stool_SexV1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Step-Stool_SexV1" + }, + "tags": [ + "step stool", + "bent over", + "from behind", + "leaning", + "ass up", + "furniture", + "stuck in object" + ] +} \ No newline at end of file diff --git a/data/actions/stool_breastfeeding_il_nai_py.json b/data/actions/stool_breastfeeding_il_nai_py.json new file mode 100644 index 0000000..4206163 --- /dev/null +++ b/data/actions/stool_breastfeeding_il_nai_py.json @@ -0,0 +1,37 @@ +{ + "action_id": "stool_breastfeeding_il_nai_py", + "action_name": "Stool Breastfeeding Il Nai Py", + "action": { + "full_body": "sitting on a stool, cradling an infant in lap", + "head": "tilted downwards, looking at baby", + "eyes": "gentle gaze, looking down", + "arms": "cradling baby, supporting infant's head", + "hands": "supporting baby's body, holding breast", + "torso": "leaning slightly forward, shirt lifted, breast exposed", + "pelvis": "seated firmly on stool", + "legs": "knees bent, legs apart or feet resting on chair rungs", + "feet": "flat on floor or resting on stool support", + "additional": "stool, baby, infant, lactation" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Stool breastfeeding-IL_NAI_PY.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Stool breastfeeding-IL_NAI_PY" + }, + "tags": [ + "stool breastfeeding", + "sitting", + "stool", + "breastfeeding", + "holding baby", + "breast out", + "shirt lift", + "mother", + "baby", + "cradling" + ] +} \ No newline at end of file diff --git a/data/actions/stoolsexwaifu_illustrious.json b/data/actions/stoolsexwaifu_illustrious.json new file mode 100644 index 0000000..47d436b --- /dev/null +++ b/data/actions/stoolsexwaifu_illustrious.json @@ -0,0 +1,36 @@ +{ + "action_id": "stoolsexwaifu_illustrious", + "action_name": "Stoolsexwaifu Illustrious", + "action": { + "full_body": "character sitting straddle on a stool, legs spread wide, erotic pose, sitting upright or leaning forward", + "head": "looking at viewer, blushing, expression of pleasure, open mouth", + "eyes": "half-closed eyes, potential heart pupils", + "arms": "arms resting on thighs, holding own legs, or gripping the seat of the stool", + "hands": "grabbing thighs or holding stool edges", + "torso": "arched back, chest pushed forward, core engaged", + "pelvis": "firmly seated on the stool, hips wide", + "legs": "legs apart, open legs, knees bent outward, straddling the stool", + "feet": "feet resting on the stool footrests or dangling", + "additional": "bar stool, wooden stool, simple background, indoors" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Stoolsexwaifu_Illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Stoolsexwaifu_Illustrious" + }, + "tags": [ + "sitting", + "stool", + "straddling", + "legs apart", + "spread legs", + "nsfw", + "waifu", + "bar stool", + "open legs" + ] +} \ No newline at end of file diff --git a/data/actions/straddling_handjob___xl_il_v1_0.json b/data/actions/straddling_handjob___xl_il_v1_0.json new file mode 100644 index 0000000..6bafb7e --- /dev/null +++ b/data/actions/straddling_handjob___xl_il_v1_0.json @@ -0,0 +1,34 @@ +{ + "action_id": "straddling_handjob___xl_il_v1_0", + "action_name": "Straddling Handjob Xl Il V1 0", + "action": { + "full_body": "duo, straddling, sitting on lap, sexual activity, close proximity", + "head": "looking down, looking at partner, blushing, aroused expression", + "eyes": "half-closed eyes, focused", + "arms": "reaching down between legs, arms low", + "hands": "holding penis, stroking, handjob, manual stimulation", + "torso": "leaning forward slightly, upright posture", + "pelvis": "sitting on partner's thighs, hips spread", + "legs": "spread legs, knees bent, straddling partner", + "feet": "feet resting on surface or wrapped around partner", + "additional": "partner sitting, partner leaning back, erection, penis, intimate" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/straddling_handjob_-_XL_IL_v1.0.safetensors", + "lora_weight": 1.0, + "lora_triggers": "straddling_handjob_-_XL_IL_v1.0" + }, + "tags": [ + "straddling", + "handjob", + "sitting on lap", + "duo", + "sex", + "penis", + "sexual" + ] +} \ No newline at end of file diff --git a/data/actions/straddling_kiss_illustriousxl_lora_nochekaiser.json b/data/actions/straddling_kiss_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..6485bee --- /dev/null +++ b/data/actions/straddling_kiss_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,35 @@ +{ + "action_id": "straddling_kiss_illustriousxl_lora_nochekaiser", + "action_name": "Straddling Kiss Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "two subjects, intimate couple pose, one subject sitting on the other's lap facing them, straddling position", + "head": "faces close together, kissing, lips joined, side profile view, tilted heads", + "eyes": "closed eyes, affectionate expression", + "arms": "arms wrapping around neck, arms embracing waist, holding each other close", + "hands": "cupping face, hands on waist, hands grasping shoulders, fingers in hair", + "torso": "chests pressed together, bodies leaning into each other", + "pelvis": "sitting on lap, pelvis close contact, weight supported by partner", + "legs": "legs wrapped around partner's waist, knees bent, thighs straddling hips", + "feet": "feet dangling or hooked behind partner's back", + "additional": "romantic atmosphere, blushing, floating hearts, intimate interaction" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/straddling-kiss-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "straddling-kiss-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "straddling", + "kiss", + "lap sitting", + "couple", + "intimate", + "legs wrapped around", + "romance", + "embrace" + ] +} \ No newline at end of file diff --git a/data/actions/straddling_paizuri_base_000010.json b/data/actions/straddling_paizuri_base_000010.json new file mode 100644 index 0000000..53bee14 --- /dev/null +++ b/data/actions/straddling_paizuri_base_000010.json @@ -0,0 +1,35 @@ +{ + "action_id": "straddling_paizuri_base_000010", + "action_name": "Straddling Paizuri Base 000010", + "action": { + "full_body": "straddling pose, sitting on top, leaning forward", + "head": "looking down, chin tucked, flushed face, salivating", + "eyes": "half-closed eyes, bedroom eyes, looking at penis, cross-eyed", + "arms": "arms bent, elbows close to body", + "hands": "hands on breasts, squeezing breasts together, holding breasts", + "torso": "leaning forward, arching back slightly, pressing breasts together", + "pelvis": "sitting on lap, hips spread", + "legs": "knees bent, legs spread, thighs straddling", + "feet": "feet tucked back or out of frame", + "additional": "paizuri, titjob, breast press, cleavage, between breasts, penis (optional)" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/straddling_paizuri-Base-000010.safetensors", + "lora_weight": 1.0, + "lora_triggers": "straddling_paizuri-Base-000010" + }, + "tags": [ + "straddling", + "paizuri", + "titjob", + "breast press", + "sexual acts", + "on top", + "pov", + "large breasts" + ] +} \ No newline at end of file diff --git a/data/actions/straddling_paizuri_illustriousxl_lora_nochekaiser.json b/data/actions/straddling_paizuri_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..ecef408 --- /dev/null +++ b/data/actions/straddling_paizuri_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,36 @@ +{ + "action_id": "straddling_paizuri_illustriousxl_lora_nochekaiser", + "action_name": "Straddling Paizuri Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "straddling pose, sitting on top of partner, upper body leaning slightly forward or upright", + "head": "looking down at viewer, flushed face, salivating", + "eyes": "half-closed eyes, heart-shaped pupils, eye contact", + "arms": "brought steadily in front of chest", + "hands": "holding own breasts, squeezing breasts together, sandwiching", + "torso": "chest pushed forward, deep cleavage", + "pelvis": "hips settled on partner's lap", + "legs": "legs spread wide on either side of partner, knees bent", + "feet": "tucked back or out of frame", + "additional": "paizuri, breast smother, penis between breasts, motion lines" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/straddling-paizuri-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "straddling-paizuri-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "paizuri", + "straddling", + "titjob", + "on top", + "squeezing breasts", + "breast smother", + "pov", + "sexual act", + "large breasts" + ] +} \ No newline at end of file diff --git a/data/actions/straddling_paizuri_spitroast_000010.json b/data/actions/straddling_paizuri_spitroast_000010.json new file mode 100644 index 0000000..2a56c65 --- /dev/null +++ b/data/actions/straddling_paizuri_spitroast_000010.json @@ -0,0 +1,36 @@ +{ + "action_id": "straddling_paizuri_spitroast_000010", + "action_name": "Straddling Paizuri Spitroast 000010", + "action": { + "full_body": "threesome setup, female character straddling a supine male partner while being engaged by a second male partner from behind", + "head": "tilted forward looking at chest or arched back", + "eyes": "half-closed, crossed, or looking down", + "arms": "bringing hands to center of chest", + "hands": "squeezing breasts together, manipulating cleavage", + "torso": "leaning forward, breasts compressed around object", + "pelvis": "lifted, arched lower back, engaged from rear", + "legs": "kneeling, knees bent, thighs spread wide straddling the bottom partner", + "feet": "resting on surface, toes curled", + "additional": "simultaneous stimulation, breast sex (front), vaginal or anal penetration (rear)" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Straddling_paizuri-Spitroast-000010.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Straddling_paizuri-Spitroast-000010" + }, + "tags": [ + "straddling", + "paizuri", + "titfuck", + "spitroast", + "threesome", + "kneeling", + "from_behind", + "squeezing_breasts", + "double_penetration" + ] +} \ No newline at end of file diff --git a/data/actions/sunbathingdwnsty_000008.json b/data/actions/sunbathingdwnsty_000008.json new file mode 100644 index 0000000..97c3a77 --- /dev/null +++ b/data/actions/sunbathingdwnsty_000008.json @@ -0,0 +1,33 @@ +{ + "action_id": "sunbathingdwnsty_000008", + "action_name": "Sunbathingdwnsty 000008", + "action": { + "full_body": "lying on stomach, prone position, relaxed body, sunbathing", + "head": "lifted slightly, looking forward or resting sideways", + "eyes": "looking at viewer or closed", + "arms": "bent at elbows, forearms resting on ground", + "hands": "folded under chin or resting flat on surface", + "torso": "chest close to ground, slight back arch", + "pelvis": "hips flat on the surface", + "legs": "extended straight back, slightly parted", + "feet": "barefoot, toes pointing backwards or feet raised at ankles", + "additional": "lying on a beach towel, sandy texture, bright sunlight" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/SunbathingDwnsty-000008.safetensors", + "lora_weight": 1.0, + "lora_triggers": "SunbathingDwnsty-000008" + }, + "tags": [ + "sunbathing", + "lying_on_stomach", + "prone", + "beach", + "summer", + "relaxing" + ] +} \ No newline at end of file diff --git a/data/actions/superstyle_illustrious.json b/data/actions/superstyle_illustrious.json new file mode 100644 index 0000000..7b35713 --- /dev/null +++ b/data/actions/superstyle_illustrious.json @@ -0,0 +1,32 @@ +{ + "action_id": "superstyle_illustrious", + "action_name": "Superstyle Illustrious", + "action": { + "full_body": "dynamic full body shot, exaggerated perspective, dutch angle, floating pose or action stance", + "head": "confident expression, facing viewer, hair flowing dynamically", + "eyes": "sharp focus, detailed eyes, intense gaze", + "arms": "reaching towards camera or spread wide", + "hands": "fingers splayed, dramatic gesture", + "torso": "slightly twisted, leaning forward or backward", + "pelvis": "tilted hips", + "legs": "foreshortened, one leg extended towards viewer", + "feet": "dynamic positioning", + "additional": "wind effects, cinematic lighting, high contrast, vibrant colors, sharp outlines" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Superstyle_Illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Superstyle_Illustrious" + }, + "tags": [ + "dynamic pose", + "intricate details", + "stylized", + "masterpiece", + "vibrant" + ] +} \ No newline at end of file diff --git a/data/actions/testiclesucking.json b/data/actions/testiclesucking.json new file mode 100644 index 0000000..c5f35c5 --- /dev/null +++ b/data/actions/testiclesucking.json @@ -0,0 +1,35 @@ +{ + "action_id": "testiclesucking", + "action_name": "Testiclesucking", + "action": { + "full_body": "kneeling pose, head positioned between partner's legs", + "head": "face nestled against scrotum, mouth engaged with testicles, neck crane upwards", + "eyes": "looking up or closed in concentration, eye contact with partner", + "arms": "reaching forward to stabilize", + "hands": "cupping the scrotum gently or holding partner's thighs", + "torso": "leaning forward, slight arch in back", + "pelvis": "kneeling, hips resting on heels or raised slightly", + "legs": "kneels on floor or bed", + "feet": "relaxed", + "additional": "saliva strings, tongue extended, cheek bulge, sucking action" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/testiclesucking.safetensors", + "lora_weight": 1.0, + "lora_triggers": "testiclesucking" + }, + "tags": [ + "testicle sucking", + "ball worship", + "oral sex", + "fellatio", + "kneeling", + "saliva", + "balls", + "scrotum" + ] +} \ No newline at end of file diff --git a/data/actions/threesome_sex_and_rimminganilingus.json b/data/actions/threesome_sex_and_rimminganilingus.json new file mode 100644 index 0000000..c090885 --- /dev/null +++ b/data/actions/threesome_sex_and_rimminganilingus.json @@ -0,0 +1,36 @@ +{ + "action_id": "threesome_sex_and_rimminganilingus", + "action_name": "Threesome Sex And Rimminganilingus", + "action": { + "full_body": "threesome, group sex, three characters interacting, one character receiving anilingus while interacting with a third", + "head": "face buried in buttocks, tongue extended, expressions of pleasure, looking back", + "eyes": "eyes closed, rolled back, ahegao, intense focus", + "arms": "holding hips, grabbing sheets, supporting body weight, reaching between legs", + "hands": "spreading buttocks, gripping waist, fingering, touching", + "torso": "bent over, arched back, leaning forward", + "pelvis": "lifted hips, presenting anus, gluteal cleft exposed", + "legs": "kneeling, all fours, legs spread wide, straddling", + "feet": "barefoot, toes curled, plantar flexion", + "additional": "rimming, anilingus, saliva, Ass focus, explicit, wet" + }, + "participants": { + "solo_focus": "false", + "orientation": "MFF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Threesome_sex_and_rimminganilingus.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Threesome_sex_and_rimminganilingus" + }, + "tags": [ + "threesome", + "group sex", + "rimming", + "anilingus", + "ass licking", + "spreading", + "all fours", + "doggystyle", + "explicit" + ] +} \ No newline at end of file diff --git a/data/actions/tinygirl___illustrious_000016.json b/data/actions/tinygirl___illustrious_000016.json new file mode 100644 index 0000000..3575bc9 --- /dev/null +++ b/data/actions/tinygirl___illustrious_000016.json @@ -0,0 +1,35 @@ +{ + "action_id": "tinygirl___illustrious_000016", + "action_name": "Tinygirl Illustrious 000016", + "action": { + "full_body": "sitting, knees up, embracing knees, small scale", + "head": "tilted up, looking up", + "eyes": "wide eyes, curious", + "arms": "arms around legs", + "hands": "hands clasped", + "torso": "leaning forward slightly", + "pelvis": "sitting on surface", + "legs": "bent, knees to chest", + "feet": "close together", + "additional": "size difference, giant surroundings, depth of field, oversized furniture" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Tinygirl_-_Illustrious-000016.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Tinygirl_-_Illustrious-000016" + }, + "tags": [ + "tinygirl", + "size difference", + "mini", + "sitting", + "knees up", + "looking up", + "giant background", + "macrophilia" + ] +} \ No newline at end of file diff --git a/data/actions/tongue_lick__press.json b/data/actions/tongue_lick__press.json new file mode 100644 index 0000000..2bfb82d --- /dev/null +++ b/data/actions/tongue_lick__press.json @@ -0,0 +1,37 @@ +{ + "action_id": "tongue_lick__press", + "action_name": "Tongue Lick Press", + "action": { + "full_body": "close-up or upper body shot, character leaning intimately towards the viewer or a transparent surface", + "head": "face pushed forward, chin tilted slightly up, facial muscles relaxed but focused on the mouth", + "eyes": "looking at viewer, half-closed or crossed eyes (ahegao style), intense gaze", + "arms": "raised to frame the face or resting on the surface being licked", + "hands": "palms potentially pressed against the screen/glass, fingers splayed", + "torso": "leaning forward, chest pressed slightly if close to surface", + "pelvis": "n/a (usually out of frame)", + "legs": "n/a (usually out of frame)", + "feet": "n/a (usually out of frame)", + "additional": "tongue pressed flat against the screen/glass, saliva strings, visible moisture on tongue, breath condensation" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Tongue_Lick__Press.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Tongue_Lick__Press" + }, + "tags": [ + "tongue", + "tongue_out", + "licking", + "tongue_press", + "against_glass", + "saliva", + "open_mouth", + "close-up", + "pov", + "wet_tongue" + ] +} \ No newline at end of file diff --git a/data/actions/transparent_boy.json b/data/actions/transparent_boy.json new file mode 100644 index 0000000..d0f6556 --- /dev/null +++ b/data/actions/transparent_boy.json @@ -0,0 +1,37 @@ +{ + "action_id": "transparent_boy", + "action_name": "Transparent Boy", + "action": { + "full_body": "full body, standing pose, semi-transparent figure, ethereal silhouette", + "head": "facing viewer, faint facial features, see-through skin", + "eyes": "glowing eyes, distinct pupil visible through hazy face", + "arms": "arms resting by sides, translucent limbs", + "hands": "hands relaxed, barely visible outlines, glass-like texture", + "torso": "upper body revealing background scenery through chest, ghostly shimmer", + "pelvis": "fading midsection, spectral form", + "legs": "legs becoming invisible or highly transparent", + "feet": "feet hovering slightly, diaphanous appearance", + "additional": "refraction, glass skin, internal glow, distortion of background behind the subject, spirit form" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/transparent_boy.safetensors", + "lora_weight": 1.0, + "lora_triggers": "transparent_boy" + }, + "tags": [ + "translucent", + "transparent", + "ghostly", + "ethereal", + "hologram", + "boy", + "spirit", + "glass skin", + "fantasy", + "invisibility" + ] +} \ No newline at end of file diff --git a/data/actions/two_handed_handjob.json b/data/actions/two_handed_handjob.json new file mode 100644 index 0000000..9151238 --- /dev/null +++ b/data/actions/two_handed_handjob.json @@ -0,0 +1,34 @@ +{ + "action_id": "two_handed_handjob", + "action_name": "Two Handed Handjob", + "action": { + "full_body": "kneeling or sitting close to partner, leaning forward", + "head": "tilted down watching hands or looking up with eye contact", + "eyes": "focused on the action or lustful gaze", + "arms": "extended forward, active engagement", + "hands": "both hands wrapped around penis, double grip, milking motion, tight hold, one hand above the other", + "torso": "leaning in towards partner's groin", + "pelvis": "positioned for stability", + "legs": "kneeling or spread", + "feet": "tucked or resting", + "additional": "erection, glans, stimulation, nsfw" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/two-handed_handjob.safetensors", + "lora_weight": 1.0, + "lora_triggers": "two-handed_handjob" + }, + "tags": [ + "handjob", + "two hands", + "double grip", + "penis", + "stimulation", + "nsfw", + "stroking" + ] +} \ No newline at end of file diff --git a/data/actions/under_table_ilxl_v1.json b/data/actions/under_table_ilxl_v1.json new file mode 100644 index 0000000..7e39a92 --- /dev/null +++ b/data/actions/under_table_ilxl_v1.json @@ -0,0 +1,33 @@ +{ + "action_id": "under_table_ilxl_v1", + "action_name": "Under Table Ilxl V1", + "action": { + "full_body": "sitting on floor, positioned underneath a table, crouching, confined space, hiding pose", + "head": "looking up or forward, slightly lowered to fit, peeking out", + "eyes": "looking at viewer, upward gaze", + "arms": "arms wrapping around legs or resting on knees, hugging knees", + "hands": "clasped together or resting on shins", + "torso": "hunched forward, leaning slightly, compressed pose", + "pelvis": "seated on ground, buttocks on floor", + "legs": "knees bent upwards, pulled close to chest or crossed legs, tucked in", + "feet": "resting on floor, bare feet or shoed", + "additional": "table legs framing the shot, tablecloth hanging down, table surface visible above head, indoors, shadows" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/under_table_ilxl_v1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "under_table_ilxl_v1" + }, + "tags": [ + "under table", + "hiding", + "sitting on floor", + "crouching", + "hugging knees", + "confined space" + ] +} \ No newline at end of file diff --git a/data/actions/underbutt_v1.json b/data/actions/underbutt_v1.json new file mode 100644 index 0000000..535026f --- /dev/null +++ b/data/actions/underbutt_v1.json @@ -0,0 +1,35 @@ +{ + "action_id": "underbutt_v1", + "action_name": "Underbutt V1", + "action": { + "full_body": "view from behind, standing, looking back over shoulder", + "head": "turned tightly to look back at the viewer", + "eyes": "looking at viewer", + "arms": "relaxed at sides or resting on hips", + "hands": "lightly touching upper thighs or waistband", + "torso": "slightly arched back to accentuate curvature", + "pelvis": "tilted anteriorly, buttocks prominent, lower gluteal fold exposed", + "legs": "straight, standing shoulder width apart", + "feet": "flat on ground or on tiptoes", + "additional": "wearing micro shorts, high-cut panties, or a short skirt to reveal underbutt" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/underbutt_v1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "underbutt_v1" + }, + "tags": [ + "from behind", + "looking back", + "ass", + "buttocks", + "underbutt", + "gluteal fold", + "arched back", + "sensual" + ] +} \ No newline at end of file diff --git a/data/actions/upside_down_missionary_illustriousxl_lora_nochekaiser.json b/data/actions/upside_down_missionary_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..ccb9308 --- /dev/null +++ b/data/actions/upside_down_missionary_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,36 @@ +{ + "action_id": "upside_down_missionary_illustriousxl_lora_nochekaiser", + "action_name": "Upside Down Missionary Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "duo focus, sexual position, lying on back, partner on top facing feet, reverse missionary, bodies aligned in opposite directions", + "head": "resting on surface, head back, facing upwards", + "eyes": "rolled back or looking at partner's back, half-closed", + "arms": "resting on bed or holding partner's thighs, arms at sides", + "hands": "clutching sheets or gripping partner", + "torso": "chest upwards, back flat on surface", + "pelvis": "hops raised, engaged in intercourse", + "legs": "legs spread wide, knees bent, legs up, m-legs or wrapped around partner's waist", + "feet": "toes curled, soles visible if legs raised", + "additional": "on bed, intimate angle, detailed anatomy" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/upside-down-missionary-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "upside-down-missionary-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "upside-down missionary", + "reverse missionary", + "lying on back", + "legs up", + "spread legs", + "duo", + "sex", + "vaginal", + "m-legs" + ] +} \ No newline at end of file diff --git a/data/actions/usbreedingslave.json b/data/actions/usbreedingslave.json new file mode 100644 index 0000000..aadb8b7 --- /dev/null +++ b/data/actions/usbreedingslave.json @@ -0,0 +1,35 @@ +{ + "action_id": "usbreedingslave", + "action_name": "Usbreedingslave", + "action": { + "full_body": "kneeling on all fours, submissive posture, presenting rear", + "head": "turned looking back over shoulder, mouth slightly open, blushing", + "eyes": "looking backward, upward gaze, heavy lidded", + "arms": "forced behind back, hyperextended shoulders", + "hands": "wrists bound together, hands clasped", + "torso": "deeply arched back, chest pressed low towards the ground", + "pelvis": "hips raised high, anterior pelvic tilt", + "legs": "kneeling, knees spread wide apart on the ground", + "feet": "toes curled against the surface, soles visible", + "additional": "wearing collar, sweat drops, heavy atmosphere" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/USBreedingSlave.safetensors", + "lora_weight": 1.0, + "lora_triggers": "USBreedingSlave" + }, + "tags": [ + "kneeling", + "all fours", + "arched back", + "hands bound", + "from behind", + "submission", + "presenting", + "doggystyle" + ] +} \ No newline at end of file diff --git a/data/actions/uterus_illustriousxl_lora_nochekaiser.json b/data/actions/uterus_illustriousxl_lora_nochekaiser.json new file mode 100644 index 0000000..c9fe423 --- /dev/null +++ b/data/actions/uterus_illustriousxl_lora_nochekaiser.json @@ -0,0 +1,34 @@ +{ + "action_id": "uterus_illustriousxl_lora_nochekaiser", + "action_name": "Uterus Illustriousxl Lora Nochekaiser", + "action": { + "full_body": "standing pose, lifting shirt to reveal abdomen, medium shot", + "head": "facing viewer, slight blush", + "eyes": "looking at viewer", + "arms": "arms raised, bent at elbows", + "hands": "hands holding hem of clothing, lifting shirt up", + "torso": "exposed midriff, navel, glowing internal organ outline, translucent skin effect", + "pelvis": "lower abdomen visible, womb area focus", + "legs": "standing apart", + "feet": "out of frame", + "additional": "x-ray, internal view, cross-section, diagrammatic overlay, anatomy" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/uterus-illustriousxl-lora-nochekaiser.safetensors", + "lora_weight": 1.0, + "lora_triggers": "uterus-illustriousxl-lora-nochekaiser" + }, + "tags": [ + "uterus", + "internal view", + "x-ray", + "cross-section", + "navel", + "midriff", + "shirt lift" + ] +} \ No newline at end of file diff --git a/data/actions/vacuumfellatio_illu_dwnsty_000013.json b/data/actions/vacuumfellatio_illu_dwnsty_000013.json new file mode 100644 index 0000000..eb8ed99 --- /dev/null +++ b/data/actions/vacuumfellatio_illu_dwnsty_000013.json @@ -0,0 +1,36 @@ +{ + "action_id": "vacuumfellatio_illu_dwnsty_000013", + "action_name": "Vacuumfellatio Illu Dwnsty 000013", + "action": { + "full_body": "kneeling, leaning forward, active pose", + "head": "cheeks sucked in, hollow cheeks, tight lips, vacuum seal, intense expression", + "eyes": "rolled back eyes, ahegao, tearing up, looking up", + "arms": "reaching forward, holding shaft or hands on thighs", + "hands": "stroking, guiding, gripping", + "torso": "leaning forward, arched back", + "pelvis": "hips pressed forward or resting on heels", + "legs": "kneeling on floor, shins flat", + "feet": "toes curled, soles visible", + "additional": "saliva, saliva bridge, motion blur, deep throat, face deformation due to suction" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/VacuumFellatio_Illu_Dwnsty-000013.safetensors", + "lora_weight": 1.0, + "lora_triggers": "VacuumFellatio_Illu_Dwnsty-000013" + }, + "tags": [ + "vacuum fellatio", + "hollow cheeks", + "cheeks sucked in", + "blowjob", + "oral sex", + "face deformation", + "intense suction", + "kneeling", + "NSFW" + ] +} \ No newline at end of file diff --git a/data/actions/woman_on_top_pov_il_2.json b/data/actions/woman_on_top_pov_il_2.json new file mode 100644 index 0000000..6d69ea8 --- /dev/null +++ b/data/actions/woman_on_top_pov_il_2.json @@ -0,0 +1,35 @@ +{ + "action_id": "woman_on_top_pov_il_2", + "action_name": "Woman On Top Pov Il 2", + "action": { + "full_body": "pov, straddling, woman on top, cowgirl position, sitting on viewer", + "head": "looking down, looking at viewer, face close to camera", + "eyes": "eye contact, seductive gaze", + "arms": "hands on viewer's chest, bracing arms", + "hands": "palms flattening, touching chest", + "torso": "leaning forward, breasts hanging, stomach view", + "pelvis": "crotch contact, hips active", + "legs": "knees bent, spread legs, thighs framing view", + "feet": "out of frame", + "additional": "from below, male pov, lying on back (viewer), intimate angle" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Woman On Top POV-IL-2.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Woman On Top POV-IL-2" + }, + "tags": [ + "pov", + "woman on top", + "cowgirl position", + "looking down", + "straddling", + "hands on chest", + "from below", + "intimate" + ] +} \ No newline at end of file diff --git a/data/actions/xipa_ly_wai.json b/data/actions/xipa_ly_wai.json new file mode 100644 index 0000000..3ae9e33 --- /dev/null +++ b/data/actions/xipa_ly_wai.json @@ -0,0 +1,33 @@ +{ + "action_id": "xipa_ly_wai", + "action_name": "Xipa Ly Wai", + "action": { + "full_body": "A character performing resulting in a respectful standing or sitting pose with hands pressed together", + "head": "Slightly bowed forward in a gesture of respect, face serene", + "eyes": "Soft gaze looking forward or slightly downward, or closed in prayer", + "arms": "Elbows bent and tucked close to the ribcage to bring hands to the center", + "hands": "Palms pressed flat against each other (Anjali Mudra) at chest or chin level", + "torso": "Upright and facing the viewer, expressing politeness", + "pelvis": "Neutral alignment, following the stance", + "legs": "Standing straight with feet together, or sitting in a formal seiza or lotus position", + "feet": "Plantd firmly together or tucked underneath if sitting", + "additional": "Often associated with the 'wai' traditional greeting or a prayer gesture; may imply traditional attire if associated with 'qipao' (xipa)" + }, + "participants": { + "solo_focus": "true", + "orientation": "MF" + }, + "lora": { + "lora_name": "Illustrious/Poses/xipa LY WAI.safetensors", + "lora_weight": 1.0, + "lora_triggers": "xipa LY WAI" + }, + "tags": [ + "wai", + "praying hands", + "gesture", + "respect", + "hands together", + "greeting" + ] +} \ No newline at end of file diff --git a/data/actions/your_turns_next_illustrious.json b/data/actions/your_turns_next_illustrious.json new file mode 100644 index 0000000..e50d1b3 --- /dev/null +++ b/data/actions/your_turns_next_illustrious.json @@ -0,0 +1,32 @@ +{ + "action_id": "your_turns_next_illustrious", + "action_name": "Your Turns Next Illustrious", + "action": { + "full_body": "standing, medium shot, dramatic perspective, facing viewer", + "head": "looking directly at viewer, serious expression, head tilted slightly down", + "eyes": "intense gaze, shadowed eyes, blue eyes", + "arms": "arm extended towards viewer, arm at side", + "hands": "pointing at viewer, finger pointing, clenched fist", + "torso": "upper body, white dress, cleavage", + "pelvis": "hips facing forward", + "legs": "standing straight", + "feet": "out of frame", + "additional": "foreshortening, dramatic lighting, depth of field, anime coloring" + }, + "participants": { + "solo_focus": "false", + "orientation": "MFF" + }, + "lora": { + "lora_name": "Illustrious/Poses/Your_Turns_Next_Illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Your_Turns_Next_Illustrious" + }, + "tags": [ + "1girl", + "pointing", + "focus on hand", + "dramatic", + "azur lane" + ] +} \ No newline at end of file diff --git a/data/detailers/3dmm_xl_v13.json b/data/detailers/3dmm_xl_v13.json new file mode 100644 index 0000000..7be3ca5 --- /dev/null +++ b/data/detailers/3dmm_xl_v13.json @@ -0,0 +1,26 @@ +{ + "detailer_id": "3dmm_xl_v13", + "detailer_name": "3Dmm Xl V13", + "prompt": [ + "3d render", + "blender (software)", + "c4d", + "isometric", + "cute", + "chibi", + "stylized", + "soft lighting", + "octane render", + "clay texture", + "toy interface", + "volumeric lighting", + "3dmm" + ], + "focus": { "body": "", "detailer": "" + }, + "lora": { + "lora_name": "Illustrious/Detailers/3DMM_XL_V13.safetensors", + "lora_weight": 1.0, + "lora_triggers": "3DMM_XL_V13" + } +} \ No newline at end of file diff --git a/data/detailers/abovebelow1_3_alpha1_0_rank16_full_900steps.json b/data/detailers/abovebelow1_3_alpha1_0_rank16_full_900steps.json new file mode 100644 index 0000000..abe62e2 --- /dev/null +++ b/data/detailers/abovebelow1_3_alpha1_0_rank16_full_900steps.json @@ -0,0 +1,21 @@ +{ + "detailer_id": "abovebelow1_3_alpha1_0_rank16_full_900steps", + "detailer_name": "Abovebelow1 3 Alpha1 0 Rank16 Full 900Steps", + "prompt": [ + "split view", + "above and below", + "waterline", + "underwater", + "above water", + "cross-section", + "ripples", + "distortion", + "swimming" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/aboveBelow1.3_alpha1.0_rank16_full_900steps.safetensors", + "lora_weight": 1.0, + "lora_triggers": "aboveBelow1.3_alpha1.0_rank16_full_900steps" + } +} \ No newline at end of file diff --git a/data/detailers/addmicrodetails_illustrious_v3.json b/data/detailers/addmicrodetails_illustrious_v3.json new file mode 100644 index 0000000..0d9402b --- /dev/null +++ b/data/detailers/addmicrodetails_illustrious_v3.json @@ -0,0 +1,22 @@ +{ + "detailer_id": "addmicrodetails_illustrious_v3", + "detailer_name": "Addmicrodetails Illustrious V3", + "prompt": [ + "extremely detailed", + "intricate details", + "hyper detailed", + "highres", + "absurdres", + "detailed background", + "detailed clothes", + "detailed face", + "texture", + "sharp focus" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/AddMicroDetails_Illustrious_v3.safetensors", + "lora_weight": 1.0, + "lora_triggers": "AddMicroDetails_Illustrious_v3" + } +} \ No newline at end of file diff --git a/data/detailers/addmicrodetails_illustrious_v5.json b/data/detailers/addmicrodetails_illustrious_v5.json new file mode 100644 index 0000000..6c524bf --- /dev/null +++ b/data/detailers/addmicrodetails_illustrious_v5.json @@ -0,0 +1,23 @@ +{ + "detailer_id": "addmicrodetails_illustrious_v5", + "detailer_name": "Addmicrodetails Illustrious V5", + "prompt": [ + "masterpiece", + "best quality", + "extremely detailed", + "intricate details", + "highres", + "8k", + "sharp focus", + "hyperdetailed", + "detailed background", + "detailed face", + "ultra-detailed" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/AddMicroDetails_Illustrious_v5.safetensors", + "lora_weight": 1.0, + "lora_triggers": "AddMicroDetails_Illustrious_v5" + } +} \ No newline at end of file diff --git a/data/detailers/addmicrodetails_noobai_v3.json b/data/detailers/addmicrodetails_noobai_v3.json new file mode 100644 index 0000000..c5f4076 --- /dev/null +++ b/data/detailers/addmicrodetails_noobai_v3.json @@ -0,0 +1,22 @@ +{ + "detailer_id": "addmicrodetails_noobai_v3", + "detailer_name": "Addmicrodetails Noobai V3", + "prompt": [ + "extremely detailed", + "intricate details", + "hyperdetailed", + "highres", + "masterpiece", + "best quality", + "8k resolution", + "highly detailed", + "detailed texture", + "ultra-detailed" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/AddMicroDetails_NoobAI_v3.safetensors", + "lora_weight": 1.0, + "lora_triggers": "AddMicroDetails_NoobAI_v3" + } +} \ No newline at end of file diff --git a/data/detailers/age_v2.json b/data/detailers/age_v2.json new file mode 100644 index 0000000..7a00e7a --- /dev/null +++ b/data/detailers/age_v2.json @@ -0,0 +1,10 @@ +{ + "detailer_id": "age_v2", + "detailer_name": "Age V2 (-5)", + "prompt": "detailed skin, skin texture, pores, realistic, age adjustment, mature, wrinkles, crow's feet, complexion, high quality, masterpiece", + "lora": { + "lora_name": "Illustrious/Detailers/Age-V2.safetensors", + "lora_weight": -5.0, + "lora_triggers": "Age-V2" + } +} \ No newline at end of file diff --git a/data/detailers/ahxl_v1.json b/data/detailers/ahxl_v1.json new file mode 100644 index 0000000..46dce96 --- /dev/null +++ b/data/detailers/ahxl_v1.json @@ -0,0 +1,26 @@ +{ + "detailer_id": "ahxl_v1", + "detailer_name": "Ahxl V1", + "prompt": [ + "ahago (artist)", + "distinctive style", + "anime coloring", + "heart-shaped pupils", + "heavy blush", + "open mouth", + "tongue", + "saliva", + "messy hair", + "intense expression", + "masterpiece", + "best quality", + "2d", + "illustration" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/ahxl_v1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "ahxl_v1" + } +} \ No newline at end of file diff --git a/data/detailers/aidmahyperrealism_flux_v0_3.json b/data/detailers/aidmahyperrealism_flux_v0_3.json new file mode 100644 index 0000000..45b47e5 --- /dev/null +++ b/data/detailers/aidmahyperrealism_flux_v0_3.json @@ -0,0 +1,21 @@ +{ + "detailer_id": "aidmahyperrealism_flux_v0_3", + "detailer_name": "Aidmahyperrealism Flux V0 3", + "prompt": [ + "hyperrealism", + "photorealistic", + "8k", + "raw photo", + "intricate details", + "realistic skin texture", + "sharp focus", + "highres", + "best quality" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/aidmaHyperrealism-FLUX-v0.3.safetensors", + "lora_weight": 1.0, + "lora_triggers": "aidmaHyperrealism-FLUX-v0.3" + } +} \ No newline at end of file diff --git a/data/detailers/aidmahyperrealism_il.json b/data/detailers/aidmahyperrealism_il.json new file mode 100644 index 0000000..b73f192 --- /dev/null +++ b/data/detailers/aidmahyperrealism_il.json @@ -0,0 +1,25 @@ +{ + "detailer_id": "aidmahyperrealism_il", + "detailer_name": "Aidmahyperrealism Il", + "prompt": [ + "masterpiece", + "best quality", + "hyperrealistic", + "photorealistic", + "8k", + "highres", + "highly detailed", + "raw photo", + "realistic lighting", + "sharp focus", + "intricate texture", + "dslr", + "volumetric lighting" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/aidmahyperrealism_IL.safetensors", + "lora_weight": 1.0, + "lora_triggers": "aidmahyperrealism_IL" + } +} \ No newline at end of file diff --git a/data/detailers/at12000003000_4rim.json b/data/detailers/at12000003000_4rim.json new file mode 100644 index 0000000..8a5a962 --- /dev/null +++ b/data/detailers/at12000003000_4rim.json @@ -0,0 +1,23 @@ +{ + "detailer_id": "at12000003000_4rim", + "detailer_name": "At12000003000 4Rim", + "prompt": [ + "rim lighting", + "backlighting", + "strong edge glow", + "cinematic lighting", + "dramatic contrast", + "silhouette", + "volumetric lighting", + "dark background", + "masterpiece", + "best quality", + "ultra-detailed" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/at12000003000.4RIM.safetensors", + "lora_weight": 1.0, + "lora_triggers": "at12000003000.4RIM" + } +} \ No newline at end of file diff --git a/data/detailers/better_detailed_pussy_and_anus_v3_0_1686173.json b/data/detailers/better_detailed_pussy_and_anus_v3_0_1686173.json new file mode 100644 index 0000000..a404a50 --- /dev/null +++ b/data/detailers/better_detailed_pussy_and_anus_v3_0_1686173.json @@ -0,0 +1,23 @@ +{ + "detailer_id": "better_detailed_pussy_and_anus_v3_0_1686173", + "detailer_name": "Better Detailed Pussy And Anus V3 0 1686173", + "prompt": [ + "nsfw", + "pussy", + "anus", + "perineum", + "genitals", + "uncensored", + "detailed pussy", + "detailed anus", + "vaginal", + "anal", + "anatomical realism" + ], + "focus": { "body": "lower body", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/Better_detailed_pussy_and_anus_v3.0_1686173.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Better_detailed_pussy_and_anus_v3.0_1686173" + } +} \ No newline at end of file diff --git a/data/detailers/chamillustriousbackgroundenhancer.json b/data/detailers/chamillustriousbackgroundenhancer.json new file mode 100644 index 0000000..48d7cd5 --- /dev/null +++ b/data/detailers/chamillustriousbackgroundenhancer.json @@ -0,0 +1,24 @@ +{ + "detailer_id": "chamillustriousbackgroundenhancer", + "detailer_name": "Chamillustriousbackgroundenhancer", + "prompt": [ + "scenery", + "detailed background", + "intricate details", + "atmospheric lighting", + "depth of field", + "vibrant colors", + "masterpiece", + "best quality", + "lush environment", + "cinematic composition", + "highres", + "volumetric lighting" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/ChamIllustriousBackgroundEnhancer.safetensors", + "lora_weight": 1.0, + "lora_triggers": "ChamIllustriousBackgroundEnhancer" + } +} \ No newline at end of file diff --git a/data/detailers/cum_chalice_il_v1_0_000014.json b/data/detailers/cum_chalice_il_v1_0_000014.json new file mode 100644 index 0000000..ad85f78 --- /dev/null +++ b/data/detailers/cum_chalice_il_v1_0_000014.json @@ -0,0 +1,10 @@ +{ + "detailer_id": "cum_chalice_il_v1_0_000014", + "detailer_name": "Cum Chalice Il V1 0 000014", + "prompt": "chalice, goblet, holding cup, white liquid, semen, cum, fluid in cup, drinking, toast, detailed", + "lora": { + "lora_name": "Illustrious/Detailers/Cum-Chalice-IL.V1.0-000014.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Cum-Chalice-IL.V1.0-000014" + } +} \ No newline at end of file diff --git a/data/detailers/cum_covered_face.json b/data/detailers/cum_covered_face.json new file mode 100644 index 0000000..8ed33e0 --- /dev/null +++ b/data/detailers/cum_covered_face.json @@ -0,0 +1,21 @@ +{ + "detailer_id": "cum_covered_face", + "detailer_name": "Cum Covered Face", + "prompt": [ + "cum", + "cum_on_face", + "facial", + "messy_face", + "white_liquid", + "bukkake", + "sticky", + "after_sex", + "bodily_fluids" + ], + "focus": { "body": "head", "detailer": "face" }, + "lora": { + "lora_name": "Illustrious/Detailers/cum_covered_face.safetensors", + "lora_weight": 1.0, + "lora_triggers": "cum_covered_face" + } +} \ No newline at end of file diff --git a/data/detailers/cum_ill.json b/data/detailers/cum_ill.json new file mode 100644 index 0000000..b71ffcb --- /dev/null +++ b/data/detailers/cum_ill.json @@ -0,0 +1,21 @@ +{ + "detailer_id": "cum_ill", + "detailer_name": "Cum Ill", + "prompt": [ + "cum", + "cum_on_body", + "white_liquid", + "sticky", + "cum_drip", + "messy", + "intense_ejaculation", + "thick_fluid", + "detailed_liquid" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/cum_ill.safetensors", + "lora_weight": 1.0, + "lora_triggers": "cum_ill" + } +} \ No newline at end of file diff --git a/data/detailers/cum_on_eyes_and_nose.json b/data/detailers/cum_on_eyes_and_nose.json new file mode 100644 index 0000000..4619003 --- /dev/null +++ b/data/detailers/cum_on_eyes_and_nose.json @@ -0,0 +1,10 @@ +{ + "detailer_id": "cum_on_eyes_and_nose", + "detailer_name": "Cum On Eyes And Nose", + "prompt": "cum, cum_on_face, cum_on_nose, cum_on_eyes, mess, messy_face, white_liquid, sticky, viscous_liquid, heavy_cum", + "lora": { + "lora_name": "Illustrious/Detailers/cum_on_eyes_and_nose.safetensors", + "lora_weight": 1.0, + "lora_triggers": "cum_on_eyes_and_nose" + } +} \ No newline at end of file diff --git a/data/detailers/cute_girl_illustrious_v1_0.json b/data/detailers/cute_girl_illustrious_v1_0.json new file mode 100644 index 0000000..d2e7068 --- /dev/null +++ b/data/detailers/cute_girl_illustrious_v1_0.json @@ -0,0 +1,26 @@ +{ + "detailer_id": "cute_girl_illustrious_v1_0", + "detailer_name": "Cute Girl Illustrious V1 0", + "prompt": [ + "1girl", + "cute", + "solo", + "masterpiece", + "best quality", + "highly detailed", + "beautiful face", + "beautiful detailed eyes", + "blush", + "smile", + "soft lighting", + "anime coloring", + "vibrant", + "aesthetic" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/cute girl_illustrious_V1.0.safetensors", + "lora_weight": 1.0, + "lora_triggers": "cute girl_illustrious_V1.0" + } +} \ No newline at end of file diff --git a/data/detailers/cuteness_enhancer.json b/data/detailers/cuteness_enhancer.json new file mode 100644 index 0000000..b3d1913 --- /dev/null +++ b/data/detailers/cuteness_enhancer.json @@ -0,0 +1,26 @@ +{ + "detailer_id": "cuteness_enhancer", + "detailer_name": "Cuteness Enhancer", + "prompt": [ + "cute", + "adorable", + "kawaii", + "blush", + "smile", + "happy", + "big eyes", + "sparkling pupils", + "rosy cheeks", + "soft appearance", + "expressive", + "moe", + "high quality", + "masterpiece" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/cuteness-enhancer.safetensors", + "lora_weight": 1.0, + "lora_triggers": "cuteness-enhancer" + } +} \ No newline at end of file diff --git a/data/detailers/cutepussy_000006.json b/data/detailers/cutepussy_000006.json new file mode 100644 index 0000000..2d1e681 --- /dev/null +++ b/data/detailers/cutepussy_000006.json @@ -0,0 +1,24 @@ +{ + "detailer_id": "cutepussy_000006", + "detailer_name": "Cutepussy 000006", + "prompt": [ + "nsfw", + "pussy", + "uncensored", + "anatomically correct", + "genitals", + "vaginal", + "detailed pussy", + "close-up", + "pink", + "wet", + "masterpiece", + "best quality" + ], + "focus": { "body": "lower body", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/cutepussy-000006.safetensors", + "lora_weight": 1.0, + "lora_triggers": "cutepussy-000006" + } +} \ No newline at end of file diff --git a/data/detailers/dark_eye_detail_illus_1484892.json b/data/detailers/dark_eye_detail_illus_1484892.json new file mode 100644 index 0000000..60fc7c4 --- /dev/null +++ b/data/detailers/dark_eye_detail_illus_1484892.json @@ -0,0 +1,23 @@ +{ + "detailer_id": "dark_eye_detail_illus_1484892", + "detailer_name": "Dark Eye Detail Illus 1484892", + "prompt": [ + "detailed eyes", + "beautiful eyes", + "dark eyes", + "mysterious gaze", + "intricate iris", + "long eyelashes", + "illustration", + "deep shadows", + "expressive eyes", + "masterpiece", + "best quality" + ], + "focus": { "body": "eyes", "detailer": "eyes" }, + "lora": { + "lora_name": "Illustrious/Detailers/dark_eye_detail_illus_1484892.safetensors", + "lora_weight": 1.0, + "lora_triggers": "dark_eye_detail_illus_1484892" + } +} \ No newline at end of file diff --git a/data/detailers/detailed_hand_focus_style_illustriousxl_v1.json b/data/detailers/detailed_hand_focus_style_illustriousxl_v1.json new file mode 100644 index 0000000..bcc1af0 --- /dev/null +++ b/data/detailers/detailed_hand_focus_style_illustriousxl_v1.json @@ -0,0 +1,20 @@ +{ + "detailer_id": "detailed_hand_focus_style_illustriousxl_v1", + "detailer_name": "Detailed Hand Focus Style Illustriousxl V1", + "prompt": [ + "detailed hands", + "beautiful hands", + "fingers", + "fingernails", + "perfect anatomy", + "5 fingers", + "hand focus", + "intricate details" + ], + "focus": { "body": "hand", "detailer": "hand" }, + "lora": { + "lora_name": "Illustrious/Detailers/detailed hand focus style illustriousXL v1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "detailed hand focus style illustriousXL v1" + } +} \ No newline at end of file diff --git a/data/detailers/detailerilv2_000008.json b/data/detailers/detailerilv2_000008.json new file mode 100644 index 0000000..4d0d395 --- /dev/null +++ b/data/detailers/detailerilv2_000008.json @@ -0,0 +1,23 @@ +{ + "detailer_id": "detailerilv2_000008", + "detailer_name": "Detailerilv2 000008", + "prompt": [ + "highly detailed", + "intricate details", + "hyperdetailed", + "masterpiece", + "best quality", + "highres", + "8k", + "detailed background", + "detailed face", + "texture enhancement", + "sharp focus" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/DetailerILv2-000008.safetensors", + "lora_weight": 1.0, + "lora_triggers": "DetailerILv2-000008" + } +} \ No newline at end of file diff --git a/data/detailers/drool_dripping.json b/data/detailers/drool_dripping.json new file mode 100644 index 0000000..f602c30 --- /dev/null +++ b/data/detailers/drool_dripping.json @@ -0,0 +1,24 @@ +{ + "detailer_id": "drool_dripping", + "detailer_name": "Drool Dripping", + "prompt": [ + "drooling", + "saliva", + "saliva trail", + "dripping liquid", + "open mouth", + "wet", + "tongue", + "viscous fluid", + "heavy drool", + "detailed saliva", + "masterpiece", + "best quality" + ], + "focus": { "body": "head", "detailer": "face" }, + "lora": { + "lora_name": "Illustrious/Detailers/drool_dripping.safetensors", + "lora_weight": 1.0, + "lora_triggers": "drool_dripping" + } +} \ No newline at end of file diff --git a/data/detailers/excessivecum.json b/data/detailers/excessivecum.json new file mode 100644 index 0000000..6632377 --- /dev/null +++ b/data/detailers/excessivecum.json @@ -0,0 +1,24 @@ +{ + "detailer_id": "excessivecum", + "detailer_name": "Excessivecum", + "prompt": [ + "bukkake", + "excessive cum", + "huge amount of semen", + "covered in cum", + "cum on face", + "cum on body", + "messy", + "sticky", + "thick fluids", + "cum dripping", + "hyper detailed liquid", + "drenching" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/excessivecum.safetensors", + "lora_weight": 1.0, + "lora_triggers": "excessivecum" + } +} \ No newline at end of file diff --git a/data/detailers/excessivesaliva.json b/data/detailers/excessivesaliva.json new file mode 100644 index 0000000..b2c7660 --- /dev/null +++ b/data/detailers/excessivesaliva.json @@ -0,0 +1,23 @@ +{ + "detailer_id": "excessivesaliva", + "detailer_name": "Excessivesaliva", + "prompt": [ + "drooling", + "excessive saliva", + "thick saliva", + "saliva trail", + "wet mouth", + "open mouth", + "tongue out", + "shiny fluids", + "glistening", + "liquid detail", + "hyper detailed" + ], + "focus": { "body": "head", "detailer": "face" }, + "lora": { + "lora_name": "Illustrious/Detailers/excessivesaliva.safetensors", + "lora_weight": 1.0, + "lora_triggers": "excessivesaliva" + } +} \ No newline at end of file diff --git a/data/detailers/excumnb.json b/data/detailers/excumnb.json new file mode 100644 index 0000000..38f3d6b --- /dev/null +++ b/data/detailers/excumnb.json @@ -0,0 +1,26 @@ +{ + "detailer_id": "excumnb", + "detailer_name": "Excumnb", + "prompt": [ + "excessive cum", + "hyper semen", + "thick fluids", + "cumdrip", + "cum everywhere", + "sticky", + "liquid detail", + "messy", + "wet", + "shiny", + "wet skin", + "masterpiece", + "best quality", + "highres" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/excumNB.safetensors", + "lora_weight": 1.0, + "lora_triggers": "excumNB" + } +} \ No newline at end of file diff --git a/data/detailers/execessive_cum_ill.json b/data/detailers/execessive_cum_ill.json new file mode 100644 index 0000000..0450cb6 --- /dev/null +++ b/data/detailers/execessive_cum_ill.json @@ -0,0 +1,22 @@ +{ + "detailer_id": "execessive_cum_ill", + "detailer_name": "Execessive Cum Ill", + "prompt": [ + "excessive cum", + "hyper ejaculation", + "cum everywhere", + "heavy cum", + "wet", + "messy", + "white liquid", + "thick cum", + "cum dripping", + "bodily fluids" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/execessive_cum_ill.safetensors", + "lora_weight": 1.0, + "lora_triggers": "execessive_cum_ill" + } +} \ No newline at end of file diff --git a/data/detailers/eye_detail_glossy.json b/data/detailers/eye_detail_glossy.json new file mode 100644 index 0000000..c3c7bd8 --- /dev/null +++ b/data/detailers/eye_detail_glossy.json @@ -0,0 +1,10 @@ +{ + "detailer_id": "eye_detail_glossy", + "detailer_name": "Eye Detail Glossy", + "prompt": "glossy eyes, detailed irises, realistic reflections, enhanced eye detail", + "lora": { + "lora_name": "Illustrious/Detailers/eye_detail_glossy_stylized.safetensors", + "lora_weight": 0.8, + "lora_triggers": "eye_detail_glossy_stylized" + } +} \ No newline at end of file diff --git a/data/detailers/eye_detail_glossy_stylized.json b/data/detailers/eye_detail_glossy_stylized.json new file mode 100644 index 0000000..b22c85b --- /dev/null +++ b/data/detailers/eye_detail_glossy_stylized.json @@ -0,0 +1,10 @@ +{ + "detailer_id": "eye_detail_glossy_stylized", + "detailer_name": "Eye Detail Glossy Stylized", + "prompt": "detailed eyes, beautiful eyes, glossy eyes, sparkling eyes, stylized eyes, intricate iris, reflections, wet eyes, expressive, eyelashes, high quality, masterpiece", + "lora": { + "lora_name": "Illustrious/Detailers/eye_detail_glossy_stylized.safetensors", + "lora_weight": 0.9, + "lora_triggers": "eye_detail_glossy_stylized" + } +} \ No newline at end of file diff --git a/data/detailers/eye_detail_matte.json b/data/detailers/eye_detail_matte.json new file mode 100644 index 0000000..d55c96f --- /dev/null +++ b/data/detailers/eye_detail_matte.json @@ -0,0 +1,22 @@ +{ + "detailer_id": "eye_detail_matte", + "detailer_name": "Eye Detail Matte", + "prompt": [ + "highly detailed eyes", + "beautiful eyes", + "matte finish", + "soft shading", + "intricate iris", + "expressive eyes", + "perfect eyes", + "flat color", + "non-glossy", + "2d style" + ], + "focus": { "body": "eyes", "detailer": "eyes" }, + "lora": { + "lora_name": "Illustrious/Detailers/eye_detail_matte.safetensors", + "lora_weight": 1.0, + "lora_triggers": "eye_detail_matte" + } +} \ No newline at end of file diff --git a/data/detailers/eye_focus_illus.json b/data/detailers/eye_focus_illus.json new file mode 100644 index 0000000..bbf901e --- /dev/null +++ b/data/detailers/eye_focus_illus.json @@ -0,0 +1,24 @@ +{ + "detailer_id": "eye_focus_illus", + "detailer_name": "Eye Focus Illus", + "prompt": [ + "detailed eyes", + "beautiful eyes", + "expressive eyes", + "intricate iris", + "sparkling eyes", + "sharp focus", + "illustration", + "anime style", + "long eyelashes", + "perfect anatomy", + "high quality", + "vibrant colors" + ], + "focus": { "body": "eyes", "detailer": "eyes" }, + "lora": { + "lora_name": "Illustrious/Detailers/eye_focus_illus.safetensors", + "lora_weight": 1.0, + "lora_triggers": "eye_focus_illus" + } +} \ No newline at end of file diff --git a/data/detailers/faceglitch_il.json b/data/detailers/faceglitch_il.json new file mode 100644 index 0000000..4eeb5fd --- /dev/null +++ b/data/detailers/faceglitch_il.json @@ -0,0 +1,26 @@ +{ + "detailer_id": "faceglitch_il", + "detailer_name": "Faceglitch Il", + "prompt": [ + "glitch", + "glitch art", + "datamoshing", + "pixel sorting", + "chromatic aberration", + "vhs artifacts", + "distorted face", + "digital noise", + "signal error", + "corrupted image", + "cyberpunk", + "scanlines", + "interference", + "broken data" + ], + "focus": { "body": "head", "detailer": "face" }, + "lora": { + "lora_name": "Illustrious/Detailers/faceglitch_IL.safetensors", + "lora_weight": 1.0, + "lora_triggers": "faceglitch_IL" + } +} \ No newline at end of file diff --git a/data/detailers/fucked_sensless_000014.json b/data/detailers/fucked_sensless_000014.json new file mode 100644 index 0000000..489a57d --- /dev/null +++ b/data/detailers/fucked_sensless_000014.json @@ -0,0 +1,26 @@ +{ + "detailer_id": "fucked_sensless_000014", + "detailer_name": "Fucked Sensless 000014", + "prompt": [ + "ahegao", + "rolling_eyes", + "open_mouth", + "tongue_out", + "saliva", + "drooling", + "heavy_breathing", + "blush", + "sweat", + "eyes_rolled_back", + "orgasm", + "intense_pleasure", + "messy_hair", + "glazed_eyes" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/Fucked_Sensless-000014.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Fucked_Sensless-000014" + } +} \ No newline at end of file diff --git a/data/detailers/girl_multiplier1_1_alpha16_0_rank32_full_1180steps.json b/data/detailers/girl_multiplier1_1_alpha16_0_rank32_full_1180steps.json new file mode 100644 index 0000000..7d71d5a --- /dev/null +++ b/data/detailers/girl_multiplier1_1_alpha16_0_rank32_full_1180steps.json @@ -0,0 +1,24 @@ +{ + "detailer_id": "girl_multiplier1_1_alpha16_0_rank32_full_1180steps", + "detailer_name": "Girl Multiplier1 1 Alpha16 0 Rank32 Full 1180Steps", + "prompt": [ + "1girl", + "solo", + "masterpiece", + "best quality", + "ultra detailed", + "beautiful detailed face", + "intricate eyes", + "perfect anatomy", + "soft skin", + "cute", + "feminine", + "8k resolution" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/girl_multiplier1.1_alpha16.0_rank32_full_1180steps.safetensors", + "lora_weight": 1.0, + "lora_triggers": "girl_multiplier1.1_alpha16.0_rank32_full_1180steps" + } +} \ No newline at end of file diff --git a/data/detailers/gothgraphiceyelinerill.json b/data/detailers/gothgraphiceyelinerill.json new file mode 100644 index 0000000..4a4acea --- /dev/null +++ b/data/detailers/gothgraphiceyelinerill.json @@ -0,0 +1,23 @@ +{ + "detailer_id": "gothgraphiceyelinerill", + "detailer_name": "Gothgraphiceyelinerill", + "prompt": [ + "graphic eyeliner", + "goth makeup", + "heavy black eyeliner", + "winged eyeliner", + "geometric eye makeup", + "sharp lines", + "detailed eyes", + "intense gaze", + "intricate makeup", + "masterpiece", + "best quality" + ], + "focus": { "body": "eyes", "detailer": "eyes" }, + "lora": { + "lora_name": "Illustrious/Detailers/GothGraphicEyelinerILL.safetensors", + "lora_weight": 1.0, + "lora_triggers": "GothGraphicEyelinerILL" + } +} \ No newline at end of file diff --git a/data/detailers/gothiceyelinerill.json b/data/detailers/gothiceyelinerill.json new file mode 100644 index 0000000..7e5e39e --- /dev/null +++ b/data/detailers/gothiceyelinerill.json @@ -0,0 +1,22 @@ +{ + "detailer_id": "gothiceyelinerill", + "detailer_name": "Gothiceyelinerill", + "prompt": [ + "gothic makeup", + "thick eyeliner", + "black eyeliner", + "heavy eyeliner", + "smoky eyes", + "eyeshadow", + "detailed eyes", + "mascara", + "long eyelashes", + "dramatic makeup" + ], + "focus": { "body": "eyes", "detailer": "eyes"}, + "lora": { + "lora_name": "Illustrious/Detailers/gothiceyelinerILL.safetensors", + "lora_weight": 1.0, + "lora_triggers": "gothiceyelinerILL" + } +} \ No newline at end of file diff --git a/data/detailers/huge_cum_ill.json b/data/detailers/huge_cum_ill.json new file mode 100644 index 0000000..521ae8a --- /dev/null +++ b/data/detailers/huge_cum_ill.json @@ -0,0 +1,23 @@ +{ + "detailer_id": "huge_cum_ill", + "detailer_name": "Huge Cum Ill", + "prompt": [ + "excessive cum", + "hyper cum", + "huge cum load", + "bukkake", + "thick white liquid", + "cum splatter", + "messy", + "cum everywhere", + "cum on body", + "sticky fluids", + "cum dripping" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/huge_cum_ill.safetensors", + "lora_weight": 1.0, + "lora_triggers": "huge_cum_ill" + } +} \ No newline at end of file diff --git a/data/detailers/hugebukkake_anime_il_v1.json b/data/detailers/hugebukkake_anime_il_v1.json new file mode 100644 index 0000000..3e3248b --- /dev/null +++ b/data/detailers/hugebukkake_anime_il_v1.json @@ -0,0 +1,24 @@ +{ + "detailer_id": "hugebukkake_anime_il_v1", + "detailer_name": "Hugebukkake Anime Il V1", + "prompt": [ + "bukkake", + "cum", + "cum on face", + "cum on body", + "excessive cum", + "thick cum", + "sticky", + "messy", + "white liquid", + "facial", + "cum drip", + "anime style" + ], + "focus": { "body": "head", "detailer": "face" }, + "lora": { + "lora_name": "Illustrious/Detailers/HugeBukkake_Anime_IL_V1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "HugeBukkake_Anime_IL_V1" + } +} \ No newline at end of file diff --git a/data/detailers/hugebukkake_real_il_v2.json b/data/detailers/hugebukkake_real_il_v2.json new file mode 100644 index 0000000..2dec23d --- /dev/null +++ b/data/detailers/hugebukkake_real_il_v2.json @@ -0,0 +1,24 @@ +{ + "detailer_id": "hugebukkake_real_il_v2", + "detailer_name": "Hugebukkake Real Il V2", + "prompt": [ + "bukkake", + "excessive cum", + "thick cum", + "cum on face", + "cum on body", + "hyper-realistic fluids", + "messy", + "dripping", + "shiny skin", + "viscous fluid", + "white liquid", + "high quality texture" + ], + "focus": { "body": "head", "detailer": "face" }, + "lora": { + "lora_name": "Illustrious/Detailers/HugeBukkake_Real_IL_V2.safetensors", + "lora_weight": 1.0, + "lora_triggers": "HugeBukkake_Real_IL_V2" + } +} \ No newline at end of file diff --git a/data/detailers/hypnsois_il_000014.json b/data/detailers/hypnsois_il_000014.json new file mode 100644 index 0000000..52642f1 --- /dev/null +++ b/data/detailers/hypnsois_il_000014.json @@ -0,0 +1,24 @@ +{ + "detailer_id": "hypnsois_il_000014", + "detailer_name": "Hypnsois Il 000014", + "prompt": [ + "hypnosis", + "hypnotic eyes", + "spiral eyes", + "ringed eyes", + "swirling pattern", + "dazed", + "trance", + "mesmerizing", + "mind control", + "empty eyes", + "glowing eyes", + "concentric circles" + ], + "focus": { "body": "eyes", "detailer": "eyes" }, + "lora": { + "lora_name": "Illustrious/Detailers/Hypnsois_IL-000014.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Hypnsois_IL-000014" + } +} \ No newline at end of file diff --git a/data/detailers/il20_np31i.json b/data/detailers/il20_np31i.json new file mode 100644 index 0000000..99d71a9 --- /dev/null +++ b/data/detailers/il20_np31i.json @@ -0,0 +1,20 @@ +{ + "detailer_id": "il20_np31i", + "detailer_name": "Il20 Np31I", + "prompt": [ + "inverted nipples", + "indented nipples", + "anatomical realism", + "detailed skin", + "chest", + "breasts", + "high quality", + "masterpiece" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/IL20_NP31i.safetensors", + "lora_weight": 1.0, + "lora_triggers": "IL20_NP31i" + } +} \ No newline at end of file diff --git a/data/detailers/illuminated_by_screen_il.json b/data/detailers/illuminated_by_screen_il.json new file mode 100644 index 0000000..998a4d7 --- /dev/null +++ b/data/detailers/illuminated_by_screen_il.json @@ -0,0 +1,24 @@ +{ + "detailer_id": "illuminated_by_screen_il", + "detailer_name": "Illuminated By Screen Il", + "prompt": [ + "illuminated by screen", + "screen glow", + "face illuminated", + "blue light", + "dark room", + "reflection in eyes", + "dramatic lighting", + "cinematic atmosphere", + "looking at phone", + "detailed face", + "masterpiece", + "best quality" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/Illuminated_by_Screen-IL.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Illuminated_by_Screen-IL" + } +} \ No newline at end of file diff --git a/data/detailers/illustrious_masterpieces_v3.json b/data/detailers/illustrious_masterpieces_v3.json new file mode 100644 index 0000000..a4a65af --- /dev/null +++ b/data/detailers/illustrious_masterpieces_v3.json @@ -0,0 +1,24 @@ +{ + "detailer_id": "illustrious_masterpieces_v3", + "detailer_name": "Illustrious Masterpieces V3", + "prompt": [ + "masterpiece", + "best quality", + "absurdres", + "highres", + "extremely detailed", + "aesthetic", + "very aesthetic", + "production art", + "official art", + "vibrant colors", + "sharp focus", + "8k wallpaper" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/illustrious_masterpieces_v3.safetensors", + "lora_weight": 1.0, + "lora_triggers": "illustrious_masterpieces_v3" + } +} \ No newline at end of file diff --git a/data/detailers/illustrious_quality_modifiers_masterpieces_v1.json b/data/detailers/illustrious_quality_modifiers_masterpieces_v1.json new file mode 100644 index 0000000..fcd1319 --- /dev/null +++ b/data/detailers/illustrious_quality_modifiers_masterpieces_v1.json @@ -0,0 +1,23 @@ +{ + "detailer_id": "illustrious_quality_modifiers_masterpieces_v1", + "detailer_name": "Illustrious Quality Modifiers Masterpieces V1", + "prompt": [ + "masterpiece", + "best quality", + "absurdres", + "highres", + "highly detailed", + "intricate details", + "vivid colors", + "sharp focus", + "aesthetic", + "very pleasing", + "illustration" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/illustrious_quality_modifiers_masterpieces_v1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "illustrious_quality_modifiers_masterpieces_v1" + } +} \ No newline at end of file diff --git a/data/detailers/illustriousxl_stabilizer_v1_93.json b/data/detailers/illustriousxl_stabilizer_v1_93.json new file mode 100644 index 0000000..84c7bac --- /dev/null +++ b/data/detailers/illustriousxl_stabilizer_v1_93.json @@ -0,0 +1,23 @@ +{ + "detailer_id": "illustriousxl_stabilizer_v1_93", + "detailer_name": "Illustriousxl Stabilizer V1 93", + "prompt": [ + "masterpiece", + "best quality", + "very aesthetic", + "absurdres", + "highres", + "sharp focus", + "vibrant colors", + "detailed background", + "clean lines", + "stable anatomy" + ], + "focus": { "body": "", "detailer": "" + }, + "lora": { + "lora_name": "Illustrious/Detailers/illustriousXL_stabilizer_v1.93.safetensors", + "lora_weight": 1.0, + "lora_triggers": "illustriousXL_stabilizer_v1.93" + } +} \ No newline at end of file diff --git a/data/detailers/illustriousxlv01_stabilizer_v1_165c.json b/data/detailers/illustriousxlv01_stabilizer_v1_165c.json new file mode 100644 index 0000000..f13af3d --- /dev/null +++ b/data/detailers/illustriousxlv01_stabilizer_v1_165c.json @@ -0,0 +1,21 @@ +{ + "detailer_id": "illustriousxlv01_stabilizer_v1_165c", + "detailer_name": "Illustriousxlv01 Stabilizer V1 165C", + "prompt": [ + "masterpiece", + "best quality", + "very aesthetic", + "absurdres", + "highres", + "perfect anatomy", + "clean lines", + "sharp focus", + "detailed" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/illustriousXLv01_stabilizer_v1.165c.safetensors", + "lora_weight": 1.0, + "lora_triggers": "illustriousXLv01_stabilizer_v1.165c" + } +} \ No newline at end of file diff --git a/data/detailers/illustriousxlv01_stabilizer_v1_185c.json b/data/detailers/illustriousxlv01_stabilizer_v1_185c.json new file mode 100644 index 0000000..97d1b64 --- /dev/null +++ b/data/detailers/illustriousxlv01_stabilizer_v1_185c.json @@ -0,0 +1,24 @@ +{ + "detailer_id": "illustriousxlv01_stabilizer_v1_185c", + "detailer_name": "Illustriousxlv01 Stabilizer V1 185C", + "prompt": [ + "masterpiece", + "best quality", + "very aesthetic", + "absurdres", + "highres", + "detailed", + "sharp focus", + "vibrant colors", + "consistent anatomy", + "polished", + "cleaned lines", + "stable composition" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/illustriousXLv01_stabilizer_v1.185c.safetensors", + "lora_weight": 1.0, + "lora_triggers": "illustriousXLv01_stabilizer_v1.185c" + } +} \ No newline at end of file diff --git a/data/detailers/lazypos.json b/data/detailers/lazypos.json new file mode 100644 index 0000000..61e6f64 --- /dev/null +++ b/data/detailers/lazypos.json @@ -0,0 +1,32 @@ +{ + "detailer_id": "lazypos", + "detailer_name": "Lazypos", + "prompt": [ + "lazy", + "relaxing", + "lying down", + "lounging", + "sleeping", + "bed", + "couch", + "sprawling", + "stretching", + "messy hair", + "loose clothes", + "comfort", + "dozing off", + "closed eyes", + "yawning", + "pillow", + "blanket", + "masterpiece", + "best quality", + "highly detailed" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/lazypos.safetensors", + "lora_weight": 1.0, + "lora_triggers": "lazypos" + } +} \ No newline at end of file diff --git a/data/detailers/lip_bite_illust.json b/data/detailers/lip_bite_illust.json new file mode 100644 index 0000000..a80e93c --- /dev/null +++ b/data/detailers/lip_bite_illust.json @@ -0,0 +1,23 @@ +{ + "detailer_id": "lip_bite_illust", + "detailer_name": "Lip Bite Illust", + "prompt": [ + "biting_lip", + "lower_lip_bite", + "teeth", + "blush", + "nervous", + "embarrassed", + "seductive", + "looking_at_viewer", + "detailed mouth", + "detailed face", + "illustration" + ], + "focus": { "body": "head", "detailer": "face" }, + "lora": { + "lora_name": "Illustrious/Detailers/lip-bite-illust.safetensors", + "lora_weight": 1.0, + "lora_triggers": "lip-bite-illust" + } +} \ No newline at end of file diff --git a/data/detailers/makeup_slider___illustrious_alpha1_0_rank4_noxattn_last.json b/data/detailers/makeup_slider___illustrious_alpha1_0_rank4_noxattn_last.json new file mode 100644 index 0000000..2b2a614 --- /dev/null +++ b/data/detailers/makeup_slider___illustrious_alpha1_0_rank4_noxattn_last.json @@ -0,0 +1,22 @@ +{ + "detailer_id": "makeup_slider___illustrious_alpha1_0_rank4_noxattn_last", + "detailer_name": "Makeup Slider Illustrious Alpha1 0 Rank4 Noxattn Last", + "prompt": [ + "makeup", + "lipstick", + "eyeshadow", + "eyeliner", + "blush", + "eyelashes", + "cosmetic", + "detailed face", + "beautiful face", + "glossy lips" + ], + "focus": { "body": "head", "detailer": "face" }, + "lora": { + "lora_name": "Illustrious/Detailers/Makeup slider - Illustrious_alpha1.0_rank4_noxattn_last.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Makeup slider - Illustrious_alpha1.0_rank4_noxattn_last" + } +} \ No newline at end of file diff --git a/data/detailers/metallicmakeupill.json b/data/detailers/metallicmakeupill.json new file mode 100644 index 0000000..7532f8b --- /dev/null +++ b/data/detailers/metallicmakeupill.json @@ -0,0 +1,26 @@ +{ + "detailer_id": "metallicmakeupill", + "detailer_name": "Metallicmakeupill", + "prompt": [ + "metallic makeup", + "shiny skin", + "glitter", + "shimmering eyeshadow", + "golden eyeliner", + "silver lipstick", + "bronze highlights", + "chrome finish", + "iridescent", + "wet look", + "glamour", + "futuristic", + "highly detailed face", + "close-up" + ], + "focus": { "body": "head", "detailer": "face" }, + "lora": { + "lora_name": "Illustrious/Detailers/MetallicMakeupILL.safetensors", + "lora_weight": 1.0, + "lora_triggers": "MetallicMakeupILL" + } +} \ No newline at end of file diff --git a/data/detailers/nudify_xl_lite.json b/data/detailers/nudify_xl_lite.json new file mode 100644 index 0000000..7614916 --- /dev/null +++ b/data/detailers/nudify_xl_lite.json @@ -0,0 +1,22 @@ +{ + "detailer_id": "nudify_xl_lite", + "detailer_name": "Nudify Xl Lite", + "prompt": [ + "nude", + "naked", + "uncensored", + "nipples", + "pussy", + "breasts", + "navel", + "areola", + "anatomical details", + "nsfw" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/nudify_xl_lite.safetensors", + "lora_weight": 1.0, + "lora_triggers": "nudify_xl_lite" + } +} \ No newline at end of file diff --git a/data/detailers/penis_size_slider___illustrious___v5_alpha1_0_rank4_noxattn_last.json b/data/detailers/penis_size_slider___illustrious___v5_alpha1_0_rank4_noxattn_last.json new file mode 100644 index 0000000..45c8ccc --- /dev/null +++ b/data/detailers/penis_size_slider___illustrious___v5_alpha1_0_rank4_noxattn_last.json @@ -0,0 +1,10 @@ +{ + "detailer_id": "penis_size_slider___illustrious___v5_alpha1_0_rank4_noxattn_last", + "detailer_name": "Penis Size Slider Illustrious V5 Alpha1 0 Rank4 Noxattn Last", + "prompt": "penis, large penis, detailed genitals, erection, glans, veins, masterpiece, best quality", + "lora": { + "lora_name": "Illustrious/Detailers/Penis Size Slider - Illustrious - V5_alpha1.0_rank4_noxattn_last.safetensors", + "lora_weight": -5.0, + "lora_triggers": "Penis Size Slider - Illustrious - V5_alpha1.0_rank4_noxattn_last" + } +} \ No newline at end of file diff --git a/data/detailers/penisslider.json b/data/detailers/penisslider.json new file mode 100644 index 0000000..59e1fde --- /dev/null +++ b/data/detailers/penisslider.json @@ -0,0 +1,10 @@ +{ + "detailer_id": "penisslider", + "detailer_name": "Penisslider", + "prompt": "penis, erection, testicles, glans, detailed, veins, large penis, huge penis, anatomically correct", + "lora": { + "lora_name": "Illustrious/Detailers/PenisSlider.safetensors", + "lora_weight": -5.0, + "lora_triggers": "PenisSlider" + } +} \ No newline at end of file diff --git a/data/detailers/privet_part_v2.json b/data/detailers/privet_part_v2.json new file mode 100644 index 0000000..7b18d6b --- /dev/null +++ b/data/detailers/privet_part_v2.json @@ -0,0 +1,21 @@ +{ + "detailer_id": "privet_part_v2", + "detailer_name": "Privet Part V2", + "prompt": [ + "nsfw", + "uncensored", + "genitals", + "pussy", + "penis", + "nude", + "detailed anatomy", + "anatomically correct", + "genital focus" + ], + "focus": { "body": "lower body", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/privet-part-v2.safetensors", + "lora_weight": 1.0, + "lora_triggers": "privet-part-v2" + } +} \ No newline at end of file diff --git a/data/detailers/pussy_juice_illustrious_v1_0.json b/data/detailers/pussy_juice_illustrious_v1_0.json new file mode 100644 index 0000000..d5a4074 --- /dev/null +++ b/data/detailers/pussy_juice_illustrious_v1_0.json @@ -0,0 +1,22 @@ +{ + "detailer_id": "pussy_juice_illustrious_v1_0", + "detailer_name": "Pussy Juice Illustrious V1 0", + "prompt": [ + "pussy_juice", + "vaginal_fluids", + "excessive_body_fluids", + "dripping", + "wet", + "shiny_fluids", + "liquid_detail", + "hyperdetailed fluids", + "viscous liquid", + "trails_of_fluid" + ], + "focus": { "body": "lower body", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/pussy juice_illustrious_V1.0.safetensors", + "lora_weight": 1.0, + "lora_triggers": "pussy juice_illustrious_V1.0" + } +} \ No newline at end of file diff --git a/data/detailers/realcumv5_final.json b/data/detailers/realcumv5_final.json new file mode 100644 index 0000000..7c3ced0 --- /dev/null +++ b/data/detailers/realcumv5_final.json @@ -0,0 +1,26 @@ +{ + "detailer_id": "realcumv5_final", + "detailer_name": "Realcumv5 Final", + "prompt": [ + "cum", + "semen", + "realistic", + "liquid", + "wet", + "shiny", + "viscous", + "thick", + "messy", + "body fluids", + "masterpiece", + "best quality", + "ultra detailed", + "(photorealistic:1.4)" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/realcumv5_final.safetensors", + "lora_weight": 1.0, + "lora_triggers": "realcumv5_final" + } +} \ No newline at end of file diff --git a/data/detailers/realistic_cum_v1.json b/data/detailers/realistic_cum_v1.json new file mode 100644 index 0000000..8fdf12b --- /dev/null +++ b/data/detailers/realistic_cum_v1.json @@ -0,0 +1,10 @@ +{ + "detailer_id": "realistic_cum_v1", + "detailer_name": "Realistic Cum V1", + "prompt": "cum, semen, realistic, viscous, hyperdetailed, glossy, white liquid, sticky, dripping, wet, masterpiece, best quality", + "lora": { + "lora_name": "Illustrious/Detailers/realistic_cum_v1.safetensors", + "lora_weight": 0.9, + "lora_triggers": "realistic_cum_v1" + } +} \ No newline at end of file diff --git a/data/detailers/robots_lora_000010.json b/data/detailers/robots_lora_000010.json new file mode 100644 index 0000000..6e5a789 --- /dev/null +++ b/data/detailers/robots_lora_000010.json @@ -0,0 +1,28 @@ +{ + "detailer_id": "robots_lora_000010", + "detailer_name": "Robots Lora 000010", + "prompt": [ + "no_humans", + "robot", + "mecha", + "android", + "cyborg", + "mechanical parts", + "armor", + "metallic", + "glowing eyes", + "science fiction", + "intricate details", + "machinery", + "futuristic", + "joint (anatomy)", + "steel" + ], + "focus": { "body": "", "detailer": "" + }, + "lora": { + "lora_name": "Illustrious/Detailers/Robots_Lora-000010.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Robots_Lora-000010" + } +} \ No newline at end of file diff --git a/data/detailers/romanticredeyeshadowill.json b/data/detailers/romanticredeyeshadowill.json new file mode 100644 index 0000000..212e0af --- /dev/null +++ b/data/detailers/romanticredeyeshadowill.json @@ -0,0 +1,20 @@ +{ + "detailer_id": "romanticredeyeshadowill", + "detailer_name": "Romanticredeyeshadowill", + "prompt": [ + "red eyeshadow", + "eye makeup", + "romantic atmosphere", + "soft lighting", + "detailed eyes", + "cosmetics", + "feminine", + "beautiful eyes" + ], + "focus": { "body": "eyes", "detailer": "eyes" }, + "lora": { + "lora_name": "Illustrious/Detailers/romanticredeyeshadowILL.safetensors", + "lora_weight": 1.0, + "lora_triggers": "romanticredeyeshadowILL" + } +} \ No newline at end of file diff --git a/data/detailers/s1_dramatic_lighting_illustrious_v2.json b/data/detailers/s1_dramatic_lighting_illustrious_v2.json new file mode 100644 index 0000000..b43aaf1 --- /dev/null +++ b/data/detailers/s1_dramatic_lighting_illustrious_v2.json @@ -0,0 +1,25 @@ +{ + "detailer_id": "s1_dramatic_lighting_illustrious_v2", + "detailer_name": "S1 Dramatic Lighting Illustrious V2", + "prompt": [ + "dramatic lighting", + "cinematic lighting", + "chiaroscuro", + "volumetric lighting", + "strong contrast", + "raytracing", + "deep shadows", + "dynamic lighting", + "glowing light", + "atmospheric lighting", + "detailed light shafts", + "masterpiece", + "best quality" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/S1 Dramatic Lighting Illustrious_V2.safetensors", + "lora_weight": 1.0, + "lora_triggers": "S1 Dramatic Lighting Illustrious_V2" + } +} \ No newline at end of file diff --git a/data/detailers/sexy_details_3.json b/data/detailers/sexy_details_3.json new file mode 100644 index 0000000..312021c --- /dev/null +++ b/data/detailers/sexy_details_3.json @@ -0,0 +1,28 @@ +{ + "detailer_id": "sexy_details_3", + "detailer_name": "Sexy Details 3", + "prompt": [ + "masterpiece", + "best quality", + "ultra detailed", + "intricate details", + "realistic skin texture", + "shiny skin", + "sweat", + "blush", + "detailed eyes", + "perfect anatomy", + "voluptuous", + "detailed clothing", + "tight clothes", + "cinematic lighting", + "8k", + "hdr" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/sexy_details_3.safetensors", + "lora_weight": 1.0, + "lora_triggers": "sexy_details_3" + } +} \ No newline at end of file diff --git a/data/detailers/skindentationil3_4_alpha16_0_rank32_full_400steps.json b/data/detailers/skindentationil3_4_alpha16_0_rank32_full_400steps.json new file mode 100644 index 0000000..8edf270 --- /dev/null +++ b/data/detailers/skindentationil3_4_alpha16_0_rank32_full_400steps.json @@ -0,0 +1,10 @@ +{ + "detailer_id": "skindentationil3_4_alpha16_0_rank32_full_400steps", + "detailer_name": "Skindentationil3 4 Alpha16 0 Rank32 Full 400Steps", + "prompt": "skindentation, thigh squish, clothes digging into skin, skin tight, bulging flesh, soft skin, realistic anatomy, tight thighhighs, squeezing", + "lora": { + "lora_name": "Illustrious/Detailers/SkindentationIL3.4_alpha16.0_rank32_full_400steps.safetensors", + "lora_weight": 1.0, + "lora_triggers": "SkindentationIL3.4_alpha16.0_rank32_full_400steps" + } +} \ No newline at end of file diff --git a/data/detailers/sl1m3__1_.json b/data/detailers/sl1m3__1_.json new file mode 100644 index 0000000..410450b --- /dev/null +++ b/data/detailers/sl1m3__1_.json @@ -0,0 +1,20 @@ +{ + "detailer_id": "sl1m3__1_", + "detailer_name": "Sl1M3 1 ", + "prompt": [ + "slime", + "liquid", + "viscous", + "translucent", + "shiny", + "melting", + "goo", + "dripping" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/sl1m3 (1).safetensors", + "lora_weight": 0.8, + "lora_triggers": "sl1m3" + } +} \ No newline at end of file diff --git a/data/detailers/smooth_booster_v4.json b/data/detailers/smooth_booster_v4.json new file mode 100644 index 0000000..297088d --- /dev/null +++ b/data/detailers/smooth_booster_v4.json @@ -0,0 +1,24 @@ +{ + "detailer_id": "smooth_booster_v4", + "detailer_name": "Smooth Booster V4", + "prompt": [ + "best quality", + "masterpiece", + "highres", + "smooth skin", + "clean lines", + "noise reduction", + "soft lighting", + "sharp focus", + "clear image", + "finely detailed", + "4k", + "polished" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/Smooth_Booster_v4.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Smooth_Booster_v4" + } +} \ No newline at end of file diff --git a/data/detailers/solid_illustrious_v0_1_2st_1439046.json b/data/detailers/solid_illustrious_v0_1_2st_1439046.json new file mode 100644 index 0000000..dc2b428 --- /dev/null +++ b/data/detailers/solid_illustrious_v0_1_2st_1439046.json @@ -0,0 +1,23 @@ +{ + "detailer_id": "solid_illustrious_v0_1_2st_1439046", + "detailer_name": "Solid Illustrious V0 1 2St 1439046", + "prompt": [ + "masterpiece", + "best quality", + "very aesthetic", + "anime style", + "clean lines", + "hard edge", + "solid color", + "vibrant", + "sharp focus", + "cel shading", + "highly detailed" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/Solid_Illustrious_V0.1_2st_1439046.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Solid_Illustrious_V0.1_2st_1439046" + } +} \ No newline at end of file diff --git a/data/detailers/stickyil02d32.json b/data/detailers/stickyil02d32.json new file mode 100644 index 0000000..c74f50d --- /dev/null +++ b/data/detailers/stickyil02d32.json @@ -0,0 +1,23 @@ +{ + "detailer_id": "stickyil02d32", + "detailer_name": "Stickyil02D32", + "prompt": [ + "sticky", + "viscous", + "liquid", + "dripping", + "shiny", + "wet", + "goo", + "slime", + "covering", + "messy", + "glistening" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/stickyIL02d32.safetensors", + "lora_weight": 1.0, + "lora_triggers": "stickyIL02d32" + } +} \ No newline at end of file diff --git a/data/detailers/sts_age_slider_illustrious_v1.json b/data/detailers/sts_age_slider_illustrious_v1.json new file mode 100644 index 0000000..af03bad --- /dev/null +++ b/data/detailers/sts_age_slider_illustrious_v1.json @@ -0,0 +1,10 @@ +{ + "detailer_id": "sts_age_slider_illustrious_v1", + "detailer_name": "Sts Age Slider (-5)", + "prompt": "young, loli", + "lora": { + "lora_name": "Illustrious/Detailers/StS_Age_Slider_Illustrious_v1.safetensors", + "lora_weight": -5.0, + "lora_triggers": "StS_Age_Slider_Illustrious_v1" + } +} \ No newline at end of file diff --git a/data/detailers/sts_illustrious_detail_slider_v1_0.json b/data/detailers/sts_illustrious_detail_slider_v1_0.json new file mode 100644 index 0000000..b152cfe --- /dev/null +++ b/data/detailers/sts_illustrious_detail_slider_v1_0.json @@ -0,0 +1,22 @@ +{ + "detailer_id": "sts_illustrious_detail_slider_v1_0", + "detailer_name": "Sts Illustrious Detail Slider V1 0", + "prompt": [ + "masterpiece", + "best quality", + "highly detailed", + "intricate details", + "ultra detailed", + "sharp focus", + "highres", + "8k", + "extreme detail", + "detailed background" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/StS-Illustrious-Detail-Slider-v1.0.safetensors", + "lora_weight": 1.0, + "lora_triggers": "StS-Illustrious-Detail-Slider-v1.0" + } +} \ No newline at end of file diff --git a/data/detailers/thicc_v2_illu_1564907.json b/data/detailers/thicc_v2_illu_1564907.json new file mode 100644 index 0000000..3601ed8 --- /dev/null +++ b/data/detailers/thicc_v2_illu_1564907.json @@ -0,0 +1,21 @@ +{ + "detailer_id": "thicc_v2_illu_1564907", + "detailer_name": "Thicc V2 Illu 1564907", + "prompt": [ + "voluptuous", + "curvy", + "wide hips", + "thick thighs", + "plump", + "curvy body", + "thicc", + "female focus", + "solo" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/thicc_v2_illu_1564907.safetensors", + "lora_weight": 1.0, + "lora_triggers": "thicc_v2_illu_1564907" + } +} \ No newline at end of file diff --git a/data/detailers/thick_cum_v2_000019.json b/data/detailers/thick_cum_v2_000019.json new file mode 100644 index 0000000..1c9478c --- /dev/null +++ b/data/detailers/thick_cum_v2_000019.json @@ -0,0 +1,19 @@ +{ + "detailer_id": "thick_cum_v2_000019", + "detailer_name": "Thick Cum V2 000019", + "prompt": [ + "thick cum", + "shiny fluids", + "viscous liquid", + "hyper volume", + "excessive cum", + "white liquid", + "messy" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/Thick_cum_v2-000019.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Thick_cum_v2-000019" + } +} \ No newline at end of file diff --git a/data/detailers/trendcraft_the_peoples_style_detailer_v2_4i_5_18_2025_illustrious_1710115.json b/data/detailers/trendcraft_the_peoples_style_detailer_v2_4i_5_18_2025_illustrious_1710115.json new file mode 100644 index 0000000..21ef078 --- /dev/null +++ b/data/detailers/trendcraft_the_peoples_style_detailer_v2_4i_5_18_2025_illustrious_1710115.json @@ -0,0 +1,23 @@ +{ + "detailer_id": "trendcraft_the_peoples_style_detailer_v2_4i_5_18_2025_illustrious_1710115", + "detailer_name": "Trendcraft The Peoples Style Detailer V2 4I 5 18 2025 Illustrious 1710115", + "prompt": [ + "masterpiece", + "best quality", + "highly detailed", + "vibrant colors", + "trendy aesthetic", + "sharp focus", + "intricate details", + "professional digital illustration", + "dynamic lighting", + "polished finish", + "trendcraft style" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/TrendCraft_The_Peoples_Style_Detailer-v2.4I-5_18_2025-Illustrious_1710115.safetensors", + "lora_weight": 1.0, + "lora_triggers": "TrendCraft_The_Peoples_Style_Detailer-v2.4I-5_18_2025-Illustrious_1710115" + } +} \ No newline at end of file diff --git a/data/detailers/truephimosisill.json b/data/detailers/truephimosisill.json new file mode 100644 index 0000000..d8f6eaf --- /dev/null +++ b/data/detailers/truephimosisill.json @@ -0,0 +1,21 @@ +{ + "detailer_id": "truephimosisill", + "detailer_name": "Truephimosisill", + "prompt": [ + "penis", + "phimosis", + "foreskin", + "tight_foreskin", + "uncircumcised", + "covering_glans", + "detailed_anatomy", + "glans_covered", + "realistic" + ], + "focus": { "body": "lower body", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/TruePhimosisILL.safetensors", + "lora_weight": 1.0, + "lora_triggers": "TruePhimosisILL" + } +} \ No newline at end of file diff --git a/data/detailers/unagedown_v20.json b/data/detailers/unagedown_v20.json new file mode 100644 index 0000000..0063715 --- /dev/null +++ b/data/detailers/unagedown_v20.json @@ -0,0 +1,21 @@ +{ + "detailer_id": "unagedown_v20", + "detailer_name": "Unagedown V20", + "prompt": [ + "mature female", + "adult", + "woman", + "older", + "mature", + "25 years old", + "detailed face", + "sharp features", + "fully developed" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/unagedown_V20.safetensors", + "lora_weight": 1.0, + "lora_triggers": "unagedown_V20" + } +} \ No newline at end of file diff --git a/data/detailers/v4_glossy_skin.json b/data/detailers/v4_glossy_skin.json new file mode 100644 index 0000000..e74894d --- /dev/null +++ b/data/detailers/v4_glossy_skin.json @@ -0,0 +1,22 @@ +{ + "detailer_id": "v4_glossy_skin", + "detailer_name": "V4 Glossy Skin", + "prompt": [ + "glossy skin", + "oily skin", + "shiny skin", + "sweat", + "glistening", + "wet skin", + "realistic skin texture", + "subsurface scattering", + "high quality", + "masterpiece" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/V4_Glossy_Skin.safetensors", + "lora_weight": 1.0, + "lora_triggers": "V4_Glossy_Skin" + } +} \ No newline at end of file diff --git a/data/detailers/visible_nipples_il_v1.json b/data/detailers/visible_nipples_il_v1.json new file mode 100644 index 0000000..41b3fb7 --- /dev/null +++ b/data/detailers/visible_nipples_il_v1.json @@ -0,0 +1,17 @@ +{ + "detailer_id": "visible_nipples_il_v1", + "detailer_name": "Visible Nipples Il V1", + "prompt": [ + "visible_nipples", + "poking_nipples", + "nipples", + "anatomy", + "detailed_body" + ], + "focus": { "body": "upper body", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/visible_nipples_il_v1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "visible_nipples_il_v1" + } +} \ No newline at end of file diff --git a/data/detailers/wan_ultraviolet_v1.json b/data/detailers/wan_ultraviolet_v1.json new file mode 100644 index 0000000..1980ec4 --- /dev/null +++ b/data/detailers/wan_ultraviolet_v1.json @@ -0,0 +1,28 @@ +{ + "detailer_id": "wan_ultraviolet_v1", + "detailer_name": "Wan Ultraviolet V1", + "prompt": [ + "ultraviolet", + "blacklight", + "uv light", + "bioluminescence", + "glowing", + "neon", + "fluorescent colors", + "body paint", + "dark atmosphere", + "purple lighting", + "cyan lighting", + "glowing eyes", + "glowing hair", + "high contrast", + "cyberpunk", + "ethereal" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/wan_ultraviolet_v1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "wan_ultraviolet_v1" + } +} \ No newline at end of file diff --git a/data/detailers/zimage_lolizeta.json b/data/detailers/zimage_lolizeta.json new file mode 100644 index 0000000..6ff12b7 --- /dev/null +++ b/data/detailers/zimage_lolizeta.json @@ -0,0 +1,24 @@ +{ + "detailer_id": "zimage_lolizeta", + "detailer_name": "Zimage Lolizeta", + "prompt": [ + "1girl", + "solo", + "petite", + "cute", + "zimage style", + "masterpiece", + "best quality", + "highly detailed", + "vibrant colors", + "anime style", + "adorable", + "soft lighting" + ], + "focus": { "body": "", "detailer": "" }, + "lora": { + "lora_name": "Illustrious/Detailers/zimage_lolizeta.safetensors", + "lora_weight": 1.0, + "lora_triggers": "zimage_lolizeta" + } +} \ No newline at end of file diff --git a/data/scenes/arcade___illustrious.json b/data/scenes/arcade___illustrious.json new file mode 100644 index 0000000..effa1d2 --- /dev/null +++ b/data/scenes/arcade___illustrious.json @@ -0,0 +1,34 @@ +{ + "scene_id": "arcade___illustrious", + "scene_name": "Arcade Illustrious", + "description": "A vibrant, bustling interior of a Japanese-style game center illuminated by the glow of retro arcade cabinets and neon signs.", + "scene": { + "background": "arcade, indoors, game center, crowded, scenery, posters, ceiling lights, patterned carpet, rows of machines", + "foreground": "arcade cabinet, claw machine, joystick, buttons, screen, neon signage, glowing", + "furniture": [ + "arcade machine", + "crane game", + "stool", + "change machine" + ], + "colors": [ + "neon purple", + "cyan", + "magenta", + "dark blue" + ], + "lighting": "dimly lit, cinematic lighting, neon glow, screen light, bloom", + "theme": "gaming, retro, cyberpunk, nightlife" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/Arcade_-_Illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Arcade_-_Illustrious" + }, + "tags": [ + "video games", + "amusement", + "electronic", + "nostalgia" + ] +} \ No newline at end of file diff --git a/data/scenes/arcadev2.json b/data/scenes/arcadev2.json new file mode 100644 index 0000000..a7bcb1e --- /dev/null +++ b/data/scenes/arcadev2.json @@ -0,0 +1,38 @@ +{ + "scene_id": "arcadev2", + "scene_name": "Arcadev2", + "description": "A vibrant, dimly lit retro arcade filled with rows of classic game cabinets and neon signs.", + "scene": { + "background": "indoors, arcade, row of arcade machines, arcade cabinet, neon sign, patterned carpet, posters, crowd background", + "foreground": "arcade machine, joystick, buttons, coin slot, reflection, glowing screen", + "furniture": [ + "arcade cabinet", + "stool", + "pinball machine", + "crane game" + ], + "colors": [ + "neon purple", + "neon blue", + "cyan", + "magenta", + "black" + ], + "lighting": "dimly lit, neon glow, backlighting, screen glow, cinematic lighting", + "theme": "retro, synthwave, 1980s, gaming, cyberpunk" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/ArcadeV2.safetensors", + "lora_weight": 1.0, + "lora_triggers": "ArcadeV2" + }, + "tags": [ + "arcade", + "scenery", + "retro gaming", + "indoors", + "neon lights", + "video games", + "atmosphere" + ] +} \ No newline at end of file diff --git a/data/scenes/backstage.json b/data/scenes/backstage.json new file mode 100644 index 0000000..8555a72 --- /dev/null +++ b/data/scenes/backstage.json @@ -0,0 +1,35 @@ +{ + "scene_id": "backstage", + "scene_name": "Backstage", + "description": "A cluttered and atmospheric backstage dressing room area behind the scenes of a performance venue.", + "scene": { + "background": "indoors, backstage, brick wall, electrical wires, flight cases, musical equipment, posters on wall", + "foreground": "vanity mirror, light bulbs, makeup tools, scattered clothes, clothing rack, hanging clothes", + "furniture": [ + "vanity table", + "folding chair", + "clothing rack", + "sofa" + ], + "colors": [ + "tungsten yellow", + "dark grey", + "black", + "wood brown" + ], + "lighting": "dim lighting, warm lighting, artificial light, cinematic lighting, dramatic shadows", + "theme": "behind the scenes, concerts, theater, preparation" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/Backstage.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Backstage" + }, + "tags": [ + "backstage", + "dressing room", + "green room", + "behind the scenes", + "concert venue" + ] +} \ No newline at end of file diff --git a/data/scenes/barbie_b3dr00m_i.json b/data/scenes/barbie_b3dr00m_i.json new file mode 100644 index 0000000..3d34619 --- /dev/null +++ b/data/scenes/barbie_b3dr00m_i.json @@ -0,0 +1,39 @@ +{ + "scene_id": "barbie_b3dr00m_i", + "scene_name": "Barbie B3Dr00M I", + "description": "A vibrant and glamorous bedroom inspired by a Barbie dream house, featuring extensive pink decor, plastic-like textures, and cute, girly aesthetics typical of a dollhouse interior.", + "scene": { + "background": "indoors, bedroom, pink wallpaper, heart pattern, window, lace curtains, chandelier, ornate walls", + "foreground": "bed, pink bedding, fluffy pillows, stuffed toys, perfume bottles, vanity mirror", + "furniture": [ + "canopy bed", + "vanity table", + "heart-shaped chair", + "wardrobe", + "nightstand" + ], + "colors": [ + "pink", + "magenta", + "white", + "fuchsia", + "pastel pink" + ], + "lighting": "bright, soft box, sparkling, dreamy, sunlight", + "theme": "barbiecore, dollhouse, girly, plastic, cute" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/Barbie_b3dr00m-i.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Barbie_b3dr00m-i" + }, + "tags": [ + "interior", + "bedroom", + "barbie", + "pink", + "dollhouse", + "cozy", + "room" + ] +} \ No newline at end of file diff --git a/data/scenes/bedroom_(pink).json b/data/scenes/bedroom_(pink).json new file mode 100644 index 0000000..5dcc569 --- /dev/null +++ b/data/scenes/bedroom_(pink).json @@ -0,0 +1,17 @@ +{ + "scene_id": "bedroom_(pink)", + "description": "A pink bedroom with a girly theme.", + "scene": { + "background": "wallpaper", + "foreground": "plush carpet", + "furniture": ["bed", "desk", "chair", "wardrobe", "window"], + "colors": ["pink", "white"], + "lighting": "soft", + "theme": "girly, cute" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/Girl_b3dr00m-i.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Girl_b3dr00m-i" + } +} \ No newline at end of file diff --git a/data/scenes/bedroom_0f_4_succubus_i.json b/data/scenes/bedroom_0f_4_succubus_i.json new file mode 100644 index 0000000..b0e9e5b --- /dev/null +++ b/data/scenes/bedroom_0f_4_succubus_i.json @@ -0,0 +1,35 @@ +{ + "scene_id": "bedroom_0f_4_succubus_i", + "scene_name": "Bedroom 0F 4 Succubus I", + "description": "A lavish and moody gothic bedroom designed for a succubus, featuring dark romantic aesthetics, mystical colors, and ornate furniture.", + "scene": { + "background": "indoors, bedroom, gothic architecture, stone walls, stained glass window, night", + "foreground": "ornate canopy bed, silk sheets, heart motif, scattered rose petals, magical aura", + "furniture": [ + "canopy bed", + "antique vanity", + "candelabra", + "heavy velvet curtains" + ], + "colors": [ + "crimson", + "black", + "deep purple", + "gold" + ], + "lighting": "dim lighting, candlelight, purple ambient glow, volumetric lighting", + "theme": "dark fantasy" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/bedroom_0f_4_succubus-i.safetensors", + "lora_weight": 1.0, + "lora_triggers": "bedroom_0f_4_succubus-i" + }, + "tags": [ + "interior", + "gothic", + "fantasy", + "luxurious", + "succubus theme" + ] +} \ No newline at end of file diff --git a/data/scenes/before_the_chalkboard_il.json b/data/scenes/before_the_chalkboard_il.json new file mode 100644 index 0000000..9092fff --- /dev/null +++ b/data/scenes/before_the_chalkboard_il.json @@ -0,0 +1,34 @@ +{ + "scene_id": "before_the_chalkboard_il", + "scene_name": "Before The Chalkboard Il", + "description": "A character standing confidently in a classroom setting with a chalkboard full of equations and notes in the background.", + "scene": { + "background": "indoors, classroom, school, chalkboard, greenboard, math, formula, writing on board, window, daylight, dust motes", + "foreground": "solo, standing, looking at viewer, holding chalk, pointing, school uniform, upper body", + "furniture": [ + "chalkboard", + "teacher's desk", + "podium" + ], + "colors": [ + "dark green", + "chalk white", + "wood brown", + "creamy beige" + ], + "lighting": "natural light, sunbeams, soft indoor lighting, cinematic lighting", + "theme": "education, school life, presentation" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/Before_the_Chalkboard_IL.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Before_the_Chalkboard_IL" + }, + "tags": [ + "classroom", + "chalkboard", + "school", + "teaching", + "presentation" + ] +} \ No newline at end of file diff --git a/data/scenes/canopy_bed.json b/data/scenes/canopy_bed.json new file mode 100644 index 0000000..e1ec534 --- /dev/null +++ b/data/scenes/canopy_bed.json @@ -0,0 +1,34 @@ +{ + "scene_id": "canopy_bed", + "scene_name": "Canopy Bed", + "description": "An ornate and elegant bedroom featuring a grand four-poster canopy bed with flowing sheer drapes, bathed in soft window light.", + "scene": { + "background": "indoors, bedroom, master_bedroom, ornate_wallpaper, large_window, patterned_carpet, victorian_decor", + "foreground": "canopy_bed, four-poster_bed, bed_curtains, white_bed_sheet, plush_pillows, duvet, no_humans", + "furniture": [ + "bedside_table", + "antique_lamp", + "vanity_desk", + "tufted_bench" + ], + "colors": [ + "cream", + "gold", + "white", + "pale_blue" + ], + "lighting": "soft_lighting, natural_light, volumetric_lighting, sunbeams", + "theme": "aristocratic, cozy, vintage, romance" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/Canopy_Bed.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Canopy_Bed" + }, + "tags": [ + "interior_design", + "furniture", + "scenery", + "classic" + ] +} \ No newline at end of file diff --git a/data/scenes/cozy_bedroom___illustrious.json b/data/scenes/cozy_bedroom___illustrious.json new file mode 100644 index 0000000..87444ef --- /dev/null +++ b/data/scenes/cozy_bedroom___illustrious.json @@ -0,0 +1,35 @@ +{ + "scene_id": "cozy_bedroom___illustrious", + "scene_name": "Cozy Bedroom Illustrious", + "description": "A warm and inviting bedroom filled with soft light, plush textures, and a relaxing atmosphere.", + "scene": { + "background": "indoors, bedroom, window, white curtains, sunlight, wood floor, bookshelf, potted plant, cluttered", + "foreground": "bed, messy bed, white bed sheet, duvet, pile of pillows, plush toy, blanket", + "furniture": [ + "double bed", + "nightstand", + "rug", + "desk" + ], + "colors": [ + "beige", + "warm brown", + "cream", + "pastel yellow" + ], + "lighting": "warm lighting, natural light, soft illumination, afternoon sun", + "theme": "cozy, comfort, slice of life, relaxation" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/Cozy_bedroom_-_Illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Cozy_bedroom_-_Illustrious" + }, + "tags": [ + "scenery", + "no humans", + "interior", + "highly detailed", + "aesthetic" + ] +} \ No newline at end of file diff --git a/data/scenes/forestill.json b/data/scenes/forestill.json new file mode 100644 index 0000000..4f1899c --- /dev/null +++ b/data/scenes/forestill.json @@ -0,0 +1,35 @@ +{ + "scene_id": "forestill", + "scene_name": "Forestill", + "description": "A lush, enchanted forest floor illuminated by shafts of sunlight filtering through ancient trees, rendered in a detailed illustrative style.", + "scene": { + "background": "forest, tree, nature, outdoors, scenery, woodland, trunk, leaf, ancient tree, dense foliage, moss", + "foreground": "grass, flower, path, roots, fern, plant, mushroom", + "furniture": [ + "fallen log", + "stump" + ], + "colors": [ + "emerald green", + "earth brown", + "golden yellow", + "soft teal" + ], + "lighting": "sunlight, sunbeam, dappled sunlight, god rays, atmospheric lighting", + "theme": "nature, fantasy, ethereal, mysterious, tranquil" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/ForestILL.safetensors", + "lora_weight": 1.0, + "lora_triggers": "ForestILL" + }, + "tags": [ + "forest", + "illustration", + "scenery", + "fantasy", + "nature", + "detailed", + "vegetation" + ] +} \ No newline at end of file diff --git a/data/scenes/girl_b3dr00m_i.json b/data/scenes/girl_b3dr00m_i.json new file mode 100644 index 0000000..5589343 --- /dev/null +++ b/data/scenes/girl_b3dr00m_i.json @@ -0,0 +1,41 @@ +{ + "scene_id": "girl_b3dr00m_i", + "scene_name": "Girl B3Dr00M I", + "description": "A cozy, lived-in girl's bedroom filled with soft textures, personal items, and pastel decor.", + "scene": { + "background": "indoors, bedroom, window, curtains, bookshelf, posters, wallpaper, ", + "foreground": "bed, pillows, stuffed toy, blanket, sheets, cushions", + "furniture": [ + "bed", + "desk", + "chair", + "nightstand", + "rug", + "shelves" + ], + "colors": [ + "pastel pink", + "white", + "cream", + "light blue", + "lavender" + ], + "lighting": "soft natural light, sunlight, bright, ambient occlusion", + "theme": "cozy, cute, kawaii,interior" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/Girl_b3dr00m-i.safetensors", + "lora_weight": 0.7, + "lora_triggers": "Girl_b3dr00m-i" + }, + "tags": [ + "indoors", + "bedroom", + "scenery", + "no humans", + "room", + "furniture", + "messy", + "pastel colors" + ] +} \ No newline at end of file diff --git a/data/scenes/glass_block_wall_il_2_d16.json b/data/scenes/glass_block_wall_il_2_d16.json new file mode 100644 index 0000000..b30fefe --- /dev/null +++ b/data/scenes/glass_block_wall_il_2_d16.json @@ -0,0 +1,36 @@ +{ + "scene_id": "glass_block_wall_il_2_d16", + "scene_name": "Glass Block Wall Il 2 D16", + "description": "A bright, retro-modern interior space featuring a textured glass block wall that distorts sunlight into soft, geometric patterns across the tiled floor.", + "scene": { + "background": "glass_block_wall, indoors, architecture, white_wall, window, tiled_floor, blurred_background", + "foreground": "potted_plant, sunlight, heavy_shadows, no_humans, reflection", + "furniture": [ + "sleek_sofa", + "metal_coffee_table", + "potted_fern" + ], + "colors": [ + "white", + "cyan", + "light_gray", + "green" + ], + "lighting": "natural_light, caustics, volumetric_lighting, subsurface_scattering, day", + "theme": "interior_design, 1980s_style, aesthetic, minimalism" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/glass_block_wall_il_2_d16.safetensors", + "lora_weight": 1.0, + "lora_triggers": "glass_block_wall_il_2_d16" + }, + "tags": [ + "glass_block_wall", + "scenery", + "interior", + "translucent", + "retro", + "distortion", + "architectural" + ] +} \ No newline at end of file diff --git a/data/scenes/homeless_ossan_v2.json b/data/scenes/homeless_ossan_v2.json new file mode 100644 index 0000000..cf1c992 --- /dev/null +++ b/data/scenes/homeless_ossan_v2.json @@ -0,0 +1,39 @@ +{ + "scene_id": "homeless_ossan_v2", + "scene_name": "Homeless Ossan V2", + "description": "A gritty and melancholic urban scene featuring a disheveled middle-aged man sitting in a dimly lit alleyway surrounded by the remnants of daily life.", + "scene": { + "background": "outdoors, alley, night, brick wall, graffiti, trash, garbage, asphalt, damp, scenery, depth of field", + "foreground": "1male, solo, ossan, middle-aged man, beard, stubble, wrinkled skin, dirty face, messy hair, tired eyes, worn clothes, torn jacket, beanie, sitting on ground, crouching, gloom, realistic", + "furniture": [ + "cardboard box", + "blue tarp", + "milk crate", + "empty can" + ], + "colors": [ + "grey", + "brown", + "black", + "mustard yellow", + "desaturated" + ], + "lighting": "dim lighting, cinematic lighting, street light, harsh shadows, low key, volumetric lighting", + "theme": "poverty, homelessness, urban decay, depression, survival, realistic" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/homeless_ossan_V2.safetensors", + "lora_weight": 1.0, + "lora_triggers": "homeless_ossan_V2" + }, + "tags": [ + "homeless", + "ossan", + "poverty", + "urban", + "gritty", + "middle-aged", + "realistic", + "depressed" + ] +} \ No newline at end of file diff --git a/data/scenes/il_medieval_brothel_bedroom_r1.json b/data/scenes/il_medieval_brothel_bedroom_r1.json new file mode 100644 index 0000000..7b0fc2f --- /dev/null +++ b/data/scenes/il_medieval_brothel_bedroom_r1.json @@ -0,0 +1,40 @@ +{ + "scene_id": "il_medieval_brothel_bedroom_r1", + "scene_name": "Il Medieval Brothel Bedroom R1", + "description": "A dimly lit, intimate medieval bedroom with rustic stone walls and luxurious red ornate fabrics, illuminated by warm candlelight and a fireplace.", + "scene": { + "background": "indoors, stone wall, wood flooring, arched window, fireplace, tapestry, medieval interior, wooden beams, night", + "foreground": "canopy bed, red bedding, messy sheets, velvet pillows, fur rug, ornate chair, goblet, washbasin", + "furniture": [ + "four-poster bed", + "vanity table", + "wooden trunk", + "dressing screen", + "candle stand" + ], + "colors": [ + "crimson", + "brown", + "gold", + "amber", + "deep purple" + ], + "lighting": "candlelight, firelight, warm lighting, dim, volumetric lighting, atmospheric, low key", + "theme": "medieval, fantasy, romance, historical, rustic, intimate" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/IL_Medieval_brothel_Bedroom_r1.safetensors", + "lora_weight": 1.0, + "lora_triggers": "IL_Medieval_brothel_Bedroom_r1" + }, + "tags": [ + "medieval", + "bedroom", + "brothel", + "interior", + "fantasy", + "intricate", + "luxury", + "romantic atmosphere" + ] +} \ No newline at end of file diff --git a/data/scenes/il_vintage_tavern.json b/data/scenes/il_vintage_tavern.json new file mode 100644 index 0000000..42f02ba --- /dev/null +++ b/data/scenes/il_vintage_tavern.json @@ -0,0 +1,41 @@ +{ + "scene_id": "il_vintage_tavern", + "scene_name": "Il Vintage Tavern", + "description": "A cozy and rustic tavern interior featuring aged wooden beams, stone walls filled with shelves of bottles, and a warm, inviting atmosphere illuminated by soft lantern light.", + "scene": { + "background": "indoors, tavern, bar, shelves, glass bottle, alcohol, stone wall, wooden wall, fireplace, shelf, blur", + "foreground": "table, wooden chair, tankard, candle, countertop", + "furniture": [ + "wooden beams", + "bar counter", + "bar stool", + "barrels", + "wooden table", + "chandelier" + ], + "colors": [ + "brown", + "amber", + "dark wood", + "warm yellow", + "orange" + ], + "lighting": "warm lighting, candlelight, cinematic lighting, lantern light, volumetric lighting, low light", + "theme": "rustic, medieval, fantasy, historical, cozy, pub" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/IL_Vintage_Tavern.safetensors", + "lora_weight": 1.0, + "lora_triggers": "IL_Vintage_Tavern" + }, + "tags": [ + "scenery", + "no humans", + "detailed background", + "architecture", + "interior", + "perspective", + "depth of field", + "realistic" + ] +} \ No newline at end of file diff --git a/data/scenes/laboratory___il.json b/data/scenes/laboratory___il.json new file mode 100644 index 0000000..984a65f --- /dev/null +++ b/data/scenes/laboratory___il.json @@ -0,0 +1,33 @@ +{ + "scene_id": "laboratory___il", + "scene_name": "Laboratory Il", + "description": "A detailed modern science laboratory scene featuring a cluttered workbench with various chemical experiments and high-tech equipment.", + "scene": { + "background": "indoors, laboratory, science, shelves, cabinets, poster, whiteboard, machinery, glass_wall", + "foreground": "table, desk, beaker, flask, test_tube, liquid, chemical, microscope, computer, laptop, messy_desk, paperwork, wire", + "furniture": [ + "lab_bench", + "metal_cabinet", + "stool" + ], + "colors": [ + "white", + "silver", + "cyan", + "glass" + ], + "lighting": "fluorescent, bright, cold_lighting, screen_glow", + "theme": "science, research, chemistry, technology" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/Laboratory_-_IL.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Laboratory_-_IL" + }, + "tags": [ + "scenery", + "no_humans", + "hyperdetailed", + "realistic" + ] +} \ No newline at end of file diff --git a/data/scenes/m4dscienc3_il.json b/data/scenes/m4dscienc3_il.json new file mode 100644 index 0000000..4d0b360 --- /dev/null +++ b/data/scenes/m4dscienc3_il.json @@ -0,0 +1,37 @@ +{ + "scene_id": "m4dscienc3_il", + "scene_name": "M4Dscienc3 Il", + "description": "A dark, cluttered laboratory filled with chaotic experiments, glowing chemical flasks, and sparking electrical equipment.", + "scene": { + "background": "indoors, laboratory, science fiction, mess, cluttered, wires, pipes, servers, electronics on wall, monitors, vapor", + "foreground": "flask, beaker, test tube, glowing liquid, bubbling, smoke, sparks, electricity, tesla coil, paperwork, glass shards", + "furniture": [ + "workbench", + "metal shelving", + "rusty table", + "control console" + ], + "colors": [ + "neon green", + "electric blue", + "dark grey", + "rust orange" + ], + "lighting": "dimly lit, cinematic lighting, volumetric lighting, glow from chemicals, bloom", + "theme": "mad science, cyberpunk, ominous, eccentric, hazard" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/M4DSCIENC3-IL.safetensors", + "lora_weight": 1.0, + "lora_triggers": "M4DSCIENC3-IL" + }, + "tags": [ + "masterpiece", + "best quality", + "highres", + "detailed background", + "illustration", + "concept art", + "scifi" + ] +} \ No newline at end of file diff --git a/data/scenes/midis_largeroom_v0_5_il_.json b/data/scenes/midis_largeroom_v0_5_il_.json new file mode 100644 index 0000000..6108603 --- /dev/null +++ b/data/scenes/midis_largeroom_v0_5_il_.json @@ -0,0 +1,34 @@ +{ + "scene_id": "midis_largeroom_v0_5_il_", + "scene_name": "Midis Largeroom V0 5 Il ", + "description": "An expansive, modern interior space featuring high ceilings and panoramic floor-to-ceiling windows.", + "scene": { + "background": "indoors, window, cityscape, sky, high_ceiling, glass_wall, scenery", + "foreground": "spacious, empty_room, polished_floor, depth_of_field", + "furniture": [ + "modern_sofa", + "coffee_table", + "potted_plant", + "carpet" + ], + "colors": [ + "white", + "beige", + "grey" + ], + "lighting": "natural_light, sunlight, cinematic_lighting, soft_shadows", + "theme": "modern_architecture, luxury, minimalism" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/midis_LargeRoom_V0.5[IL].safetensors", + "lora_weight": 1.0, + "lora_triggers": "midis_LargeRoom_V0.5[IL]" + }, + "tags": [ + "best_quality", + "masterpiece", + "ultra_detailed", + "architectural_photography", + "no_humans" + ] +} \ No newline at end of file diff --git a/data/scenes/mushroom.json b/data/scenes/mushroom.json new file mode 100644 index 0000000..d91d863 --- /dev/null +++ b/data/scenes/mushroom.json @@ -0,0 +1,34 @@ +{ + "scene_id": "mushroom", + "scene_name": "Mushroom", + "description": "A whimsical fantasy forest floor teeming with giant bioluminescent mushrooms and magical spores floating in the air.", + "scene": { + "background": "forest, trees, dense vegetation, moss, ferns, dark background, bokeh, nature, outdoors, mist", + "foreground": "mushroom, giant mushroom, glowing fungus, spores, sparkling, intricate details, dew drops, mycelium", + "furniture": [ + "tree stump", + "fallen log" + ], + "colors": [ + "forest green", + "bioluminescent blue", + "earthy brown", + "glowing purple" + ], + "lighting": "bioluminescence, soft atmospheric lighting, volumetric lighting, god rays, low light, cinematic", + "theme": "fantasy, magical, botanical, surreal, cottagecore" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/Mushroom.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Mushroom" + }, + "tags": [ + "nature", + "fantasy", + "scenery", + "no humans", + "masterpiece", + "best quality" + ] +} \ No newline at end of file diff --git a/data/scenes/mysterious_4lch3my_sh0p_i.json b/data/scenes/mysterious_4lch3my_sh0p_i.json new file mode 100644 index 0000000..238d50a --- /dev/null +++ b/data/scenes/mysterious_4lch3my_sh0p_i.json @@ -0,0 +1,38 @@ +{ + "scene_id": "mysterious_4lch3my_sh0p_i", + "scene_name": "Mysterious 4Lch3My Sh0P I", + "description": "A dimly lit, cluttered interior of an apothecary filled with bubbling potions, ancient tomes, and strange artifacts.", + "scene": { + "background": "indoors, room, wooden walls, stone floor, filled shelves, cobwebs, hanging plants, drying herbs", + "foreground": "counter, glass bottle, potion, glowing liquid, open book, scroll, skull, crystals, mortar and pestle", + "furniture": [ + "wooden counter", + "bookshelf", + "display cabinet", + "stool" + ], + "colors": [ + "dark brown", + "emerald green", + "amethyst purple", + "gold" + ], + "lighting": "dim, candlelight, lantern, glowing, cinematic lighting, volumetric lighting, shadows", + "theme": "fantasy, magic, alchemy, mystery, steampunk" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/mysterious_4lch3my_sh0p-i.safetensors", + "lora_weight": 1.0, + "lora_triggers": "mysterious_4lch3my_sh0p-i" + }, + "tags": [ + "alchemy", + "shop", + "magic", + "fantasy", + "interior", + "detailed", + "cluttered", + "mysterious" + ] +} \ No newline at end of file diff --git a/data/scenes/nightclub.json b/data/scenes/nightclub.json new file mode 100644 index 0000000..8170018 --- /dev/null +++ b/data/scenes/nightclub.json @@ -0,0 +1,40 @@ +{ + "scene_id": "nightclub", + "scene_name": "Nightclub", + "description": "A vibrant and energetic nightclub interior pulsing with neon lasers, haze, and a crowded dance floor atmosphere.", + "scene": { + "background": "indoors, nightclub, crowd, bokeh, dj booth, shelves, alcohol bottles, wall, dark", + "foreground": "dance floor, confetti, haze, laser beam", + "furniture": [ + "bar counter", + "bar stool", + "disco ball", + "couch", + "speakers", + "amplifier" + ], + "colors": [ + "purple", + "cyan", + "neon pink", + "black", + "midnight blue" + ], + "lighting": "cinematic lighting, volumetric lighting, strobe lights, dim, colorful, backlighting", + "theme": "nightlife, party, edm, rave" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/nightclub.safetensors", + "lora_weight": 1.0, + "lora_triggers": "nightclub" + }, + "tags": [ + "nightclub", + "party", + "neon", + "music", + "dance", + "crowd", + "alcohol" + ] +} \ No newline at end of file diff --git a/data/scenes/privacy_screen_anyillustriousxlfor_v11_came_1420_v1_0.json b/data/scenes/privacy_screen_anyillustriousxlfor_v11_came_1420_v1_0.json new file mode 100644 index 0000000..f387732 --- /dev/null +++ b/data/scenes/privacy_screen_anyillustriousxlfor_v11_came_1420_v1_0.json @@ -0,0 +1,35 @@ +{ + "scene_id": "privacy_screen_anyillustriousxlfor_v11_came_1420_v1_0", + "scene_name": "Privacy Screen Anyillustriousxlfor V11 Came 1420 V1 0", + "description": "An intimate indoor setting featuring a classic folding privacy screen acting as a room divider in a dressing area.", + "scene": { + "background": "indoors, bedroom, dressing room, wooden floor, painted wall, rug", + "foreground": "privacy screen, folding screen, room divider, wood frame, paper screen, ornate design", + "furniture": [ + "privacy screen", + "full-length mirror", + "clothes rack", + "stool" + ], + "colors": [ + "beige", + "light brown", + "warm white", + "cream" + ], + "lighting": "soft ambient lighting, indoor lighting, cast shadows", + "theme": "domestic, privacy, slice of life" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/privacy_screen_anyillustriousXLFor_v11_came_1420_v1.0.safetensors", + "lora_weight": 1.0, + "lora_triggers": "privacy_screen_anyillustriousXLFor_v11_came_1420_v1.0" + }, + "tags": [ + "privacy screen", + "room divider", + "furniture", + "indoors", + "folding screen" + ] +} \ No newline at end of file diff --git a/data/scenes/retrokitchenill.json b/data/scenes/retrokitchenill.json new file mode 100644 index 0000000..629f343 --- /dev/null +++ b/data/scenes/retrokitchenill.json @@ -0,0 +1,36 @@ +{ + "scene_id": "retrokitchenill", + "scene_name": "Retrokitchenill", + "description": "A charming, nostalgic mid-century modern kitchen illustration featuring pastel colors, checkered flooring, and vintage appliances.", + "scene": { + "background": "indoors, kitchen, tile floor, checkered floor, window, curtains, wallpaper, cabinets, retro style, scenery, no humans", + "foreground": "table, chair, refrigerator, stove, oven, sink, countertop, plant, vase, fruit bowl", + "furniture": [ + "chrome dinette set", + "rounded refrigerator", + "gas stove", + "formica table" + ], + "colors": [ + "mint green", + "pastel pink", + "cream", + "turquoise", + "chrome" + ], + "lighting": "soft lighting, natural light, flat lighting", + "theme": "vintage, retro, 1950s, pop art, domestic" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/RetroKitchenILL.safetensors", + "lora_weight": 1.0, + "lora_triggers": "RetroKitchenILL" + }, + "tags": [ + "retro", + "illustration", + "kitchen", + "aesthetic", + "vintage" + ] +} \ No newline at end of file diff --git a/data/scenes/scenicill.json b/data/scenes/scenicill.json new file mode 100644 index 0000000..20edae7 --- /dev/null +++ b/data/scenes/scenicill.json @@ -0,0 +1,34 @@ +{ + "scene_id": "scenicill", + "scene_name": "Scenicill", + "description": "A breathtaking fantasy landscape illustrating a vast valley with floating islands and cascading waterfalls under a vibrant sunset.", + "scene": { + "background": "scenery, outdoors, sky, clouds, day, mountain, waterfall, fantasy, tree, nature, water, river, floating_island, sunset, horizon, vast, panoramic view, aesthetic", + "foreground": "grass, flower, field, moss, rock, path, depth of field, detailed flora", + "furniture": [ + "ancient ruins", + "stone archway" + ], + "colors": [ + "gold", + "azure", + "cyan", + "verdant green" + ], + "lighting": "cinematic lighting, volumetric lighting, god rays, glimmering, golden hour", + "theme": "fantasy, adventure, majesty, tranquility" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/ScenicILL.safetensors", + "lora_weight": 1.0, + "lora_triggers": "ScenicILL" + }, + "tags": [ + "wallpaper", + "highly detailed", + "masterpiece", + "best quality", + "vivid colors", + "painting" + ] +} \ No newline at end of file diff --git a/data/scenes/space_backround_illustrious.json b/data/scenes/space_backround_illustrious.json new file mode 100644 index 0000000..4a498ac --- /dev/null +++ b/data/scenes/space_backround_illustrious.json @@ -0,0 +1,30 @@ +{ + "scene_id": "space_backround_illustrious", + "scene_name": "Space Backround Illustrious", + "description": "A breathtaking view of a vibrant, swirling nebula and distant galaxies in deep space.", + "scene": { + "background": "outer space, nebula, galaxy, milky way, starry sky, cosmic dust, purple space, blue space, hyperdetailed sky", + "foreground": "no humans, scenery, wide shot, lens flare", + "furniture": [], + "colors": [ + "deep violet", + "cyan", + "midnight blue", + "glowing magenta" + ], + "lighting": "bioluminescent, starlight, cinematic lighting, chromatic aberration", + "theme": "sci-fi, celestial, atmospheric, mysterious" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/space_backround_illustrious.safetensors", + "lora_weight": 1.0, + "lora_triggers": "space_backround_illustrious" + }, + "tags": [ + "masterpiece", + "best quality", + "wallpaper", + "astrophotography", + "concept art" + ] +} \ No newline at end of file diff --git a/data/scenes/vip.json b/data/scenes/vip.json new file mode 100644 index 0000000..91d2279 --- /dev/null +++ b/data/scenes/vip.json @@ -0,0 +1,35 @@ +{ + "scene_id": "vip", + "scene_name": "Vip", + "description": "A high-end, exclusive VIP lounge scene set in a luxury penthouse overlooking a city skyline at night.", + "scene": { + "background": "indoors, penthouse, luxury, cityscape, night, skyline, large window, heavy curtains, golden geometric patterns", + "foreground": "champagne bottle, ice bucket, crystal glasses, velvet rope, red carpet", + "furniture": [ + "chesterfield sofa", + "crystal chandelier", + "marble coffee table", + "gold accents" + ], + "colors": [ + "gold", + "black", + "burgundy", + "royal purple" + ], + "lighting": "dim lighting, mood lighting, cinematic, soft glow, city lights", + "theme": "luxury, wealth, exclusivity, nightlife" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/VIP.safetensors", + "lora_weight": 1.0, + "lora_triggers": "VIP" + }, + "tags": [ + "vip", + "luxury", + "rich", + "elegant", + "high lass" + ] +} \ No newline at end of file diff --git a/data/scenes/wedding_venue.json b/data/scenes/wedding_venue.json new file mode 100644 index 0000000..7046440 --- /dev/null +++ b/data/scenes/wedding_venue.json @@ -0,0 +1,37 @@ +{ + "scene_id": "wedding_venue", + "scene_name": "Wedding Venue", + "description": "A grand and romantic indoor wedding venue adorned with white floral arrangements, an elegant aisle runner, and soft, ethereal lighting illuminating the altar.", + "scene": { + "background": "indoors, church, stained glass, window, altar, arch, scenery, architecture", + "foreground": "aisle, carpet, flower petals, white flower, rose, no humans", + "furniture": [ + "pew", + "chair", + "chandelier", + "podium", + "vase" + ], + "colors": [ + "white", + "gold", + "pastel pink", + "cream" + ], + "lighting": "sunlight, volumetric lighting, bright, soft lighting, bloom", + "theme": "wedding, romance, ceremony, elegance" + }, + "lora": { + "lora_name": "Illustrious/Backgrounds/Wedding_Venue.safetensors", + "lora_weight": 1.0, + "lora_triggers": "Wedding_Venue" + }, + "tags": [ + "wedding", + "church", + "interior", + "romantic", + "flowers", + "ceremony" + ] +} \ No newline at end of file diff --git a/data/styles/3dvisualart1llust.json b/data/styles/3dvisualart1llust.json index 8f4afdb..07e7f5f 100644 --- a/data/styles/3dvisualart1llust.json +++ b/data/styles/3dvisualart1llust.json @@ -3,11 +3,11 @@ "style_name": "3D Visual Art", "style": { "artist_name": "", - "artistic_style": "" + "artistic_style": "3d, digital painting" }, "lora": { "lora_name": "Illustrious/Styles/3DVisualArt1llust.safetensors", - "lora_weight": 1.0, + "lora_weight": 0.8, "lora_triggers": "3DVisualArt1llust" } } \ No newline at end of file diff --git a/data/styles/7b_style.json b/data/styles/7b_style.json index 1e9473e..5b101b9 100644 --- a/data/styles/7b_style.json +++ b/data/styles/7b_style.json @@ -3,7 +3,7 @@ "style_name": "7B Dream", "style": { "artist_name": "7b_Dream", - "artistic_style": "" + "artistic_style": "3d" }, "lora": { "lora_name": "Illustrious/Styles/7b-style.safetensors", diff --git a/data/styles/_reinaldo_quintero__reiq___artist_style_illustrious.json b/data/styles/_reinaldo_quintero__reiq___artist_style_illustrious.json index bbba687..344b95d 100644 --- a/data/styles/_reinaldo_quintero__reiq___artist_style_illustrious.json +++ b/data/styles/_reinaldo_quintero__reiq___artist_style_illustrious.json @@ -1,6 +1,6 @@ { "style_id": "_reinaldo_quintero__reiq___artist_style_illustrious", - "style_name": " Reinaldo Quintero Reiq Artist Style Illustrious", + "style_name": " Reinaldo Quintero Reiq ", "style": { "artist_name": "reiq", "artistic_style": "" diff --git a/data/styles/dark_niji_style_il_v1_0.json b/data/styles/dark_niji_style_il_v1_0.json index 220166b..86c9ff3 100644 --- a/data/styles/dark_niji_style_il_v1_0.json +++ b/data/styles/dark_niji_style_il_v1_0.json @@ -3,7 +3,7 @@ "style_name": "Dark Niji Style Il V1 0", "style": { "artist_name": "", - "artistic_style": "" + "artistic_style": "dark" }, "lora": { "lora_name": "Illustrious/Styles/dark_Niji_style_IL_v1.0.safetensors", diff --git a/data/styles/david_nakayamaill.json b/data/styles/david_nakayamaill.json index 48554eb..8973b4d 100644 --- a/data/styles/david_nakayamaill.json +++ b/data/styles/david_nakayamaill.json @@ -2,7 +2,7 @@ "style_id": "david_nakayamaill", "style_name": "David Nakayamaill", "style": { - "artist_name": "", + "artist_name": "david_nakayama", "artistic_style": "" }, "lora": { diff --git a/data/styles/glossy_western_art_style___for_ezekkiell.json b/data/styles/glossy_western_art_style___for_ezekkiell.json index a9b9280..cc2520d 100644 --- a/data/styles/glossy_western_art_style___for_ezekkiell.json +++ b/data/styles/glossy_western_art_style___for_ezekkiell.json @@ -1,6 +1,6 @@ { "style_id": "glossy_western_art_style___for_ezekkiell", - "style_name": "Glossy Western Art Style For Ezekkiell", + "style_name": "Glossy Western Art", "style": { "artist_name": "", "artistic_style": "" diff --git a/migrate_actions.py b/migrate_actions.py new file mode 100644 index 0000000..b43c10b --- /dev/null +++ b/migrate_actions.py @@ -0,0 +1,63 @@ +import os +import json +from collections import OrderedDict + +ACTIONS_DIR = 'data/actions' + +def migrate_actions(): + if not os.path.exists(ACTIONS_DIR): + print(f"Directory {ACTIONS_DIR} not found.") + return + + count = 0 + for filename in os.listdir(ACTIONS_DIR): + if not filename.endswith('.json'): + continue + + filepath = os.path.join(ACTIONS_DIR, filename) + try: + with open(filepath, 'r') as f: + data = json.load(f, object_pairs_hook=OrderedDict) + + # Check if participants already exists + if 'participants' in data: + print(f"Skipping {filename}: 'participants' already exists.") + continue + + # Create new ordered dict to enforce order + new_data = OrderedDict() + + # Copy keys up to 'action' + found_action = False + for key, value in data.items(): + new_data[key] = value + if key == 'action': + found_action = True + # Insert participants here + new_data['participants'] = { + "solo_focus": "true", + "orientation": "MF" + } + + # If 'action' wasn't found, append at the end + if not found_action: + print(f"Warning: 'action' key not found in {filename}. Appending 'participants' at the end.") + new_data['participants'] = { + "solo_focus": "true", + "orientation": "MF" + } + + # Write back to file + with open(filepath, 'w') as f: + json.dump(new_data, f, indent=2) + + count += 1 + # print(f"Updated {filename}") # Commented out to reduce noise if many files + + except Exception as e: + print(f"Error processing {filename}: {e}") + + print(f"Migration complete. Updated {count} files.") + +if __name__ == "__main__": + migrate_actions() diff --git a/migrate_detailers.py b/migrate_detailers.py new file mode 100644 index 0000000..604a915 --- /dev/null +++ b/migrate_detailers.py @@ -0,0 +1,61 @@ +import os +import json +import re + +DETAILERS_DIR = 'data/detailers' + +def migrate_detailers(): + if not os.path.exists(DETAILERS_DIR): + print(f"Directory {DETAILERS_DIR} does not exist.") + return + + count = 0 + for filename in os.listdir(DETAILERS_DIR): + if filename.endswith('.json'): + file_path = os.path.join(DETAILERS_DIR, filename) + try: + with open(file_path, 'r') as f: + data = json.load(f) + + # Create a new ordered dictionary + new_data = {} + + # Copy existing fields up to 'prompt' + if 'detailer_id' in data: + new_data['detailer_id'] = data['detailer_id'] + if 'detailer_name' in data: + new_data['detailer_name'] = data['detailer_name'] + + # Handle 'prompt' + prompt_val = data.get('prompt', []) + if isinstance(prompt_val, str): + # Split by comma and strip whitespace + new_data['prompt'] = [p.strip() for p in prompt_val.split(',') if p.strip()] + else: + new_data['prompt'] = prompt_val + + # Insert 'focus' + if 'focus' not in data: + new_data['focus'] = "" + else: + new_data['focus'] = data['focus'] + + # Copy remaining fields + for key, value in data.items(): + if key not in ['detailer_id', 'detailer_name', 'prompt', 'focus']: + new_data[key] = value + + # Write back to file + with open(file_path, 'w') as f: + json.dump(new_data, f, indent=2) + + print(f"Migrated {filename}") + count += 1 + + except Exception as e: + print(f"Error processing {filename}: {e}") + + print(f"Migration complete. Processed {count} files.") + +if __name__ == '__main__': + migrate_detailers() diff --git a/models.py b/models.py index 13e97d6..50af65c 100644 --- a/models.py +++ b/models.py @@ -73,6 +73,32 @@ class Style(db.Model): def __repr__(self): return f'