🔐로그인하면 문서 작성, 프로젝트 게시, ZIP 기반 버전 업로드, 브랜치 생성 기능을 사용할 수 있습니다. 로그인하러 가기
비교 대상 선택
추가 0줄 삭제 8줄 변경 0줄 동일 223줄
r1 파일 가져오기: config-nsfwjs-runtime-settings.v9.1.0.md
2026-04-17 19:00

#설정 #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급 설정값으로 승격
  • 브라우저 전역 설정 주입 항목 확대

관련 문서

r2 고아링크삭제
2026-04-17 19:25

#설정 #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급 설정값으로 승격
  • 브라우저 전역 설정 주입 항목 확대
라인 단위 비교
이전 새 버전
1 --- 1 ---
2 title: 설정: NSFWJS 런타임과 모델 경로 2 title: 설정: NSFWJS 런타임과 모델 경로
3 document_id: config-nsfwjs-runtime-settings 3 document_id: config-nsfwjs-runtime-settings
4 slug: config-nsfwjs-runtime-settings 4 slug: config-nsfwjs-runtime-settings
5 target_editor_version: 9.1.0 5 target_editor_version: 9.1.0
6 document_type: config-guide 6 document_type: config-guide
7 doc_type: config-guide 7 doc_type: config-guide
8 target_readers: [초보자, 웹마스터, 개발자, AI agent] 8 target_readers: [초보자, 웹마스터, 개발자, AI agent]
9 importance: High 9 importance: High
10 dependency: High 10 dependency: High
11 core_type: Guide 11 core_type: Guide
12 stability: [Stable Anchor, Version-Bound] 12 stability: [Stable Anchor, Version-Bound]
13 stable_anchor: 13 stable_anchor:
14 - editor.lib.php에서 JS 전역 설정 주입 14 - editor.lib.php에서 JS 전역 설정 주입
15 - browser 모드 기본 권장 15 - browser 모드 기본 권장
16 version_bound: 16 version_bound:
17 - T2_NSFW_RUNTIME_ASSET_BASE 17 - T2_NSFW_RUNTIME_ASSET_BASE
18 - T2_NSFW_BROWSER_MODEL 18 - T2_NSFW_BROWSER_MODEL
19 - T2_NSFW_BROWSER_MODEL_TYPE 19 - T2_NSFW_BROWSER_MODEL_TYPE
20 - T2_NSFW_BROWSER_MODEL_URL 20 - T2_NSFW_BROWSER_MODEL_URL
21 - T2_NSFW_BROWSER_BACKEND_PRIORITY 21 - T2_NSFW_BROWSER_BACKEND_PRIORITY
22 related_docs: 22 related_docs:
23 - guide-nsfwjs-overview 23 - guide-nsfwjs-overview
24 - core-nsfw_api_browser-js 24 - core-nsfw_api_browser-js
25 - ops-nsfwjs-selfhost-webgpu-ubuntu 25 - ops-nsfwjs-selfhost-webgpu-ubuntu
26 related_files: 26 related_files:
27 - 9.1.0/t2editor/editor.lib.php 27 - 9.1.0/t2editor/editor.lib.php
28 - 9.1.0/t2editor/config/nsfw_api_browser.js 28 - 9.1.0/t2editor/config/nsfw_api_browser.js
29 - 9.1.0/t2editor/plugin/image/image.js 29 - 9.1.0/t2editor/plugin/image/image.js
30 related_functions: 30 related_functions:
31 - editor_html 31 - editor_html
32 related_classes_modules: 32 related_classes_modules:
33 - NSFWFilterAPI 33 - NSFWFilterAPI
34 related_features: 34 related_features:
35 - 전역 설정 주입 35 - 전역 설정 주입
36 - 모델 경로 설정 36 - 모델 경로 설정
37 - 백엔드 우선순위 설정 37 - 백엔드 우선순위 설정
38 related_ui: [] 38 related_ui: []
39 change_risk: 설정 이름과 실제 파일 경로가 어긋나면 모델이 로드되지 않고 업로드 흐름 전체가 실패할 수 있습니다. 39 change_risk: 설정 이름과 실제 파일 경로가 어긋나면 모델이 로드되지 않고 업로드 흐름 전체가 실패할 수 있습니다.
40 reading_order: 19 40 reading_order: 19
41 summary: editor.lib.php에서 NSFWJS 관련 설정이 어떻게 선언되고 브라우저 전역 값으로 주입되는지 설명합니다. 41 summary: editor.lib.php에서 NSFWJS 관련 설정이 어떻게 선언되고 브라우저 전역 값으로 주입되는지 설명합니다.
42 description: 브라우저 NSFW 모드, self-hosted 경로, WebGPU 우선순위, 모델 URL 설정을 운영 관점에서 정리한 문서입니다. 42 description: 브라우저 NSFW 모드, self-hosted 경로, WebGPU 우선순위, 모델 URL 설정을 운영 관점에서 정리한 문서입니다.
43 tags: [config, NSFWJS, editor.lib.php, self-hosted, webgpu, T2Editor] 43 tags: [config, NSFWJS, editor.lib.php, self-hosted, webgpu, T2Editor]
44 version_tag: 9.1.0 44 version_tag: 9.1.0
45 maintenance_difficulty: Medium 45 maintenance_difficulty: Medium
46 test_requirement: High 46 test_requirement: High
47 ai_agent_risk: Medium 47 ai_agent_risk: Medium
48 source_basis: [현재 코드 분석 기반] 48 source_basis: [현재 코드 분석 기반]
49 beginner_section_included: true 49 beginner_section_included: true
50 webmaster_section_included: true 50 webmaster_section_included: true
51 developer_section_included: true 51 developer_section_included: true
52 --- 52 ---
53   53  
54 [목차] 54 [목차]
55   55  
56 [[분류:설정]] 56 [[분류:설정]]
57 [[분류:NSFW]] 57 [[분류:NSFW]]
58 [[guide-nsfwjs-overview|전체 개요]]  
59 [[core-nsfw_api_browser-js|코어 파일 문서]]  
60   58  
61 [note(요약)] 59 [note(요약)]
62 NSFWJS 관련 핵심 설정은 `editor.lib.php`에서 정의되고, 실제 브라우저 실행 시에는 `window.T2EDITOR_NSFW_*` 전역 값으로 전달됩니다. 60 NSFWJS 관련 핵심 설정은 `editor.lib.php`에서 정의되고, 실제 브라우저 실행 시에는 `window.T2EDITOR_NSFW_*` 전역 값으로 전달됩니다.
63 즉, PHP 상수와 브라우저 런타임 값이 둘 다 맞아야 정상 동작합니다. 61 즉, PHP 상수와 브라우저 런타임 값이 둘 다 맞아야 정상 동작합니다.
64 [/note] 62 [/note]
65   63  
66 # 파일 개요 64 # 파일 개요
67   65  
68 - **핵심 파일**: `9.1.0/t2editor/editor.lib.php` 66 - **핵심 파일**: `9.1.0/t2editor/editor.lib.php`
69 - **관련 런타임 파일**: `9.1.0/t2editor/config/nsfw_api_browser.js` 67 - **관련 런타임 파일**: `9.1.0/t2editor/config/nsfw_api_browser.js`
70   68  
71 이 문서는 “어떤 값을 어디서 바꾸면 되는가”를 정리한 운영 문서입니다. 69 이 문서는 “어떤 값을 어디서 바꾸면 되는가”를 정리한 운영 문서입니다.
72   70  
73 ## 초보자와 웹마스터를 위한 이해 71 ## 초보자와 웹마스터를 위한 이해
74   72  
75 이 기능은 크게 두 층으로 나뉩니다. 73 이 기능은 크게 두 층으로 나뉩니다.
76   74  
77 ||= 층 ||= 역할 || 75 ||= 층 ||= 역할 ||
78 || PHP 설정층 || 기본값 선언, URL 조립, JS 전역 설정 출력 || 76 || PHP 설정층 || 기본값 선언, URL 조립, JS 전역 설정 출력 ||
79 || 브라우저 실행층 || 모델 로딩, 백엔드 선택, 이미지 판정 수행 || 77 || 브라우저 실행층 || 모델 로딩, 백엔드 선택, 이미지 판정 수행 ||
80   78  
81 그래서 파일만 복사해 넣고 끝나는 경우보다, **설치 경로와 URL 경로까지 정확히 맞추는 일**이 더 중요합니다. 79 그래서 파일만 복사해 넣고 끝나는 경우보다, **설치 경로와 URL 경로까지 정확히 맞추는 일**이 더 중요합니다.
82   80  
83 ## 주요 설정값 81 ## 주요 설정값
84   82  
85 ### T2_NSFW_ENABLED 83 ### T2_NSFW_ENABLED
86   84  
87 ```php 85 ```php
88 define('T2_NSFW_ENABLED', true); 86 define('T2_NSFW_ENABLED', true);
89 ``` 87 ```
90   88  
91 NSFW 필터 전체 사용 여부입니다. 89 NSFW 필터 전체 사용 여부입니다.
92   90  
93 - `true`: 필터 활성화 91 - `true`: 필터 활성화
94 - `false`: 필터 비활성화 92 - `false`: 필터 비활성화
95   93  
96 ### T2_NSFW_MODE 94 ### T2_NSFW_MODE
97   95  
98 ```php 96 ```php
99 define('T2_NSFW_MODE', 'browser'); 97 define('T2_NSFW_MODE', 'browser');
100 ``` 98 ```
101   99  
102 판정 방식입니다. 100 판정 방식입니다.
103   101  
104 ||= 값 ||= 의미 || 102 ||= 값 ||= 의미 ||
105 || `browser` || 브라우저에서 NSFWJS로 판정 || 103 || `browser` || 브라우저에서 NSFWJS로 판정 ||
106 || `server` || 서버 API 경로를 사용하는 레거시 또는 대체 방식 || 104 || `server` || 서버 API 경로를 사용하는 레거시 또는 대체 방식 ||
107   105  
108 9.1.0에서는 `browser`를 기본 권장값으로 문서화하는 것이 맞습니다. 106 9.1.0에서는 `browser`를 기본 권장값으로 문서화하는 것이 맞습니다.
109   107  
110 ### T2_NSFW_ALLOW_SUSPICIOUS 108 ### T2_NSFW_ALLOW_SUSPICIOUS
111   109  
112 ```php 110 ```php
113 define('T2_NSFW_ALLOW_SUSPICIOUS', true); 111 define('T2_NSFW_ALLOW_SUSPICIOUS', true);
114 ``` 112 ```
115   113  
116 `safe`가 아닌 결과 중 `suspect` 또는 `unsafe`를 어떻게 처리할지 결정하는 정책입니다. 114 `safe`가 아닌 결과 중 `suspect` 또는 `unsafe`를 어떻게 처리할지 결정하는 정책입니다.
117   115  
118 - `true`: 경고 후 업로드를 허용할 수 있음 116 - `true`: 경고 후 업로드를 허용할 수 있음
119 - `false`: 정책상 업로드 취소 처리 가능 117 - `false`: 정책상 업로드 취소 처리 가능
120   118  
121 ### T2_NSFW_RUNTIME_ASSET_BASE 119 ### T2_NSFW_RUNTIME_ASSET_BASE
122   120  
123 ```php 121 ```php
124 define('T2_NSFW_RUNTIME_ASSET_BASE', T2EDITOR_URL . '/vendor'); 122 define('T2_NSFW_RUNTIME_ASSET_BASE', T2EDITOR_URL . '/vendor');
125 ``` 123 ```
126   124  
127 TensorFlow.js, 백엔드 스크립트, NSFWJS, 모델 파일의 **루트 경로**입니다. 125 TensorFlow.js, 백엔드 스크립트, NSFWJS, 모델 파일의 **루트 경로**입니다.
128   126  
129 이 값이 틀리면 아래 자산 경로도 모두 틀어질 수 있습니다. 127 이 값이 틀리면 아래 자산 경로도 모두 틀어질 수 있습니다.
130   128  
131 ### T2_NSFW_BROWSER_MODEL 129 ### T2_NSFW_BROWSER_MODEL
132   130  
133 ```php 131 ```php
134 define('T2_NSFW_BROWSER_MODEL', 'MobileNetV2Mid'); 132 define('T2_NSFW_BROWSER_MODEL', 'MobileNetV2Mid');
135 ``` 133 ```
136   134  
137 브라우저에서 사용할 기본 모델 이름입니다. 135 브라우저에서 사용할 기본 모델 이름입니다.
138   136  
139 ### T2_NSFW_BROWSER_MODEL_TYPE 137 ### T2_NSFW_BROWSER_MODEL_TYPE
140   138  
141 ```php 139 ```php
142 define('T2_NSFW_BROWSER_MODEL_TYPE', 'graph'); 140 define('T2_NSFW_BROWSER_MODEL_TYPE', 'graph');
143 ``` 141 ```
144   142  
145 모델 유형입니다. 143 모델 유형입니다.
146 `modelUrl`로 직접 호스팅한 `MobileNetV2Mid`를 읽을 때는 문서와 코드가 모두 이 설정을 기준으로 움직이도록 맞춰 두는 편이 안전합니다. 144 `modelUrl`로 직접 호스팅한 `MobileNetV2Mid`를 읽을 때는 문서와 코드가 모두 이 설정을 기준으로 움직이도록 맞춰 두는 편이 안전합니다.
147   145  
148 ### T2_NSFW_BROWSER_MODEL_URL 146 ### T2_NSFW_BROWSER_MODEL_URL
149   147  
150 ```php 148 ```php
151 define( 149 define(
152 'T2_NSFW_BROWSER_MODEL_URL', 150 'T2_NSFW_BROWSER_MODEL_URL',
153 T2_NSFW_RUNTIME_ASSET_BASE . '/nsfwjs/models/mobilenet_v2_mid/model.json' 151 T2_NSFW_RUNTIME_ASSET_BASE . '/nsfwjs/models/mobilenet_v2_mid/model.json'
154 ); 152 );
155 ``` 153 ```
156   154  
157 모델 파일의 실제 URL입니다. 155 모델 파일의 실제 URL입니다.
158 브라우저는 결국 이 주소로 `model.json`을 요청합니다. 156 브라우저는 결국 이 주소로 `model.json`을 요청합니다.
159   157  
160 ### T2_NSFW_BROWSER_BACKEND_PRIORITY 158 ### T2_NSFW_BROWSER_BACKEND_PRIORITY
161   159  
162 ```php 160 ```php
163 define('T2_NSFW_BROWSER_BACKEND_PRIORITY', 'webgpu,webgl,wasm,cpu'); 161 define('T2_NSFW_BROWSER_BACKEND_PRIORITY', 'webgpu,webgl,wasm,cpu');
164 ``` 162 ```
165   163  
166 백엔드 우선순위입니다. 164 백엔드 우선순위입니다.
167 문자열로 선언해도 되고, JS 주입 시 배열로 변환하는 방식으로 다룰 수 있습니다. 165 문자열로 선언해도 되고, JS 주입 시 배열로 변환하는 방식으로 다룰 수 있습니다.
168   166  
169 ## 브라우저 전역값으로 주입되는 항목 167 ## 브라우저 전역값으로 주입되는 항목
170   168  
171 PHP 설정은 최종적으로 아래 값들로 변환되어 브라우저에 전달됩니다. 169 PHP 설정은 최종적으로 아래 값들로 변환되어 브라우저에 전달됩니다.
172   170  
173 ```js 171 ```js
174 window.T2EDITOR_NSFW_ENABLED 172 window.T2EDITOR_NSFW_ENABLED
175 window.T2EDITOR_NSFW_MODE 173 window.T2EDITOR_NSFW_MODE
176 window.T2EDITOR_NSFW_ALLOW_SUSPICIOUS 174 window.T2EDITOR_NSFW_ALLOW_SUSPICIOUS
177 window.T2EDITOR_NSFW_SERVER_URL 175 window.T2EDITOR_NSFW_SERVER_URL
178 window.T2EDITOR_NSFW_BROWSER_URL 176 window.T2EDITOR_NSFW_BROWSER_URL
179 window.T2EDITOR_NSFW_BROWSER_MODEL 177 window.T2EDITOR_NSFW_BROWSER_MODEL
180 window.T2EDITOR_NSFW_BROWSER_MODEL_TYPE 178 window.T2EDITOR_NSFW_BROWSER_MODEL_TYPE
181 window.T2EDITOR_NSFW_BROWSER_MODEL_URL 179 window.T2EDITOR_NSFW_BROWSER_MODEL_URL
182 window.T2EDITOR_NSFW_BROWSER_BACKEND_PRIORITY 180 window.T2EDITOR_NSFW_BROWSER_BACKEND_PRIORITY
183 window.T2EDITOR_NSFW_RUNTIME_ASSETS 181 window.T2EDITOR_NSFW_RUNTIME_ASSETS
184 ``` 182 ```
185   183  
186 즉 `editor.lib.php`를 수정했다면, 실제 렌더링된 페이지 소스나 브라우저 콘솔에서 저 값이 제대로 주입됐는지 꼭 확인해야 합니다. 184 즉 `editor.lib.php`를 수정했다면, 실제 렌더링된 페이지 소스나 브라우저 콘솔에서 저 값이 제대로 주입됐는지 꼭 확인해야 합니다.
187   185  
188 ## 설치 경로가 바뀔 때 가장 먼저 볼 것 186 ## 설치 경로가 바뀔 때 가장 먼저 볼 것
189   187  
190 예를 들어 에디터가 아래 경로에 설치됐다면 188 예를 들어 에디터가 아래 경로에 설치됐다면
191   189  
192 ```text 190 ```text
193 /var/www/html/plugin/editor/t2editor/ 191 /var/www/html/plugin/editor/t2editor/
194 ``` 192 ```
195   193  
196 웹 경로는 보통 아래처럼 맞춰야 합니다. 194 웹 경로는 보통 아래처럼 맞춰야 합니다.
197   195  
198 ```php 196 ```php
199 define('T2EDITOR_URL', '/plugin/editor/t2editor'); 197 define('T2EDITOR_URL', '/plugin/editor/t2editor');
200 ``` 198 ```
201   199  
202 그 다음에야 `T2_NSFW_RUNTIME_ASSET_BASE`와 `T2_NSFW_BROWSER_MODEL_URL`이 올바른 URL을 만들 수 있습니다. 200 그 다음에야 `T2_NSFW_RUNTIME_ASSET_BASE`와 `T2_NSFW_BROWSER_MODEL_URL`이 올바른 URL을 만들 수 있습니다.
203   201  
204 ## 운영 체크리스트 202 ## 운영 체크리스트
205   203  
206 ||= 항목 ||= 확인 내용 || 204 ||= 항목 ||= 확인 내용 ||
207 || 정적 파일 응답 || `vendor/` 아래 JS, WASM, model.json이 200 응답인지 확인 || 205 || 정적 파일 응답 || `vendor/` 아래 JS, WASM, model.json이 200 응답인지 확인 ||
208 || 전역 설정 주입 || `window.T2EDITOR_NSFW_*` 값이 기대값과 같은지 확인 || 206 || 전역 설정 주입 || `window.T2EDITOR_NSFW_*` 값이 기대값과 같은지 확인 ||
209 || 모드 확인 || `browser` 모드인지 확인 || 207 || 모드 확인 || `browser` 모드인지 확인 ||
210 || 모델 타입 || `graph`가 필요한 배포인지 확인 || 208 || 모델 타입 || `graph`가 필요한 배포인지 확인 ||
211 || 백엔드 선택 || 콘솔에서 실제 선택된 백엔드가 기대와 비슷한지 확인 || 209 || 백엔드 선택 || 콘솔에서 실제 선택된 백엔드가 기대와 비슷한지 확인 ||
212   210  
213 [warning] 211 [warning]
214 경로를 바꿨다면 캐시를 먼저 의심하기 쉽지만, 실제 원인은 `T2EDITOR_URL`과 `T2_NSFW_RUNTIME_ASSET_BASE` 불일치인 경우가 많습니다. 212 경로를 바꿨다면 캐시를 먼저 의심하기 쉽지만, 실제 원인은 `T2EDITOR_URL`과 `T2_NSFW_RUNTIME_ASSET_BASE` 불일치인 경우가 많습니다.
215 [/warning] 213 [/warning]
216   214  
217 ## 수정 요약 215 ## 수정 요약
218   216  
219 9.1.0 설정 문서 관점에서 중요한 변경점은 다음과 같습니다. 217 9.1.0 설정 문서 관점에서 중요한 변경점은 다음과 같습니다.
220   218  
221 - 브라우저 NSFW 엔진을 위한 별도 모델/자산 설정 추가 219 - 브라우저 NSFW 엔진을 위한 별도 모델/자산 설정 추가
222 - WebGPU 우선순위를 제어하는 설정 추가 220 - WebGPU 우선순위를 제어하는 설정 추가
223 - self-hosted vendor 경로를 1급 설정값으로 승격 221 - self-hosted vendor 경로를 1급 설정값으로 승격
224 - 브라우저 전역 설정 주입 항목 확대 222 - 브라우저 전역 설정 주입 항목 확대
225   223  
226 ## 관련 문서  
227  
228 - [[guide-nsfwjs-overview|가이드: NSFWJS 기반 이미지 필터 개요]]  
229 - [[core-nsfw_api_browser-js|코어 파일: nsfw_api_browser.js]]  
230 - [[ops-nsfwjs-selfhost-webgpu-ubuntu|운영: Ubuntu self-hosted + WebGPU 설치]]  
231  
✏ 이 상태를 참고해 편집
T2WIKI · 기술 통합 위키 & 프로젝트 허브 · 나무위키 + Markdown 완벽 지원 · SQLite · PHP 8.2 · 소개 · 문법 안내