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

분석 보고서: NSFWJS 기반 T2Editor SafeAI (NSFW)의 기대 성능

#분석 #SafeAI #NSFWJS #T2Editor

요약

T2Editor 9.1.0의 SafeAI(NSFW)는 서버 추론형 고정 성능 제품이 아니라, 브라우저 안에서 TensorFlow.js + NSFWJS가 직접 추론하는 구조입니다. 따라서 성능은 모델 종류, 백엔드(WebGPU/WebGL/WASM/CPU), 브라우저 구현, 사용자 기기 성능에 따라 달라집니다. 이 문서는 공식 자료가 보장하는 범위T2Editor에서 현실적으로 기대할 수 있는 수준을 구분해서 설명합니다.

문서 목적

이 문서는 다음 질문에 답하기 위해 작성되었습니다.

  • NSFWJS를 붙인 T2Editor SafeAI는 얼마나 정확할 것으로 기대할 수 있는가?
  • WebGPU, WebGL, WASM, CPU 중 어떤 백엔드에서 어떤 운영 기대치를 가져야 하는가?
  • 기본 제공 MobileNetV2Mid를 선택한 이유는 무엇인가?
  • 이 기능을 보안 장치로 봐야 하는가, 아니면 사용자 보조 필터로 봐야 하는가?

결론 먼저

핵심 결론

T2Editor 9.1.0의 SafeAI(NSFW)는 업로드 전 사용자 측 경고/차단 보조 시스템으로는 적합하지만, 법적/정책적 책임이 걸린 최종 심사 엔진으로 간주하면 안 됩니다.

요약하면 다음과 같습니다.

항목기대 평가해설
정확도중상NSFWJS 공식 자료 기준으로 small 모델은 약 90%, midsized 모델은 약 93% 수준이라고 안내됩니다. T2Editor는 이 중 MobileNetV2Mid를 채택하므로 기본 모델보다 높은 정확도를 기대할 수 있습니다.
응답성중상~상지원 브라우저/하드웨어에서 webgpu가 가장 유력한 최고 성능 경로입니다. 다만 미지원 환경에서는 webgl, wasm, cpu로 내려가며 체감 속도 차이가 커질 수 있습니다.
초기 로딩첫 모델 로딩 비용은 분명 존재합니다. 자체 호스팅과 캐싱으로 첫 로딩 부담을 줄일 수 있습니다.
운영 안정성중상self-hosted 자산으로 바꾸면 외부 CDN 장애와 핫링크 문제를 피하기 쉽습니다.
심사 엔진 적합성낮음단독 최종 판정 엔진으로 쓰기엔 공식 자료 자체가 '완벽하지 않다'고 전제합니다.

공식 자료가 말하는 정확도

NSFWJS 공식 README는 이 라이브러리가 완벽하지는 않지만 꽤 정확하다고 설명하면서, small 모델은 약 90%, midsized 모델은 약 93%라고 안내합니다. T2Editor 9.1.0에서 채택한 방향은 MobileNetV2Mid이므로, 공식 자료만 놓고 보면 기본 MobileNetV2보다 한 단계 높은 정확도 기대치를 갖는 구성이 됩니다. NSFWJS 공식 저장소

이 문장을 T2Editor 관점으로 번역하면 다음과 같습니다.

  • 안전 이미지 대부분을 무리 없이 통과시키는 보조 필터로는 충분히 실용적이다.
  • 노출 가능성이 있는 이미지에 경고를 거는 1차 필터로는 유용하다.
  • 하지만 오탐지미탐지를 완전히 제거할 수준으로 읽으면 안 된다.
해석 팁

공식 정확도 수치는 T2Editor의 실제 운영 데이터가 아닙니다. 따라서 문서나 운영 보고서에는 "공식 자료 기준 기대 정확도"라고 표현하는 것이 안전합니다.

왜 MobileNetV2Mid를 기본값으로 잡았는가

NSFWJS 공식 자료는 내장 모델로 MobileNetV2, MobileNetV2Mid, InceptionV3를 제시합니다. 또한 MobileNetV2Mid는 graph 모델로 로드해야 할 수 있다고 안내합니다. reference-nsfwjs-model-compatibility

T2Editor SafeAI 기준에서 MobileNetV2Mid가 기본값으로 적합한 이유는 다음과 같습니다.

  1. 기본 MobileNetV2보다 정확도 기대치가 높다.
  2. InceptionV3보다 운영 비용을 덜 공격적으로 가져갈 수 있다.
  3. 브라우저 추론형 에디터 플러그인에 넣기에 균형이 좋다.

즉, MobileNetV2Mid는 T2Editor SafeAI를 "최고 정확도 단독 지향"이 아니라 "브라우저에서 충분히 실용적인 균형형 판별기"로 두는 선택이라고 볼 수 있습니다.

속도 기대치: 왜 WebGPU 우선인가

NSFWJS 공식 README는 백엔드 선택 가이드에서 다음과 같이 설명합니다.

  • webgpu: 지원 브라우저/하드웨어에서 often fastest
  • webgl: 현대 브라우저에서 강한 기본 선택
  • wasm: WebGL 사용이 어렵거나 제한된 환경에서 유용한 fallback
  • cpu: 호환성은 넓지만 일반적으로 더 느림

이 설명은 T2Editor 9.1.0의 구현 방향과 정확히 맞닿아 있습니다. 즉 SafeAI는 webgpu -> webgl -> wasm -> cpu 순으로 시도하는 것이 가장 현실적인 전략입니다. ops-nsfwjs-selfhost-webgpu-ubuntu

운영 해석

공식 자료는 "WebGPU가 항상 fastest"라고 단정하지 않고 "often fastest"라고 설명합니다. 따라서 문서나 UI에서도 "WebGPU면 무조건 초고속" 같은 표현은 피하는 편이 맞습니다.

속도 기대치: 사용자 체감 기준

T2Editor SafeAI는 서버가 아니라 사용자 브라우저에서 분류합니다. 따라서 체감 성능은 다음 순서로 갈립니다.

환경기대 체감운영 해석
최신 데스크톱 + WebGPU 지원 브라우저가장 좋음다중 이미지 업로드 시에도 비교적 자연스러운 반응을 기대할 수 있습니다.
최신 데스크톱 + WebGL좋음WebGPU보다 느릴 수 있으나 실사용엔 충분한 경우가 많습니다.
중급 모바일 + WebGL보통이미지 수가 많으면 검사 대기 시간이 늘 수 있습니다.
제한 환경 + WASM보통~낮음그래픽 가속이 어려운 환경에서 기능 유지용으로 유용합니다.
CPU only낮음호환성 최후 보루입니다. 대량 업로드엔 불리합니다.

여기서 중요한 것은, TensorFlow.js 공식 자료도 성능 측정을 로컬 벤치마크 도구로 직접 측정하라고 안내한다는 점입니다. 즉, SafeAI 운영팀이 실제 성능을 알고 싶다면 서버 스펙이 아니라 대표 사용자 기기군에서 직접 재야 합니다. TensorFlow.js 공식 저장소

초기 로딩과 캐싱 기대치

NSFWJS 공식 자료는 self-hosting 모델을 사용할 때 번들 크기를 줄일 수 있고, 브라우저에서는 모델 캐싱을 고려하라고 안내합니다. 또한 호스팅 모델을 직접 불러오면 패키지에 base64로 포함된 번들보다 초기 로딩 면에서 이점이 있을 수 있다고 설명합니다. guide-nsfwjs-custom-model-installation

T2Editor 9.1.0에서 이를 반영해 기대할 수 있는 효과는 다음과 같습니다.

  • 첫 사용 시: 모델 파일 다운로드 + 초기화 비용이 있습니다.
  • 같은 세션/재방문 시: 브라우저 캐시 상태에 따라 재다운로드 비용이 줄어들 수 있습니다.
  • 자체 호스팅 시: 외부 모델 호스팅 변경, 핫링크 차단, 응답 지연 리스크를 줄일 수 있습니다.

self-hosting이 성능에도 유리한가

대체로 그렇지만, 정확히는 "성능과 안정성에 모두 유리할 가능성이 높다"가 맞습니다.

공식 자료는 self-hosting이 다음과 같은 이유로 유리할 수 있다고 설명합니다.

  • 번들 크기 절감
  • raw binary 파일 직접 로드
  • 초기 로드 시간 개선 가능성
  • production 전환 시 권장

T2Editor 운영 관점에서는 여기에 다음 이점이 추가됩니다.

  • 에디터 설치 경로(/plugin/editor/t2editor/...)와 일관된 자산 관리
  • 방화벽/망분리 환경 대응
  • 외부 CDN 의존도 감소
  • 배포 시 캐시 정책을 직접 통제 가능

모델 교체 시 기대 성능 변화

기본 MobileNetV2Mid 외 모델을 쓸 수는 있지만, 기대 성능은 달라집니다.

모델기대 정확도기대 속도운영 적합성
MobileNetV2저사양/빠른 반응 우선 환경
MobileNetV2Mid중상중상기본값으로 가장 균형적
InceptionV3상 방향 기대중~하더 높은 비용을 감수할 수 있는 환경

이 표는 공식 문서 수치 + 일반적인 TFJS 모델 특성을 합친 해석표입니다. 공식 자료는 InceptionV3의 입력 크기가 299라고 안내하고, MobileNetV2Mid는 graph 모델 주의사항을 명시합니다. 입력 해상도와 모델 구조가 커질수록 일반적으로 추론 비용도 늘어날 가능성이 큽니다. reference-nsfwjs-model-compatibility

주의

이 문서의 모델별 속도 비교는 방향성 분석입니다. NSFWJS 공식 README는 모델별 FPS 수치를 보장하지 않습니다.

T2Editor SafeAI의 현실적인 역할

T2Editor에서 이 기능의 가장 적절한 역할은 다음입니다.

  • 업로드 시 즉시 경고를 보여주는 프론트 보조 장치
  • 커뮤니티 운영에서 1차 사용자 억제 장치
  • 서버 전송 전 사전 걸러내기

반대로 이 역할로 과대 해석하면 안 됩니다.

  • 법적 확정 판정기
  • 완전 자동 삭제 엔진
  • 사람 검토가 필요 없는 정책 집행기

공식 README 자체가 "완벽하지 않다"고 전제하는 만큼, T2Editor SafeAI도 정책 집행 보조 도구로 설명하는 것이 맞습니다.

운영 권장안

초보자 / 웹마스터

  • 기본값은 MobileNetV2Mid 유지
  • self-hosted 자산 사용
  • webgpu -> webgl -> wasm -> cpu 폴백 유지
  • 의심 이미지(suspect)는 자동 허용보다 경고 후 선택 정책 권장

개발자

  • 대량 업로드 시 동시 추론 수를 무리하게 높이지 않기
  • 첫 모델 로딩과 재방문 캐시를 분리해서 측정하기
  • 대표 기기군별로 체감 시간 기록하기
  • 서버 필터가 별도로 있다면, SafeAI는 프론트 1차 판별기로만 두기

AI agent / 문서 작성자

  • "정확도 93%"를 절대 성능처럼 쓰지 말고, 공식 자료 기준 midsized model 기대치라고 써야 합니다.
  • "WebGPU가 가장 빠르다" 대신 지원 브라우저/하드웨어에서 대체로 가장 빠른 경향이라고 표현해야 합니다.

이 보고서의 한계

이 문서는 공식 자료와 현재 코드 구조를 기반으로 한 해석 문서입니다. 다음은 직접 측정하지 않았습니다.

  • 특정 스마트폰 기종별 FPS
  • 특정 이미지 개수별 평균 업로드 대기 시간
  • 한국형 운영 데이터셋 기준 오탐/미탐률

따라서 운영 보고서에 이 문서를 인용할 때는 "공식 자료 기반 기대 성능 분석"으로 분류하는 것이 적절합니다.

참고 문서

참고 자료

수정 요약

  • NSFWJS 공식 자료를 바탕으로 T2Editor SafeAI의 기대 정확도와 성능 특성을 분석하는 보고 문서 추가
  • 과장된 성능 보장 표현을 피하고 운영 적합성 관점으로 정리
r2 고아링크삭제
2026-04-17 19:27

분석 보고서: NSFWJS 기반 T2Editor SafeAI (NSFW)의 기대 성능

#분석 #SafeAI #NSFWJS #T2Editor

요약

T2Editor 9.1.0의 SafeAI(NSFW)는 서버 추론형 고정 성능 제품이 아니라, 브라우저 안에서 TensorFlow.js + NSFWJS가 직접 추론하는 구조입니다. 따라서 성능은 모델 종류, 백엔드(WebGPU/WebGL/WASM/CPU), 브라우저 구현, 사용자 기기 성능에 따라 달라집니다. 이 문서는 공식 자료가 보장하는 범위T2Editor에서 현실적으로 기대할 수 있는 수준을 구분해서 설명합니다.

문서 목적

이 문서는 다음 질문에 답하기 위해 작성되었습니다.

  • NSFWJS를 붙인 T2Editor SafeAI는 얼마나 정확할 것으로 기대할 수 있는가?
  • WebGPU, WebGL, WASM, CPU 중 어떤 백엔드에서 어떤 운영 기대치를 가져야 하는가?
  • 기본 제공 MobileNetV2Mid를 선택한 이유는 무엇인가?
  • 이 기능을 보안 장치로 봐야 하는가, 아니면 사용자 보조 필터로 봐야 하는가?

결론 먼저

핵심 결론

T2Editor 9.1.0의 SafeAI(NSFW)는 업로드 전 사용자 측 경고/차단 보조 시스템으로는 적합하지만, 법적/정책적 책임이 걸린 최종 심사 엔진으로 간주하면 안 됩니다.

요약하면 다음과 같습니다.

항목기대 평가해설
정확도중상NSFWJS 공식 자료 기준으로 small 모델은 약 90%, midsized 모델은 약 93% 수준이라고 안내됩니다. T2Editor는 이 중 MobileNetV2Mid를 채택하므로 기본 모델보다 높은 정확도를 기대할 수 있습니다.
응답성중상~상지원 브라우저/하드웨어에서 webgpu가 가장 유력한 최고 성능 경로입니다. 다만 미지원 환경에서는 webgl, wasm, cpu로 내려가며 체감 속도 차이가 커질 수 있습니다.
초기 로딩첫 모델 로딩 비용은 분명 존재합니다. 자체 호스팅과 캐싱으로 첫 로딩 부담을 줄일 수 있습니다.
운영 안정성중상self-hosted 자산으로 바꾸면 외부 CDN 장애와 핫링크 문제를 피하기 쉽습니다.
심사 엔진 적합성낮음단독 최종 판정 엔진으로 쓰기엔 공식 자료 자체가 '완벽하지 않다'고 전제합니다.

공식 자료가 말하는 정확도

NSFWJS 공식 README는 이 라이브러리가 완벽하지는 않지만 꽤 정확하다고 설명하면서, small 모델은 약 90%, midsized 모델은 약 93%라고 안내합니다. T2Editor 9.1.0에서 채택한 방향은 MobileNetV2Mid이므로, 공식 자료만 놓고 보면 기본 MobileNetV2보다 한 단계 높은 정확도 기대치를 갖는 구성이 됩니다. NSFWJS 공식 저장소

이 문장을 T2Editor 관점으로 번역하면 다음과 같습니다.

  • 안전 이미지 대부분을 무리 없이 통과시키는 보조 필터로는 충분히 실용적이다.
  • 노출 가능성이 있는 이미지에 경고를 거는 1차 필터로는 유용하다.
  • 하지만 오탐지미탐지를 완전히 제거할 수준으로 읽으면 안 된다.
해석 팁

공식 정확도 수치는 T2Editor의 실제 운영 데이터가 아닙니다. 따라서 문서나 운영 보고서에는 "공식 자료 기준 기대 정확도"라고 표현하는 것이 안전합니다.

왜 MobileNetV2Mid를 기본값으로 잡았는가

NSFWJS 공식 자료는 내장 모델로 MobileNetV2, MobileNetV2Mid, InceptionV3를 제시합니다. 또한 MobileNetV2Mid는 graph 모델로 로드해야 할 수 있다고 안내합니다.

T2Editor SafeAI 기준에서 MobileNetV2Mid가 기본값으로 적합한 이유는 다음과 같습니다.

  1. 기본 MobileNetV2보다 정확도 기대치가 높다.
  2. InceptionV3보다 운영 비용을 덜 공격적으로 가져갈 수 있다.
  3. 브라우저 추론형 에디터 플러그인에 넣기에 균형이 좋다.

즉, MobileNetV2Mid는 T2Editor SafeAI를 "최고 정확도 단독 지향"이 아니라 "브라우저에서 충분히 실용적인 균형형 판별기"로 두는 선택이라고 볼 수 있습니다.

속도 기대치: 왜 WebGPU 우선인가

NSFWJS 공식 README는 백엔드 선택 가이드에서 다음과 같이 설명합니다.

  • webgpu: 지원 브라우저/하드웨어에서 often fastest
  • webgl: 현대 브라우저에서 강한 기본 선택
  • wasm: WebGL 사용이 어렵거나 제한된 환경에서 유용한 fallback
  • cpu: 호환성은 넓지만 일반적으로 더 느림

이 설명은 T2Editor 9.1.0의 구현 방향과 정확히 맞닿아 있습니다. 즉 SafeAI는 webgpu -> webgl -> wasm -> cpu 순으로 시도하는 것이 가장 현실적인 전략입니다.

운영 해석

공식 자료는 "WebGPU가 항상 fastest"라고 단정하지 않고 "often fastest"라고 설명합니다. 따라서 문서나 UI에서도 "WebGPU면 무조건 초고속" 같은 표현은 피하는 편이 맞습니다.

속도 기대치: 사용자 체감 기준

T2Editor SafeAI는 서버가 아니라 사용자 브라우저에서 분류합니다. 따라서 체감 성능은 다음 순서로 갈립니다.

환경기대 체감운영 해석
최신 데스크톱 + WebGPU 지원 브라우저가장 좋음다중 이미지 업로드 시에도 비교적 자연스러운 반응을 기대할 수 있습니다.
최신 데스크톱 + WebGL좋음WebGPU보다 느릴 수 있으나 실사용엔 충분한 경우가 많습니다.
중급 모바일 + WebGL보통이미지 수가 많으면 검사 대기 시간이 늘 수 있습니다.
제한 환경 + WASM보통~낮음그래픽 가속이 어려운 환경에서 기능 유지용으로 유용합니다.
CPU only낮음호환성 최후 보루입니다. 대량 업로드엔 불리합니다.

여기서 중요한 것은, TensorFlow.js 공식 자료도 성능 측정을 로컬 벤치마크 도구로 직접 측정하라고 안내한다는 점입니다. 즉, SafeAI 운영팀이 실제 성능을 알고 싶다면 서버 스펙이 아니라 대표 사용자 기기군에서 직접 재야 합니다. TensorFlow.js 공식 저장소

초기 로딩과 캐싱 기대치

NSFWJS 공식 자료는 self-hosting 모델을 사용할 때 번들 크기를 줄일 수 있고, 브라우저에서는 모델 캐싱을 고려하라고 안내합니다. 또한 호스팅 모델을 직접 불러오면 패키지에 base64로 포함된 번들보다 초기 로딩 면에서 이점이 있을 수 있다고 설명합니다.

T2Editor 9.1.0에서 이를 반영해 기대할 수 있는 효과는 다음과 같습니다.

  • 첫 사용 시: 모델 파일 다운로드 + 초기화 비용이 있습니다.
  • 같은 세션/재방문 시: 브라우저 캐시 상태에 따라 재다운로드 비용이 줄어들 수 있습니다.
  • 자체 호스팅 시: 외부 모델 호스팅 변경, 핫링크 차단, 응답 지연 리스크를 줄일 수 있습니다.

self-hosting이 성능에도 유리한가

대체로 그렇지만, 정확히는 "성능과 안정성에 모두 유리할 가능성이 높다"가 맞습니다.

공식 자료는 self-hosting이 다음과 같은 이유로 유리할 수 있다고 설명합니다.

  • 번들 크기 절감
  • raw binary 파일 직접 로드
  • 초기 로드 시간 개선 가능성
  • production 전환 시 권장

T2Editor 운영 관점에서는 여기에 다음 이점이 추가됩니다.

  • 에디터 설치 경로(/plugin/editor/t2editor/...)와 일관된 자산 관리
  • 방화벽/망분리 환경 대응
  • 외부 CDN 의존도 감소
  • 배포 시 캐시 정책을 직접 통제 가능

모델 교체 시 기대 성능 변화

기본 MobileNetV2Mid 외 모델을 쓸 수는 있지만, 기대 성능은 달라집니다.

모델기대 정확도기대 속도운영 적합성
MobileNetV2저사양/빠른 반응 우선 환경
MobileNetV2Mid중상중상기본값으로 가장 균형적
InceptionV3상 방향 기대중~하더 높은 비용을 감수할 수 있는 환경

이 표는 공식 문서 수치 + 일반적인 TFJS 모델 특성을 합친 해석표입니다. 공식 자료는 InceptionV3의 입력 크기가 299라고 안내하고, MobileNetV2Mid는 graph 모델 주의사항을 명시합니다. 입력 해상도와 모델 구조가 커질수록 일반적으로 추론 비용도 늘어날 가능성이 큽니다.

주의

이 문서의 모델별 속도 비교는 방향성 분석입니다. NSFWJS 공식 README는 모델별 FPS 수치를 보장하지 않습니다.

T2Editor SafeAI의 현실적인 역할

T2Editor에서 이 기능의 가장 적절한 역할은 다음입니다.

  • 업로드 시 즉시 경고를 보여주는 프론트 보조 장치
  • 커뮤니티 운영에서 1차 사용자 억제 장치
  • 서버 전송 전 사전 걸러내기

반대로 이 역할로 과대 해석하면 안 됩니다.

  • 법적 확정 판정기
  • 완전 자동 삭제 엔진
  • 사람 검토가 필요 없는 정책 집행기

공식 README 자체가 "완벽하지 않다"고 전제하는 만큼, T2Editor SafeAI도 정책 집행 보조 도구로 설명하는 것이 맞습니다.

운영 권장안

초보자 / 웹마스터

  • 기본값은 MobileNetV2Mid 유지
  • self-hosted 자산 사용
  • webgpu -> webgl -> wasm -> cpu 폴백 유지
  • 의심 이미지(suspect)는 자동 허용보다 경고 후 선택 정책 권장

개발자

  • 대량 업로드 시 동시 추론 수를 무리하게 높이지 않기
  • 첫 모델 로딩과 재방문 캐시를 분리해서 측정하기
  • 대표 기기군별로 체감 시간 기록하기
  • 서버 필터가 별도로 있다면, SafeAI는 프론트 1차 판별기로만 두기

AI agent / 문서 작성자

  • "정확도 93%"를 절대 성능처럼 쓰지 말고, 공식 자료 기준 midsized model 기대치라고 써야 합니다.
  • "WebGPU가 가장 빠르다" 대신 지원 브라우저/하드웨어에서 대체로 가장 빠른 경향이라고 표현해야 합니다.

이 보고서의 한계

이 문서는 공식 자료와 현재 코드 구조를 기반으로 한 해석 문서입니다. 다음은 직접 측정하지 않았습니다.

  • 특정 스마트폰 기종별 FPS
  • 특정 이미지 개수별 평균 업로드 대기 시간
  • 한국형 운영 데이터셋 기준 오탐/미탐률

따라서 운영 보고서에 이 문서를 인용할 때는 "공식 자료 기반 기대 성능 분석"으로 분류하는 것이 적절합니다.

참고 자료

수정 요약

  • NSFWJS 공식 자료를 바탕으로 T2Editor SafeAI의 기대 정확도와 성능 특성을 분석하는 보고 문서 추가
  • 과장된 성능 보장 표현을 피하고 운영 적합성 관점으로 정리
라인 단위 비교
이전 새 버전
1 --- 1 ---
2 title: 분석 보고서: NSFWJS 기반 T2Editor SafeAI (NSFW)의 기대 성능 2 title: 분석 보고서: NSFWJS 기반 T2Editor SafeAI (NSFW)의 기대 성능
3 document_id: report-nsfwjs-safeai-expected-performance 3 document_id: report-nsfwjs-safeai-expected-performance
4 slug: report-nsfwjs-safeai-expected-performance 4 slug: report-nsfwjs-safeai-expected-performance
5 target_editor_version: 9.1.0 5 target_editor_version: 9.1.0
6 document_type: report 6 document_type: report
7 doc_type: report 7 doc_type: report
8 target_readers: [초보자, 웹마스터, 개발자, AI agent] 8 target_readers: [초보자, 웹마스터, 개발자, AI agent]
9 importance: High 9 importance: High
10 dependency: Medium 10 dependency: Medium
11 core_type: Analysis 11 core_type: Analysis
12 stability: [Stable Anchor, Version-Bound] 12 stability: [Stable Anchor, Version-Bound]
13 stable_anchor: [NSFWJS는 브라우저 추론 기반이다, MobileNetV2Mid는 기본 MobileNetV2보다 정확도 기대치가 높다, 실제 성능은 브라우저 백엔드와 기기 성능에 좌우된다] 13 stable_anchor: [NSFWJS는 브라우저 추론 기반이다, MobileNetV2Mid는 기본 MobileNetV2보다 정확도 기대치가 높다, 실제 성능은 브라우저 백엔드와 기기 성능에 좌우된다]
14 version_bound: [T2Editor 9.1.0의 NSFWJS 래퍼 구현, WebGPU 우선 폴백 순서, 자체 호스팅 기본 경로] 14 version_bound: [T2Editor 9.1.0의 NSFWJS 래퍼 구현, WebGPU 우선 폴백 순서, 자체 호스팅 기본 경로]
15 related_docs: [guide-nsfwjs-overview, core-nsfw_api_browser-js-nsfwjs, config-nsfwjs-runtime-settings, ops-nsfwjs-selfhost-webgpu-ubuntu, guide-nsfwjs-custom-model-installation, reference-nsfwjs-model-compatibility] 15 related_docs: [guide-nsfwjs-overview, core-nsfw_api_browser-js-nsfwjs, config-nsfwjs-runtime-settings, ops-nsfwjs-selfhost-webgpu-ubuntu, guide-nsfwjs-custom-model-installation, reference-nsfwjs-model-compatibility]
16 related_files: [9.1.0/t2editor/config/nsfw_api_browser.js, 9.1.0/t2editor/editor.lib.php, 9.1.0/t2editor/plugin/image/image.js, 9.1.0/t2editor/plugin/image/image.css] 16 related_files: [9.1.0/t2editor/config/nsfw_api_browser.js, 9.1.0/t2editor/editor.lib.php, 9.1.0/t2editor/plugin/image/image.js, 9.1.0/t2editor/plugin/image/image.css]
17 related_functions: [load, classify, classifyWithHeatmap, dispose] 17 related_functions: [load, classify, classifyWithHeatmap, dispose]
18 related_classes_modules: [NSFWJS, TensorFlow.js, WebGPU backend, WASM backend] 18 related_classes_modules: [NSFWJS, TensorFlow.js, WebGPU backend, WASM backend]
19 related_features: [SafeAI, 브라우저 NSFW 판별, 자체 호스팅 모델, WebGPU 가속] 19 related_features: [SafeAI, 브라우저 NSFW 판별, 자체 호스팅 모델, WebGPU 가속]
20 related_ui: [이미지 업로드 모달, NSFW 상태 배지, 경고 팝업] 20 related_ui: [이미지 업로드 모달, NSFW 상태 배지, 경고 팝업]
21 change_risk: 이 문서는 공식 자료를 바탕으로 한 기대 성능 분석 문서입니다. 수치 해석을 과장하거나 운영 정책으로 오용하면 잘못된 기대를 만들 수 있습니다. 21 change_risk: 이 문서는 공식 자료를 바탕으로 한 기대 성능 분석 문서입니다. 수치 해석을 과장하거나 운영 정책으로 오용하면 잘못된 기대를 만들 수 있습니다.
22 reading_order: 26 22 reading_order: 26
23 summary: NSFWJS 공식 자료를 기준으로 T2Editor SafeAI(NSFW)의 정확도, 속도, 로딩, 운영 적합성을 분석하는 보고 문서 23 summary: NSFWJS 공식 자료를 기준으로 T2Editor SafeAI(NSFW)의 정확도, 속도, 로딩, 운영 적합성을 분석하는 보고 문서
24 description: NSFWJS와 TensorFlow.js 공식 자료를 바탕으로 T2Editor 9.1.0 SafeAI(NSFW)의 기대 정확도와 성능 특성을 해석한 분석 보고서 24 description: NSFWJS와 TensorFlow.js 공식 자료를 바탕으로 T2Editor 9.1.0 SafeAI(NSFW)의 기대 정확도와 성능 특성을 해석한 분석 보고서
25 tags: [NSFWJS, SafeAI, T2Editor, performance, analysis, report] 25 tags: [NSFWJS, SafeAI, T2Editor, performance, analysis, report]
26 version_tag: 9.1.0 26 version_tag: 9.1.0
27 maintenance_difficulty: Medium 27 maintenance_difficulty: Medium
28 test_requirement: High 28 test_requirement: High
29 ai_agent_risk: Medium 29 ai_agent_risk: Medium
30 source_basis: [NSFWJS 공식 README 기반, TensorFlow.js 공식 문서 기반, 현재 코드 구조 분석 기반] 30 source_basis: [NSFWJS 공식 README 기반, TensorFlow.js 공식 문서 기반, 현재 코드 구조 분석 기반]
31 beginner_section_included: true 31 beginner_section_included: true
32 webmaster_section_included: true 32 webmaster_section_included: true
33 developer_section_included: true 33 developer_section_included: true
34 --- 34 ---
35   35  
36 = 분석 보고서: NSFWJS 기반 T2Editor SafeAI (NSFW)의 기대 성능 = 36 = 분석 보고서: NSFWJS 기반 T2Editor SafeAI (NSFW)의 기대 성능 =
37   37  
38 [목차] 38 [목차]
39   39  
40 [[분류:분석]] 40 [[분류:분석]]
41 [[분류:SafeAI]] 41 [[분류:SafeAI]]
42 [[분류:NSFWJS]] 42 [[분류:NSFWJS]]
43 [[분류:T2Editor]] 43 [[분류:T2Editor]]
44   44  
45 [note(요약)] 45 [note(요약)]
46 T2Editor 9.1.0의 SafeAI(NSFW)는 서버 추론형 고정 성능 제품이 아니라, **브라우저 안에서 TensorFlow.js + NSFWJS가 직접 추론하는 구조**입니다. 따라서 성능은 모델 종류, 백엔드(WebGPU/WebGL/WASM/CPU), 브라우저 구현, 사용자 기기 성능에 따라 달라집니다. 이 문서는 **공식 자료가 보장하는 범위**와 **T2Editor에서 현실적으로 기대할 수 있는 수준**을 구분해서 설명합니다. 46 T2Editor 9.1.0의 SafeAI(NSFW)는 서버 추론형 고정 성능 제품이 아니라, **브라우저 안에서 TensorFlow.js + NSFWJS가 직접 추론하는 구조**입니다. 따라서 성능은 모델 종류, 백엔드(WebGPU/WebGL/WASM/CPU), 브라우저 구현, 사용자 기기 성능에 따라 달라집니다. 이 문서는 **공식 자료가 보장하는 범위**와 **T2Editor에서 현실적으로 기대할 수 있는 수준**을 구분해서 설명합니다.
47 [/note] 47 [/note]
48   48  
49 == 문서 목적 == 49 == 문서 목적 ==
50 이 문서는 다음 질문에 답하기 위해 작성되었습니다. 50 이 문서는 다음 질문에 답하기 위해 작성되었습니다.
51   51  
52 - NSFWJS를 붙인 T2Editor SafeAI는 얼마나 정확할 것으로 기대할 수 있는가? 52 - NSFWJS를 붙인 T2Editor SafeAI는 얼마나 정확할 것으로 기대할 수 있는가?
53 - WebGPU, WebGL, WASM, CPU 중 어떤 백엔드에서 어떤 운영 기대치를 가져야 하는가? 53 - WebGPU, WebGL, WASM, CPU 중 어떤 백엔드에서 어떤 운영 기대치를 가져야 하는가?
54 - 기본 제공 `MobileNetV2Mid`를 선택한 이유는 무엇인가? 54 - 기본 제공 `MobileNetV2Mid`를 선택한 이유는 무엇인가?
55 - 이 기능을 **보안 장치**로 봐야 하는가, 아니면 **사용자 보조 필터**로 봐야 하는가? 55 - 이 기능을 **보안 장치**로 봐야 하는가, 아니면 **사용자 보조 필터**로 봐야 하는가?
56   56  
57 == 결론 먼저 == 57 == 결론 먼저 ==
58   58  
59 [warning(핵심 결론)] 59 [warning(핵심 결론)]
60 T2Editor 9.1.0의 SafeAI(NSFW)는 **업로드 전 사용자 측 경고/차단 보조 시스템**으로는 적합하지만, 법적/정책적 책임이 걸린 **최종 심사 엔진**으로 간주하면 안 됩니다. 60 T2Editor 9.1.0의 SafeAI(NSFW)는 **업로드 전 사용자 측 경고/차단 보조 시스템**으로는 적합하지만, 법적/정책적 책임이 걸린 **최종 심사 엔진**으로 간주하면 안 됩니다.
61 [/warning] 61 [/warning]
62   62  
63 요약하면 다음과 같습니다. 63 요약하면 다음과 같습니다.
64   64  
65 ||= 항목 ||= 기대 평가 ||= 해설 || 65 ||= 항목 ||= 기대 평가 ||= 해설 ||
66 || 정확도 || 중상 || NSFWJS 공식 자료 기준으로 small 모델은 약 90%, midsized 모델은 약 93% 수준이라고 안내됩니다. T2Editor는 이 중 `MobileNetV2Mid`를 채택하므로 기본 모델보다 높은 정확도를 기대할 수 있습니다. || 66 || 정확도 || 중상 || NSFWJS 공식 자료 기준으로 small 모델은 약 90%, midsized 모델은 약 93% 수준이라고 안내됩니다. T2Editor는 이 중 `MobileNetV2Mid`를 채택하므로 기본 모델보다 높은 정확도를 기대할 수 있습니다. ||
67 || 응답성 || 중상~상 || 지원 브라우저/하드웨어에서 `webgpu`가 가장 유력한 최고 성능 경로입니다. 다만 미지원 환경에서는 `webgl`, `wasm`, `cpu`로 내려가며 체감 속도 차이가 커질 수 있습니다. || 67 || 응답성 || 중상~상 || 지원 브라우저/하드웨어에서 `webgpu`가 가장 유력한 최고 성능 경로입니다. 다만 미지원 환경에서는 `webgl`, `wasm`, `cpu`로 내려가며 체감 속도 차이가 커질 수 있습니다. ||
68 || 초기 로딩 || 중 || 첫 모델 로딩 비용은 분명 존재합니다. 자체 호스팅과 캐싱으로 첫 로딩 부담을 줄일 수 있습니다. || 68 || 초기 로딩 || 중 || 첫 모델 로딩 비용은 분명 존재합니다. 자체 호스팅과 캐싱으로 첫 로딩 부담을 줄일 수 있습니다. ||
69 || 운영 안정성 || 중상 || self-hosted 자산으로 바꾸면 외부 CDN 장애와 핫링크 문제를 피하기 쉽습니다. || 69 || 운영 안정성 || 중상 || self-hosted 자산으로 바꾸면 외부 CDN 장애와 핫링크 문제를 피하기 쉽습니다. ||
70 || 심사 엔진 적합성 || 낮음 || 단독 최종 판정 엔진으로 쓰기엔 공식 자료 자체가 '완벽하지 않다'고 전제합니다. || 70 || 심사 엔진 적합성 || 낮음 || 단독 최종 판정 엔진으로 쓰기엔 공식 자료 자체가 '완벽하지 않다'고 전제합니다. ||
71   71  
72 == 공식 자료가 말하는 정확도 == 72 == 공식 자료가 말하는 정확도 ==
73 NSFWJS 공식 README는 이 라이브러리가 **완벽하지는 않지만 꽤 정확하다**고 설명하면서, small 모델은 약 90%, midsized 모델은 약 93%라고 안내합니다. T2Editor 9.1.0에서 채택한 방향은 `MobileNetV2Mid`이므로, 공식 자료만 놓고 보면 기본 `MobileNetV2`보다 한 단계 높은 정확도 기대치를 갖는 구성이 됩니다. [[https://github.com/infinitered/nsfwjs|NSFWJS 공식 저장소]] 73 NSFWJS 공식 README는 이 라이브러리가 **완벽하지는 않지만 꽤 정확하다**고 설명하면서, small 모델은 약 90%, midsized 모델은 약 93%라고 안내합니다. T2Editor 9.1.0에서 채택한 방향은 `MobileNetV2Mid`이므로, 공식 자료만 놓고 보면 기본 `MobileNetV2`보다 한 단계 높은 정확도 기대치를 갖는 구성이 됩니다. [[https://github.com/infinitered/nsfwjs|NSFWJS 공식 저장소]]
74   74  
75 이 문장을 T2Editor 관점으로 번역하면 다음과 같습니다. 75 이 문장을 T2Editor 관점으로 번역하면 다음과 같습니다.
76   76  
77 - **안전 이미지 대부분을 무리 없이 통과**시키는 보조 필터로는 충분히 실용적이다. 77 - **안전 이미지 대부분을 무리 없이 통과**시키는 보조 필터로는 충분히 실용적이다.
78 - **노출 가능성이 있는 이미지에 경고를 거는 1차 필터**로는 유용하다. 78 - **노출 가능성이 있는 이미지에 경고를 거는 1차 필터**로는 유용하다.
79 - 하지만 **오탐지**와 **미탐지**를 완전히 제거할 수준으로 읽으면 안 된다. 79 - 하지만 **오탐지**와 **미탐지**를 완전히 제거할 수준으로 읽으면 안 된다.
80   80  
81 [tip(해석 팁)] 81 [tip(해석 팁)]
82 공식 정확도 수치는 T2Editor의 실제 운영 데이터가 아닙니다. 따라서 문서나 운영 보고서에는 **"공식 자료 기준 기대 정확도"**라고 표현하는 것이 안전합니다. 82 공식 정확도 수치는 T2Editor의 실제 운영 데이터가 아닙니다. 따라서 문서나 운영 보고서에는 **"공식 자료 기준 기대 정확도"**라고 표현하는 것이 안전합니다.
83 [/tip] 83 [/tip]
84   84  
85 == 왜 MobileNetV2Mid를 기본값으로 잡았는가 == 85 == 왜 MobileNetV2Mid를 기본값으로 잡았는가 ==
86 NSFWJS 공식 자료는 내장 모델로 `MobileNetV2`, `MobileNetV2Mid`, `InceptionV3`를 제시합니다. 또한 `MobileNetV2Mid`는 graph 모델로 로드해야 할 수 있다고 안내합니다. [[reference-nsfwjs-model-compatibility]] 86 NSFWJS 공식 자료는 내장 모델로 `MobileNetV2`, `MobileNetV2Mid`, `InceptionV3`를 제시합니다. 또한 `MobileNetV2Mid`는 graph 모델로 로드해야 할 수 있다고 안내합니다.
87   87  
88 T2Editor SafeAI 기준에서 `MobileNetV2Mid`가 기본값으로 적합한 이유는 다음과 같습니다. 88 T2Editor SafeAI 기준에서 `MobileNetV2Mid`가 기본값으로 적합한 이유는 다음과 같습니다.
89   89  
90 1. **기본 MobileNetV2보다 정확도 기대치가 높다.** 90 1. **기본 MobileNetV2보다 정확도 기대치가 높다.**
91 2. **InceptionV3보다 운영 비용을 덜 공격적으로 가져갈 수 있다.** 91 2. **InceptionV3보다 운영 비용을 덜 공격적으로 가져갈 수 있다.**
92 3. **브라우저 추론형 에디터 플러그인에 넣기에 균형이 좋다.** 92 3. **브라우저 추론형 에디터 플러그인에 넣기에 균형이 좋다.**
93   93  
94 즉, `MobileNetV2Mid`는 T2Editor SafeAI를 **"최고 정확도 단독 지향"**이 아니라 **"브라우저에서 충분히 실용적인 균형형 판별기"**로 두는 선택이라고 볼 수 있습니다. 94 즉, `MobileNetV2Mid`는 T2Editor SafeAI를 **"최고 정확도 단독 지향"**이 아니라 **"브라우저에서 충분히 실용적인 균형형 판별기"**로 두는 선택이라고 볼 수 있습니다.
95   95  
96 == 속도 기대치: 왜 WebGPU 우선인가 == 96 == 속도 기대치: 왜 WebGPU 우선인가 ==
97 NSFWJS 공식 README는 백엔드 선택 가이드에서 다음과 같이 설명합니다. 97 NSFWJS 공식 README는 백엔드 선택 가이드에서 다음과 같이 설명합니다.
98   98  
99 - `webgpu`: 지원 브라우저/하드웨어에서 **often fastest** 99 - `webgpu`: 지원 브라우저/하드웨어에서 **often fastest**
100 - `webgl`: 현대 브라우저에서 강한 기본 선택 100 - `webgl`: 현대 브라우저에서 강한 기본 선택
101 - `wasm`: WebGL 사용이 어렵거나 제한된 환경에서 유용한 fallback 101 - `wasm`: WebGL 사용이 어렵거나 제한된 환경에서 유용한 fallback
102 - `cpu`: 호환성은 넓지만 일반적으로 더 느림 102 - `cpu`: 호환성은 넓지만 일반적으로 더 느림
103   103  
104 이 설명은 T2Editor 9.1.0의 구현 방향과 정확히 맞닿아 있습니다. 즉 SafeAI는 `webgpu -> webgl -> wasm -> cpu` 순으로 시도하는 것이 가장 현실적인 전략입니다. [[ops-nsfwjs-selfhost-webgpu-ubuntu]] 104 이 설명은 T2Editor 9.1.0의 구현 방향과 정확히 맞닿아 있습니다. 즉 SafeAI는 `webgpu -> webgl -> wasm -> cpu` 순으로 시도하는 것이 가장 현실적인 전략입니다.
105   105  
106 [note(운영 해석)] 106 [note(운영 해석)]
107 공식 자료는 **"WebGPU가 항상 fastest"**라고 단정하지 않고 **"often fastest"**라고 설명합니다. 따라서 문서나 UI에서도 "WebGPU면 무조건 초고속" 같은 표현은 피하는 편이 맞습니다. 107 공식 자료는 **"WebGPU가 항상 fastest"**라고 단정하지 않고 **"often fastest"**라고 설명합니다. 따라서 문서나 UI에서도 "WebGPU면 무조건 초고속" 같은 표현은 피하는 편이 맞습니다.
108 [/note] 108 [/note]
109   109  
110 == 속도 기대치: 사용자 체감 기준 == 110 == 속도 기대치: 사용자 체감 기준 ==
111 T2Editor SafeAI는 서버가 아니라 **사용자 브라우저에서 분류**합니다. 따라서 체감 성능은 다음 순서로 갈립니다. 111 T2Editor SafeAI는 서버가 아니라 **사용자 브라우저에서 분류**합니다. 따라서 체감 성능은 다음 순서로 갈립니다.
112   112  
113 ||= 환경 ||= 기대 체감 ||= 운영 해석 || 113 ||= 환경 ||= 기대 체감 ||= 운영 해석 ||
114 || 최신 데스크톱 + WebGPU 지원 브라우저 || 가장 좋음 || 다중 이미지 업로드 시에도 비교적 자연스러운 반응을 기대할 수 있습니다. || 114 || 최신 데스크톱 + WebGPU 지원 브라우저 || 가장 좋음 || 다중 이미지 업로드 시에도 비교적 자연스러운 반응을 기대할 수 있습니다. ||
115 || 최신 데스크톱 + WebGL || 좋음 || WebGPU보다 느릴 수 있으나 실사용엔 충분한 경우가 많습니다. || 115 || 최신 데스크톱 + WebGL || 좋음 || WebGPU보다 느릴 수 있으나 실사용엔 충분한 경우가 많습니다. ||
116 || 중급 모바일 + WebGL || 보통 || 이미지 수가 많으면 검사 대기 시간이 늘 수 있습니다. || 116 || 중급 모바일 + WebGL || 보통 || 이미지 수가 많으면 검사 대기 시간이 늘 수 있습니다. ||
117 || 제한 환경 + WASM || 보통~낮음 || 그래픽 가속이 어려운 환경에서 기능 유지용으로 유용합니다. || 117 || 제한 환경 + WASM || 보통~낮음 || 그래픽 가속이 어려운 환경에서 기능 유지용으로 유용합니다. ||
118 || CPU only || 낮음 || 호환성 최후 보루입니다. 대량 업로드엔 불리합니다. || 118 || CPU only || 낮음 || 호환성 최후 보루입니다. 대량 업로드엔 불리합니다. ||
119   119  
120 여기서 중요한 것은, TensorFlow.js 공식 자료도 성능 측정을 **로컬 벤치마크 도구로 직접 측정**하라고 안내한다는 점입니다. 즉, SafeAI 운영팀이 실제 성능을 알고 싶다면 서버 스펙이 아니라 **대표 사용자 기기군**에서 직접 재야 합니다. [[https://github.com/tensorflow/tfjs|TensorFlow.js 공식 저장소]] 120 여기서 중요한 것은, TensorFlow.js 공식 자료도 성능 측정을 **로컬 벤치마크 도구로 직접 측정**하라고 안내한다는 점입니다. 즉, SafeAI 운영팀이 실제 성능을 알고 싶다면 서버 스펙이 아니라 **대표 사용자 기기군**에서 직접 재야 합니다. [[https://github.com/tensorflow/tfjs|TensorFlow.js 공식 저장소]]
121   121  
122 == 초기 로딩과 캐싱 기대치 == 122 == 초기 로딩과 캐싱 기대치 ==
123 NSFWJS 공식 자료는 self-hosting 모델을 사용할 때 번들 크기를 줄일 수 있고, 브라우저에서는 **모델 캐싱**을 고려하라고 안내합니다. 또한 호스팅 모델을 직접 불러오면 패키지에 base64로 포함된 번들보다 초기 로딩 면에서 이점이 있을 수 있다고 설명합니다. [[guide-nsfwjs-custom-model-installation]] 123 NSFWJS 공식 자료는 self-hosting 모델을 사용할 때 번들 크기를 줄일 수 있고, 브라우저에서는 **모델 캐싱**을 고려하라고 안내합니다. 또한 호스팅 모델을 직접 불러오면 패키지에 base64로 포함된 번들보다 초기 로딩 면에서 이점이 있을 수 있다고 설명합니다.
124   124  
125 T2Editor 9.1.0에서 이를 반영해 기대할 수 있는 효과는 다음과 같습니다. 125 T2Editor 9.1.0에서 이를 반영해 기대할 수 있는 효과는 다음과 같습니다.
126   126  
127 - **첫 사용 시**: 모델 파일 다운로드 + 초기화 비용이 있습니다. 127 - **첫 사용 시**: 모델 파일 다운로드 + 초기화 비용이 있습니다.
128 - **같은 세션/재방문 시**: 브라우저 캐시 상태에 따라 재다운로드 비용이 줄어들 수 있습니다. 128 - **같은 세션/재방문 시**: 브라우저 캐시 상태에 따라 재다운로드 비용이 줄어들 수 있습니다.
129 - **자체 호스팅 시**: 외부 모델 호스팅 변경, 핫링크 차단, 응답 지연 리스크를 줄일 수 있습니다. 129 - **자체 호스팅 시**: 외부 모델 호스팅 변경, 핫링크 차단, 응답 지연 리스크를 줄일 수 있습니다.
130   130  
131 == self-hosting이 성능에도 유리한가 == 131 == self-hosting이 성능에도 유리한가 ==
132 대체로 그렇지만, 정확히는 **"성능과 안정성에 모두 유리할 가능성이 높다"**가 맞습니다. 132 대체로 그렇지만, 정확히는 **"성능과 안정성에 모두 유리할 가능성이 높다"**가 맞습니다.
133   133  
134 공식 자료는 self-hosting이 다음과 같은 이유로 유리할 수 있다고 설명합니다. 134 공식 자료는 self-hosting이 다음과 같은 이유로 유리할 수 있다고 설명합니다.
135   135  
136 - 번들 크기 절감 136 - 번들 크기 절감
137 - raw binary 파일 직접 로드 137 - raw binary 파일 직접 로드
138 - 초기 로드 시간 개선 가능성 138 - 초기 로드 시간 개선 가능성
139 - production 전환 시 권장 139 - production 전환 시 권장
140   140  
141 T2Editor 운영 관점에서는 여기에 다음 이점이 추가됩니다. 141 T2Editor 운영 관점에서는 여기에 다음 이점이 추가됩니다.
142   142  
143 - 에디터 설치 경로(`/plugin/editor/t2editor/...`)와 일관된 자산 관리 143 - 에디터 설치 경로(`/plugin/editor/t2editor/...`)와 일관된 자산 관리
144 - 방화벽/망분리 환경 대응 144 - 방화벽/망분리 환경 대응
145 - 외부 CDN 의존도 감소 145 - 외부 CDN 의존도 감소
146 - 배포 시 캐시 정책을 직접 통제 가능 146 - 배포 시 캐시 정책을 직접 통제 가능
147   147  
148 == 모델 교체 시 기대 성능 변화 == 148 == 모델 교체 시 기대 성능 변화 ==
149 기본 `MobileNetV2Mid` 외 모델을 쓸 수는 있지만, 기대 성능은 달라집니다. 149 기본 `MobileNetV2Mid` 외 모델을 쓸 수는 있지만, 기대 성능은 달라집니다.
150   150  
151 ||= 모델 ||= 기대 정확도 ||= 기대 속도 ||= 운영 적합성 || 151 ||= 모델 ||= 기대 정확도 ||= 기대 속도 ||= 운영 적합성 ||
152 || MobileNetV2 || 중 || 상 || 저사양/빠른 반응 우선 환경 || 152 || MobileNetV2 || 중 || 상 || 저사양/빠른 반응 우선 환경 ||
153 || MobileNetV2Mid || 중상 || 중상 || 기본값으로 가장 균형적 || 153 || MobileNetV2Mid || 중상 || 중상 || 기본값으로 가장 균형적 ||
154 || InceptionV3 || 상 방향 기대 || 중~하 || 더 높은 비용을 감수할 수 있는 환경 || 154 || InceptionV3 || 상 방향 기대 || 중~하 || 더 높은 비용을 감수할 수 있는 환경 ||
155   155  
156 이 표는 **공식 문서 수치 + 일반적인 TFJS 모델 특성**을 합친 해석표입니다. 공식 자료는 `InceptionV3`의 입력 크기가 299라고 안내하고, `MobileNetV2Mid`는 graph 모델 주의사항을 명시합니다. 입력 해상도와 모델 구조가 커질수록 일반적으로 추론 비용도 늘어날 가능성이 큽니다. [[reference-nsfwjs-model-compatibility]] 156 이 표는 **공식 문서 수치 + 일반적인 TFJS 모델 특성**을 합친 해석표입니다. 공식 자료는 `InceptionV3`의 입력 크기가 299라고 안내하고, `MobileNetV2Mid`는 graph 모델 주의사항을 명시합니다. 입력 해상도와 모델 구조가 커질수록 일반적으로 추론 비용도 늘어날 가능성이 큽니다.
157   157  
158 [warning] 158 [warning]
159 이 문서의 모델별 속도 비교는 **방향성 분석**입니다. NSFWJS 공식 README는 모델별 FPS 수치를 보장하지 않습니다. 159 이 문서의 모델별 속도 비교는 **방향성 분석**입니다. NSFWJS 공식 README는 모델별 FPS 수치를 보장하지 않습니다.
160 [/warning] 160 [/warning]
161   161  
162 == T2Editor SafeAI의 현실적인 역할 == 162 == T2Editor SafeAI의 현실적인 역할 ==
163 T2Editor에서 이 기능의 가장 적절한 역할은 다음입니다. 163 T2Editor에서 이 기능의 가장 적절한 역할은 다음입니다.
164   164  
165 - 업로드 시 **즉시 경고**를 보여주는 프론트 보조 장치 165 - 업로드 시 **즉시 경고**를 보여주는 프론트 보조 장치
166 - 커뮤니티 운영에서 **1차 사용자 억제 장치** 166 - 커뮤니티 운영에서 **1차 사용자 억제 장치**
167 - 서버 전송 전 **사전 걸러내기** 167 - 서버 전송 전 **사전 걸러내기**
168   168  
169 반대로 이 역할로 과대 해석하면 안 됩니다. 169 반대로 이 역할로 과대 해석하면 안 됩니다.
170   170  
171 - 법적 확정 판정기 171 - 법적 확정 판정기
172 - 완전 자동 삭제 엔진 172 - 완전 자동 삭제 엔진
173 - 사람 검토가 필요 없는 정책 집행기 173 - 사람 검토가 필요 없는 정책 집행기
174   174  
175 공식 README 자체가 "완벽하지 않다"고 전제하는 만큼, T2Editor SafeAI도 **정책 집행 보조 도구**로 설명하는 것이 맞습니다. 175 공식 README 자체가 "완벽하지 않다"고 전제하는 만큼, T2Editor SafeAI도 **정책 집행 보조 도구**로 설명하는 것이 맞습니다.
176   176  
177 == 운영 권장안 == 177 == 운영 권장안 ==
178   178  
179 === 초보자 / 웹마스터 === 179 === 초보자 / 웹마스터 ===
180 - 기본값은 `MobileNetV2Mid` 유지 180 - 기본값은 `MobileNetV2Mid` 유지
181 - self-hosted 자산 사용 181 - self-hosted 자산 사용
182 - `webgpu -> webgl -> wasm -> cpu` 폴백 유지 182 - `webgpu -> webgl -> wasm -> cpu` 폴백 유지
183 - 의심 이미지(`suspect`)는 자동 허용보다 **경고 후 선택** 정책 권장 183 - 의심 이미지(`suspect`)는 자동 허용보다 **경고 후 선택** 정책 권장
184   184  
185 === 개발자 === 185 === 개발자 ===
186 - 대량 업로드 시 동시 추론 수를 무리하게 높이지 않기 186 - 대량 업로드 시 동시 추론 수를 무리하게 높이지 않기
187 - 첫 모델 로딩과 재방문 캐시를 분리해서 측정하기 187 - 첫 모델 로딩과 재방문 캐시를 분리해서 측정하기
188 - 대표 기기군별로 체감 시간 기록하기 188 - 대표 기기군별로 체감 시간 기록하기
189 - 서버 필터가 별도로 있다면, SafeAI는 **프론트 1차 판별기**로만 두기 189 - 서버 필터가 별도로 있다면, SafeAI는 **프론트 1차 판별기**로만 두기
190   190  
191 === AI agent / 문서 작성자 === 191 === AI agent / 문서 작성자 ===
192 - "정확도 93%"를 절대 성능처럼 쓰지 말고, **공식 자료 기준 midsized model 기대치**라고 써야 합니다. 192 - "정확도 93%"를 절대 성능처럼 쓰지 말고, **공식 자료 기준 midsized model 기대치**라고 써야 합니다.
193 - "WebGPU가 가장 빠르다" 대신 **지원 브라우저/하드웨어에서 대체로 가장 빠른 경향**이라고 표현해야 합니다. 193 - "WebGPU가 가장 빠르다" 대신 **지원 브라우저/하드웨어에서 대체로 가장 빠른 경향**이라고 표현해야 합니다.
194   194  
195 == 이 보고서의 한계 == 195 == 이 보고서의 한계 ==
196 이 문서는 공식 자료와 현재 코드 구조를 기반으로 한 **해석 문서**입니다. 다음은 직접 측정하지 않았습니다. 196 이 문서는 공식 자료와 현재 코드 구조를 기반으로 한 **해석 문서**입니다. 다음은 직접 측정하지 않았습니다.
197   197  
198 - 특정 스마트폰 기종별 FPS 198 - 특정 스마트폰 기종별 FPS
199 - 특정 이미지 개수별 평균 업로드 대기 시간 199 - 특정 이미지 개수별 평균 업로드 대기 시간
200 - 한국형 운영 데이터셋 기준 오탐/미탐률 200 - 한국형 운영 데이터셋 기준 오탐/미탐률
201   201  
202 따라서 운영 보고서에 이 문서를 인용할 때는 **"공식 자료 기반 기대 성능 분석"**으로 분류하는 것이 적절합니다. 202 따라서 운영 보고서에 이 문서를 인용할 때는 **"공식 자료 기반 기대 성능 분석"**으로 분류하는 것이 적절합니다.
203   203  
204 == 참고 문서 ==  
205 - [[guide-nsfwjs-overview]]  
206 - [[core-nsfw_api_browser-js-nsfwjs]]  
207 - [[config-nsfwjs-runtime-settings]]  
208 - [[ops-nsfwjs-selfhost-webgpu-ubuntu]]  
209 - [[guide-nsfwjs-custom-model-installation]]  
210 - [[reference-nsfwjs-model-compatibility]]  
211 - [[migration-legacy-nsfw-to-nsfwjs]]  
212  
213 == 참고 자료 == 204 == 참고 자료 ==
214 - [[https://github.com/infinitered/nsfwjs|NSFWJS 공식 저장소]] 205 - [[https://github.com/infinitered/nsfwjs|NSFWJS 공식 저장소]]
215 - [[https://github.com/tensorflow/tfjs|TensorFlow.js 공식 저장소]] 206 - [[https://github.com/tensorflow/tfjs|TensorFlow.js 공식 저장소]]
216 - [[https://www.tensorflow.org/js/guide/conversion|TensorFlow.js 모델 변환 가이드]] 207 - [[https://www.tensorflow.org/js/guide/conversion|TensorFlow.js 모델 변환 가이드]]
217 - [[https://www.tensorflow.org/js/guide/save_load|TensorFlow.js 저장/로드 가이드]] 208 - [[https://www.tensorflow.org/js/guide/save_load|TensorFlow.js 저장/로드 가이드]]
218   209  
219 == 수정 요약 == 210 == 수정 요약 ==
220 - NSFWJS 공식 자료를 바탕으로 T2Editor SafeAI의 기대 정확도와 성능 특성을 분석하는 보고 문서 추가 211 - NSFWJS 공식 자료를 바탕으로 T2Editor SafeAI의 기대 정확도와 성능 특성을 분석하는 보고 문서 추가
221 - 과장된 성능 보장 표현을 피하고 운영 적합성 관점으로 정리 212 - 과장된 성능 보장 표현을 피하고 운영 적합성 관점으로 정리
222   213  
✏ 이 상태를 참고해 편집
T2WIKI · 기술 통합 위키 & 프로젝트 허브 · 나무위키 + Markdown 완벽 지원 · SQLite · PHP 8.2 · 소개 · 문법 안내