
텍스트-이미지 확산 모델의 백도어 탐지 및 무해화를 위한 연구 코드로, Stable Diffusion v1.4, v1.5, XL, 3 Medium용 파이프라인을 포함합니다.
TNC-Defense는 텍스트-이미지 확산 모델의 백도어를 탐지하고 정화하기 위한 연구 코드를 제공합니다. 이 저장소는 현재 Stable Diffusion v1.4, Stable Diffusion v1.5, Stable Diffusion XL 및 Stable Diffusion 3 Medium용 탐지 파이프라인과, Stable Diffusion v1.4 및 Stable Diffusion XL용 정화 파이프라인을 포함합니다.
연구용으로만 사용하십시오. 이 코드는 텍스트-이미지 확산 모델의 견고성과 보안을 연구하기 위한 것입니다. 사용자는 모든 상위 모델, 데이터셋 및 구현의 라이선스와 사용 정책을 준수할 책임이 있습니다.
TNC-Defense/
├── TNC-Detect/
│ ├── detect_sd14.py # Detection on Stable Diffusion v1.4
│ ├── detect_sd15.py # Detection on Stable Diffusion v1.5
│ ├── detect_sdxl.py # Detection on Stable Diffusion XL
│ ├── detect_sd3.py # Detection on Stable Diffusion 3 Medium
│ ├── ana.py # Detection metrics and visualization
│ ├── run_detect_sd14.sh # Multi-GPU SD1.4 detection
│ └── ana.sh # Analysis entry point
└── TNC-Detox/
├── data/ # Paired clean/backdoored training data
├── common.py # Shared data and reproducibility utilities
├── detox_sd14.py # Detoxification for SD1.4
├── detox_sdxl.py # Detoxification for SDXL
├── evaluate_sd14.py # SD1.4 generation-based evaluation
├── compute_fid.py # FID evaluation
├── run_detox_sd14.sh # Multi-GPU SD1.4 detoxification
└── run_detox_sdxl.sh # SDXL detoxification
이 코드는 TCN Conda 환경에서 스모크 테스트를 거쳤습니다:
분석 및 평가 유틸리티는 추가로 NumPy, pandas, SciPy, scikit-learn, Matplotlib, Pillow 및 tqdm 패키지가 필요합니다.
실험 실행 전에 환경을 활성화하십시오:
cd TNC-Defense
conda create -n TCN python=3.10 -y
conda activate TCN
python -m pip install --upgrade pip
python -m pip install -r requirements.txt
Bash 진입점은 활성 환경의 python을 사용합니다. 다른 인터프리터는 PYTHON
환경 변수를 통해 지정할 수 있습니다:
PYTHON=python bash TNC-Detect/run_detect_sd14.sh
모든 저장소 경로는 각 스크립트의 위치를 기준으로 해석되므로 명령은 현재 작업
디렉터리에 의존하지 않습니다. 기본 모델 경로는 실험에 사용된 로컬 프로젝트
구조를 따릅니다. 모델이 다른 위치에 저장된 경우 --base-model-path,
--backdoor-model-path, --base-model 또는 --tox-path와 같은 해당
명령줄 인수를 재정의하십시오.
정화 데이터셋은 다음 위치에 포함되어 있습니다:
TNC-Detox/data/
├── sd14/
│ ├── pixel/
│ ├── pixel_mul_tokens/
│ ├── eviledit/
│ ├── personal_bkd/
│ └── villain_mul/
└── sdxl/
├── pixel/
└── pixel_mul_tokens/
각 데이터셋은 clean/, poison/ 및 metadata.json을 포함합니다.
기본 러너는 구성된 모든 SD1.4 백도어 방법을 평가합니다. run_detect_sd14.sh에
정의된 GPU ID에 방법을 할당하고 병렬로 실행합니다.
cd TNC-Defense/TNC-Detect
bash run_detect_sd14.sh
단일 방법을 직접 실행하려면:
python detect_sd14.py \
--backdoor-method pixel \
--device cuda:0 \
--seed 0 \
--num-inference-steps 50
각 모델 계열에 사용 가능한 인수는 다음 명령으로 확인할 수 있습니다:
python detect_sd14.py --help
python detect_sd15.py --help
python detect_sdxl.py --help
python detect_sd3.py --help
MSE CSV 파일을 생성한 후 ana.sh에서 입력 파일을 구성하고 실행하십시오:
bash ana.sh
탐지기는 naive 및 dynamic-k 결정 규칙을 모두 지원합니다. 메트릭과 플롯은
ana.py에 의해 생성됩니다.
기본 SD1.4 러너는 스크립트에 지정된 5개 GPU ID에서 구성된 5가지 방법을 실행합니다:
cd TNC-Defense/TNC-Detox
bash run_detox_sd14.sh
단일 방법을 실행하려면:
python detox_sd14.py \
--method pixel \
--device cuda:0 \
--seed 42
run_detox_sdxl.sh에서 METHOD와 GPU_ID를 구성한 후 실행하십시오:
bash run_detox_sdxl.sh
학습 단계, 타임스텝 샘플링 비율, 손실 가중치, 배치 크기 및 체크포인트 간격을
포함한 방법별 기본값은 각 학습 스크립트의 METHOD_PROFILES 섹션에 정의되어
있습니다. 명령줄 인수로 이러한 기본값을 재정의할 수 있습니다.
하나 이상의 정화된 SD1.4 UNet에서 이미지를 생성합니다:
python evaluate_sd14.py \
--detox-model checkpoints/sd14/<checkpoint> \
--prompt-file <prompt-file>
참조 이미지 디렉터리와 정화된 이미지 디렉터리 간의 FID를 계산합니다:
python compute_fid.py \
--reference-dir <reference-images> \
--candidate-dir <detoxified-images>
42를 사용하며 결정론적 cuDNN 동작을 활성화합니다.이 프로젝트에서 사용하는 백도어 모델과 공격 구성은 다음 공개 리소스에서 비롯되었습니다:
이러한 공격 또는 체크포인트를 사용할 때는 해당 원 논문을 인용하십시오: BadT2I
(badt2izhai2023), EvilEdit (evileditwang2024), VillanDiffusion
(villandiffusionchou2023) 및 PersonalBKD (personalizationhuang2024).
이 프로젝트가 연구에 유용하다면 다음을 인용해 주십시오:
@article{wang2026backdoor,
title={Backdoor sentinel: Detecting and detoxifying backdoors in diffusion models via temporal noise consistency},
author={Wang, Bingzheng and Gu, Xiaoyan and Xu, Hongbo and Li, Hongcheng and Yu, Zimo and Zhou, Jiang and Wang, Weiping},
journal={arXiv preprint arXiv:2602.01765},
year={2026}
}
이 프로젝트는 훌륭한 NaviT2I 코드베이스를 상당 부분 참조하여 구축되었습니다. 구현과 지원 리소스를 공개해 주신 NaviT2I 저자분들께 진심으로 감사드립니다.
또한 코드와 체크포인트를 공개해 주신 BadT2I, EvilEdit, VillanDiffusion, PersonalBKD, Hugging Face Diffusers 및 관련 사전 학습 확산 모델의 저자분들께도 감사드립니다. 모든 타사 구성 요소는 각각의 라이선스와 사용 약관의 적용을 받습니다.