Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
TNC-Defense — Código de investigación para detectar y desintoxicar backdoors en modelos de difusión de texto a imagen, con pipelines para Stable Diffusion v1.4, v1.5, XL y 3 Medium. | Kitploit
Herramientas/GitHubGitHub/binzhwang/tnc-defense
Análisis de VulnerabilidadesAprendizaje AutomáticoPapers e InvestigaciónSeguridad de IA
GitHubbinzhwang/tnc-defense

TNC-Defense

Código de investigación para detectar y desintoxicar backdoors en modelos de difusión de texto a imagen, con pipelines para Stable Diffusion v1.4, v1.5, XL y 3 Medium.

Ver Repositorio
1hace 8 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

TNC-Defense

TNC-Defense proporciona código de investigación para detectar y desintoxicar puertas traseras en modelos de difusión de texto a imagen. El repositorio incluye actualmente pipelines de detección para Stable Diffusion v1.4, Stable Diffusion v1.5, Stable Diffusion XL y Stable Diffusion 3 Medium, junto con pipelines de desintoxicación para Stable Diffusion v1.4 y Stable Diffusion XL.

Solo para uso en investigación. Este código está pensado para estudiar la robustez y la seguridad de los modelos de difusión de texto a imagen. Los usuarios son responsables de cumplir con las licencias y las políticas de uso de todos los modelos, conjuntos de datos e implementaciones upstream.

Estructura del repositorio

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

Entorno

El código ha sido probado con pruebas de humo en el entorno 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

Las utilidades de análisis y evaluación requieren además paquetes como NumPy, pandas, SciPy, scikit-learn, Matplotlib, Pillow y tqdm.

Active el entorno antes de ejecutar un experimento:

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

Los puntos de entrada Bash utilizan el python del entorno activo. Se puede proporcionar un intérprete diferente mediante la variable de entorno PYTHON:

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

Rutas y preparación de modelos

Todas las rutas del repositorio se resuelven en relación con la ubicación de cada script, por lo que los comandos no dependen del directorio de trabajo actual. Las rutas de modelo predeterminadas siguen el diseño local del proyecto utilizado para los experimentos. Si los modelos están almacenados en otro lugar, sobrescriba los argumentos de línea de comandos correspondientes, como --base-model-path, --backdoor-model-path, --base-model o --tox-path.

Los conjuntos de datos de desintoxicación se incluyen en:

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

Cada conjunto de datos contiene clean/, poison/ y metadata.json.

Detección de puertas traseras

Stable Diffusion v1.4

El ejecutor predeterminado evalúa todos los métodos de puerta trasera SD1.4 configurados. Asigna los métodos a los IDs de GPU definidos en run_detect_sd14.sh y los lanza en paralelo.

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

Para ejecutar un método directamente:

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

Los argumentos disponibles para cada familia de modelos se pueden consultar con:

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

Análisis de detección

Después de generar los archivos CSV de MSE, configure los archivos de entrada en ana.sh y ejecute:

root@kitploit:~
bash ana.sh

El detector admite tanto la regla de decisión ingenua como la de k dinámico. Las métricas y los gráficos los produce ana.py.

Desintoxicación de puertas traseras

Stable Diffusion v1.4

El ejecutor SD1.4 predeterminado lanza los cinco métodos configurados en los cinco IDs de GPU especificados en el script:

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

Para ejecutar un solo método:

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

Stable Diffusion XL

Configure METHOD y GPU_ID en run_detox_sdxl.sh y, a continuación, ejecute:

root@kitploit:~
bash run_detox_sdxl.sh

Los valores predeterminados específicos del método, incluidos los pasos de entrenamiento, las proporciones de muestreo de timestep, los pesos de pérdida, los tamaños de lote y los intervalos de checkpoint, se definen en la sección METHOD_PROFILES de cada script de entrenamiento. Los argumentos de línea de comandos pueden sobrescribir estos valores predeterminados.

Evaluación

Genere imágenes a partir de uno o más UNets SD1.4 desintoxicados:

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

Calcule el FID entre los directorios de imágenes de referencia y desintoxicadas:

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

Reproducibilidad

  • Los scripts de detección conservan las semillas, los schedulers, el orden de los prompts, la asignación de etiquetas y los cálculos de dinámica de ruido específicos de cada familia de modelos.
  • La desintoxicación utiliza la semilla 42 de forma predeterminada y habilita el comportamiento determinista de cuDNN.
  • Los puntos de entrada de desintoxicación SD1.4 y SDXL proporcionados han completado pruebas de humo reales de un solo paso de forward, backward, actualización del optimizador y guardado de checkpoints.
  • La reproducción numérica exacta puede depender aún del modelo de GPU, la versión de CUDA/cuDNN, la versión de PyTorch y la revisión del checkpoint upstream.

Código de terceros y fuentes de modelos

Los modelos con puertas traseras y las configuraciones de ataque utilizados por este proyecto provienen de los siguientes recursos públicos:

  • BadT2I-Tok y BadT2I-Sent. Entrenamos los modelos con puertas traseras utilizando la implementación BadT2I de los autores y seguimos las definiciones de trigger y las configuraciones de entrenamiento descritas en el trabajo original.
  • EvilEdit. Generamos los modelos con puertas traseras utilizando la implementación de edición de modelos EvilEdit publicada, con su configuración de ataque original.
  • VillanBKD. Los experimentos con Stable Diffusion v1.4 utilizan el checkpoint con puerta trasera publicado públicamente proporcionado por los autores.
  • PersonalBKD-Dream. Entrenamos el modelo personalizado con puerta trasera adaptando el pipeline público de entrenamiento DreamBooth de Hugging Face Diffusers de acuerdo con la configuración de ataque descrita en el trabajo original.

Cite los artículos originales correspondientes cuando utilice estos ataques o checkpoints: BadT2I (badt2izhai2023), EvilEdit (evileditwang2024), VillanDiffusion (villandiffusionchou2023) y PersonalBKD (personalizationhuang2024).

Citación

Si este proyecto le resulta útil en su investigación, cite:

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

Agradecimientos

Este proyecto se ha construido con una referencia sustancial al excelente codebase NaviT2I. Agradecemos sinceramente a los autores de NaviT2I por publicar su implementación y los recursos de apoyo.

También agradecemos a los autores de BadT2I, EvilEdit, VillanDiffusion, PersonalBKD, Hugging Face Diffusers y los modelos de difusión preentrenados asociados por poner a disposición del público su código y sus checkpoints. Todos los componentes de terceros siguen sujetos a sus respectivas licencias y condiciones de uso.

Descargar herramienta