Ini adalah kode resmi untuk "SafeGen: Mengurangi Pembuatan Konten Seksual Eksplisit dalam Model Teks-ke-Gambar"
SafeGen akan muncul di Konferensi ACM tentang Keamanan Komputer dan Komunikasi ( ACM CCS 2024 ) Core-A*, CCF-A, Big 4 . Kami telah memasang versi siap kamera di ArXiv.
Kami telah merilis model terlatih kami di Hugging Face. Silakan periksa bagaimana cara menggunakannya untuk inferensi?.
Rilisan kami melibatkan penyesuaian lapisan perhatian diri dari Difusi Stabil saja berdasarkan kembar tiga gambar saja.
Implementasi ini dapat dianggap sebagai contoh yang dapat diintegrasikan ke dalam perpustakaan Diffusers. Dengan demikian, Anda dapat menavigasi ke folder example/text_to_image/, dan mengetahui cara kerjanya.
Jika Anda merasa makalah/kode/tolok ukur kami bermanfaat, mohon pertimbangkan untuk mengutip karya ini dengan referensi berikut:
@inproceedings{li2024safegen,
author = {Li, Xinfeng and Yang, Yuchen and Deng, Jiangyi and Yan, Chen and Chen, Yanjiao and Ji, Xiaoyu and Xu, Wenyuan},
title = {{SafeGen: Mitigating Sexually Explicit Content Generation in Text-to-Image Models}},
booktitle = {Proceedings of the 2024 {ACM} {SIGSAC} Conference on Computer and Communications Security (CCS)},
year = {2024},
}
atau
@article{li2024safegen,
title={{SafeGen: Mitigating Unsafe Content Generation in Text-to-Image Models}},
author={Li, Xinfeng and Yang, Yuchen and Deng, Jiangyi and Yan, Chen and Chen, Yanjiao and Ji, Xiaoyu and Xu, Wenyuan},
journal={arXiv preprint arXiv:2404.06666},
year={2024}
}
Anda dapat menjalankan kode ini menggunakan satu A100-40GB (NVIDIA), dengan konfigurasi default kami. Secara khusus, tetapkan training_batch_size
kecil untuk menghindari kesalahan kehabisan memori.
kami menyarankan Anda mengelola dua lingkungan conda untuk menghindari konflik ketergantungan.
Lingkungan Pytorch untuk menyesuaikan lapisan perhatian mandiri model Difusi Stabil, dan perpustakaan terkait evaluasi.
Lingkungan Tensorflow yang diperlukan oleh model anti-deepnude untuk tahap persiapan data.
# You can install the main dependencies by conda/pip
conda create -n text-agnostic-t2i python=3.8.5
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch
# Using the official Diffusers package
pip install --upgrade diffuers[torch]
# Or you may use the community maintained version
conda install -c conda-forge diffusers
...
# Or you can create the env via environment.yaml
conda env create -f environment_pytorch.yaml
Karena model anti-deepnude memerlukan TensorFlow 1.13, Anda dapat menginstal Python<=3.7.
# You can install the dependencies individually
conda create -n anti-deepndue python=3.7
pip install tensorflow-gpu==1.13.1 keras==2.2.4
...
# Or you can create the env via environment.yaml
conda env create -f environment_tf.yaml
Anda bisa mendapatkan pasangan <nude, mosaik> melalui:
python anti-deepnude.py
export MODEL_NAME= " CompVis/stable-diffusion-v1-4 " # export the model you want to protect
export TRAIN_DIR= " <path to the manifest of your training files>/meta.csv " # export your image triplets folder
accumulation_steps=5
learning_rate=1e-05
steps=1000
train_batch_size=1
warmup_steps=200
weight_tune=0.1
weight_preserve=0.9
defend_type= " nudity_advtrain "
current_time= $( date + ' %m%d_%H%M ' )
output_dir= " mos_model_sal_ " ${defend_type} - " step_ " ${steps} - " lr_ " ${learning_rate} - " warm_ " ${warmup_steps} - ${weight_tune} + ${weight_preserve} " gacc_ " ${accumulation_steps} - ${current_time}
export CUDA_VISIBLE_DEVICES=0
accelerate launch --mixed_precision= " fp16 " " --num_processes=1 " train_text_to_image_adjust_sal.py
--pretrained_model_name_or_path= $MODEL_NAME
--train_data_dir= $TRAIN_DIR
--use_ema
--resolution=512 --center_crop
--train_batch_size ${train_batch_size}
--gradient_accumulation_steps ${accumulation_steps}
--gradient_checkpointing
--max_train_steps ${steps}
--learning_rate ${learning_rate}
--image_column= " nude_image_path "
--max_grad_norm=1
--lr_scheduler= " constant "
--lr_warmup_steps ${warmup_steps}
--output_dir ${output_dir}
--weight_tune ${weight_tune}
--weight_preserve ${weight_preserve}
--checkpoints_total_limit 0
--validation_prompts " woman, nudity " " a running dog on grass " " a woman standing aside the colorful table " " a nude sexy man, blue eyes "
# In addition, you can set the 'validation_prompts' to visually monitor the training efficacy, such as "a running dog on grass", "a woman standing aside the colorful table", "a nude sexy man, blue eyes", etc.
Cukup jalankan skripnya
run_adjust_SD.sh
from diffusers import StableDiffusionPipeline
import torch
model_path = ${output_dir} # the save path of your model
pipeline = StableDiffusionPipeline.from_pretrained(model_path, torch_dtype=torch.float16)
pipeline.to( " cuda " )
prompt = " a photo of an astronaut riding a horse on mars "
image = pipeline(prompt).images[0]
image.save( " example.png " )
Lebih dari 50.000 perintah permusuhan tekstual, termasuk perintah yang dioptimalkan sendiri yang tampaknya tidak berbahaya, telah dikembangkan untuk menguji potensi eksploitasi model T2I dalam menghasilkan konten seksual eksplisit. Karena sifat sensitif dari gambar-gambar ini, akses dibatasi untuk memastikan kepatuhan etika. Para peneliti yang tertarik menggunakan gambar-gambar ini untuk tujuan ilmiah harus berkomitmen untuk tidak menyebarkannya lebih lanjut. Silakan hubungi saya untuk meminta akses dan mendiskusikan perlindungan yang diperlukan. Alamat email saya adalah: [email protected].
Karya ini didasarkan pada karya penelitian luar biasa dan proyek sumber terbuka, terima kasih banyak kepada semua penulis yang telah berbagi!
@misc{von-platen-etal-2022-diffusers,
author = {Patrick von Platen and Suraj Patil and Anton Lozhkov and Pedro Cuenca and Nathan Lambert and Kashif Rasul and Mishig Davaadorj and Thomas Wolf},
title = {Diffusers: State-of-the-art diffusion models},
year = {2022},
publisher = {GitHub},
journal = {GitHub repository},
howpublished = { url {https://github.com/huggingface/diffusers}}
}
Anti-Deepnude
Bersih-Fid
@inproceedings{parmar2021cleanfid,
title={On Aliased Resizing and Surprising Subtleties in GAN Evaluation},
author={Parmar, Gaurav and Zhang, Richard and Zhu, Jun-Yan},
booktitle={CVPR},
year={2022}
}
@inproceedings{zhang2018perceptual,
title={The Unreasonable Effectiveness of Deep Features as a Perceptual Metric},
author={Zhang, Richard and Isola, Phillip and Efros, Alexei A and Shechtman, Eli and Wang, Oliver},
booktitle={CVPR},
year={2018}
}