--- license: apache-2.0 datasets: - Artificio/WikiArt library_name: transformers language: - en base_model: - google/siglip2-base-patch16-224 pipeline_tag: image-classification tags: - WikiArt - Style - art - SigLIP2 --- ![4.png](https://cdn-uploads.huggingface.co/production/uploads/65bb837dbfb878f46c77de4c/ece2eFBf1Hj4kEv0XJl4N.png) # **WikiArt-Style** > **WikiArt-Style** is a vision model fine-tuned from **google/siglip2-base-patch16-224** using the **SiglipForImageClassification** architecture. It classifies art images into one of 137 painting style categories. ``` Classification Report: precision recall f1-score support Abstract Art 0.2784 0.3228 0.2990 979 Abstract Expressionism 0.3615 0.5757 0.4441 2074 Academicism 0.4410 0.0730 0.1253 972 Action painting 0.0000 0.0000 0.0000 98 American Realism 0.9592 0.1697 0.2883 277 Analytical Cubism 0.2000 0.0115 0.0217 87 Analytical Realism 0.6667 0.0225 0.0435 89 Art Brut 0.0000 0.0000 0.0000 198 Art Deco 0.6178 0.6801 0.6475 644 Art Informel 0.3295 0.2486 0.2834 1267 Art Nouveau (Modern) 0.5183 0.6289 0.5682 4899 Automatic Painting 0.0000 0.0000 0.0000 37 Baroque 0.5312 0.6495 0.5845 4400 Biedermeier 0.0000 0.0000 0.0000 132 Byzantine 0.0000 0.0000 0.0000 77 Cartographic Art 0.0000 0.0000 0.0000 10 Classicism 0.0000 0.0000 0.0000 223 Cloisonnism 0.0000 0.0000 0.0000 172 Color Field Painting 0.6947 0.5352 0.6046 910 Conceptual Art 0.6667 0.0161 0.0315 124 Concretism 0.3973 0.4596 0.4262 581 Constructivism 0.3462 0.3022 0.3227 268 Contemporary Realism 1.0000 0.0518 0.0985 309 Costumbrismo 0.0000 0.0000 0.0000 19 Cubism 0.3426 0.6926 0.4584 1747 Cubo-Expressionism 0.0000 0.0000 0.0000 22 Cubo-Futurism 0.0000 0.0000 0.0000 137 Dada 0.5000 0.0098 0.0191 205 Divisionism 0.6810 0.2337 0.3480 338 Early Renaissance 0.5411 0.6329 0.5834 1351 Environmental (Land) Art 0.0000 0.0000 0.0000 1 Existential Art 0.0000 0.0000 0.0000 17 Expressionism 0.4540 0.5701 0.5055 7013 Fantastic Realism 0.0000 0.0000 0.0000 31 Fauvism 0.4480 0.1710 0.2475 731 Feminist Art 0.0000 0.0000 0.0000 18 Figurative Expressionism 0.0000 0.0000 0.0000 19 Futurism 0.4717 0.0859 0.1453 291 Gongbi 0.0000 0.0000 0.0000 38 Gothic 0.0000 0.0000 0.0000 12 Hard Edge Painting 0.4458 0.3978 0.4205 372 High Renaissance 0.5016 0.3653 0.4227 1314 Hyper-Realism 0.0000 0.0000 0.0000 49 Ilkhanid 0.0000 0.0000 0.0000 2 Impressionism 0.6057 0.7266 0.6607 10643 Indian Space painting 0.0000 0.0000 0.0000 25 Ink and wash painting 0.7739 0.4459 0.5658 545 International Gothic 0.8099 0.5349 0.6443 215 Intimism 0.0000 0.0000 0.0000 109 Japonism 0.0000 0.0000 0.0000 118 Joseon Dynasty 0.0000 0.0000 0.0000 10 Kinetic Art 0.0000 0.0000 0.0000 3 Kitsch 0.0000 0.0000 0.0000 47 Lettrism 0.0000 0.0000 0.0000 33 Light and Space 0.0000 0.0000 0.0000 11 Luminism 0.8333 0.0519 0.0978 385 Lyrical Abstraction 0.4631 0.2060 0.2851 670 Magic Realism 0.5883 0.5020 0.5417 1002 Mail Art 0.0000 0.0000 0.0000 10 Mannerism (Late Renaissance) 0.4875 0.3934 0.4355 1342 Mechanistic Cubism 0.0000 0.0000 0.0000 69 Metaphysical art 0.5385 0.0729 0.1284 192 Minimalism 0.5352 0.5957 0.5638 460 Miserablism 0.0000 0.0000 0.0000 8 Modernismo 0.0000 0.0000 0.0000 43 Mosan art 0.0000 0.0000 0.0000 39 Muralism 0.3636 0.0268 0.0500 149 Nanga (Bunjinga) 0.0000 0.0000 0.0000 58 Nas-Taliq 0.0000 0.0000 0.0000 9 Native Art 0.0000 0.0000 0.0000 21 Naturalism 0.8459 0.6437 0.7311 435 Naïve Art (Primitivism) 0.4897 0.5412 0.5142 2295 Neo-Byzantine 0.0000 0.0000 0.0000 18 Neo-Concretism 0.0000 0.0000 0.0000 44 Neo-Dada 0.0000 0.0000 0.0000 131 Neo-Expressionism 0.6763 0.2238 0.3363 420 Neo-Figurative Art 0.0000 0.0000 0.0000 27 Neo-Rococo 0.0000 0.0000 0.0000 97 Neo-Romanticism 0.6762 0.1254 0.2116 566 Neo-baroque 0.0000 0.0000 0.0000 105 Neoclassicism 0.5868 0.3317 0.4238 2038 Neoplasticism 0.8889 0.2775 0.4229 173 New Casualism 0.0000 0.0000 0.0000 22 New European Painting 0.0000 0.0000 0.0000 25 New Realism 0.0000 0.0000 0.0000 329 Nihonga 0.0000 0.0000 0.0000 29 None 0.3056 0.0112 0.0215 986 Northern Renaissance 0.6198 0.6448 0.6321 2379 Nouveau Réalisme 0.0000 0.0000 0.0000 142 Op Art 0.5120 0.7292 0.6016 528 Orientalism 0.0000 0.0000 0.0000 392 Orphism 0.6471 0.0444 0.0830 248 Ottoman Period 0.8571 0.0833 0.1519 72 Outsider art 0.0000 0.0000 0.0000 68 Perceptism 0.0000 0.0000 0.0000 6 Photorealism 0.0000 0.0000 0.0000 61 Pointillism 0.6450 0.6347 0.6398 501 Pop Art 0.5580 0.4501 0.4983 791 Post-Impressionism 0.4611 0.4200 0.4396 5778 Post-Minimalism 0.0000 0.0000 0.0000 31 Post-Painterly Abstraction 0.6250 0.0296 0.0565 169 Poster Art Realism 0.0000 0.0000 0.0000 43 Precisionism 0.7258 0.3169 0.4412 284 Primitivism 0.0000 0.0000 0.0000 36 Proto Renaissance 0.4342 0.3626 0.3952 273 Purism 0.5000 0.1635 0.2464 159 Rayonism 0.0000 0.0000 0.0000 6 Realism 0.4909 0.6939 0.5750 10523 Regionalism 0.7500 0.1776 0.2872 321 Renaissance 0.0000 0.0000 0.0000 1 Rococo 0.4975 0.5913 0.5404 2733 Romanesque 0.0000 0.0000 0.0000 55 Romanticism 0.5182 0.5380 0.5279 9285 Safavid Period 0.0000 0.0000 0.0000 39 Shin-hanga 0.6894 0.7184 0.7036 380 Social Realism 0.0000 0.0000 0.0000 305 Socialist Realism 0.0000 0.0000 0.0000 95 Spatialism 0.0000 0.0000 0.0000 83 Spectralism 0.0000 0.0000 0.0000 5 Street art 0.0000 0.0000 0.0000 23 Suprematism 0.0000 0.0000 0.0000 80 Surrealism 0.5011 0.6151 0.5523 4167 Symbolism 0.4398 0.3087 0.3627 3476 Synchromism 0.0000 0.0000 0.0000 10 Synthetic Cubism 0.6914 0.2995 0.4179 187 Synthetism 0.0000 0.0000 0.0000 49 Sōsaku hanga 0.5753 0.2900 0.3856 369 Tachisme 0.4366 0.1422 0.2145 436 Tenebrism 0.0000 0.0000 0.0000 221 Timurid Period 0.0000 0.0000 0.0000 17 Tonalism 0.0000 0.0000 0.0000 202 Transautomatism 0.0000 0.0000 0.0000 74 Tubism 0.0000 0.0000 0.0000 21 Ukiyo-e 0.7822 0.8612 0.8198 1426 Verism 0.0000 0.0000 0.0000 84 Yamato-e 0.0000 0.0000 0.0000 12 Zen 0.6702 0.6702 0.6702 94 accuracy 0.5108 103250 macro avg 0.2664 0.1708 0.1811 103250 weighted avg 0.4956 0.5108 0.4822 103250 ``` ```py from datasets import load_dataset # Load the dataset dataset = load_dataset("Artificio/WikiArt") # Extract unique masterCategory values (assuming it's a string field) labels = sorted(set(example["style"] for example in dataset["train"])) # Create id2label mapping id2label = {str(i): label for i, label in enumerate(labels)} # Print the mapping print(id2label) ``` {'0': 'Abstract Art', '1': 'Abstract Expressionism', '2': 'Academicism', '3': 'Action painting', '4': 'American Realism', '5': 'Analytical Cubism', '6': 'Analytical\xa0Realism', '7': 'Art Brut', '8': 'Art Deco', '9': 'Art Informel', '10': 'Art Nouveau (Modern)', '11': 'Automatic Painting', '12': 'Baroque', '13': 'Biedermeier', '14': 'Byzantine', '15': 'Cartographic Art', '16': 'Classicism', '17': 'Cloisonnism', '18': 'Color Field Painting', '19': 'Conceptual Art', '20': 'Concretism', '21': 'Constructivism', '22': 'Contemporary Realism', '23': 'Costumbrismo', '24': 'Cubism', '25': 'Cubo-Expressionism', '26': 'Cubo-Futurism', '27': 'Dada', '28': 'Divisionism', '29': 'Early Renaissance', '30': 'Environmental (Land) Art', '31': 'Existential Art', '32': 'Expressionism', '33': 'Fantastic Realism', '34': 'Fauvism', '35': 'Feminist Art', '36': 'Figurative Expressionism', '37': 'Futurism', '38': 'Gongbi', '39': 'Gothic', '40': 'Hard Edge Painting', '41': 'High Renaissance', '42': 'Hyper-Realism', '43': 'Ilkhanid', '44': 'Impressionism', '45': 'Indian Space painting', '46': 'Ink and wash painting', '47': 'International Gothic', '48': 'Intimism', '49': 'Japonism', '50': 'Joseon Dynasty', '51': 'Kinetic Art', '52': 'Kitsch', '53': 'Lettrism', '54': 'Light and Space', '55': 'Luminism', '56': 'Lyrical Abstraction', '57': 'Magic Realism', '58': 'Mail Art', '59': 'Mannerism (Late Renaissance)', '60': 'Mechanistic Cubism', '61': 'Metaphysical art', '62': 'Minimalism', '63': 'Miserablism', '64': 'Modernismo', '65': 'Mosan art', '66': 'Muralism', '67': 'Nanga (Bunjinga)', '68': 'Nas-Taliq', '69': 'Native Art', '70': 'Naturalism', '71': 'Naïve Art (Primitivism)', '72': 'Neo-Byzantine', '73': 'Neo-Concretism', '74': 'Neo-Dada', '75': 'Neo-Expressionism', '76': 'Neo-Figurative Art', '77': 'Neo-Rococo', '78': 'Neo-Romanticism', '79': 'Neo-baroque', '80': 'Neoclassicism', '81': 'Neoplasticism', '82': 'New Casualism', '83': 'New European Painting', '84': 'New Realism', '85': 'Nihonga', '86': 'None', '87': 'Northern Renaissance', '88': 'Nouveau Réalisme', '89': 'Op Art', '90': 'Orientalism', '91': 'Orphism', '92': 'Ottoman Period', '93': 'Outsider art', '94': 'Perceptism ', '95': 'Photorealism', '96': 'Pointillism', '97': 'Pop Art', '98': 'Post-Impressionism', '99': 'Post-Minimalism', '100': 'Post-Painterly Abstraction', '101': 'Poster Art Realism', '102': 'Precisionism', '103': 'Primitivism', '104': 'Proto Renaissance', '105': 'Purism', '106': 'Rayonism', '107': 'Realism', '108': 'Regionalism', '109': 'Renaissance', '110': 'Rococo', '111': 'Romanesque', '112': 'Romanticism', '113': 'Safavid Period', '114': 'Shin-hanga', '115': 'Social Realism', '116': 'Socialist Realism', '117': 'Spatialism', '118': 'Spectralism', '119': 'Street art', '120': 'Suprematism', '121': 'Surrealism', '122': 'Symbolism', '123': 'Synchromism', '124': 'Synthetic Cubism', '125': 'Synthetism', '126': 'Sōsaku hanga', '127': 'Tachisme', '128': 'Tenebrism', '129': 'Timurid Period', '130': 'Tonalism', '131': 'Transautomatism', '132': 'Tubism', '133': 'Ukiyo-e', '134': 'Verism', '135': 'Yamato-e', '136': 'Zen'} The model predicts one of the following painting **style** categories: ``` 0: Abstract Art 1: Abstract Expressionism 2: Academicism 3: Action painting 4: American Realism 5: Analytical Cubism 6: Analytical Realism 7: Art Brut 8: Art Deco 9: Art Informel 10: Art Nouveau (Modern) 11: Automatic Painting 12: Baroque 13: Biedermeier 14: Byzantine 15: Cartographic Art 16: Classicism 17: Cloisonnism 18: Color Field Painting 19: Conceptual Art 20: Concretism 21: Constructivism 22: Contemporary Realism 23: Costumbrismo 24: Cubism 25: Cubo-Expressionism 26: Cubo-Futurism 27: Dada 28: Divisionism 29: Early Renaissance 30: Environmental (Land) Art 31: Existential Art 32: Expressionism 33: Fantastic Realism 34: Fauvism 35: Feminist Art 36: Figurative Expressionism 37: Futurism 38: Gongbi 39: Gothic 40: Hard Edge Painting 41: High Renaissance 42: Hyper-Realism 43: Ilkhanid 44: Impressionism 45: Indian Space painting 46: Ink and wash painting 47: International Gothic 48: Intimism 49: Japonism 50: Joseon Dynasty 51: Kinetic Art 52: Kitsch 53: Lettrism 54: Light and Space 55: Luminism 56: Lyrical Abstraction 57: Magic Realism 58: Mail Art 59: Mannerism (Late Renaissance) 60: Mechanistic Cubism 61: Metaphysical art 62: Minimalism 63: Miserablism 64: Modernismo 65: Mosan art 66: Muralism 67: Nanga (Bunjinga) 68: Nas-Taliq 69: Native Art 70: Naturalism 71: Naïve Art (Primitivism) 72: Neo-Byzantine 73: Neo-Concretism 74: Neo-Dada 75: Neo-Expressionism 76: Neo-Figurative Art 77: Neo-Rococo 78: Neo-Romanticism 79: Neo-baroque 80: Neoclassicism 81: Neoplasticism 82: New Casualism 83: New European Painting 84: New Realism 85: Nihonga 86: None 87: Northern Renaissance 88: Nouveau Réalisme 89: Op Art 90: Orientalism 91: Orphism 92: Ottoman Period 93: Outsider art 94: Perceptism 95: Photorealism 96: Pointillism 97: Pop Art 98: Post-Impressionism 99: Post-Minimalism 100: Post-Painterly Abstraction 101: Poster Art Realism 102: Precisionism 103: Primitivism 104: Proto Renaissance 105: Purism 106: Rayonism 107: Realism 108: Regionalism 109: Renaissance 110: Rococo 111: Romanesque 112: Romanticism 113: Safavid Period 114: Shin-hanga 115: Social Realism 116: Socialist Realism 117: Spatialism 118: Spectralism 119: Street art 120: Suprematism 121: Surrealism 122: Symbolism 123: Synchromism 124: Synthetic Cubism 125: Synthetism 126: Sōsaku hanga 127: Tachisme 128: Tenebrism 129: Timurid Period 130: Tonalism 131: Transautomatism 132: Tubism 133: Ukiyo-e 134: Verism 135: Yamato-e 136: Zen ``` --- ## **Run with Transformers 🤗** ```bash pip install -q transformers torch pillow gradio ``` ```python import gradio as gr from transformers import AutoImageProcessor, SiglipForImageClassification from PIL import Image import torch # Load model and processor model_name = "prithivMLmods/WikiArt-Style" # Replace with your model path model = SiglipForImageClassification.from_pretrained(model_name) processor = AutoImageProcessor.from_pretrained(model_name) # Label mapping id2label = { 0: "Abstract Art", 1: "Abstract Expressionism", 2: "Academicism", 3: "Action painting", 4: "American Realism", 5: "Analytical Cubism", 6: "Analytical Realism", 7: "Art Brut", 8: "Art Deco", 9: "Art Informel", 10: "Art Nouveau (Modern)", 11: "Automatic Painting", 12: "Baroque", 13: "Biedermeier", 14: "Byzantine", 15: "Cartographic Art", 16: "Classicism", 17: "Cloisonnism", 18: "Color Field Painting", 19: "Conceptual Art", 20: "Concretism", 21: "Constructivism", 22: "Contemporary Realism", 23: "Costumbrismo", 24: "Cubism", 25: "Cubo-Expressionism", 26: "Cubo-Futurism", 27: "Dada", 28: "Divisionism", 29: "Early Renaissance", 30: "Environmental (Land) Art", 31: "Existential Art", 32: "Expressionism", 33: "Fantastic Realism", 34: "Fauvism", 35: "Feminist Art", 36: "Figurative Expressionism", 37: "Futurism", 38: "Gongbi", 39: "Gothic", 40: "Hard Edge Painting", 41: "High Renaissance", 42: "Hyper-Realism", 43: "Ilkhanid", 44: "Impressionism", 45: "Indian Space painting", 46: "Ink and wash painting", 47: "International Gothic", 48: "Intimism", 49: "Japonism", 50: "Joseon Dynasty", 51: "Kinetic Art", 52: "Kitsch", 53: "Lettrism", 54: "Light and Space", 55: "Luminism", 56: "Lyrical Abstraction", 57: "Magic Realism", 58: "Mail Art", 59: "Mannerism (Late Renaissance)", 60: "Mechanistic Cubism", 61: "Metaphysical art", 62: "Minimalism", 63: "Miserablism", 64: "Modernismo", 65: "Mosan art", 66: "Muralism", 67: "Nanga (Bunjinga)", 68: "Nas-Taliq", 69: "Native Art", 70: "Naturalism", 71: "Naïve Art (Primitivism)", 72: "Neo-Byzantine", 73: "Neo-Concretism", 74: "Neo-Dada", 75: "Neo-Expressionism", 76: "Neo-Figurative Art", 77: "Neo-Rococo", 78: "Neo-Romanticism", 79: "Neo-baroque", 80: "Neoclassicism", 81: "Neoplasticism", 82: "New Casualism", 83: "New European Painting", 84: "New Realism", 85: "Nihonga", 86: "None", 87: "Northern Renaissance", 88: "Nouveau Réalisme", 89: "Op Art", 90: "Orientalism", 91: "Orphism", 92: "Ottoman Period", 93: "Outsider art", 94: "Perceptism ", 95: "Photorealism", 96: "Pointillism", 97: "Pop Art", 98: "Post-Impressionism", 99: "Post-Minimalism", 100: "Post-Painterly Abstraction", 101: "Poster Art Realism", 102: "Precisionism", 103: "Primitivism", 104: "Proto Renaissance", 105: "Purism", 106: "Rayonism", 107: "Realism", 108: "Regionalism", 109: "Renaissance", 110: "Rococo", 111: "Romanesque", 112: "Romanticism", 113: "Safavid Period", 114: "Shin-hanga", 115: "Social Realism", 116: "Socialist Realism", 117: "Spatialism", 118: "Spectralism", 119: "Street art", 120: "Suprematism", 121: "Surrealism", 122: "Symbolism", 123: "Synchromism", 124: "Synthetic Cubism", 125: "Synthetism", 126: "Sōsaku hanga", 127: "Tachisme", 128: "Tenebrism", 129: "Timurid Period", 130: "Tonalism", 131: "Transautomatism", 132: "Tubism", 133: "Ukiyo-e", 134: "Verism", 135: "Yamato-e", 136: "Zen" } def classify_style(image): """Predicts the artistic style of the input artwork.""" image = Image.fromarray(image).convert("RGB") inputs = processor(images=image, return_tensors="pt") with torch.no_grad(): outputs = model(**inputs) probs = torch.nn.functional.softmax(outputs.logits, dim=1).squeeze().tolist() return {id2label[i]: round(probs[i], 3) for i in range(len(probs))} # Gradio interface iface = gr.Interface( fn=classify_style, inputs=gr.Image(type="numpy"), outputs=gr.Label(label="Style Prediction Scores"), title="WikiArt-Style", description="Upload an art image to predict its painting style category (e.g., Impressionism, Cubism, Baroque, etc.)." ) if __name__ == "__main__": iface.launch() ``` --- # **Intended Use of WikiArt-Style** **1. Style Classification in Machine Learning Models** - Used as **labels** for training and evaluating models that classify artworks based on their artistic styles. - Ideal for deep learning applications involving **convolutional neural networks (CNNs)** or **transformer-based vision models**. **2. Style Transfer Applications** - Acts as a **style reference** for neural style transfer algorithms (e.g., applying "Baroque" or "Cubism" to photos). - Can guide users to select a target style from a curated list. **3. Dataset Annotation** - Used to **annotate** images in large datasets of paintings with consistent style names. - Ensures compatibility with datasets like WikiArt, Kaggle’s Painter by Numbers, or custom curation. **4. Educational and Exploratory Interfaces** - Powers interfaces or apps for **exploring art history**, with filterable and searchable styles. - Great for building **art recommender systems** or **virtual museums**. **5. Generative Art Prompting** - Assists in **text-to-image prompting** for generative models (e.g., Stable Diffusion, DALL·E) to specify desired styles. - Example: "Generate a portrait in the style of Neo-Expressionism." **6. Metadata Categorization in Art Databases** - Useful for tagging and organizing artworks by style in digital archives or NFT marketplaces.