Complete List of Available Style Tags in the GPT-Image2 System

The GPT-Image2 system provides over 20 predefined visual styles—including anime, photorealistic, oil-painting, and cinematic—that are stored in data/style-library.json and applied via the /api/generate-image endpoint to control the aesthetic output of generated images.

The freestylefly/awesome-gpt-image-2 repository implements a flexible style tagging system that allows users to specify visual aesthetics when generating images. Understanding the available style tags in the GPT-Image2 system is essential for crafting prompts that produce consistent, high-quality results. This guide examines the source code structure, lists all supported tags, and demonstrates how to implement them in both frontend and backend code.

Where Style Tags Are Defined

The canonical list of available style tags resides in data/style-library.json. This JSON file serves as the single source of truth for the entire application, consumed by both the React frontend and the Node.js backend API.

Structure of the Style Library

According to the source code in freestylefly/awesome-gpt-image-2, each entry in data/style-library.json follows a consistent schema with two fields:

  • tag: The lowercase, hyphenated identifier used in prompts (e.g., oil-painting)
  • description: A human-readable explanation of the visual characteristics

Complete List of GPT-Image2 Style Tags

The repository defines the following visual styles available for image generation:

  • anime: Japanese-style illustration with vibrant colors and sharp line art
  • photorealistic: Real-world photography quality with accurate lighting and textures
  • oil-painting: Classic oil on canvas brush strokes with warm tones
  • watercolor: Soft, flowing washes with delicate outlines
  • digital-art: Clean vector-style rendering with crisp edges
  • sketch: Rough pencil or charcoal drawing with loose lines
  • pixel-art: Low-resolution retro gaming aesthetic
  • 3d-render: High-detail three-dimensional model with realistic shading
  • cinematic: Film-like composition with dramatic lighting
  • fantasy: Imaginative other-worldly elements with rich colors
  • retro-poster: Vintage advertising style with bold typography
  • flat-design: Simple shapes, solid colors, and minimal shading
  • glitch: Distorted digital-artifact aesthetic
  • hand-drawn: Organic free-hand illustration feel
  • low-poly: Simplified 3-D geometry with stylized look
  • isometric: 2-D projection of 3-D objects with consistent angles
  • neon: Bright glowing outlines against dark backgrounds
  • steampunk: Victorian-era machinery with brass and gears
  • minimalist: Sparse composition focusing on negative space
  • portrait: Emphasis on human faces, realistic or stylized

Implementing Style Tags in Code

Frontend Component (src/main.jsx)

The React frontend imports the style library from data/style-library.json to populate selection controls. This ensures the UI always reflects the current available style tags without hardcoding values.

import styleLibrary from '../data/style-library.json';

function StyleSelector({ onSelect }) {
  return (
    <select onChange={e => onSelect(e.target.value)}>
      {styleLibrary.map(s => (
        <option key={s.tag} value={s.tag}>
          {s.tag} – {s.description}
        </option>
      ))}
    </select>
  );
}

Backend API Integration (api/generate-image.js)

The server-side implementation in api/generate-image.js retrieves the selected tag from the request body, validates it against the library, and appends the style directive to the final prompt sent to the image generation model.

// api/generate-image.js
import styleLibrary from '../../data/style-library.json';

export default async function handler(req, res) {
  const { prompt, styleTag } = req.body;
  const style = styleLibrary.find(s => s.tag === styleTag);
  const fullPrompt = `${prompt}, in the style of ${style?.tag || ''}`;
  
  // Call the image generation model with fullPrompt
  const image = await generateImage(fullPrompt);
  res.json({ image });
}

Direct API Usage via cURL

You can test specific style tags by sending POST requests directly to the /api/generate-image endpoint:

curl -X POST https://your-domain.com/api/generate-image \
  -H "Content-Type: application/json" \
  -d '{"prompt":"A serene mountain lake","styleTag":"watercolor"}'

Extending the Style Library

To add custom visual styles, modify data/style-library.json and follow the established pattern of tag-description pairs. The repository includes scripts/generate-style-skill.mjs, a helper utility that packages the updated library into deployable format. After editing the JSON file, run this script to regenerate the style skill package before redeploying the application.

Summary

  • The freestylefly/awesome-gpt-image-2 repository stores all available style tags in data/style-library.json
  • The system supports 20+ distinct visual styles ranging from photorealistic to pixel-art
  • Frontend components dynamically load tags from the JSON source to ensure UI consistency
  • The backend API validates tags and formats prompts using "in the style of [tag]" syntax
  • New styles can be added by editing the JSON file and running scripts/generate-style-skill.mjs

Frequently Asked Questions

How do I add a custom style tag to GPT-Image2?

Edit the data/style-library.json file to include a new object with tag and description fields, then execute scripts/generate-style-skill.mjs to rebuild the style package. Redeploy the application to make the new tag available through the /api/generate-image endpoint.

What happens if I request a style tag that doesn't exist?

According to the source code in api/generate-image.js, if the requested styleTag is not found in the library, the system falls back to an empty string, sending only the base prompt without style modifiers. The image generation proceeds but without the intended aesthetic controls.

Are style tags case-sensitive in GPT-Image2?

Yes, the implementation uses strict string matching against the tag field in data/style-library.json. Tags like "Watercolor" or "WATERCOLOR" will not match the lowercase "watercolor" entry, resulting in no style being applied. Always use lowercase, hyphenated tags as defined in the library.

Can I combine multiple style tags in a single request?

The current implementation in api/generate-image.js accepts a single styleTag parameter. While the JSON structure supports multiple tags, the backend concatenates only one tag into the prompt. To combine styles, you would need to modify the API handler to accept an array of tags and join them appropriately.

Have a question about this repo?

These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →