rewrite: refresh all blog posts for public audience

Merged overlapping posts:
- forking-gitea + fork-dont-build → one post about the fork philosophy
- fal-image-generation + image-generation-fal → one post about AI art pipeline

Rewrote all posts with external/public voice:
- Stronger hooks, concrete examples, punchier language
- agentic-workflow: restructured around soul files + skills + numbers
- agent-harness: clearer framing of 'what an agent harness is'
- cloud-harness: tighter narrative about overnight agents
- godot-optimisation: same depth, sharper opening
- pre-commit-agent: clearer architecture, cost breakdown
- studio-cli: reframed around identity/cold-start problem
- blog-visual-upgrade: tightened the restyle story

10 posts total (9 markdown + 1 hand-authored HTML)
This commit is contained in:
2026-06-03 03:06:41 +01:00
parent bf42a76cf9
commit f01036c646
23 changed files with 933 additions and 2546 deletions
+82 -107
View File
@@ -1,162 +1,137 @@
---
title: "AI Art at Scale: Using fal.ai Flux for Game Asset Generation"
title: "AI Art at Every Price Point: How We Generate Game Assets with fal.ai"
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."
description: "From $0.002 to $0.09 per image, across 12 models. How we built a prompt pattern that actually produces usable game art, and a model-picking strategy that keeps costs at $8/month."
og_description: "12 fal.ai models, $0.002-$0.09/image, 4-layer prompt pattern. Game art that actually ships."
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."
excerpt: "We generate all visual assets for our game through fal.ai — concept art, icons, logos, trailer frames. Here's the 4-layer prompt pattern that actually works, and how we pick between 12 models spanning two orders of magnitude in cost."
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.
Every visual asset in our game — character art, app icons, trailer frames, logo variants, Steam capsules — was generated through a single API. No Photoshop. No concept artist on staff. Last month: 673 images, $8.30 total. Here's the prompt pattern that makes AI art actually usable for game development, and how we pick between 12 models spanning $0.002 to $0.09 per image.
## The Problem with AI Art for Games
## 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.
Most AI-generated images look beautiful on social media and useless in a game. The character looks different from every angle. The art style drifts between generations. The text in the logo is garbled. The icon doesn't read at 64×64.
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.
The issue isn't the models Flux, Ideogram, and Recraft are genuinely good. The issue is prompting. "Warrior on a beach" gives you a different art style, different skin tone, different proportions every time. You can't build a game from one-offs.
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.
We spent three months iterating before we found a prompt structure that anchors the model to a consistent art direction and produces images you can actually ship. It has four layers.
## Why fal.ai
## The 4-layer prompt pattern
We evaluated Midjourney, DALL-E 3, Stable Diffusion (self-hosted), and fal.ai:
### Layer 1: Design context (the anchor)
**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:
This is the most important paragraph and the one most people skip. It sets the art direction for every single generation:
```
Art direction: stylized 3D render for a survival colony sim. Warm earthy
palette --- browns, tans, dark reds, cream, ocean blues. Carved wood
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.
Same paragraph whether you're generating a character, a landscape, or an icon. 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.
**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 (be specific)
### Layer 2: Scene Description
Not "tribal clothing" — "woven wrap skirt, mid-thigh length." Not "jewelry" — "shell necklace with a carved bone pendant." Vague prompts produce vague results. Specific prompts produce usable assets. Describe element by element.
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
### Layer 3: Negative prompt (prevent drift)
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.
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.
AI models have strong defaults — they want to make things shiny, symmetrical, and photorealistic. If your game isn't those things, say so explicitly.
### Layer 4: Reference Images
### Layer 4: Reference images (consistency)
When you need consistency --- the same character from different angles, or a new character matching an existing one --- pass a reference image:
When you need the same character from different angles, pass the first approved image as reference. Without it, every generation is independent — a different person every time. With it, 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.
```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 model lineup (and when to use each)
The first approved image becomes the reference for all subsequent views. Without it, you get a different person every time.
Not every image needs the best model. A throwaway mockup doesn't justify $0.09. A final logo doesn't deserve $0.002.
## The Model Lineup
| Model | Cost | Speed | Use for |
|-------|------|-------|---------|
| Flux 2 Pro | $0.03 | 15s | Final art, characters, environments |
| Flux Schnell | $0.003 | 3s | Exploration drafts, 20-variant grids |
| Ideogram v3 Quality | $0.09 | 12s | Anything with readable text |
| Recraft v3 | $0.04-0.08 | 10s | Logos, brand assets, SVG vectors |
| Seedream v4.5 | $0.04 | 8s | Photorealistic scenes |
| Flux Dev | $0.025 | 10s | LoRA fine-tuning base |
| Nano Banana Edit | $0.039 | 12s | Style transfer, material variants |
| BiRefNet | $0.001 | 3s | Background removal |
| 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 Schnell-to-Pro pipeline (never iterate on expensive models)
The workflow: explore with `schnell`, refine with `flux-2-pro`, add text with `ideogram/v2`.
Every generation session follows the same pattern:
## How This Fits Our Pipeline
1. **Explore with Schnell** ($0.003) — 10-20 variants, different angles, color palettes. Cost: $0.03-0.06
2. **Pick 2-3 directions.** Human looks at the grid, picks winners.
3. **Refine with Flux 2 Pro** ($0.03) — regenerate winners at full quality. Cost: $0.06-0.09
4. **Post-process** — BiRefNet for background removal ($0.001), Recraft for vector ($0.08)
fal.ai is the first step in a pipeline from idea to in-game asset:
A full session — blank canvas to final assets — costs under $0.20. Most of the creative work happens at $0.003/image. The expensive model just polishes a decision you already made.
### Typography: one model rules them all
Every model except Ideogram fails at text. Flux gives you beautiful art with garbled letters. SDXL doesn't try. If your image has words in it, Ideogram v3 Quality is the only answer. We learned to accept the $0.09 cost rather than waste $0.30 on ten failed Flux attempts.
### Logo variants at scale
Our game logo has 18 material variants — mahogany, mother-of-pearl, obsidian, molten lava, bronze with verdigris. Each generated with Nano Banana Edit ($0.039) + BiRefNet ($0.001) for transparency. Total: $0.72. A designer would quote hundreds of dollars and a week.
## The numbers (one month of generation)
| Category | Images | Cost | Avg/Image |
|----------|--------|------|-----------|
| Concept art (flux-2-pro) | 120 | $3.60 | $0.03 |
| Exploration (schnell) | 400 | $1.20 | $0.003 |
| Logo variants | 18 | $0.72 | $0.04 |
| Icons | 30 | $1.20 | $0.04 |
| Typography (ideogram) | 25 | $1.50 | $0.06 |
| Background removal | 80 | $0.08 | $0.001 |
| **Total** | **673** | **$8.30** | **$0.012** |
Six hundred images. Eight dollars.
## The pipeline: from prompt to in-game asset
fal.ai is step one of a pipeline that goes from idea to walking character in about two hours:
```
Brief --> fal.ai (2D concept art) --> Tripo Studio (3D model) --> Blender (decimate) --> Godot (in-game)
Brief fal.ai (2D concept) → 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.
1. Designer describes the character
2. Generate 3 variants with Flux 2 Pro, score on 5 criteria (style match, cultural accuracy, silhouette, expression, animatability)
3. Generate front/side/three-quarter reference views using the winner
4. Tripo Studio image-to-3D (~1.5M faces, PBR textures)
5. Blender CLI decimates to 25k faces
6. Auto-rig, import into engine, 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.
Quality isn't AAA, but for an indie game with a stylized art style, it's more than good enough. Ten characters designed, total fal.ai spend: $6.
## What We Learned
## 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.
**The design context block is worth more than the rest of the prompt combined.** Without it, every image is a one-off. With it, every image belongs to the same game.
**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.
**Never iterate on expensive models.** Schnell at $0.003/image is for exploration. Flux 2 Pro at $0.03 is for final output. The cheap model does 90% of the creative work.
**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.
**Aggregation beats loyalty.** No single model is best at everything. Flux for art, Ideogram for text, Recraft for design, Nano Banana for edits, BiRefNet for masks. Use the right tool for each job.
**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.
**Let the agent handle prompting.** We encode the 4-layer pattern, art style guide, and model selection rules in an [agent skill file](../skills/image-generation.md). The AI writes the full prompt, generates images, displays them, and asks for scores. The human's job is creative direction.
**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 art isn't magic and it isn't free. But at a penny per image, with the right prompt structure and model strategy, it eliminates the most expensive bottleneck in indie game development: the gap between "I know what this should look like" and "I have an asset I can actually use."
---
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.
*Image generation is built into [Tinqs Studio](https://tinqs.com). We've open-sourced the [prompt engineering skill](../skills/image-generation.md) and [concept art pipeline skill](../skills/concept-art-pipeline.md). We're building [Ariki](https://arikigame.com) with these tools.*