Update ghost_engine_configs.py
Browse files- ghost_engine_configs.py +34 -0
ghost_engine_configs.py
CHANGED
|
@@ -62,6 +62,35 @@ BASE_HOMOGLYPH_RATIO = 0.15
|
|
| 62 |
# This value is scaled by the poison strength
|
| 63 |
MAX_BYTE_PERTURBATION = 7
|
| 64 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 65 |
# -----------------
|
| 66 |
# Advanced Configuration
|
| 67 |
# -----------------
|
|
@@ -77,6 +106,11 @@ GHOST_CONFIG: Dict[str, Any] = {
|
|
| 77 |
"default_poison_type": DEFAULT_POISON_TYPE,
|
| 78 |
"base_homoglyph_ratio": BASE_HOMOGLYPH_RATIO,
|
| 79 |
"max_byte_perturbation": MAX_BYTE_PERTURBATION,
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 80 |
}
|
| 81 |
|
| 82 |
def get_config(key: str) -> Any:
|
|
|
|
| 62 |
# This value is scaled by the poison strength
|
| 63 |
MAX_BYTE_PERTURBATION = 7
|
| 64 |
|
| 65 |
+
# -----------------
|
| 66 |
+
# Image Protection (Invisible Armor) Settings
|
| 67 |
+
# -----------------
|
| 68 |
+
|
| 69 |
+
# CRITICAL: Mid-band frequency targeting for maximum ML disruption
|
| 70 |
+
# Mid-band (normalized radius 0.10-0.40) is where CNNs are most vulnerable
|
| 71 |
+
# because it disrupts edge detection and feature extraction layers
|
| 72 |
+
|
| 73 |
+
# Target mid-band energy ratio (0.0 to 1.0)
|
| 74 |
+
# Higher values = more ML disruption, less human visibility impact
|
| 75 |
+
# Recommended: 0.70-0.90 for optimal ML poisoning
|
| 76 |
+
TARGET_MID_BAND_ENERGY = 0.85
|
| 77 |
+
|
| 78 |
+
# Low-band energy ratio (0.0 to 1.0)
|
| 79 |
+
# Low frequencies (< 0.10 radius) carry semantic/shape information
|
| 80 |
+
# Keep minimal to preserve human perception
|
| 81 |
+
TARGET_LOW_BAND_ENERGY = 0.05
|
| 82 |
+
|
| 83 |
+
# High-band energy ratio (0.0 to 1.0)
|
| 84 |
+
# High frequencies (> 0.40 radius) are fine details/noise
|
| 85 |
+
# Keep minimal as they're easily removed by compression
|
| 86 |
+
TARGET_HIGH_BAND_ENERGY = 0.10
|
| 87 |
+
|
| 88 |
+
# Default image protection strength (1.0 to 5.0)
|
| 89 |
+
# 1.0 = Invisible to humans, moderate AI disruption
|
| 90 |
+
# 3.0 = Barely visible, strong AI disruption (70%+ mid-band)
|
| 91 |
+
# 5.0 = Slight artifacts, maximum AI confusion (85%+ mid-band)
|
| 92 |
+
DEFAULT_IMAGE_ARMOR_STRENGTH = 3.0
|
| 93 |
+
|
| 94 |
# -----------------
|
| 95 |
# Advanced Configuration
|
| 96 |
# -----------------
|
|
|
|
| 106 |
"default_poison_type": DEFAULT_POISON_TYPE,
|
| 107 |
"base_homoglyph_ratio": BASE_HOMOGLYPH_RATIO,
|
| 108 |
"max_byte_perturbation": MAX_BYTE_PERTURBATION,
|
| 109 |
+
# Image armor frequency targets
|
| 110 |
+
"target_mid_band_energy": TARGET_MID_BAND_ENERGY,
|
| 111 |
+
"target_low_band_energy": TARGET_LOW_BAND_ENERGY,
|
| 112 |
+
"target_high_band_energy": TARGET_HIGH_BAND_ENERGY,
|
| 113 |
+
"default_image_armor_strength": DEFAULT_IMAGE_ARMOR_STRENGTH,
|
| 114 |
}
|
| 115 |
|
| 116 |
def get_config(key: str) -> Any:
|