
टेक्स्ट-टू-इमेज डिफ्यूज़न मॉडल में बैकडोर का पता लगाने और उन्हें हटाने (डीटॉक्सीफाई) के लिए शोध कोड, जिसमें 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 रनर स्क्रिप्ट में निर्दिष्ट पाँच GPU ID पर पाँच कॉन्फ़िगर किए गए तरीकों को लॉन्च करता है:
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 और संबंधित प्रीट्रेंड डिफ्यूज़न मॉडल के लेखकों को उनका कोड और चेकपॉइंट सार्वजनिक रूप से उपलब्ध कराने के लिए भी धन्यवाद देते हैं। सभी तृतीय-पक्ष घटक अपने संबंधित लाइसेंस और उपयोग की शर्तों के अधीन बने हुए हैं।