OpenFake SwinV2 attribution head
говорит, какой генератор сделал картинку
Это небольшая attribution-голова поверх замороженного OpenFake SwinV2-base детектора: она определяет, каким генератором, вероятно, создано AI-изображение. Добавляет Linear(1024→256) и возвращает p_fake, семейство из 15 известных и чекпоинт из 47; новые генераторы можно добавлять через enroll() по нескольким примерам.
🔤 Ключевые особенности
- ▶ Работает поверх замороженного детектора: p_fake остаётся собственным real/fake-выходом детектора.
- 🔤 Возвращает family (15 семейств), model (47 чекпоинтов), family_similarity и is_novel.
- ➕ Новые генераторы можно добавлять через enroll() по нескольким изображениям — без переобучения.
- ✖ Fine-tune и LoRA обычно наследуют отпечаток базовой модели, поэтому family — более надёжный уровень, чем model.
- ➖ is_novel — слабый сигнал: порог ловит ~5% известных семейств, но только ~1 из 5 неизвестных.
➗ Пример
from huggingface_hub import hf_hub_download
from PIL import Image
import importlib.util
path = hf_hub_download("bendavidsteel/openfake-swinv2-base-attribution-head", "attribution.py")
spec = importlib.util.spec_from_file_location("attribution", path)
attribution = importlib.util.module_from_spec(spec); spec.loader.exec_module(attribution)
model = attribution.OpenFakeAttribution.from_pretrained("bendavidsteel/openfake-swinv2-base-attribution-head")
print(model([Image.open("image.jpg")]))
Подробнее
Точность family: 0.76 на чистых изображениях и 0.73 после сжатия; novelty AUROC — 0.81/0.79.Обучение: pooled-фичи замороженного детектора, до 1 500 изображений на семейство (9 684 всего), head Linear(1024, 256)+BatchNorm1d, ArcFace.
Лицензия CC-BY-NC-4.0 — только некоммерческое использование; атрибуция предполагает, что изображение уже AI-generated, поэтому сначала смотрите p_fake.
Ограничения: whole-image generation only; частичные редактирования и inpainting вне обучающего распределения.








Комментарии