🔐로그인하면 문서 작성, 프로젝트 게시, ZIP 기반 버전 업로드, 브랜치 생성 기능을 사용할 수 있습니다. 로그인하러 가기
비교 대상 선택
추가 0줄 삭제 0줄 변경 0줄 동일 223줄
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_BASE와 T2_NSFW_BROWSER_MODEL_URL이 올바른 URL을 만들 수 있습니다.

운영 체크리스트

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

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

수정 요약

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

  • 브라우저 NSFW 엔진을 위한 별도 모델/자산 설정 추가
  • WebGPU 우선순위를 제어하는 설정 추가
  • self-hosted vendor 경로를 1급 설정값으로 승격
  • 브라우저 전역 설정 주입 항목 확대
r3 정정 (2026-09-28, T2WIKI 편집): 표시용 판본 표기 복원. 원문은 리비전 이력에 남아 있습니다.
2026-09-28 19:18

#설정 #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_BASE와 T2_NSFW_BROWSER_MODEL_URL이 올바른 URL을 만들 수 있습니다.

운영 체크리스트

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

경로를 바꿨다면 캐시를 먼저 의심하기 쉽지만, 실제 원인은 T2EDITOR_URL과 T2_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   58  
59 [note(요약)] 59 [note(요약)]
60 NSFWJS 관련 핵심 설정은 `editor.lib.php`에서 정의되고, 실제 브라우저 실행 시에는 `window.T2EDITOR_NSFW_*` 전역 값으로 전달됩니다. 60 NSFWJS 관련 핵심 설정은 `editor.lib.php`에서 정의되고, 실제 브라우저 실행 시에는 `window.T2EDITOR_NSFW_*` 전역 값으로 전달됩니다.
61 즉, PHP 상수와 브라우저 런타임 값이 둘 다 맞아야 정상 동작합니다. 61 즉, PHP 상수와 브라우저 런타임 값이 둘 다 맞아야 정상 동작합니다.
62 [/note] 62 [/note]
63   63  
64 # 파일 개요 64 # 파일 개요
65   65  
66 - **핵심 파일**: `9.1.0/t2editor/editor.lib.php` 66 - **핵심 파일**: `9.1.0/t2editor/editor.lib.php`
67 - **관련 런타임 파일**: `9.1.0/t2editor/config/nsfw_api_browser.js` 67 - **관련 런타임 파일**: `9.1.0/t2editor/config/nsfw_api_browser.js`
68   68  
69 이 문서는 “어떤 값을 어디서 바꾸면 되는가”를 정리한 운영 문서입니다. 69 이 문서는 “어떤 값을 어디서 바꾸면 되는가”를 정리한 운영 문서입니다.
70   70  
71 ## 초보자와 웹마스터를 위한 이해 71 ## 초보자와 웹마스터를 위한 이해
72   72  
73 이 기능은 크게 두 층으로 나뉩니다. 73 이 기능은 크게 두 층으로 나뉩니다.
74   74  
75 ||= 층 ||= 역할 || 75 ||= 층 ||= 역할 ||
76 || PHP 설정층 || 기본값 선언, URL 조립, JS 전역 설정 출력 || 76 || PHP 설정층 || 기본값 선언, URL 조립, JS 전역 설정 출력 ||
77 || 브라우저 실행층 || 모델 로딩, 백엔드 선택, 이미지 판정 수행 || 77 || 브라우저 실행층 || 모델 로딩, 백엔드 선택, 이미지 판정 수행 ||
78   78  
79 그래서 파일만 복사해 넣고 끝나는 경우보다, **설치 경로와 URL 경로까지 정확히 맞추는 일**이 더 중요합니다. 79 그래서 파일만 복사해 넣고 끝나는 경우보다, **설치 경로와 URL 경로까지 정확히 맞추는 일**이 더 중요합니다.
80   80  
81 ## 주요 설정값 81 ## 주요 설정값
82   82  
83 ### T2_NSFW_ENABLED 83 ### T2_NSFW_ENABLED
84   84  
85 ```php 85 ```php
86 define('T2_NSFW_ENABLED', true); 86 define('T2_NSFW_ENABLED', true);
87 ``` 87 ```
88   88  
89 NSFW 필터 전체 사용 여부입니다. 89 NSFW 필터 전체 사용 여부입니다.
90   90  
91 - `true`: 필터 활성화 91 - `true`: 필터 활성화
92 - `false`: 필터 비활성화 92 - `false`: 필터 비활성화
93   93  
94 ### T2_NSFW_MODE 94 ### T2_NSFW_MODE
95   95  
96 ```php 96 ```php
97 define('T2_NSFW_MODE', 'browser'); 97 define('T2_NSFW_MODE', 'browser');
98 ``` 98 ```
99   99  
100 판정 방식입니다. 100 판정 방식입니다.
101   101  
102 ||= 값 ||= 의미 || 102 ||= 값 ||= 의미 ||
103 || `browser` || 브라우저에서 NSFWJS로 판정 || 103 || `browser` || 브라우저에서 NSFWJS로 판정 ||
104 || `server` || 서버 API 경로를 사용하는 레거시 또는 대체 방식 || 104 || `server` || 서버 API 경로를 사용하는 레거시 또는 대체 방식 ||
105   105  
106 9.1.0에서는 `browser`를 기본 권장값으로 문서화하는 것이 맞습니다. 106 9.1.0에서는 `browser`를 기본 권장값으로 문서화하는 것이 맞습니다.
107   107  
108 ### T2_NSFW_ALLOW_SUSPICIOUS 108 ### T2_NSFW_ALLOW_SUSPICIOUS
109   109  
110 ```php 110 ```php
111 define('T2_NSFW_ALLOW_SUSPICIOUS', true); 111 define('T2_NSFW_ALLOW_SUSPICIOUS', true);
112 ``` 112 ```
113   113  
114 `safe`가 아닌 결과 중 `suspect` 또는 `unsafe`를 어떻게 처리할지 결정하는 정책입니다. 114 `safe`가 아닌 결과 중 `suspect` 또는 `unsafe`를 어떻게 처리할지 결정하는 정책입니다.
115   115  
116 - `true`: 경고 후 업로드를 허용할 수 있음 116 - `true`: 경고 후 업로드를 허용할 수 있음
117 - `false`: 정책상 업로드 취소 처리 가능 117 - `false`: 정책상 업로드 취소 처리 가능
118   118  
119 ### T2_NSFW_RUNTIME_ASSET_BASE 119 ### T2_NSFW_RUNTIME_ASSET_BASE
120   120  
121 ```php 121 ```php
122 define('T2_NSFW_RUNTIME_ASSET_BASE', T2EDITOR_URL . '/vendor'); 122 define('T2_NSFW_RUNTIME_ASSET_BASE', T2EDITOR_URL . '/vendor');
123 ``` 123 ```
124   124  
125 TensorFlow.js, 백엔드 스크립트, NSFWJS, 모델 파일의 **루트 경로**입니다. 125 TensorFlow.js, 백엔드 스크립트, NSFWJS, 모델 파일의 **루트 경로**입니다.
126   126  
127 이 값이 틀리면 아래 자산 경로도 모두 틀어질 수 있습니다. 127 이 값이 틀리면 아래 자산 경로도 모두 틀어질 수 있습니다.
128   128  
129 ### T2_NSFW_BROWSER_MODEL 129 ### T2_NSFW_BROWSER_MODEL
130   130  
131 ```php 131 ```php
132 define('T2_NSFW_BROWSER_MODEL', 'MobileNetV2Mid'); 132 define('T2_NSFW_BROWSER_MODEL', 'MobileNetV2Mid');
133 ``` 133 ```
134   134  
135 브라우저에서 사용할 기본 모델 이름입니다. 135 브라우저에서 사용할 기본 모델 이름입니다.
136   136  
137 ### T2_NSFW_BROWSER_MODEL_TYPE 137 ### T2_NSFW_BROWSER_MODEL_TYPE
138   138  
139 ```php 139 ```php
140 define('T2_NSFW_BROWSER_MODEL_TYPE', 'graph'); 140 define('T2_NSFW_BROWSER_MODEL_TYPE', 'graph');
141 ``` 141 ```
142   142  
143 모델 유형입니다. 143 모델 유형입니다.
144 `modelUrl`로 직접 호스팅한 `MobileNetV2Mid`를 읽을 때는 문서와 코드가 모두 이 설정을 기준으로 움직이도록 맞춰 두는 편이 안전합니다. 144 `modelUrl`로 직접 호스팅한 `MobileNetV2Mid`를 읽을 때는 문서와 코드가 모두 이 설정을 기준으로 움직이도록 맞춰 두는 편이 안전합니다.
145   145  
146 ### T2_NSFW_BROWSER_MODEL_URL 146 ### T2_NSFW_BROWSER_MODEL_URL
147   147  
148 ```php 148 ```php
149 define( 149 define(
150 'T2_NSFW_BROWSER_MODEL_URL', 150 'T2_NSFW_BROWSER_MODEL_URL',
151 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'
152 ); 152 );
153 ``` 153 ```
154   154  
155 모델 파일의 실제 URL입니다. 155 모델 파일의 실제 URL입니다.
156 브라우저는 결국 이 주소로 `model.json`을 요청합니다. 156 브라우저는 결국 이 주소로 `model.json`을 요청합니다.
157   157  
158 ### T2_NSFW_BROWSER_BACKEND_PRIORITY 158 ### T2_NSFW_BROWSER_BACKEND_PRIORITY
159   159  
160 ```php 160 ```php
161 define('T2_NSFW_BROWSER_BACKEND_PRIORITY', 'webgpu,webgl,wasm,cpu'); 161 define('T2_NSFW_BROWSER_BACKEND_PRIORITY', 'webgpu,webgl,wasm,cpu');
162 ``` 162 ```
163   163  
164 백엔드 우선순위입니다. 164 백엔드 우선순위입니다.
165 문자열로 선언해도 되고, JS 주입 시 배열로 변환하는 방식으로 다룰 수 있습니다. 165 문자열로 선언해도 되고, JS 주입 시 배열로 변환하는 방식으로 다룰 수 있습니다.
166   166  
167 ## 브라우저 전역값으로 주입되는 항목 167 ## 브라우저 전역값으로 주입되는 항목
168   168  
169 PHP 설정은 최종적으로 아래 값들로 변환되어 브라우저에 전달됩니다. 169 PHP 설정은 최종적으로 아래 값들로 변환되어 브라우저에 전달됩니다.
170   170  
171 ```js 171 ```js
172 window.T2EDITOR_NSFW_ENABLED 172 window.T2EDITOR_NSFW_ENABLED
173 window.T2EDITOR_NSFW_MODE 173 window.T2EDITOR_NSFW_MODE
174 window.T2EDITOR_NSFW_ALLOW_SUSPICIOUS 174 window.T2EDITOR_NSFW_ALLOW_SUSPICIOUS
175 window.T2EDITOR_NSFW_SERVER_URL 175 window.T2EDITOR_NSFW_SERVER_URL
176 window.T2EDITOR_NSFW_BROWSER_URL 176 window.T2EDITOR_NSFW_BROWSER_URL
177 window.T2EDITOR_NSFW_BROWSER_MODEL 177 window.T2EDITOR_NSFW_BROWSER_MODEL
178 window.T2EDITOR_NSFW_BROWSER_MODEL_TYPE 178 window.T2EDITOR_NSFW_BROWSER_MODEL_TYPE
179 window.T2EDITOR_NSFW_BROWSER_MODEL_URL 179 window.T2EDITOR_NSFW_BROWSER_MODEL_URL
180 window.T2EDITOR_NSFW_BROWSER_BACKEND_PRIORITY 180 window.T2EDITOR_NSFW_BROWSER_BACKEND_PRIORITY
181 window.T2EDITOR_NSFW_RUNTIME_ASSETS 181 window.T2EDITOR_NSFW_RUNTIME_ASSETS
182 ``` 182 ```
183   183  
184 즉 `editor.lib.php`를 수정했다면, 실제 렌더링된 페이지 소스나 브라우저 콘솔에서 저 값이 제대로 주입됐는지 꼭 확인해야 합니다. 184 즉 `editor.lib.php`를 수정했다면, 실제 렌더링된 페이지 소스나 브라우저 콘솔에서 저 값이 제대로 주입됐는지 꼭 확인해야 합니다.
185   185  
186 ## 설치 경로가 바뀔 때 가장 먼저 볼 것 186 ## 설치 경로가 바뀔 때 가장 먼저 볼 것
187   187  
188 예를 들어 에디터가 아래 경로에 설치됐다면 188 예를 들어 에디터가 아래 경로에 설치됐다면
189   189  
190 ```text 190 ```text
191 /var/www/html/plugin/editor/t2editor/ 191 /var/www/html/plugin/editor/t2editor/
192 ``` 192 ```
193   193  
194 웹 경로는 보통 아래처럼 맞춰야 합니다. 194 웹 경로는 보통 아래처럼 맞춰야 합니다.
195   195  
196 ```php 196 ```php
197 define('T2EDITOR_URL', '/plugin/editor/t2editor'); 197 define('T2EDITOR_URL', '/plugin/editor/t2editor');
198 ``` 198 ```
199   199  
200 그 다음에야 `T2_NSFW_RUNTIME_ASSET_BASE`와 `T2_NSFW_BROWSER_MODEL_URL`이 올바른 URL을 만들 수 있습니다. 200 그 다음에야 `T2_NSFW_RUNTIME_ASSET_BASE`와 `T2_NSFW_BROWSER_MODEL_URL`이 올바른 URL을 만들 수 있습니다.
201   201  
202 ## 운영 체크리스트 202 ## 운영 체크리스트
203   203  
204 ||= 항목 ||= 확인 내용 || 204 ||= 항목 ||= 확인 내용 ||
205 || 정적 파일 응답 || `vendor/` 아래 JS, WASM, model.json이 200 응답인지 확인 || 205 || 정적 파일 응답 || `vendor/` 아래 JS, WASM, model.json이 200 응답인지 확인 ||
206 || 전역 설정 주입 || `window.T2EDITOR_NSFW_*` 값이 기대값과 같은지 확인 || 206 || 전역 설정 주입 || `window.T2EDITOR_NSFW_*` 값이 기대값과 같은지 확인 ||
207 || 모드 확인 || `browser` 모드인지 확인 || 207 || 모드 확인 || `browser` 모드인지 확인 ||
208 || 모델 타입 || `graph`가 필요한 배포인지 확인 || 208 || 모델 타입 || `graph`가 필요한 배포인지 확인 ||
209 || 백엔드 선택 || 콘솔에서 실제 선택된 백엔드가 기대와 비슷한지 확인 || 209 || 백엔드 선택 || 콘솔에서 실제 선택된 백엔드가 기대와 비슷한지 확인 ||
210   210  
211 [warning] 211 [warning]
212 경로를 바꿨다면 캐시를 먼저 의심하기 쉽지만, 실제 원인은 `T2EDITOR_URL`과 `T2_NSFW_RUNTIME_ASSET_BASE` 불일치인 경우가 많습니다. 212 경로를 바꿨다면 캐시를 먼저 의심하기 쉽지만, 실제 원인은 `T2EDITOR_URL`과 `T2_NSFW_RUNTIME_ASSET_BASE` 불일치인 경우가 많습니다.
213 [/warning] 213 [/warning]
214   214  
215 ## 수정 요약 215 ## 수정 요약
216   216  
217 9.1.0 설정 문서 관점에서 중요한 변경점은 다음과 같습니다. 217 9.1.0 설정 문서 관점에서 중요한 변경점은 다음과 같습니다.
218   218  
219 - 브라우저 NSFW 엔진을 위한 별도 모델/자산 설정 추가 219 - 브라우저 NSFW 엔진을 위한 별도 모델/자산 설정 추가
220 - WebGPU 우선순위를 제어하는 설정 추가 220 - WebGPU 우선순위를 제어하는 설정 추가
221 - self-hosted vendor 경로를 1급 설정값으로 승격 221 - self-hosted vendor 경로를 1급 설정값으로 승격
222 - 브라우저 전역 설정 주입 항목 확대 222 - 브라우저 전역 설정 주입 항목 확대
223   223  
✏ 이 상태를 참고해 편집
T2WIKI · 기술 통합 위키 & 프로젝트 허브 · 나무위키 + Markdown 완벽 지원 · SQLite · PHP 8.2 · 소개 · 문법 안내