Files
swiper/config.py
2025-06-25 04:21:13 +01:00

75 lines
2.0 KiB
Python

import os
# Configuration constants for the SWIPER application
# --------------------------------------------------
# Centralising these values avoids circular imports
# and makes it easy to update paths / ports later
# Base directory of the repo (this file lives in the project root)
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
# Paths to the folders that contain source images. Add as many as you like.
IMAGE_DIRS = [
"/mnt/secret-items/sd-outputs/Sorted/Images/Portrait",
"/mnt/secret-items/sd-outputs/Sorted/Images/Landscape",
]
# Backwards-compatibility: first directory
IMAGE_DIR = IMAGE_DIRS[0]
from typing import Optional
# SQLite database file that stores selections & metadata
DB_PATH = os.path.join(BASE_DIR, "image_selections.db")
# Default port for the HTTP server
PORT = 8000
# ---------------------------------------------------------------------------
# NSFW detection configuration
# ---------------------------------------------------------------------------
# List of keywords that, if present in an image's prompt data, should mark the
# image as NSFW. Feel free to customise this list as appropriate for your own
# needs.
NSFW_KEYWORDS = [
"nude",
"nudity",
"porn",
"explicit",
"sexual",
"sex",
"boobs",
"nipples",
"penis",
"vagina",
"pussy",
"cum",
"fellatio",
"blowjob",
"cunnilingus",
"paizuri",
"rape",
"handjob",
"lingerie",
"bikini",
"latex",
"saliva",
"ass",
"condom",
]
# ---------------------------------------------------------------------------
# Utility helpers
# ---------------------------------------------------------------------------
def find_image_file(rel_path: str) -> Optional[str]:
"""Return absolute path to `rel_path` by searching all IMAGE_DIRS.
Returns None if file is not found in any configured directory.
"""
for base in IMAGE_DIRS:
abs_path = os.path.join(base, rel_path)
if os.path.exists(abs_path):
return abs_path
return None