Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
TNC-Defense — Code de recherche pour détecter et détoxifier les portes dérobées dans les modèles de diffusion texte-image, avec des pipelines pour Stable Diffusion v1.4, v1.5, XL et 3 Medium. | Kitploit
Outils/GitHubGitHub/binzhwang/tnc-defense
Analyse des VulnérabilitésApprentissage AutomatiqueArticles et RechercheSécurité de l'IA
GitHubbinzhwang/tnc-defense

TNC-Defense

Code de recherche pour détecter et détoxifier les portes dérobées dans les modèles de diffusion texte-image, avec des pipelines pour Stable Diffusion v1.4, v1.5, XL et 3 Medium.

Voir le dépôt
1il y a 8 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

TNC-Defense

TNC-Defense fournit un code de recherche pour détecter et détoxifier les backdoors dans les modèles de diffusion texte-vers-image. Le dépôt comprend actuellement des pipelines de détection pour Stable Diffusion v1.4, Stable Diffusion v1.5, Stable Diffusion XL et Stable Diffusion 3 Medium, ainsi que des pipelines de détoxification pour Stable Diffusion v1.4 et Stable Diffusion XL.

Usage recherche uniquement. Ce code est destiné à l'étude de la robustesse et de la sécurité des modèles de diffusion texte-vers-image. Les utilisateurs sont responsables du respect des licences et des politiques d'utilisation de tous les modèles, jeux de données et implémentations en amont.

Structure du dépôt

root@kitploit:~
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

Environnement

Le code a été soumis à un test de fumée dans l'environnement Conda TCN avec :

  • Python 3.10
  • PyTorch 2.7.1 avec CUDA 12.8
  • torchvision 0.22.1
  • diffusers 0.35.2
  • transformers 4.45.2

Les utilitaires d'analyse et d'évaluation requièrent en outre des packages tels que NumPy, pandas, SciPy, scikit-learn, Matplotlib, Pillow et tqdm.

Activez l'environnement avant d'exécuter une expérience :

root@kitploit:~
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

Les points d'entrée Bash utilisent le python de l'environnement actif. Un interpréteur différent peut être fourni via la variable d'environnement PYTHON :

root@kitploit:~
PYTHON=python bash TNC-Detect/run_detect_sd14.sh

Chemins et préparation des modèles

Tous les chemins du dépôt sont résolus par rapport à l'emplacement de chaque script, de sorte que les commandes ne dépendent pas du répertoire de travail actuel. Les chemins de modèles par défaut suivent la structure locale du projet utilisée pour les expériences. Si les modèles sont stockés ailleurs, remplacez les arguments de ligne de commande correspondants, tels que --base-model-path, --backdoor-model-path, --base-model ou --tox-path.

Les jeux de données de détoxification sont inclus ci-dessous :

root@kitploit:~
TNC-Detox/data/
├── sd14/
│   ├── pixel/
│   ├── pixel_mul_tokens/
│   ├── eviledit/
│   ├── personal_bkd/
│   └── villain_mul/
└── sdxl/
    ├── pixel/
    └── pixel_mul_tokens/

Chaque jeu de données contient clean/, poison/ et metadata.json.

Détection de backdoors

Stable Diffusion v1.4

L'exécuteur par défaut évalue toutes les méthodes de backdoor SD1.4 configurées. Il affecte les méthodes aux identifiants GPU définis dans run_detect_sd14.sh et les lance en parallèle.

root@kitploit:~
cd TNC-Defense/TNC-Detect
bash run_detect_sd14.sh

Pour exécuter une méthode directement :

root@kitploit:~
python detect_sd14.py \
  --backdoor-method pixel \
  --device cuda:0 \
  --seed 0 \
  --num-inference-steps 50

Les arguments disponibles pour chaque famille de modèles peuvent être consultés avec :

root@kitploit:~
python detect_sd14.py --help
python detect_sd15.py --help
python detect_sdxl.py --help
python detect_sd3.py --help

Analyse de détection

Après avoir généré les fichiers CSV MSE, configurez les fichiers d'entrée dans ana.sh et exécutez :

root@kitploit:~
bash ana.sh

Le détecteur prend en charge aussi bien les règles de décision naïves que k-dynamiques. Les métriques et les graphiques sont produits par ana.py.

Détoxification des backdoors

Stable Diffusion v1.4

L'exécuteur SD1.4 par défaut lance les cinq méthodes configurées sur les cinq identifiants GPU spécifiés dans le script :

root@kitploit:~
cd TNC-Defense/TNC-Detox
bash run_detox_sd14.sh

Pour exécuter une seule méthode :

root@kitploit:~
python detox_sd14.py \
  --method pixel \
  --device cuda:0 \
  --seed 42

Stable Diffusion XL

Configurez METHOD et GPU_ID dans run_detox_sdxl.sh, puis exécutez :

root@kitploit:~
bash run_detox_sdxl.sh

Les valeurs par défaut spécifiques aux méthodes, notamment les étapes d'entraînement, les ratios d'échantillonnage des pas de temps, les poids de perte, les tailles de lots et les intervalles de checkpoint, sont définies dans la section METHOD_PROFILES de chaque script d'entraînement. Les arguments de ligne de commande peuvent remplacer ces valeurs par défaut.

Évaluation

Générez des images à partir d'un ou de plusieurs UNets SD1.4 détoxifiés :

root@kitploit:~
python evaluate_sd14.py \
  --detox-model checkpoints/sd14/<checkpoint> \
  --prompt-file <prompt-file>

Calculez le FID entre le répertoire d'images de référence et celui des images détoxifiées :

root@kitploit:~
python compute_fid.py \
  --reference-dir <reference-images> \
  --candidate-dir <detoxified-images>

Reproductibilité

  • Les scripts de détection préservent les graines, les schedulers, l'ordre des invites, l'attribution des étiquettes et les calculs de dynamique de bruit spécifiques à chaque famille de modèles.
  • La détoxification utilise la graine 42 par défaut et active le comportement déterministe de cuDNN.
  • Les points d'entrée de détoxification SD1.4 et SDXL fournis ont passé de réels tests de fumée sur une étape complète : forward, backward, mise à jour de l'optimiseur et sauvegarde de checkpoint.
  • La reproduction numérique exacte peut encore dépendre du modèle de GPU, de la version de CUDA/cuDNN, de la version de PyTorch et de la révision du checkpoint en amont.

Code tiers et sources des modèles

Les modèles avec backdoor et les configurations d'attaque utilisés par ce projet proviennent des ressources publiques suivantes :

  • BadT2I-Tok et BadT2I-Sent. Nous entraînons les modèles avec backdoor à l'aide de l'implémentation BadT2I des auteurs et suivons les définitions des déclencheurs et les configurations d'entraînement décrites dans les travaux originaux.
  • EvilEdit. Nous générons les modèles avec backdoor à l'aide de l'implémentation d'édition de modèles EvilEdit publiée, avec sa configuration d'attaque d'origine.
  • VillanBKD. Les expériences Stable Diffusion v1.4 utilisent le checkpoint avec backdoor publié publiquement fourni par les auteurs.
  • PersonalBKD-Dream. Nous entraînons le modèle personnalisé avec backdoor en adaptant le pipeline d'entraînement DreamBooth de Hugging Face Diffusers public selon la configuration d'attaque décrite dans les travaux originaux.

Veuillez citer les articles originaux correspondants lorsque vous utilisez ces attaques ou checkpoints : BadT2I (badt2izhai2023), EvilEdit (evileditwang2024), VillanDiffusion (villandiffusionchou2023) et PersonalBKD (personalizationhuang2024).

Citation

Si vous trouvez ce projet utile pour vos recherches, veuillez citer :

root@kitploit:~
@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}
}

Remerciements

Ce projet s'appuie en grande partie sur l'excellente base de code NaviT2I. Nous remercions sincèrement les auteurs de NaviT2I d'avoir publié leur implémentation et leurs ressources de support.

Nous remercions également les auteurs de BadT2I, EvilEdit, VillanDiffusion, PersonalBKD, Hugging Face Diffusers, ainsi que des modèles de diffusion pré-entraînés associés, pour avoir rendu leurs codes et checkpoints accessibles au public. Tous les composants tiers restent soumis à leurs licences et conditions d'utilisation respectives.

Télécharger l’outil