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
|
||||
|
||||
Reference in New Issue
Block a user