refactor: 移除二次元识别功能,增强 NSFW 检测
This commit is contained in:
@@ -285,10 +285,11 @@ func (d *Detector) detectOnce(path string) (score float64, nsfw bool, err error)
|
||||
return 0, false, err
|
||||
}
|
||||
var out struct {
|
||||
Ok bool `json:"ok"`
|
||||
Error string `json:"error"`
|
||||
Nsfw bool `json:"nsfw"`
|
||||
Score float64 `json:"score"`
|
||||
Ok bool `json:"ok"`
|
||||
Error string `json:"error"`
|
||||
Nsfw bool `json:"nsfw"`
|
||||
Score float64 `json:"score"`
|
||||
Detections []map[string]interface{} `json:"detections"`
|
||||
}
|
||||
if err := json.Unmarshal(data, &out); err != nil {
|
||||
return 0, false, fmt.Errorf("解析检测结果失败: %v", err)
|
||||
@@ -296,6 +297,16 @@ func (d *Detector) detectOnce(path string) (score float64, nsfw bool, err error)
|
||||
if !out.Ok {
|
||||
return 0, false, fmt.Errorf("检测服务返回错误: %s", out.Error)
|
||||
}
|
||||
// 打印所有检测到的类别和分数(调试用)
|
||||
if len(out.Detections) > 0 {
|
||||
var classes []string
|
||||
for _, det := range out.Detections {
|
||||
cls, _ := det["class"].(string)
|
||||
sc, _ := det["score"].(float64)
|
||||
classes = append(classes, fmt.Sprintf("%s:%.3f", cls, sc))
|
||||
}
|
||||
fmt.Printf("=== NSFW 检测详情 %s: [%s]\n", path, strings.Join(classes, ", "))
|
||||
}
|
||||
return out.Score, out.Nsfw, nil
|
||||
}
|
||||
|
||||
|
||||
@@ -37,12 +37,14 @@ try:
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
# 只有这些"暴露部位"才算色情;其它如肚子/腋窝/脚踝暴露不判。
|
||||
# 只有这些"暴露部位"才算色情;其它如腋窝/脚踝暴露不判。
|
||||
SENSITIVE = {
|
||||
"FEMALE_GENITALIA_EXPOSED",
|
||||
"MALE_GENITALIA_EXPOSED",
|
||||
"ANUS_EXPOSED",
|
||||
"FEMALE_BREAST_EXPOSED",
|
||||
"FEMALE_GENITALIA_EXPOSED", # 女性生殖器暴露
|
||||
"MALE_GENITALIA_EXPOSED", # 男性生殖器暴露
|
||||
"ANUS_EXPOSED", # 肛门暴露
|
||||
"FEMALE_BREAST_EXPOSED", # 女性乳房暴露
|
||||
"BUTTOCKS_EXPOSED", # 臀部暴露
|
||||
"BELLY_EXPOSED", # 腹部/腰部暴露(比基尼、露脐装等)
|
||||
}
|
||||
|
||||
# 模型文件与官方下载地址
|
||||
|
||||
Reference in New Issue
Block a user