이 문서가 설명하는config/nsfw_api_server.php는 10.5.1 배포판에 존재하지 않습니다. 10.4.0에서 배포판에 포함된vendor/nsfwjs/기반 브라우저 판정으로 대체되며 파일이 제거되었습니다. 현재 판본의 구현은 core-nsfw_api_browser-js.md 문서를 읽으십시오. 아래는 9.x 계열에서의 이력 서술입니다.
>
이 문서는 2026-09-28에 내용을 교체했습니다. 이전 판은 이 파일을 "레거시 호환용으로 남겨두라"고 안내했는데, 10.5.1 배포판에 지울 대상 자체가 없습니다.
파일 개요
부적절한 이미지 필터는 10.4.0부터 배포판에 포함된 파일만으로 브라우저에서 직접 구동합니다. 서버 엔드포인트를 경유하지 않습니다. 관련 파일은 셋입니다.
config/nsfw_api_browser.js ← 브라우저 판정 로직
config/nsfw_api_browser.php ← 엔드포인트
config/nsfw_api_browser.core.php ← 서버 처리
vendor/nsfwjs/nsfwjs.min.js
vendor/nsfwjs/models/mobilenet_v2_mid/{model.json, group1-shard1of2.bin, group1-shard2of2.bin}
왜 서버 엔드포인트가 필요 없어졌는가
9.x 계열까지는 브라우저가 모델 payload를 서버에서 받고, server 모드에서는 분류까지 서버에 POST했습니다. config/nsfw_api_server.php(?action=get_model·?action=classify)가 그 역할이었고, 10.5.1 배포판에는 이 파일이 없습니다. 10.4.0에서 필터가 배포판 내장 파일로 바뀌면서 이 파일은 제거됐습니다.
따라서 예전 문서처럼 "이 파일을 레거시 호환용으로 남겨두라"고 안내하는 것은 삭제된 파일을 다시 찾게 만드는 지시입니다. 10.5.1을 덮어쓴 설치에서 이 파일을 찾지 못하는 것은 정상입니다.
브라우저 판정 경로
- 에디터가 브라우저 NSFW 설정을 주입합니다.
- 이미지 플러그인이
config/nsfw_api_browser.js를 동적 import 합니다. - 이 파일이
vendor/nsfwjs/(TensorFlow.js + nsfwjs + MobileNetV2Mid 모델)를 로드합니다. - 분류 결과만 기존 이미지 UI에 전달합니다.
모델 경로는 T2_NSFW_BROWSER_MODEL_URL(기본 <에디터URL>/vendor/nsfwjs/models/mobilenet_v2_mid/model.json), 런타임 백엔드는 T2_NSFW_BROWSER_BACKEND_PRIORITY의 webgpu → webgl → wasm → cpu 폴백 순서입니다. 이 상수들은 editor.core.php가 if (!defined()) 가드로 기본값을 정의합니다.
관리자 설정
어떤 방식으로 검사를 실행할지는 관리자가 설정할 수 있습니다(10.4.0). 통합 관리 페이지의 부적절한 이미지 필터 항목에서 조정합니다(N-02-admin-console-guide.md). 10.4.0에서 "특정 설치 환경에서 필터가 아예 작동하지 않던 문제"와 "움직이는 GIF를 검사할 때 오류가 나던 문제"가 해결됐고, 10.5.0에서 GIF 자체 업로드 500 오류도 해결됐습니다.
운영자용 판단
config/nsfw_api_server.php를 "레거시 호환 파일"로 유지하십시오 → 이 지시를 따르지 마십시오. 배포판에 없습니다.- 9.x 배포판에서 이 파일을 참조하는 구버전 JS가 남아 있나 → 10.5.1 덮어쓰기 후 남은
js/·plugin/정적 파일이나 서버/CDN 캐시를 확인하십시오. 구버전 정적 파일이 남아 있으면 브라우저가 옛 경로를 호출할 수 있습니다. T2_NSFW_MODE = 'server'→ 10.5.1 배포판config/·루트 어디에도 이 상수 정의가 없습니다.[확인 필요]— 9.x 전용이었고 10.5.1에서 제거됐는지 값이 바뀐 것인지는 실물 상수 검색으로 추가 확인이 필요합니다.
관련 문서
- 실제 구현: core-nsfw_api_browser-js.md
- 오류 대처(NSFW 관련): 71-error-handling-guide.md
- 보안: 74-security-guide.md
삭제 제안(적용하지 않음 — 방장 결정 사항)
X4 문안관이 "이 문서를 삭제하고 core-nsfw_api_browser로 대체한다"는 안을 냈습니다. 통합관은 삭제·이름변경 제안을 적용하지 않았습니다(방장 지시). 대신 같은 슬러그에 이력 문서를 유지하고 실제 구현 문서로 링크를 연결했습니다. 슬러그를 지우면 위키에 [[core-nsfw_api_server-php.md]]를 참조하는 문서가 끊어집니다.详见 final/_DELETE-OR-REVIEW.md.
내가 틀릴 수 있는 것 3가지
T2_NSFW_MODE의 10.5.1 존재 여부를 확정하지 못했습니다.editor.core.php에T2_NSFW_*계열은 있으나 이 이름은 없습니다. "[확인 필요]"로 남겼습니다.- "배포판 트리에
nsfw_api_server문자열이 0건"은releases/v10.5.1git 트리 기준입니다. 실제 배포 ZIP의 파일 목록은download_url오염 금지 규칙으로 확인하지 않았습니다. ZIP에 구버전 정적 파일이 함께 들어 있을 가능성은 배제하지 않았습니다. - 이 문서의 원본 162행은 9.1.0 시점 서술입니다. 교체를 요청한 문안관도 "삭제 vs 이력 페이지 유지" 선택을 부장 몫으로 넘겼습니다. 제가 "이력 페이지 유지"를 택한 것은 지시(삭제 제안 미적용)를 따른 결과이며, 내용 판단이 아닙니다. 같은 이유로 본문 안에 남아 있는 9.x 서술(과거 시점)은 현재 지시로 오독하지 않습니다.