Tinqs Studio blog: 6 posts, 5 skills, landing page
Engineering blog and AI agent skills from Tinqs Studio — an agent harness for game development. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,162 @@
|
||||
---
|
||||
title: "AI Art at Scale: Using fal.ai Flux for Game Asset Generation"
|
||||
slug: fal-image-generation
|
||||
date: "2026-05-25"
|
||||
description: "How we use fal.ai Flux models to generate concept art, trailer frames, and UI assets for our game --- with a 4-layer prompt pattern that actually works."
|
||||
og_description: "fal.ai Flux for game art: 4-layer prompts, $0.01/image, and a pipeline that replaced our concept art bottleneck."
|
||||
og_image: "https://www.tinqs.com/img/og-cover.jpg"
|
||||
excerpt: "We generate concept art, trailer frames, and UI icons with fal.ai Flux models at $0.01 per image. Here's the prompt engineering pattern that makes it work for game dev."
|
||||
author: "Ozan Bozkurt"
|
||||
author_initials: "OB"
|
||||
author_role: "CTO & Developer, Tinqs"
|
||||
---
|
||||
We're a small indie studio building a survival colony sim. We don't have a concept artist on staff. Every piece of character art, trailer frame, and UI icon in our game was generated with fal.ai Flux models --- at roughly a penny per image.
|
||||
|
||||
## The Problem with AI Art for Games
|
||||
|
||||
Most AI image generators produce beautiful images that are completely useless for game development. They look great on social media but fall apart when you need consistency: the same character from four angles, a UI icon that reads at 64x64, a trailer frame that matches your game's art style rather than whatever the model defaults to.
|
||||
|
||||
The issue isn't the models --- Flux is genuinely good. The issue is prompting. When you write "warrior on a beach," you get a different art style every time. Different skin tones, different proportions, different lighting. You can't build a game from that.
|
||||
|
||||
We spent three months iterating on prompt patterns before we found something that works consistently. The result is a 4-layer system that anchors the model to your art direction and produces images you can actually ship.
|
||||
|
||||
## Why fal.ai
|
||||
|
||||
We evaluated Midjourney, DALL-E 3, Stable Diffusion (self-hosted), and fal.ai:
|
||||
|
||||
**API-first.** Midjourney is Discord-only. DALL-E's API works but the model makes everything look like a stock photo. Self-hosted SD means maintaining GPU infrastructure. fal.ai gives you Flux models behind a simple REST API --- POST a prompt, GET an image URL.
|
||||
|
||||
**Cost.** $0.01 per image with `flux-2-pro`. $0.004 with `schnell` for rapid iteration. A full character design session --- 12 variants across 3 rounds of refinement --- costs $0.12. A 20-frame trailer storyboard costs $0.20. At these prices, the bottleneck is creative direction, not budget.
|
||||
|
||||
**Speed.** `flux/schnell` returns an image in 4 seconds. `flux-2-pro` in 15 seconds. Fast enough that an AI agent can generate, display, get feedback, and regenerate in a single conversation turn.
|
||||
|
||||
**No subscription.** Pay per image. No monthly fee, no credit packs that expire, no tier-gated features.
|
||||
|
||||
## The 4-Layer Prompt Pattern
|
||||
|
||||
This is the pattern that made AI art actually usable for our game. Each layer adds specificity, and the combination anchors the model to a consistent output.
|
||||
|
||||
### Layer 1: Design Context
|
||||
|
||||
The most important layer and the one most people skip. It sets the overall art direction:
|
||||
|
||||
```
|
||||
Art direction: stylized 3D render for a survival colony sim. Warm earthy
|
||||
palette --- browns, tans, dark reds, cream, ocean blues. Carved wood
|
||||
textures, traditional patterns, woven natural fibres. Game engine quality,
|
||||
not photorealistic.
|
||||
```
|
||||
|
||||
This paragraph appears at the start of every prompt. Same paragraph whether you're generating a character, a landscape, or an icon. It anchors the model to your art style.
|
||||
|
||||
**The key insight:** write this once, paste it everywhere. It's your art bible compressed into 50 words. Every time we skipped it --- "just a quick test" --- the output drifted into generic fantasy art.
|
||||
|
||||
### Layer 2: Scene Description
|
||||
|
||||
Describe exactly what should appear, element by element:
|
||||
|
||||
```
|
||||
Full body character in T-pose, front view. Young woman, mid-20s.
|
||||
Wearing a woven wrap skirt (mid-thigh length) and a fitted cloth top.
|
||||
Shell necklace with a carved bone pendant. Single bone bracelet on
|
||||
left wrist. Hair swept back over right shoulder. Bare feet.
|
||||
Matte skin, warm brown tones. Neutral confident expression ---
|
||||
not smiling, not angry. Dark grey background.
|
||||
```
|
||||
|
||||
Not "tribal clothing" but "woven wrap skirt." Not "jewelry" but "shell necklace with a carved bone pendant." Vague prompts produce vague results. Specific prompts produce usable assets.
|
||||
|
||||
### Layer 3: Negative Prompt
|
||||
|
||||
Always include what you don't want:
|
||||
|
||||
```
|
||||
Do not include: cartoon style, anime style, photorealistic render,
|
||||
extra text or taglines, watermark, deformed elements, modern or
|
||||
sci-fi. No extra fingers, no merged limbs, no floating accessories.
|
||||
```
|
||||
|
||||
Extend per-subject. For characters: "no stereotypical elements, no overly shiny materials." The negative prompt is as important as the positive one.
|
||||
|
||||
### Layer 4: Reference Images
|
||||
|
||||
When you need consistency --- the same character from different angles, or a new character matching an existing one --- pass a reference image:
|
||||
|
||||
```python
|
||||
result = fal_client.subscribe("fal-ai/flux-2-pro", arguments={
|
||||
"prompt": "Same character, side view, same clothing and accessories...",
|
||||
"image_url": "https://your-approved-front-view.png",
|
||||
"image_size": "square_hd",
|
||||
})
|
||||
```
|
||||
|
||||
The first approved image becomes the reference for all subsequent views. Without it, you get a different person every time.
|
||||
|
||||
## The Model Lineup
|
||||
|
||||
| Model | Cost | Speed | When |
|
||||
|-------|------|-------|------|
|
||||
| `flux-2-pro` | $0.01 | ~15s | Final art. Default for anything you'll ship. |
|
||||
| `flux/schnell` | $0.004 | ~4s | Exploration and iteration. |
|
||||
| `ideogram/v2` | $0.008 | ~5s | Anything with readable text --- logos, UI, posters. |
|
||||
| `flux-pro/v1.1-ultra` | $0.015 | ~8s | Highest quality, but can hang. |
|
||||
|
||||
The workflow: explore with `schnell`, refine with `flux-2-pro`, add text with `ideogram/v2`.
|
||||
|
||||
## How This Fits Our Pipeline
|
||||
|
||||
fal.ai is the first step in a pipeline from idea to in-game asset:
|
||||
|
||||
```
|
||||
Brief --> fal.ai (2D concept art) --> Tripo Studio (3D model) --> Blender (decimate) --> Godot (in-game)
|
||||
```
|
||||
|
||||
1. **Brief.** The designer describes the character or asset.
|
||||
2. **2D generation.** Generate 3 variants with `flux-2-pro`, score each on a rubric (style match, cultural accuracy, silhouette, expression, animatability), pick the best.
|
||||
3. **Reference sheet.** Generate front, side, three-quarter, and head closeup views using the winner as reference.
|
||||
4. **3D model.** Approved concept art goes into Tripo Studio for image-to-3D. Outputs ~1.5M faces with full PBR textures.
|
||||
5. **Decimation.** Blender CLI decimates to 25,000 faces.
|
||||
6. **Rigging.** Auto-rig the body (hair separated first if large).
|
||||
7. **In-game.** Import into the engine, set up materials, done.
|
||||
|
||||
The entire pipeline from "I want a character" to "character walking around in the game" takes about 2 hours. The quality isn't AAA, but for an indie game with a stylised art style, it's more than good enough.
|
||||
|
||||
## What We Learned
|
||||
|
||||
**The design context layer is everything.** Without it, every image is a one-off. With it, every image belongs to the same game. The 50-word context block is worth more than the rest of the prompt combined.
|
||||
|
||||
**Negative prompts prevent drift.** AI models have strong defaults --- they want to make things shiny, symmetrical, and photorealistic. If your game isn't those things, say so explicitly.
|
||||
|
||||
**Score and iterate, don't accept the first output.** Generate 3 variants, score on 5 criteria, approve only 8+/10. Three attempts at $0.01 each is $0.03 --- cheaper than working around a mediocre image.
|
||||
|
||||
**Reference images are the consistency mechanism.** Without them, every generation is independent. With them, every generation builds on the last approved output. This is how you get a roster of characters that look like they belong in the same game.
|
||||
|
||||
**Fast models for exploration, quality models for output.** `schnell` at 4 seconds is for "what if..." iterations. `flux-2-pro` at 15 seconds is for "yes, this is the one."
|
||||
|
||||
**Let the AI agent handle prompt engineering.** We encode the 4-layer pattern, art style guide, and cultural guardrails in a [skill file](../skills/image-generation.md). The agent writes the full prompt, generates images, displays them, and asks for scores. The human's job is creative direction.
|
||||
|
||||
## The Numbers
|
||||
|
||||
- **Characters designed:** 10 (full roster for early access)
|
||||
- **Total images generated:** ~400 across all iterations
|
||||
- **Total cost:** ~$6 in fal.ai credits
|
||||
- **Time per character:** ~30 minutes from brief to approved reference sheet
|
||||
- **Pipeline time:** ~2 hours from concept art to in-game model
|
||||
- **Models used:** flux-2-pro (80%), schnell (15%), ideogram/v2 (5%)
|
||||
|
||||
## Open-Source Skills
|
||||
|
||||
We've published the skill files that power this workflow. A skill is a markdown document that teaches an AI agent a specific procedure --- like a runbook, but the reader is an LLM.
|
||||
|
||||
- **[Image Generation](../skills/image-generation.md)** --- fal.ai API, 4-layer prompt pattern, model comparison
|
||||
- **[Concept Art Pipeline](../skills/concept-art-pipeline.md)** --- full 2D-to-3D character workflow
|
||||
- **[3D Model Generation](../skills/tripo-browser-workflow.md)** --- Tripo Studio text-to-3D and image-to-3D
|
||||
- **[Video Generation](../skills/sora2-video.md)** --- trailer clip generation with OpenAI Sora 2
|
||||
|
||||
Drop any of these into your `.cursor/skills/` directory and your AI agent can follow them. Adapt the design context block to your game's art style and you're good to go.
|
||||
|
||||
---
|
||||
|
||||
AI image generation isn't magic and it isn't free. But at a penny per image, with the right prompt structure, it eliminates the most expensive bottleneck in indie game development: the gap between "I know what this should look like" and "I have an image I can actually use."
|
||||
|
||||
We're building all of this as part of [Tinqs Studio](https://tinqs.com) --- a game development platform that brings together git hosting, AI tools, and creative workflows for game teams.
|
||||
Reference in New Issue
Block a user