# Complete Guide to the 20 Visual Styles Defined in the GPT Image Style Library

> Explore the 20 visual styles in the GPT image style library. Discover detailed examples and learn how to leverage these styles for stunning AI-generated images.

- Repository: [苍何/awesome-gpt-image-2](https://github.com/freestylefly/awesome-gpt-image-2)
- Tags: deep-dive
- Published: 2026-08-30

---

**The awesome‑gpt‑image‑2 repository maintains 19 active visual styles in [`data/style-library.json`](https://github.com/freestylefly/awesome-gpt-image-2/blob/main/data/style-library.json), reserving the 20th slot for future expansion to ensure backward compatibility.**

The freestylefly/awesome‑gpt‑image‑2 project centralizes artistic direction through a JSON‑based style catalog. Located at [`data/style-library.json`](https://github.com/freestylefly/awesome-gpt-image-2/blob/main/data/style-library.json), this configuration enumerates every visual style the generation system supports, from 3D renders to classical illustrations. Understanding these visual styles defined in the style library is essential for constructing API requests and templates that trigger precise aesthetic behavior.

## Structure of the Style Library

Each entry occupies the `styles` array (lines 1891‑2090 of [`data/style-library.json`](https://github.com/freestylefly/awesome-gpt-image-2/blob/main/data/style-library.json)) and contains four standardized fields:

- **`id`**: The canonical lowercase identifier used in API requests and template bindings
- **`value`**: Human‑readable English description (e.g., `"Character"`, `"Photography"`)
- **`title`**: Multilingual display text, typically Simplified Chinese (e.g., `"角色"`, `"摄影"`)
- **`keywords`**: Optional array of trigger terms that the prompt engine injects to refine generation quality

## The Complete Reference of Visual Styles

The library currently defines 19 active aesthetics. The 20th position remains intentionally empty to accommodate future additions without breaking existing integrations or identifier sequences.

### 3D and Technical Visualization

- **3D** (`id: "3d"`): Targets toy‑like renders and plastic aesthetics. Keywords: `3d`, `toy`, `render`, `玩具`.
- **UI** (`id: "ui"`): Optimized for interface screenshots and dashboard mockups. Keywords: `ui`, `interface`, `dashboard`, `界面`, `截图`.
- **Architecture** (`id: "architecture"`): Structured for building and spatial design renders. No keywords defined.
- **Realistic** (`id: "realistic"`): Photographic fidelity and camera‑like output. Keywords: `photo`, `realistic`, `camera`, `写真`, `写实`.

### Commercial and Marketing Assets

- **Brand** (`id: "brand"`): Logo and identity systems. Keywords: `brand`, `logo`, `identity`, `品牌`, `标志`.
- **Product** (`id: "product"`): Single‑item focus with packaging context. Keywords: `product`, `packaging`, `商品`, `包装`.
- **Products** (`id: "products"`): Plural variant for multi‑item compositions. No keywords defined.
- **Poster** (`id: "poster"`): Print‑ready layouts with typography emphasis. Keywords: `poster`, `cover`, `typography`, `海报`, `封面`.

### Character and Narrative Art

- **Character** (`id: "character"`): Single avatar or posed figure. Keywords: `character`, `avatar`, `pose`, `角色`, `人物`.
- **Characters** (`id: "characters"`): Group compositions or multiple figures. No keywords defined.
- **Illustration** (`id: "illustration"`): Painted and watercolor aesthetics. Keywords: `illustration`, `painting`, `watercolor`, `插画`, `绘画`.
- **Classical** (`id: "classical"`): Historical dynasty and heritage styles. Keywords: `classical`, `dynasty`, `history`, `古风`, `历史`.

### Information and Document Design

- **Charts** (`id: "charts"`): Data visualization and graph formats. No keywords defined.
- **Documents** (`id: "documents"`): Formal layout and paper aesthetics. No keywords defined.
- **Infographic** (`id: "infographic"`): Diagrammatic and explanatory visuals. Keywords: `infographic`, `diagram`, `信息图`, `图解`.
- **History** (`id: "history"`): Historical documentation style. No keywords defined.

### Photography and Environment

- **Photography** (`id: "photography"`): Lens‑based capture aesthetics. No keywords defined.
- **Scenes** (`id: "scenes"`): Environmental and background‑focused generation. No keywords defined.

### Miscellaneous and Reserved

- **Other** (`id: "other"`): Catch‑all category labeled "Other Use Cases". No keywords defined.
- **Reserved**: The 20th array slot is intentionally null to allow seamless expansion of the visual styles defined in the style library without reordering existing indices.

## How Visual Styles Drive Image Generation

The style library integrates with three core subsystems to enforce consistent artistic direction across the pipeline.

### API Request Processing

When calling `POST /api/generate-image`, clients include a `style` field that maps directly to these IDs. The backend validates the identifier against [`data/style-library.json`](https://github.com/freestylefly/awesome-gpt-image-2/blob/main/data/style-library.json) and injects the associated `keywords` array into the generation prompt to steer the diffusion model.

### Template Binding

Templates in the system reference style arrays to declare compatible aesthetics. For example, a "UI Screenshot System" template declares `"styles": ["ui"]`, allowing the engine to automatically append the Chinese title `界面` into localized prompt constructions when rendering for specific markets.

### Frontend Population

The React component [`src/main.jsx`](https://github.com/freestylefly/awesome-gpt-image-2/blob/main/src/main.jsx) loads the style list at runtime to populate the style picker dropdown in the user interface. This ensures the displayed options always remain synchronized with the canonical source definitions, preventing drift between the API contract and client‑side presentation.

## Working with the Style Library in Code

Accessing style metadata programmatically requires parsing the central JSON file.

```javascript
// Server-side lookup in Node.js
import styleLibrary from "./data/style-library.json";

function getStyleInfo(styleId) {
  return styleLibrary.styles.find(s => s.id === styleId);
}

// Usage example
const uiStyle = getStyleInfo("ui");
console.log(uiStyle.title);    // Outputs: "界面"
console.log(uiStyle.keywords); // ["ui", "interface", "dashboard", "界面", "截图"]

```

When constructing generation requests, reference the style `id` exactly as defined in the library:

```javascript
// Client-side request construction
const requestBody = {
  prompt: "A sleek dashboard for a fintech app",
  style: "ui",  // Must match the id field exactly
  scene: "tech",
  tags: ["Dashboard", "Screenshot"]
};

fetch("/api/generate-image", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify(requestBody)
});

```

Templates declare their supported styles through ID string arrays:

```json
{
  "id": "ui-screenshot-system",
  "styles": ["ui"],
  "scenes": ["Tech", "Social"]
}

```

## Key Files and Architecture

Understanding the style library ecosystem requires familiarity with these source files:

- **[`data/style-library.json`](https://github.com/freestylefly/awesome-gpt-image-2/blob/main/data/style-library.json)**: The canonical definition containing all 20 style slots (lines 1891‑2090)
- **[`src/main.jsx`](https://github.com/freestylefly/awesome-gpt-image-2/blob/main/src/main.jsx)**: Frontend component that hydrates the style selector from the JSON
- **[`api/generate-image.js`](https://github.com/freestylefly/awesome-gpt-image-2/blob/main/api/generate-image.js)**: API endpoint consuming the `style` parameter and resolving it against the library
- **`scripts/generate-style-skill.mjs`**: Deployment utility that packages style definitions into production skill bundles

## Summary

- The awesome‑gpt‑image‑2 repository maintains **19 active visual styles** in a reserved 20‑slot architecture
- Style definitions live in [`data/style-library.json`](https://github.com/freestylefly/awesome-gpt-image-2/blob/main/data/style-library.json) with multilingual support and keyword arrays
- Each style contains `id`, `value`, `title`, and optional `keywords` fields for prompt enhancement
- The system uses these definitions for API validation, template binding, and UI population
- Reserved capacity prevents breaking changes when expanding the visual styles defined in the style library

## Frequently Asked Questions

### How many active visual styles are currently defined in the style library?

There are **19 active visual styles** currently defined, with the 20th slot reserved for future expansion. This reserved capacity ensures that adding new aesthetics does not break existing template references or API integrations that rely on fixed array indices.

### What is the exact file path for the style library configuration?

The canonical definitions reside in **[`data/style-library.json`](https://github.com/freestylefly/awesome-gpt-image-2/blob/main/data/style-library.json)** at the repository root, specifically within the `styles` array spanning lines 1891‑2090. This single source of truth is imported by [`src/main.jsx`](https://github.com/freestylefly/awesome-gpt-image-2/blob/main/src/main.jsx) for the frontend and [`api/generate-image.js`](https://github.com/freestylefly/awesome-gpt-image-2/blob/main/api/generate-image.js) for backend validation.

### How do keywords enhance the visual styles?

Each style optionally includes a `keywords` array (e.g., `realistic` includes `photo`, `camera`, `写真`) that the prompt engine automatically appends to generation requests. These terms act as semantic anchors that steer the AI toward the correct artistic interpretation without requiring users to manually write detailed aesthetic descriptors.

### Can I reference multiple styles in a single template?

Yes. Templates can declare an array of style IDs in their `styles` field to indicate compatibility across multiple aesthetics. However, individual generation requests submitted to `POST /api/generate-image` typically accept a single `style` parameter per image, with the template system in [`src/main.jsx`](https://github.com/freestylefly/awesome-gpt-image-2/blob/main/src/main.jsx) handling the mapping between template declarations and canonical library entries.