DEV Community

shashank ms
shashank ms

Posted on

Getting Started with LLMs for Arts and Design

Arts and design projects often stall between concept and execution because the creative brief is missing. We will build a Python agent that turns a one-line idea into a structured design brief with color palettes, typography, and image generation prompts. The agent runs on Oxlo.ai so you get predictable request-based pricing and zero cold starts.

What you'll need

Step 1: Configure the Oxlo.ai client

I import the OpenAI SDK and point it at Oxlo.ai's endpoint. Because Oxlo.ai is fully OpenAI SDK compatible, this is a drop-in replacement.

from openai import OpenAI

client = OpenAI(
    base_url="https://api.oxlo.ai/v1",
    api_key="YOUR_OXLO_API_KEY"  # create one at https://portal.oxlo.ai
)

Step 2: Define the art director system prompt

The system prompt is the only training the agent receives. It forces the model to return a predictable structure with hex codes, font names, and a text-to-image prompt instead of open-ended chatter.

SYSTEM_PROMPT = """You are a senior art director and design strategist.
When given a creative concept, generate a structured design brief containing:
1. Concept summary (2 sentences)
2. Color palette with 5 hex codes and rationale
3. Typography mood (serif, sans, display, or monospace) with specific font family recommendations
4. Visual composition notes (lighting, texture, form)
5. A detailed image generation prompt suitable for text-to-image models
6. Three reference keywords for stock or inspiration searches

Use clear headers. Keep the tone practical and actionable."""

Step 3: Build the brief generator function

This function accepts a user concept, packages it with the system prompt, and calls Llama 3.3 70B. I chose Llama 3.3 70B because it handles long-form creative writing reliably, and Oxlo.ai's request-based pricing means a verbose prompt does not change the cost.

def generate_brief(concept: str) -> str:
    response = client.chat.completions.create(
        model="llama-3.3-70b",
        messages=[
            {"role": "system", "content": SYSTEM_PROMPT},
            {"role": "user", "content": f"Create a design brief for: {concept}"},
        ],
        temperature=0.8,
        max_tokens=1500,
    )
    return response.choices[0].message.content

Step 4: Execute with a sample concept

Finally, I call the function with a concrete scenario and print the result. You can swap the concept string for any theme you are exploring.

if __name__ == "__main__":
    concept = "solarpunk farmers market in a reclaimed subway station"
    print(f"Concept: {concept}\n")
    print(generate_brief(concept))

Run it

Save the complete script as art_director.py and run python art_director.py. The full file is below, followed by example output.

from openai import OpenAI

client = OpenAI(
    base_url="https://api.oxlo.ai/v1",
    api_key="YOUR_OXLO_API_KEY"
)

SYSTEM_PROMPT = """You are a senior art director and design strategist.
When given a creative concept, generate a structured design brief containing:
1. Concept summary (2 sentences)
2. Color palette with 5 hex codes and rationale
3. Typography mood (serif, sans, display, or monospace) with specific font family recommendations
4. Visual composition notes (lighting, texture, form)
5. A detailed image generation prompt suitable for text-to-image models
6. Three reference keywords for stock or inspiration searches

Use clear headers. Keep the tone practical and actionable."""

def generate_brief(concept: str) -> str:
    response = client.chat.completions.create(
        model="llama-3.3-70b",
        messages=[
            {"role": "system", "content": SYSTEM_PROMPT},
            {"role": "user", "content": f"Create a design brief for: {concept}"},
        ],
        temperature=0.8,
        max_tokens=1500,
    )
    return response.choices[0].message.content

if __name__ == "__main__":
    concept = "solarpunk farmers market in a reclaimed subway station"
    print(f"Concept: {concept}\n")
    print(generate_brief(concept))

Example output:

Concept: solarpunk farmers market in a reclaimed subway station

Concept Summary
A vibrant marketplace flourishes beneath cracked concrete arches where moss and neon share the walls. The scene merges post-industrial decay with optimistic agrarian technology.

Color Palette
- #2D4A3E (Deep Moss): Anchors the natural reclamation theme.
- #F4E4BC (Warm Sand): Soft daylight filtering through grates.
- #FF6B35 (Solar Amber): Energy accents and signage.
- #4A6741 (Fern Green): Fresh produce and living walls.
- #1A1A2E (Subway Midnight): Shadows and structural steel.

Typography Mood
Sans-serif with organic rounding. Recommend Montserrat for headlines and Nunito for body text to balance structure with friendliness.

Visual Composition Notes
- Lighting: Mixed natural light from above and warm LED grow-lights.
- Texture: Rough concrete against polished bamboo stalls.
- Form: Low, horizontal vendor tables beneath towering curved ceilings.

Image Generation Prompt
A solarpunk farmers market inside a reclaimed art-deco subway station, moss growing on tiled walls, warm sunlight streaming through overhead grates, bamboo vendor stalls with hydroponic greens, neon amber signage, diverse crowd in linen clothing, cinematic lighting, highly detailed, 8k render.

Reference Keywords
- solarpunk interior architecture
- urban farming market
- reclaimed industrial space

Next steps

Feed the generated image prompt into Oxlo.ai's image generation endpoint with Oxlo.ai Image Pro or Flux.1 to produce concept art instantly. If you want to critique existing designs instead of generating briefs, swap the model to kimi-k2.6 and pass image URLs to the vision-capable messages format.

Top comments (0)