Update SOPs: consolidate index, clean client data, set Imagen as default
- README: rewrite index to reflect actual files (STACK/CONTENT/OPTIMIZATION); remove 15 dead links to old numbered SOPs; add subdirectory table; update image gen to Google Imagen as default - STACK: fix wp-divi-pipeline script paths; genericize vibrantyou/domain examples; strip pre-existing em dashes throughout - CONTENT: update image generation default to Google Imagen API with allotted quota - image-gen-workflow: remove client-specific cobhamtech data; generalize brand palette step; update date - wp-divi-pipeline-to-am-stack: remove vibrantyou.yoga client data block; fix Related SOPs links to current files
This commit is contained in:
@@ -1,7 +1,6 @@
|
||||
# Image Generation Workflow — Arising Media
|
||||
# Image Generation Workflow: Arising Media
|
||||
|
||||
Last updated: 2026-05-10
|
||||
Project reference: cobhamtech.com (first full run)
|
||||
Last updated: 2026-06-09
|
||||
|
||||
---
|
||||
|
||||
@@ -15,13 +14,13 @@ Standardized process for generating, validating, and deploying AI images across
|
||||
|
||||
API: Google Gemini (generativelanguage.googleapis.com)
|
||||
SDK: google-genai (NOT the deprecated google-generativeai package)
|
||||
Draft model: gemini-2.5-flash-image (Nano Banana — Speed Mode)
|
||||
Final model: imagen-4.0-generate-001 (Imagen 4 — Quality Mode)
|
||||
Draft model: gemini-2.5-flash-image (Nano Banana: Speed Mode)
|
||||
Final model: imagen-4.0-generate-001 (Imagen 4: Quality Mode)
|
||||
Format: JPEG, 85% quality, max 1600px wide
|
||||
|
||||
---
|
||||
|
||||
## Phase 1 — Site Analysis (before any generation)
|
||||
## Phase 1: Site Analysis (before any generation)
|
||||
|
||||
Before generating images, read:
|
||||
- index.html (home page structure)
|
||||
@@ -38,14 +37,14 @@ Document this in: 01-model-selection.md (image plan table)
|
||||
|
||||
---
|
||||
|
||||
## Phase 2 — Prompt Engineering
|
||||
## Phase 2: Prompt Engineering
|
||||
|
||||
### Rules
|
||||
- Always reference the site color palette in the prompt (dark navy, slate blue, gold accents)
|
||||
- Specify "no text" and "no logos" for background images
|
||||
- Specify "photorealistic" for all marketing images
|
||||
- NO PEOPLE. NO FACES. Hardware, infrastructure, and environment only across all client sites
|
||||
- This applies to all slots: hero, about, services, contact, location — no exceptions
|
||||
- This applies to all slots: hero, about, services, contact, location: no exceptions
|
||||
- Reason: faces introduce identity/representation risk and age poorly. Hardware stays neutral and professional.
|
||||
|
||||
### Prompt structure
|
||||
@@ -54,13 +53,13 @@ Document this in: 01-model-selection.md (image plan table)
|
||||
### Example (hero background)
|
||||
"Professional enterprise server room, long corridor of dark rack servers with blue LED ambient lighting, deep perspective, dark navy background, cinematic shallow depth of field, no people, photorealistic, ultra detailed"
|
||||
|
||||
### cobhamtech.com brand prompt additions
|
||||
Always append to prompts for this client:
|
||||
"dark navy and blue ambient lighting, professional, enterprise, no text"
|
||||
### Per-project brand prompt additions
|
||||
Append brand-specific color and tone language to every prompt for a given client.
|
||||
Example: "dark navy and blue ambient lighting, professional, enterprise, no text"
|
||||
|
||||
---
|
||||
|
||||
## Phase 3 — Generation Script Pattern
|
||||
## Phase 3: Generation Script Pattern
|
||||
|
||||
```python
|
||||
from google import genai
|
||||
@@ -84,16 +83,16 @@ with open('output.jpg', 'wb') as f:
|
||||
|
||||
Validate: file must be > 10,000 bytes. Anything smaller is an API error or empty response.
|
||||
|
||||
CRITICAL — Vision validation is mandatory before saving any image:
|
||||
CRITICAL: Vision validation is mandatory before saving any image:
|
||||
The toolbox script (ai-imagen-generate.sh) automatically sends each generated image to
|
||||
gemini-2.0-flash for visual inspection. It asks: "Does this image contain people, faces,
|
||||
hands, silhouettes, or body parts?" If YES — the image is rejected, prompt is tightened,
|
||||
hands, silhouettes, or body parts?" If YES: the image is rejected, prompt is tightened,
|
||||
and generation retries up to 3 times. Only images that pass inspection are saved.
|
||||
Claude cannot visually inspect images — the vision validation step is the enforcement gate.
|
||||
Claude cannot visually inspect images: the vision validation step is the enforcement gate.
|
||||
|
||||
---
|
||||
|
||||
## Phase 4 — Placement Patterns
|
||||
## Phase 4: Placement Patterns
|
||||
|
||||
### Pattern A: CSS background-image with dark overlay (hero sections)
|
||||
|
||||
@@ -143,15 +142,15 @@ Implementation: add img to existing grid + expand grid columns
|
||||
|
||||
---
|
||||
|
||||
## Phase 5 — CSP and nginx Updates
|
||||
## Phase 5: CSP and nginx Updates
|
||||
|
||||
Any new image source domain requires a CSP update in nginx.conf.
|
||||
For Google Maps tiles: add `https://*.googleapis.com https://*.gstatic.com` to `img-src`
|
||||
For self-hosted images: `img-src 'self' data:` is sufficient — no change needed
|
||||
For self-hosted images: `img-src 'self' data:` is sufficient: no change needed
|
||||
|
||||
---
|
||||
|
||||
## Phase 6 — Docker Rebuild and Verify
|
||||
## Phase 6: Docker Rebuild and Verify
|
||||
|
||||
After every image + HTML change:
|
||||
|
||||
@@ -192,11 +191,3 @@ Every generation run must produce a log entry in:
|
||||
|
||||
Log must include: date, client, model, each image file name, prompt used, file size in bytes, placement pattern used, Docker rebuild result.
|
||||
|
||||
---
|
||||
|
||||
## Cobhamtech.com Run Reference
|
||||
|
||||
Container: cobhamtech-site
|
||||
Port: 8010
|
||||
Assets path: /home/sirdrez/arisingmedia-websites/cobhamtech.com/assets/images/
|
||||
Color tokens: --ct-black #0c0f18 / --ct-slate #1c2d42 / --ct-blue #2d5a9e / --ct-gold #c79330
|
||||
|
||||
@@ -6,7 +6,7 @@ Source: cutout.pro/model-comparison/imagen-vs-nanobanana + Gemini API model audi
|
||||
|
||||
## Available Models (via Google Gemini API)
|
||||
|
||||
### Imagen 4 — Quality Mode
|
||||
### Imagen 4: Quality Mode
|
||||
Model ID: `imagen-4.0-generate-001`
|
||||
Also available: `imagen-4.0-ultra-generate-001`
|
||||
|
||||
@@ -24,7 +24,7 @@ Use for:
|
||||
|
||||
---
|
||||
|
||||
### Nano Banana (Gemini 2.5 Flash Image) — Speed Mode
|
||||
### Nano Banana (Gemini 2.5 Flash Image): Speed Mode
|
||||
Model ID: `gemini-2.5-flash-image`
|
||||
|
||||
Strengths:
|
||||
@@ -40,7 +40,7 @@ Use for:
|
||||
|
||||
---
|
||||
|
||||
### Imagen 4 Fast — Budget Mode
|
||||
### Imagen 4 Fast: Budget Mode
|
||||
Model ID: `imagen-4.0-fast-generate-001`
|
||||
|
||||
Use for:
|
||||
@@ -52,38 +52,26 @@ Use for:
|
||||
|
||||
## Recommended Workflow
|
||||
|
||||
Step 1 — Draft with Speed Mode (`gemini-2.5-flash-image`)
|
||||
Step 1: Draft with Speed Mode (`gemini-2.5-flash-image`)
|
||||
Generate 2-4 variations quickly. Confirm composition, subject, and tone. Low cost.
|
||||
|
||||
Step 2 — Refine with Quality Mode (`imagen-4.0-generate-001`)
|
||||
Step 2: Refine with Quality Mode (`imagen-4.0-generate-001`)
|
||||
Take the winning prompt from step 1. Generate final version at full quality.
|
||||
This is the image that goes into the site.
|
||||
|
||||
Step 3 — Review against brand palette
|
||||
Check that image tones align with site color tokens:
|
||||
- cobhamtech.com: dark navy (#0c0f18), slate (#1c2d42), blue accent (#2d5a9e), gold (#c79330)
|
||||
- All hero images need to work behind dark overlays
|
||||
Step 3: Review against brand palette
|
||||
Check that image tones align with the project's color tokens from `tokens.css`.
|
||||
All hero images need to work behind dark overlays.
|
||||
|
||||
Step 4 — Save to project assets
|
||||
Step 4: Save to project assets
|
||||
Path convention: `assets/images/{page}-{slot}.jpg`
|
||||
Examples: `hero-bg.jpg`, `about-visual.jpg`, `services-bg.jpg`
|
||||
|
||||
---
|
||||
|
||||
## Cobhamtech.com Image Plan
|
||||
|
||||
| Slot | File | Page | Prompt Theme |
|
||||
|------|------|------|--------------|
|
||||
| Hero background | `hero-bg.jpg` | index.html | Dark server room, blue ambient lighting, depth of field |
|
||||
| About story | `about-visual.jpg` | about.html | IT professional at clean desk, dual monitors, neutral dark background |
|
||||
| Services hub | `services-bg.jpg` | services/index.html | Enterprise network infrastructure, abstract, dark |
|
||||
| Intro visual | `intro-visual.jpg` | index.html | Business and technology handshake, professional setting |
|
||||
|
||||
---
|
||||
|
||||
## Notes
|
||||
|
||||
- Never use Nano Banana for final production images on client sites
|
||||
- Imagen 4 Ultra adds marginal quality gain over standard — not worth the cost for web assets
|
||||
- Imagen 4 Ultra adds marginal quality gain over standard: not worth the cost for web assets
|
||||
- All images should be exported as JPEG at 85% quality, max 1600px wide, for web performance
|
||||
- Run generated images through the site CSP — ensure `img-src` allows `self` and `data:` only (no external CDN hotlinking)
|
||||
- Run generated images through the site CSP: ensure `img-src` allows `self` and `data:` only (no external CDN hotlinking)
|
||||
|
||||
Reference in New Issue
Block a user