84 lines
2.3 KiB
Python
84 lines
2.3 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. Can be overridden at runtime
|
|
# via the IMAGE_DIRS environment variable (colon-separated paths).
|
|
_IMAGE_DIRS_DEFAULT = [
|
|
"/media/Portrait",
|
|
"/media/Landscape",
|
|
]
|
|
|
|
_IMAGE_DIRS_ENV = os.getenv("IMAGE_DIRS")
|
|
if _IMAGE_DIRS_ENV:
|
|
IMAGE_DIRS = _IMAGE_DIRS_ENV.split(":")
|
|
else:
|
|
IMAGE_DIRS = _IMAGE_DIRS_DEFAULT
|
|
|
|
# Backwards-compatibility: first directory
|
|
IMAGE_DIR = IMAGE_DIRS[0] if IMAGE_DIRS else ""
|
|
from typing import Optional
|
|
|
|
# Data directory (override with DATA_DIR env var)
|
|
DATA_DIR = os.getenv("DATA_DIR", BASE_DIR)
|
|
|
|
# SQLite database file that stores selections & metadata
|
|
DB_PATH = os.path.join(DATA_DIR, "image_selections.db")
|
|
|
|
# Default port for the HTTP server (override with PORT env var)
|
|
PORT = int(os.getenv("PORT", 8888))
|
|
|
|
# ---------------------------------------------------------------------------
|
|
# 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
|