|
""" |
|
Example usage of the Enhanced AI Image Detector |
|
""" |
|
|
|
import os |
|
import sys |
|
import argparse |
|
from ai_detector import EnhancedAIDetector |
|
import json |
|
|
|
def main(): |
|
|
|
parser = argparse.ArgumentParser(description='Detect if an image is AI-generated') |
|
parser.add_argument('image_path', type=str, help='Path to the image to analyze') |
|
parser.add_argument('--output', type=str, help='Path to save the results as JSON', default=None) |
|
parser.add_argument('--detailed', action='store_true', help='Show detailed analysis results') |
|
args = parser.parse_args() |
|
|
|
|
|
if not os.path.exists(args.image_path): |
|
print(f"Error: Image not found at {args.image_path}") |
|
sys.exit(1) |
|
|
|
|
|
detector = EnhancedAIDetector() |
|
|
|
try: |
|
|
|
print(f"Analyzing image: {args.image_path}") |
|
result = detector.analyze_image(args.image_path) |
|
|
|
|
|
if result["is_ai_generated"]: |
|
print("\n🤖 This image is likely AI-generated") |
|
print(f"Confidence score: {result['overall_score']:.2f}") |
|
else: |
|
print("\n📷 This image is likely authentic") |
|
print(f"Confidence score: {1 - result['overall_score']:.2f}") |
|
|
|
|
|
if args.detailed: |
|
print("\nDetailed Analysis:") |
|
print(f"Noise analysis score: {result['noise_analysis']['score']:.2f} " + |
|
("(suspicious)" if result['noise_analysis']['is_suspicious'] else "(normal)")) |
|
print(f"Texture analysis score: {result['texture_analysis']['score']:.2f} " + |
|
("(suspicious)" if result['texture_analysis']['is_suspicious'] else "(normal)")) |
|
print(f"Color analysis score: {result['color_analysis']['score']:.2f} " + |
|
("(suspicious)" if result['color_analysis']['is_suspicious'] else "(normal)")) |
|
print(f"Edge analysis score: {result['edge_analysis']['score']:.2f} " + |
|
("(suspicious)" if result['edge_analysis']['is_suspicious'] else "(normal)")) |
|
|
|
if "face_analysis" in result: |
|
print(f"Face analysis score: {result['face_analysis']['score']:.2f} " + |
|
("(suspicious)" if result['face_analysis']['is_suspicious'] else "(normal)")) |
|
|
|
|
|
if args.output: |
|
with open(args.output, 'w', encoding='utf-8') as f: |
|
json.dump(result, f, ensure_ascii=False, indent=2) |
|
print(f"\nResults saved to {args.output}") |
|
|
|
except Exception as e: |
|
print(f"Error analyzing image: {str(e)}") |
|
sys.exit(1) |
|
|
|
if __name__ == "__main__": |
|
main() |
|
|