Style Transfer Pro
Apply artistic style transfer to images using OpenAI Images API with curated style prompts.
Setup
- Needs env:
OPENAI_API_KEY
- Needs source image URL (public URL or base64 data URI)
Quick Start
Transform an image to oil painting style:
python3 ~/Projects/agent-scripts/skills/style-transfer/scripts/transfer.py \
--source "https://example.com/photo.jpg" \
--style "oil painting on linen, impressionist brushwork, rich texture, van gogh style"
Transform to multiple styles at once:
python3 ~/Projects/agent-scripts/skills/style-transfer/scripts/transfer.py \
--source "https://example.com/photo.jpg" \
--style "oil painting" \
--style "watercolor illustration" \
--style "cyberpunk neon" \
--style "vintage sepia photograph"
Style Library
Use these pre-defined style names (or provide custom prompts):
Art Movements
impressionist-oil - Impressionist oil painting with visible brushwork
watercolor-dream - Soft watercolor with ink linework
digital-art - Modern digital art with crisp details
comic-book - Bold comic book illustration style
anime-studio - Anime/ manga studio style
pixel-art - Retro pixel art aesthetic
vector-flat - Clean flat vector illustration
surreal-abstract - Surrealist abstract art
Photographic Styles
vintage-sepia - Sepia vintage photography
polaroid - Instant polaroid look with faded tones
film-noir - Black and white film noir aesthetic
candid-snapshot - Authentic snapshot look
studio-portrait - Professional studio photography
vogue-editorial - Fashion editorial style
golden-hour - Golden hour warm lighting
neon-noir - Cyberpunk neon noir
Period Styles
renaissance-portrait - Classical Renaissance oil painting
baroque-drama - Dramatic Baroque chiaroscuro
art-deco-elegance - Art Deco geometric elegance
mid-century-modern - Mid-century modern illustration
victorian-etching - Victorian etching aesthetic
steampunk-gear - Steampunk mechanical style
dystopian-grunge - Dystopian grunge aesthetic
psychedelic-60s - 1960s psychedelic art
Custom Style Prompts
For fine-grained control, provide full style prompts:
python3 ~/Projects/agent-scripts/skills/style-transfer/scripts/transfer.py \
--source "https://example.com/photo.jpg" \
--prompt "watercolor painting, soft brushstrokes, pastel color palette, hand-painted illustration style, minimal detail, elegant and dreamy"
Style prompt structure:
- Medium: "oil painting", "watercolor", "digital art", "photography"
- Technique: "impressionist", "glazing", "crosshatching", "flat design"
- Lighting: "softbox", "golden hour", "dramatic chiaroscuro", "diffuse"
- Color: "pastel", "muted", "vibrant", "muted earth tones"
- Quality: "ultra-detailed", "minimalist", "sketch", "finished artwork"
Parameters
--source - Source image URL (required)
--style - Pre-defined style name (repeatable)
--prompt - Full custom style prompt (overrides --style)
--out-dir - Output directory (default: ~/Projects/tmp/style-transfer-*)
--size - Image size: 1024x1024, 1792x1024, 1024x1792 (default: 1024x1024)
--quality - high/standard (default: high)
--model - OpenAI image model (default: gpt-image-1.5)
--api-key - OpenAI API key (or use OPENAI_API_KEY env)
Output
*.png - Transformed images
prompts.json - Style prompts used
index.html - Thumbnail gallery comparing styles
1---2name: style-transfer3description: Professional artistic style transfer via OpenAI Images API. Transform images into specific art styles, eras, and visual aesthetics. Use when user needs to convert an existing image into different artistic styles, apply famous art movements, or transform visual content with specific stylistic parameters (e.g., "make this photo look like an oil painting", "apply cyberpunk aesthetic", "transform into vintage photography").4---5
6# Style Transfer Pro
7
8Apply artistic style transfer to images using OpenAI Images API with curated style prompts.
9
10## Setup
11
12- Needs env: `OPENAI_API_KEY`
13- Needs source image URL (public URL or base64 data URI)
14
15## Quick Start
16
17Transform an image to oil painting style:
18
19```bash
20python3 ~/Projects/agent-scripts/skills/style-transfer/scripts/transfer.py \
21 --source "https://example.com/photo.jpg" \
22 --style "oil painting on linen, impressionist brushwork, rich texture, van gogh style"
23```
24
25Transform to multiple styles at once:
26
27```bash
28python3 ~/Projects/agent-scripts/skills/style-transfer/scripts/transfer.py \
29 --source "https://example.com/photo.jpg" \
30 --style "oil painting" \
31 --style "watercolor illustration" \
32 --style "cyberpunk neon" \
33 --style "vintage sepia photograph"
34```
35
36## Style Library
37
38Use these pre-defined style names (or provide custom prompts):
39
40### Art Movements
41- `impressionist-oil` - Impressionist oil painting with visible brushwork
42- `watercolor-dream` - Soft watercolor with ink linework
43- `digital-art` - Modern digital art with crisp details
44- `comic-book` - Bold comic book illustration style
45- `anime-studio` - Anime/ manga studio style
46- `pixel-art` - Retro pixel art aesthetic
47- `vector-flat` - Clean flat vector illustration
48- `surreal-abstract` - Surrealist abstract art
49
50### Photographic Styles
51- `vintage-sepia` - Sepia vintage photography
52- `polaroid` - Instant polaroid look with faded tones
53- `film-noir` - Black and white film noir aesthetic
54- `candid-snapshot` - Authentic snapshot look
55- `studio-portrait` - Professional studio photography
56- `vogue-editorial` - Fashion editorial style
57- `golden-hour` - Golden hour warm lighting
58- `neon-noir` - Cyberpunk neon noir
59
60### Period Styles
61- `renaissance-portrait` - Classical Renaissance oil painting
62- `baroque-drama` - Dramatic Baroque chiaroscuro
63- `art-deco-elegance` - Art Deco geometric elegance
64- `mid-century-modern` - Mid-century modern illustration
65- `victorian-etching` - Victorian etching aesthetic
66- `steampunk-gear` - Steampunk mechanical style
67- `dystopian-grunge` - Dystopian grunge aesthetic
68- `psychedelic-60s` - 1960s psychedelic art
69
70## Custom Style Prompts
71
72For fine-grained control, provide full style prompts:
73
74```bash
75python3 ~/Projects/agent-scripts/skills/style-transfer/scripts/transfer.py \
76 --source "https://example.com/photo.jpg" \
77 --prompt "watercolor painting, soft brushstrokes, pastel color palette, hand-painted illustration style, minimal detail, elegant and dreamy"
78```
79
80Style prompt structure:
811. Medium: "oil painting", "watercolor", "digital art", "photography"
822. Technique: "impressionist", "glazing", "crosshatching", "flat design"
833. Lighting: "softbox", "golden hour", "dramatic chiaroscuro", "diffuse"
844. Color: "pastel", "muted", "vibrant", "muted earth tones"
855. Quality: "ultra-detailed", "minimalist", "sketch", "finished artwork"
86
87## Parameters
88
89- `--source` - Source image URL (required)
90- `--style` - Pre-defined style name (repeatable)
91- `--prompt` - Full custom style prompt (overrides --style)
92- `--out-dir` - Output directory (default: ~/Projects/tmp/style-transfer-*)
93- `--size` - Image size: 1024x1024, 1792x1024, 1024x1792 (default: 1024x1024)
94- `--quality` - high/standard (default: high)
95- `--model` - OpenAI image model (default: gpt-image-1.5)
96- `--api-key` - OpenAI API key (or use OPENAI_API_KEY env)
97
98## Output
99
100- `*.png` - Transformed images
101- `prompts.json` - Style prompts used
102- `index.html` - Thumbnail gallery comparing styles