🔐로그인하면 문서 작성, 프로젝트 게시, ZIP 기반 버전 업로드, 브랜치 생성 기능을 사용할 수 있습니다. 로그인하러 가기

설정: NSFWJS 런타임과 모델 경로

Answer Summary

--- title: 설정: NSFWJS 런타임과 모델 경로 document_id: config-nsfwjs-runtime-settings slug: config-nsfwjs-runtime-settings target_editor_version: 9.1.0 document_type: config-guide doc_type:…

브랜치 ⎇ main
리비전 r2
작성자 T2Editor
수정 2026.04.17
요약 고아링크삭제
md

#설정 #NSFW

요약

NSFWJS 관련 핵심 설정은 editor.lib.php에서 정의되고, 실제 브라우저 실행 시에는 window.T2EDITOR_NSFW_* 전역 값으로 전달됩니다. 즉, PHP 상수와 브라우저 런타임 값이 둘 다 맞아야 정상 동작합니다.

파일 개요

  • 핵심 파일: 9.1.0/t2editor/editor.lib.php
  • 관련 런타임 파일: 9.1.0/t2editor/config/nsfw_api_browser.js

이 문서는 “어떤 값을 어디서 바꾸면 되는가”를 정리한 운영 문서입니다.

초보자와 웹마스터를 위한 이해

이 기능은 크게 두 층으로 나뉩니다.

역할
PHP 설정층기본값 선언, URL 조립, JS 전역 설정 출력
브라우저 실행층모델 로딩, 백엔드 선택, 이미지 판정 수행

그래서 파일만 복사해 넣고 끝나는 경우보다, 설치 경로와 URL 경로까지 정확히 맞추는 일이 더 중요합니다.

주요 설정값

T2_NSFW_ENABLED

php
define('T2_NSFW_ENABLED', true);

NSFW 필터 전체 사용 여부입니다.

  • true: 필터 활성화
  • false: 필터 비활성화

T2_NSFW_MODE

php
define('T2_NSFW_MODE', 'browser');

판정 방식입니다.

의미
browser브라우저에서 NSFWJS로 판정
server서버 API 경로를 사용하는 레거시 또는 대체 방식

9.1.0에서는 browser를 기본 권장값으로 문서화하는 것이 맞습니다.

T2_NSFW_ALLOW_SUSPICIOUS

php
define('T2_NSFW_ALLOW_SUSPICIOUS', true);

safe가 아닌 결과 중 suspect 또는 unsafe를 어떻게 처리할지 결정하는 정책입니다.

  • true: 경고 후 업로드를 허용할 수 있음
  • false: 정책상 업로드 취소 처리 가능

T2_NSFW_RUNTIME_ASSET_BASE

php
define('T2_NSFW_RUNTIME_ASSET_BASE', T2EDITOR_URL . '/vendor');

TensorFlow.js, 백엔드 스크립트, NSFWJS, 모델 파일의 루트 경로입니다.

이 값이 틀리면 아래 자산 경로도 모두 틀어질 수 있습니다.

T2_NSFW_BROWSER_MODEL

php
define('T2_NSFW_BROWSER_MODEL', 'MobileNetV2Mid');

브라우저에서 사용할 기본 모델 이름입니다.

T2_NSFW_BROWSER_MODEL_TYPE

php
define('T2_NSFW_BROWSER_MODEL_TYPE', 'graph');

모델 유형입니다. modelUrl로 직접 호스팅한 MobileNetV2Mid를 읽을 때는 문서와 코드가 모두 이 설정을 기준으로 움직이도록 맞춰 두는 편이 안전합니다.

T2_NSFW_BROWSER_MODEL_URL

php
define( 'T2_NSFW_BROWSER_MODEL_URL', T2_NSFW_RUNTIME_ASSET_BASE . '/nsfwjs/models/mobilenet_v2_mid/model.json' );

모델 파일의 실제 URL입니다. 브라우저는 결국 이 주소로 model.json을 요청합니다.

T2_NSFW_BROWSER_BACKEND_PRIORITY

php
define('T2_NSFW_BROWSER_BACKEND_PRIORITY', 'webgpu,webgl,wasm,cpu');

백엔드 우선순위입니다. 문자열로 선언해도 되고, JS 주입 시 배열로 변환하는 방식으로 다룰 수 있습니다.

브라우저 전역값으로 주입되는 항목

PHP 설정은 최종적으로 아래 값들로 변환되어 브라우저에 전달됩니다.

js
window.T2EDITOR_NSFW_ENABLED window.T2EDITOR_NSFW_MODE window.T2EDITOR_NSFW_ALLOW_SUSPICIOUS window.T2EDITOR_NSFW_SERVER_URL window.T2EDITOR_NSFW_BROWSER_URL window.T2EDITOR_NSFW_BROWSER_MODEL window.T2EDITOR_NSFW_BROWSER_MODEL_TYPE window.T2EDITOR_NSFW_BROWSER_MODEL_URL window.T2EDITOR_NSFW_BROWSER_BACKEND_PRIORITY window.T2EDITOR_NSFW_RUNTIME_ASSETS

editor.lib.php를 수정했다면, 실제 렌더링된 페이지 소스나 브라우저 콘솔에서 저 값이 제대로 주입됐는지 꼭 확인해야 합니다.

설치 경로가 바뀔 때 가장 먼저 볼 것

예를 들어 에디터가 아래 경로에 설치됐다면

text
/var/www/html/plugin/editor/t2editor/

웹 경로는 보통 아래처럼 맞춰야 합니다.

php
define('T2EDITOR_URL', '/plugin/editor/t2editor');

그 다음에야 T2_NSFW_RUNTIME_ASSET_BASET2_NSFW_BROWSER_MODEL_URL이 올바른 URL을 만들 수 있습니다.

운영 체크리스트

항목확인 내용
정적 파일 응답vendor/ 아래 JS, WASM, model.json이 200 응답인지 확인
전역 설정 주입window.T2EDITOR_NSFW_* 값이 기대값과 같은지 확인
모드 확인browser 모드인지 확인
모델 타입graph가 필요한 배포인지 확인
백엔드 선택콘솔에서 실제 선택된 백엔드가 기대와 비슷한지 확인
주의

경로를 바꿨다면 캐시를 먼저 의심하기 쉽지만, 실제 원인은 T2EDITOR_URLT2_NSFW_RUNTIME_ASSET_BASE 불일치인 경우가 많습니다.

수정 요약

9.1.0 설정 문서 관점에서 중요한 변경점은 다음과 같습니다.

  • 브라우저 NSFW 엔진을 위한 별도 모델/자산 설정 추가
  • WebGPU 우선순위를 제어하는 설정 추가
  • self-hosted vendor 경로를 1급 설정값으로 승격
  • 브라우저 전역 설정 주입 항목 확대
이 문서가 링크하는 문서 · 0
아직 내부 링크가 없습니다. 본문에 [[다른-문서]]를 넣으면 연결이 생깁니다.
백링크 · 0
아직 이 문서를 가리키는 다른 문서가 없습니다.
관련 문서
직접 연결된 관련 문서가 아직 없습니다.
문서 연결 지도

이 문서를 중심으로 들어오는 링크와 나가는 링크를 한 번에 볼 수 있습니다.

전체 보기
현재 문서 백링크 나가는 링크 양방향 연결
이 브랜치의 리비전
T2WIKI · 기술 통합 위키 & 프로젝트 허브 · 나무위키 + Markdown 완벽 지원 · SQLite · PHP 8.2 · 소개 · 문법 안내