Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
TNC-Defense — Codice di ricerca per rilevare e disintossicare backdoor nei modelli di diffusione text-to-image, con pipeline per Stable Diffusion v1.4, v1.5, XL e 3 Medium. | Kitploit
Strumenti/GitHubGitHub/binzhwang/tnc-defense
Analisi delle VulnerabilitàMachine LearningPaper e RicercaSicurezza dell'IA
GitHubbinzhwang/tnc-defense

TNC-Defense

Codice di ricerca per rilevare e disintossicare backdoor nei modelli di diffusione text-to-image, con pipeline per Stable Diffusion v1.4, v1.5, XL e 3 Medium.

Vedi Repository
18 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

TNC-Defense

TNC-Defense fornisce codice di ricerca per rilevare e bonificare le backdoor nei modelli di diffusione text-to-image. Il repository attualmente include pipeline di rilevamento per Stable Diffusion v1.4, Stable Diffusion v1.5, Stable Diffusion XL e Stable Diffusion 3 Medium, insieme a pipeline di bonifica per Stable Diffusion v1.4 e Stable Diffusion XL.

Solo per uso di ricerca. Questo codice è pensato per studiare la robustezza e la sicurezza dei modelli di diffusione text-to-image. Gli utenti sono responsabili del rispetto delle licenze e delle policy di utilizzo di tutti i modelli, i dataset e le implementazioni a monte.

Struttura del Repository

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

Ambiente

Il codice è stato sottoposto a smoke test nell'ambiente Conda TCN con:

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

Le utility di analisi e valutazione richiedono inoltre pacchetti come NumPy, pandas, SciPy, scikit-learn, Matplotlib, Pillow e tqdm.

Attiva l'ambiente prima di eseguire un esperimento:

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

Gli entry point Bash utilizzano python dell'ambiente attivo. È possibile specificare un interprete diverso tramite la variabile d'ambiente PYTHON:

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

Percorsi e Preparazione dei Modelli

Tutti i percorsi del repository vengono risolti relativamente alla posizione di ciascuno script, quindi i comandi non dipendono dalla directory di lavoro corrente. I percorsi predefiniti dei modelli seguono la struttura locale del progetto utilizzata per gli esperimenti. Se i modelli sono salvati altrove, sovrascrivi i corrispondenti argomenti da riga di comando come --base-model-path, --backdoor-model-path, --base-model o --tox-path.

I dataset di bonifica sono inclusi in:

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

Ogni dataset contiene clean/, poison/ e metadata.json.

Rilevamento delle Backdoor

Stable Diffusion v1.4

Il runner predefinito valuta tutti i metodi di backdoor SD1.4 configurati. Assegna i metodi agli ID GPU definiti in run_detect_sd14.sh e li avvia in parallelo.

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

Per eseguire direttamente un singolo metodo:

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

Gli argomenti disponibili per ogni famiglia di modelli possono essere visualizzati con:

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

Analisi del Rilevamento

Dopo aver generato i file CSV MSE, configura i file di input in ana.sh ed esegui:

root@kitploit:~
bash ana.sh

Il rilevatore supporta sia la regola decisionale naive sia quella dynamic-k. Le metriche e i grafici vengono generati da ana.py.

Bonifica delle Backdoor

Stable Diffusion v1.4

Il runner predefinito SD1.4 avvia i cinque metodi configurati sui cinque ID GPU specificati nello script:

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

Per eseguire un singolo metodo:

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

Stable Diffusion XL

Configura METHOD e GPU_ID in run_detox_sdxl.sh, quindi esegui:

root@kitploit:~
bash run_detox_sdxl.sh

I valori predefiniti specifici del metodo, inclusi i passi di addestramento, i rapporti di campionamento dei timestep, i pesi delle loss, le dimensioni dei batch e gli intervalli di checkpoint, sono definiti nella sezione METHOD_PROFILES di ciascuno script di addestramento. Gli argomenti da riga di comando possono sovrascrivere questi valori predefiniti.

Valutazione

Genera immagini da una o più UNet SD1.4 bonificate:

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

Calcola la FID tra le directory delle immagini di riferimento e quelle delle immagini bonificate:

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

Riproducibilità

  • Gli script di rilevamento preservano i seed specifici della famiglia di modelli, gli scheduler, l'ordinamento dei prompt, l'assegnazione delle etichette e i calcoli della dinamica del rumore.
  • La bonifica utilizza il seed 42 per impostazione predefinita e abilita un comportamento deterministico di cuDNN.
  • Gli entry point di bonifica SD1.4 e SDXL forniti hanno completato smoke test reali che coprono forward, backward, aggiornamento dell'ottimizzatore e salvataggio del checkpoint in un singolo passo.
  • La riproduzione numerica esatta può comunque dipendere dal modello di GPU, dalla versione di CUDA/cuDNN, dalla versione di PyTorch e dalla revisione del checkpoint a monte.

Codice di Terze Parti e Fonti dei Modelli

I modelli con backdoor e le configurazioni di attacco utilizzati da questo progetto provengono dalle seguenti risorse pubbliche:

  • BadT2I-Tok e BadT2I-Sent. Addestriamo i modelli con backdoor utilizzando l'implementazione BadT2I degli autori e seguiamo le definizioni dei trigger e le configurazioni di addestramento descritte nel lavoro originale.
  • EvilEdit. Generiamo i modelli con backdoor utilizzando l'implementazione di model editing EvilEdit rilasciata, con la sua configurazione di attacco originale.
  • VillanBKD. Gli esperimenti su Stable Diffusion v1.4 utilizzano il checkpoint con backdoor rilasciato pubblicamente fornito dagli autori.
  • PersonalBKD-Dream. Addestriamo il modello personalizzato con backdoor adattando la pipeline di addestramento DreamBooth di Hugging Face Diffusers pubblica in base alla configurazione di attacco descritta nel lavoro originale.

Quando utilizzi questi attacchi o checkpoint, cita i corrispondenti lavori originali: BadT2I (badt2izhai2023), EvilEdit (evileditwang2024), VillanDiffusion (villandiffusionchou2023) e PersonalBKD (personalizationhuang2024).

Citazione

Se trovi utile questo progetto per la tua ricerca, ti preghiamo di citare:

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}
}

Ringraziamenti

Questo progetto è stato realizzato facendo ampio riferimento all'eccellente codebase NaviT2I. Ringraziamo sinceramente gli autori di NaviT2I per aver rilasciato la loro implementazione e le risorse di supporto.

Ringraziamo inoltre gli autori di BadT2I, EvilEdit, VillanDiffusion, PersonalBKD, Hugging Face Diffusers e dei relativi modelli di diffusione preaddestrati per aver reso pubblicamente disponibili i loro codici e checkpoint. Tutti i componenti di terze parti rimangono soggetti alle rispettive licenze e condizioni d'uso.

Scarica lo strumento