directory changes and restructuring
🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
168
custom-skills/30-ourdigital-designer/README.md
Normal file
168
custom-skills/30-ourdigital-designer/README.md
Normal file
@@ -0,0 +1,168 @@
|
||||
# OurDigital Visual Storytelling Skill
|
||||
|
||||
## 📦 스킬 구조
|
||||
|
||||
```
|
||||
ourdigital-visual-storytelling/
|
||||
├── SKILL.md # 메인 스킬 파일
|
||||
├── scripts/
|
||||
│ ├── generate_prompt.py # 프롬프트 자동 생성
|
||||
│ └── mood_calibrator.py # 무드 파라미터 조정
|
||||
└── references/
|
||||
├── visual_metaphors.md # 시각적 메타포 사전
|
||||
├── color_palettes.md # 컬러 팔레트 가이드
|
||||
└── advanced_techniques.md # 고급 테크닉 레퍼런스
|
||||
```
|
||||
|
||||
## 🚀 Claude Skills 설치 방법
|
||||
|
||||
### 방법 1: Claude Projects에서 사용
|
||||
1. Claude.ai에서 새 Project 생성
|
||||
2. Project Settings → Skills → Add Custom Skill
|
||||
3. `ourdigital-visual-storytelling` 폴더 전체 업로드
|
||||
4. 스킬 활성화
|
||||
|
||||
### 방법 2: MCP Server로 사용
|
||||
1. 스킬 폴더를 MCP skills 디렉토리로 이동:
|
||||
```bash
|
||||
cp -r ourdigital-visual-storytelling /path/to/mcp/skills/user/
|
||||
```
|
||||
2. MCP 서버 재시작
|
||||
3. Claude에서 스킬 자동 인식
|
||||
|
||||
### 방법 3: 수동 활용
|
||||
1. SKILL.md 내용을 Claude 대화에 직접 붙여넣기
|
||||
2. 필요시 scripts와 references 내용 참조
|
||||
|
||||
## 💡 사용 예시
|
||||
|
||||
### 기본 사용법
|
||||
```
|
||||
"AI와 인간 정체성의 혼재에 대한 철학적 에세이를 위한 featured image를 만들어줘"
|
||||
```
|
||||
|
||||
### 스크립트 활용
|
||||
```bash
|
||||
# 프롬프트 생성
|
||||
python scripts/generate_prompt.py \
|
||||
--topic "초개인화 시대의 자아" \
|
||||
--mood "contemplative" \
|
||||
--metaphor "거울 속 분산된 얼굴"
|
||||
|
||||
# 무드 조정
|
||||
python scripts/mood_calibrator.py \
|
||||
--preset philosophical_essay \
|
||||
--contemplative-depth 0.95
|
||||
```
|
||||
|
||||
### 다양한 변형 생성
|
||||
```bash
|
||||
python scripts/generate_prompt.py \
|
||||
--topic "SEO의 미래" \
|
||||
--variations 3 \
|
||||
--json
|
||||
```
|
||||
|
||||
## 📊 스킬 활용 시나리오
|
||||
|
||||
### 1. 철학적 에세이
|
||||
- **주제**: 디지털 시대의 자아 정체성
|
||||
- **무드**: philosophical_essay 프리셋
|
||||
- **메타포**: 프리즘을 통한 빛의 분산
|
||||
- **컬러**: 모노크롬 + 골드 액센트
|
||||
|
||||
### 2. 기술 비평
|
||||
- **주제**: AI 검색의 등장과 SEO의 변화
|
||||
- **무드**: technical_analysis 프리셋
|
||||
- **메타포**: 유기적 네트워크가 결정화되는 과정
|
||||
- **컬러**: 쿨톤 블루-그레이 + 디지털 그린
|
||||
|
||||
### 3. 사회 논평
|
||||
- **주제**: 소셜미디어와 평판 경제
|
||||
- **무드**: social_commentary 프리셋
|
||||
- **메타포**: 에코 체임버 속 고립된 인간 형상
|
||||
- **컬러**: 무채색 + 퍼플 액센트
|
||||
|
||||
## 🎨 생성된 프롬프트 예시
|
||||
|
||||
### 입력
|
||||
```python
|
||||
topic = "초개인화 시대의 선택의 역설"
|
||||
mood = "contemplative"
|
||||
metaphor = "무한한 문들 앞의 정지된 실루엣"
|
||||
```
|
||||
|
||||
### 출력
|
||||
```
|
||||
Create a sophisticated featured image, minimalist contemporary design,
|
||||
clean vector illustration with subtle texture overlays, 1200x630px,
|
||||
suitable for blog header for blog post about 초개인화 시대의 선택의 역설.
|
||||
|
||||
Visual concept: 무한한 문들 앞의 정지된 실루엣.
|
||||
|
||||
Atmosphere: contemplative and introspective atmosphere, zen-like calm.
|
||||
Colors: monochrome palette with single accent color.
|
||||
|
||||
Composition:
|
||||
- Highly abstract interpretation
|
||||
- Minimum 20% negative space for contemplative breathing room
|
||||
- Asymmetrical balance with strong geometric structure
|
||||
- balanced integration of Korean minimalist aesthetics with Western modernism
|
||||
|
||||
Technical notes:
|
||||
- Ensure clarity at thumbnail size (200px)
|
||||
- Avoid tech clichés (circuits, binary codes)
|
||||
- No stock photo aesthetics or literal interpretations
|
||||
- Timeless design that won't date quickly
|
||||
|
||||
Aesthetic reference: Combine Bauhaus principles with Agnes Martin's
|
||||
contemplative minimalism.
|
||||
```
|
||||
|
||||
## 🔧 커스터마이징
|
||||
|
||||
### 파라미터 조정
|
||||
```python
|
||||
# mood_calibrator.py에서 새 프리셋 추가
|
||||
"custom_preset": {
|
||||
"contemplative_depth": 0.9,
|
||||
"cultural_fusion": 0.8,
|
||||
"technical_precision": 0.5,
|
||||
"emotional_weight": 0.6,
|
||||
"innovation_index": 0.8
|
||||
}
|
||||
```
|
||||
|
||||
### 메타포 확장
|
||||
`references/visual_metaphors.md`에 새로운 개념 추가:
|
||||
```markdown
|
||||
| 새개념 | 주요 메타포 | 대체 시각 |
|
||||
|--------|------------|-----------|
|
||||
| 메타버스 | 평행 유리면 | 중첩된 현실층 |
|
||||
```
|
||||
|
||||
## 📈 성과 측정
|
||||
|
||||
### 품질 평가 기준
|
||||
- **개념 전달**: 에세이의 핵심을 포착했는가? (30%)
|
||||
- **독창성**: 독특한 관점을 제시하는가? (25%)
|
||||
- **실행력**: 기술적 완성도는? (20%)
|
||||
- **감정 공명**: 의도한 감정을 불러일으키는가? (15%)
|
||||
- **지속성**: 시간이 지나도 유효한가? (10%)
|
||||
|
||||
## 🤝 기여 가이드
|
||||
|
||||
### 개선 제안
|
||||
- Issue 생성: 새로운 메타포나 스타일 제안
|
||||
- Pull Request: 스크립트 개선이나 레퍼런스 추가
|
||||
- 피드백: 실제 사용 사례와 결과 공유
|
||||
|
||||
## 📝 라이센스
|
||||
|
||||
MIT License - 자유롭게 사용, 수정, 배포 가능
|
||||
|
||||
---
|
||||
|
||||
**Created for OurDigital blogs**
|
||||
*"사람, 디지털, 그리고 문화"의 시각적 내러티브*
|
||||
https://ourdigital.org | https://journal.ourdigital.org
|
||||
74
custom-skills/30-ourdigital-designer/code/CLAUDE.md
Normal file
74
custom-skills/30-ourdigital-designer/code/CLAUDE.md
Normal file
@@ -0,0 +1,74 @@
|
||||
# CLAUDE.md
|
||||
|
||||
## Overview
|
||||
|
||||
Visual storytelling toolkit for OurDigital blog featured images. Creates sophisticated image prompts that capture philosophical depth through minimalist visual metaphors.
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
# Generate image prompt
|
||||
python scripts/generate_prompt.py --topic "AI identity" --mood "contemplative"
|
||||
|
||||
# Calibrate mood parameters
|
||||
python scripts/mood_calibrator.py --input "essay excerpt" --style "minimalist"
|
||||
```
|
||||
|
||||
## Scripts
|
||||
|
||||
| Script | Purpose |
|
||||
|--------|---------|
|
||||
| `generate_prompt.py` | Generate AI image prompts from essay concepts |
|
||||
| `mood_calibrator.py` | Calibrate emotional parameters for consistency |
|
||||
|
||||
## Prompt Generator
|
||||
|
||||
```bash
|
||||
# Basic generation
|
||||
python scripts/generate_prompt.py --topic "AI identity crisis"
|
||||
|
||||
# With mood and metaphor
|
||||
python scripts/generate_prompt.py \
|
||||
--topic "AI identity crisis" \
|
||||
--mood "contemplative anxiety" \
|
||||
--metaphor "mirror fragments"
|
||||
|
||||
# From essay text
|
||||
python scripts/generate_prompt.py --input essay.txt --auto-extract
|
||||
```
|
||||
|
||||
## Mood Calibrator
|
||||
|
||||
```bash
|
||||
# Analyze text for emotional tone
|
||||
python scripts/mood_calibrator.py --input "essay text"
|
||||
|
||||
# Adjust existing prompt
|
||||
python scripts/mood_calibrator.py \
|
||||
--prompt "existing prompt" \
|
||||
--adjust-warmth 0.3 \
|
||||
--adjust-complexity -0.2
|
||||
```
|
||||
|
||||
## Output Format
|
||||
|
||||
Generated prompts follow OurDigital style:
|
||||
- 1200x630px dimensions (OG standard)
|
||||
- Minimalist vector + subtle textures
|
||||
- 60-30-10 color rule
|
||||
- 20%+ negative space
|
||||
|
||||
## References
|
||||
|
||||
See `references/` for:
|
||||
- `visual_metaphors.md` - Concept to visual mapping
|
||||
- `color_palettes.md` - Emotion to color mapping
|
||||
- `advanced_techniques.md` - Style guidelines
|
||||
|
||||
## Visual Approaches by Essay Type
|
||||
|
||||
| Type | Strategy | Colors |
|
||||
|------|----------|--------|
|
||||
| Technology | Organic-digital hybrids | Cool blues → warm accents |
|
||||
| Social | Network patterns | Desaturated → hope spots |
|
||||
| Philosophy | Zen space, symbols | Monochrome + single accent |
|
||||
@@ -0,0 +1,214 @@
|
||||
# Advanced Visual Techniques
|
||||
|
||||
Sophisticated methods for complex visual narratives.
|
||||
|
||||
## Metaphor Layering
|
||||
|
||||
### Three-Layer Structure
|
||||
```
|
||||
Layer 1: Immediate visual (what viewer sees first)
|
||||
Layer 2: Symbolic meaning (conceptual understanding)
|
||||
Layer 3: Philosophical depth (deeper reflection)
|
||||
|
||||
Example: "Digital Identity Crisis"
|
||||
L1: Fragmented mirror with face
|
||||
L2: Multiple reflections = multiple online personas
|
||||
L3: Question of authentic self in digital age
|
||||
```
|
||||
|
||||
### Transition States
|
||||
Show transformation between concepts:
|
||||
- **Discrete**: Clear before/after states
|
||||
- **Continuous**: Gradient transformation
|
||||
- **Recursive**: Self-referential loops
|
||||
- **Parallel**: Simultaneous states
|
||||
|
||||
## Composition Dynamics
|
||||
|
||||
### Sacred Geometry Applications
|
||||
|
||||
**Golden Spiral**
|
||||
```python
|
||||
# Place key elements along spiral path
|
||||
phi = 1.618
|
||||
spiral_points = [(r * cos(θ), r * sin(θ))
|
||||
where r = phi^(θ/2π)]
|
||||
```
|
||||
|
||||
**Rule of Triangles**
|
||||
- Stable: Base down △
|
||||
- Unstable: Point down ▽
|
||||
- Dynamic: Multiple overlapping
|
||||
|
||||
**Grid Breaking**
|
||||
- Start with rigid grid
|
||||
- Selectively break for emphasis
|
||||
- Maintain overall structure
|
||||
|
||||
### Negative Space as Active Element
|
||||
|
||||
Use empty space to:
|
||||
1. Create secondary images
|
||||
2. Guide eye movement
|
||||
3. Represent absence/loss
|
||||
4. Provide breathing room
|
||||
5. Suggest the ineffable
|
||||
|
||||
## Cultural Symbolism Integration
|
||||
|
||||
### Korean Elements (Subtle)
|
||||
- **Ma (마/間)**: Pregnant emptiness
|
||||
- **Jeong (정)**: Emotional bonds as visual threads
|
||||
- **Han (한)**: Melancholic beauty in shadows
|
||||
- **Nunchi (눈치)**: Implied awareness in composition
|
||||
|
||||
### Western Elements (Structural)
|
||||
- **Bauhaus**: Function drives form
|
||||
- **Swiss Grid**: Underlying order
|
||||
- **Brutalism**: Raw honesty
|
||||
- **Minimalism**: Essential only
|
||||
|
||||
### Fusion Techniques
|
||||
```
|
||||
Korean softness + Western structure =
|
||||
- Geometric forms with organic edges
|
||||
- Grid with breathing spaces
|
||||
- Minimal palette with emotional depth
|
||||
- Clean lines with textural warmth
|
||||
```
|
||||
|
||||
## Texture Integration
|
||||
|
||||
### Digital Textures
|
||||
- **Glitch**: Controlled chaos, disruption
|
||||
- **Grain**: Film nostalgia, warmth
|
||||
- **Pixels**: Digital breakdown, transformation
|
||||
- **Code**: Underlying structure revealed
|
||||
|
||||
### Organic Textures
|
||||
- **Paper**: Tangible, traditional
|
||||
- **Water**: Flow, change, transparency
|
||||
- **Stone**: Permanence, weight
|
||||
- **Cloud**: Ethereal, transient
|
||||
|
||||
### Hybrid Approach
|
||||
```css
|
||||
/* Layer organic over digital */
|
||||
base: clean_vector;
|
||||
overlay: paper_texture at 15% opacity;
|
||||
accent: digital_grain at edges;
|
||||
```
|
||||
|
||||
## Color Psychology Advanced
|
||||
|
||||
### Emotional Journey Mapping
|
||||
```
|
||||
Start → Middle → End
|
||||
Cold Blue → Neutral Gray → Warm Gold
|
||||
(Analysis) → (Process) → (Understanding)
|
||||
```
|
||||
|
||||
### Color Dissonance for Tension
|
||||
- Complementary colors at borders
|
||||
- Unexpected accent in monochrome
|
||||
- Temperature shift for emphasis
|
||||
|
||||
### Cultural Color Codes
|
||||
- Red in Korea: More passionate than West
|
||||
- White in Korea: Death/purity duality
|
||||
- Black: Universal depth, different meanings
|
||||
|
||||
## Temporal Narrative Techniques
|
||||
|
||||
### Static Image, Dynamic Story
|
||||
1. **Past-Present-Future**: Three zones in composition
|
||||
2. **Cycle Representation**: Circular time
|
||||
3. **Erosion/Growth**: Time's effect
|
||||
4. **Palimpsest**: Layers of history
|
||||
|
||||
### Motion Implied in Stillness
|
||||
- Blur suggesting movement
|
||||
- Repetition showing progression
|
||||
- Fragments indicating explosion
|
||||
- Spiral showing evolution
|
||||
|
||||
## Abstraction Gradients
|
||||
|
||||
### Level 1: Recognizable (0.3 abstract)
|
||||
- Clear objects with stylization
|
||||
- Obvious metaphors
|
||||
- Direct symbolism
|
||||
|
||||
### Level 2: Suggestive (0.6 abstract)
|
||||
- Forms hint at objects
|
||||
- Metaphors require thought
|
||||
- Symbolism is layered
|
||||
|
||||
### Level 3: Conceptual (0.9 abstract)
|
||||
- Pure form and color
|
||||
- Metaphors are felt
|
||||
- Symbolism is philosophical
|
||||
|
||||
## Technical Excellence
|
||||
|
||||
### File Optimization
|
||||
```bash
|
||||
# ImageMagick optimization
|
||||
convert input.png \
|
||||
-quality 85 \
|
||||
-strip \
|
||||
-resize 1200x630 \
|
||||
-colorspace sRGB \
|
||||
output.webp
|
||||
```
|
||||
|
||||
### Accessibility Checks
|
||||
- Contrast ratio: minimum 4.5:1
|
||||
- Color-blind safe palettes
|
||||
- Clear focal points
|
||||
- Alternative interpretations valid
|
||||
|
||||
## Prompt Engineering Advanced
|
||||
|
||||
### Complex Concept Formula
|
||||
```
|
||||
[PHILOSOPHICAL CONCEPT] through [NATURAL METAPHOR]
|
||||
+ [TECHNICAL ELEMENT] suggesting [EMOTIONAL JOURNEY]
|
||||
+ [CULTURAL REFERENCE] without cliché
|
||||
+ [TEMPORAL ASPECT] in single frame
|
||||
= Sophisticated visual narrative
|
||||
```
|
||||
|
||||
### Negative Prompting
|
||||
Always include what to avoid:
|
||||
- "No literal representations"
|
||||
- "Avoid tech clichés"
|
||||
- "No stock photo aesthetics"
|
||||
- "Exclude obvious symbols"
|
||||
|
||||
## Quality Evaluation Matrix
|
||||
|
||||
| Aspect | Weight | Evaluation Criteria |
|
||||
|--------|--------|-------------------|
|
||||
| Concept | 30% | Captures essay essence? |
|
||||
| Originality | 25% | Unique perspective? |
|
||||
| Execution | 20% | Technical excellence? |
|
||||
| Emotion | 15% | Evokes intended feeling? |
|
||||
| Timelessness | 10% | Will age well? |
|
||||
|
||||
## Iteration Strategies
|
||||
|
||||
1. **Generate 3 variations**: Different moods
|
||||
2. **A/B test concepts**: Literal vs abstract
|
||||
3. **Color studies**: Warm vs cool
|
||||
4. **Composition alternatives**: Central vs offset
|
||||
|
||||
## Cultural Sensitivity Checklist
|
||||
|
||||
- [ ] Avoids stereotypes
|
||||
- [ ] Respects both traditions
|
||||
- [ ] Universal symbolism
|
||||
- [ ] Inclusive imagery
|
||||
- [ ] Cross-cultural readable
|
||||
|
||||
Remember: Every image is a visual philosophy—not decoration, but thought.
|
||||
@@ -0,0 +1,147 @@
|
||||
# Color Palette Reference
|
||||
|
||||
Emotion-driven color systems for OurDigital visual storytelling.
|
||||
|
||||
## Core Palettes
|
||||
|
||||
### Contemplative Analysis
|
||||
```
|
||||
Primary: #2C3E50 Deep Blue-Gray
|
||||
Secondary: #95A5A6 Cool Gray
|
||||
Accent: #E74C3C Sharp Red
|
||||
Background:#F8F9FA Soft White
|
||||
Usage: Critical thinking, analytical pieces
|
||||
```
|
||||
|
||||
### Hopeful Exploration
|
||||
```
|
||||
Primary: #F39C12 Warm Amber
|
||||
Secondary: #E8E2D5 Soft Beige
|
||||
Accent: #3498DB Sky Blue
|
||||
Background:#FFF9F0 Warm White
|
||||
Usage: Future-oriented, optimistic content
|
||||
```
|
||||
|
||||
### Philosophical Depth
|
||||
```
|
||||
Primary: #1A1A1A Near Black
|
||||
Secondary: #F5F5F5 Off White
|
||||
Accent: #8B7355 Muted Gold
|
||||
Background:#FAFAFA Pure White
|
||||
Usage: Deep thinking, timeless topics
|
||||
```
|
||||
|
||||
### Social Commentary
|
||||
```
|
||||
Primary: #34495E Slate
|
||||
Secondary: #ECF0F1 Cloud
|
||||
Accent: #9B59B6 Purple
|
||||
Background:#F7F8F9 Cool White
|
||||
Usage: Cultural observation, social critique
|
||||
```
|
||||
|
||||
### Digital Anxiety
|
||||
```
|
||||
Primary: #2F3640 Charcoal
|
||||
Secondary: #718093 Grey Blue
|
||||
Accent: #44BD32 Digital Green
|
||||
Background:#F5F6FA Ghost White
|
||||
Usage: Technology concerns, digital culture
|
||||
```
|
||||
|
||||
## Gradient Formulas
|
||||
|
||||
### Dawn (Hope/Beginning)
|
||||
```css
|
||||
linear-gradient(135deg, #667eea 0%, #764ba2 100%)
|
||||
```
|
||||
|
||||
### Dusk (Reflection/End)
|
||||
```css
|
||||
linear-gradient(135deg, #f093fb 0%, #f5576c 100%)
|
||||
```
|
||||
|
||||
### Digital Flow (Technology)
|
||||
```css
|
||||
linear-gradient(135deg, #4facfe 0%, #00f2fe 100%)
|
||||
```
|
||||
|
||||
### Organic (Nature/Human)
|
||||
```css
|
||||
linear-gradient(135deg, #fa709a 0%, #fee140 100%)
|
||||
```
|
||||
|
||||
## Cultural Color Notes
|
||||
|
||||
### Korean Traditional (오방색)
|
||||
- **청 (Blue-Green)**: #0C7B93 - Future, technology
|
||||
- **적 (Red)**: #C0392B - Warning, passion
|
||||
- **황 (Yellow)**: #F1C40F - Center, balance
|
||||
- **백 (White)**: #FFFFFF - Beginning, void
|
||||
- **흑 (Black)**: #000000 - Depth, unknown
|
||||
|
||||
### Modern Minimal
|
||||
- **Primary**: Single strong color
|
||||
- **Support**: 90% grayscale
|
||||
- **Accent**: 10% vibrant touch
|
||||
|
||||
## Emotional Temperature Map
|
||||
|
||||
| Cool → Warm Scale | Hex Code | Emotional State |
|
||||
|------------------|----------|-----------------|
|
||||
| Ice | #E3F2FD | Detached analysis |
|
||||
| Cold | #90CAF9 | Objective observation |
|
||||
| Cool | #64B5F6 | Calm reflection |
|
||||
| Neutral | #42A5F5 | Balanced view |
|
||||
| Warm | #FFA726 | Human connection |
|
||||
| Hot | #FF7043 | Passionate engagement |
|
||||
| Fire | #F4511E | Urgent concern |
|
||||
|
||||
## Accessibility Combinations
|
||||
|
||||
### High Contrast (WCAG AAA)
|
||||
- Black (#000000) on White (#FFFFFF)
|
||||
- White (#FFFFFF) on Black (#000000)
|
||||
- Dark Blue (#003366) on Light Yellow (#FFFFCC)
|
||||
|
||||
### Medium Contrast (WCAG AA)
|
||||
- Charcoal (#333333) on Light Gray (#F5F5F5)
|
||||
- Navy (#2C3E50) on Cream (#FFF8DC)
|
||||
|
||||
## Application Rules
|
||||
|
||||
1. **60-30-10 Rule**
|
||||
- 60% dominant color (usually neutral)
|
||||
- 30% secondary color (supporting)
|
||||
- 10% accent color (attention)
|
||||
|
||||
2. **Mood Matching**
|
||||
- Technical → Cool spectrum
|
||||
- Emotional → Warm spectrum
|
||||
- Philosophical → Monochrome
|
||||
- Social → Mixed temperature
|
||||
|
||||
3. **Cultural Balance**
|
||||
- Western: High contrast, bold
|
||||
- Korean: Subtle gradation, harmony
|
||||
- Fusion: Selective contrast points
|
||||
|
||||
## Quick Selection Matrix
|
||||
|
||||
| Essay Type | Primary | Accent | Mood |
|
||||
|------------|---------|---------|------|
|
||||
| AI Ethics | Cool Gray | Red | Caution |
|
||||
| Digital Culture | Blue-Gray | Green | Technical |
|
||||
| Social Media | Desaturated | Purple | Critical |
|
||||
| Philosophy | Monochrome | Gold | Timeless |
|
||||
| Future Tech | Blue | Orange | Optimistic |
|
||||
| Cultural | Earth | Red | Grounded |
|
||||
|
||||
## Seasonal Adjustments
|
||||
|
||||
- **Spring**: Fresh greens, light blues
|
||||
- **Summer**: Vibrant, high saturation
|
||||
- **Autumn**: Warm earth tones
|
||||
- **Winter**: Cool, desaturated
|
||||
|
||||
Use colors intentionally—each hue carries meaning.
|
||||
@@ -0,0 +1,101 @@
|
||||
# Visual Metaphor Dictionary
|
||||
|
||||
Quick reference for translating abstract concepts into visual elements.
|
||||
|
||||
## Technology & Digital
|
||||
|
||||
| Concept | Primary Metaphor | Alternative Visuals |
|
||||
|---------|-----------------|-------------------|
|
||||
| Algorithm | Constellation patterns | Maze structures, flow charts as art |
|
||||
| AI | Crystalline growth | Mirror reflections, fractal patterns |
|
||||
| Data | Water flow, particles | Bird murmurations, sand grains |
|
||||
| Network | Root systems | Neural pathways, spider silk, web |
|
||||
| Code | Musical notation | DNA strands, city blueprints |
|
||||
| Cloud | Atmospheric forms | Floating islands, ethereal spaces |
|
||||
| Privacy | Veils, shadows | One-way mirrors, fog, barriers |
|
||||
| Security | Locks dissolving | Fortresses becoming permeable |
|
||||
| Automation | Clockwork organic | Self-assembling structures |
|
||||
| Virtual | Layers of reality | Parallel dimensions, glass planes |
|
||||
|
||||
## Social & Cultural
|
||||
|
||||
| Concept | Primary Metaphor | Alternative Visuals |
|
||||
|---------|-----------------|-------------------|
|
||||
| Identity | Layered masks | Fingerprints merging, mirrors |
|
||||
| Community | Overlapping circles | Shared spaces, woven threads |
|
||||
| Isolation | Islands in fog | Glass barriers, empty chairs |
|
||||
| Communication | Bridge structures | Echo patterns, light beams |
|
||||
| Conflict | Opposing forces | Tectonic plates, storm systems |
|
||||
| Harmony | Resonance patterns | Orchestra arrangements, balance |
|
||||
| Culture | Textile patterns | Layered sediments, palimpsest |
|
||||
| Tradition | Tree rings | Ancient stones, inherited objects |
|
||||
| Change | Metamorphosis | Phase transitions, seasonal cycles |
|
||||
| Power | Pyramids inverting | Current flows, gravity wells |
|
||||
|
||||
## Philosophical & Abstract
|
||||
|
||||
| Concept | Primary Metaphor | Alternative Visuals |
|
||||
|---------|-----------------|-------------------|
|
||||
| Time | Spirals, loops | Sediment layers, clock dissolution |
|
||||
| Knowledge | Light sources | Growing trees, opening books |
|
||||
| Wisdom | Mountain vistas | Deep waters, ancient libraries |
|
||||
| Truth | Clear water | Prisms splitting light, unveiled |
|
||||
| Illusion | Distorted mirrors | Smoke shapes, double images |
|
||||
| Choice | Diverging paths | Doors opening, quantum splits |
|
||||
| Balance | Tensegrity | Scales reimagined, equilibrium |
|
||||
| Paradox | Möbius strips | Impossible objects, Escher-like |
|
||||
| Existence | Breath patterns | Pulse rhythms, presence/absence |
|
||||
| Consciousness | Nested awareness | Recursive mirrors, awakening |
|
||||
|
||||
## Emotional States
|
||||
|
||||
| Emotion | Visual Translation | Color Association |
|
||||
|---------|-------------------|------------------|
|
||||
| Anxiety | Fragmented grids | Desaturated, glitch |
|
||||
| Hope | Light breaking through | Warm gradients |
|
||||
| Melancholy | Soft dissolution | Muted blues, grays |
|
||||
| Joy | Expansion patterns | Bright, ascending |
|
||||
| Fear | Contracting spaces | Sharp contrasts |
|
||||
| Peace | Still water | Soft neutrals |
|
||||
| Confusion | Tangled lines | Overlapping hues |
|
||||
| Clarity | Clean geometry | Pure, minimal |
|
||||
|
||||
## Transformation & Process
|
||||
|
||||
| Process | Visual Narrative | Symbolic Elements |
|
||||
|---------|------------------|------------------|
|
||||
| Growth | Seeds → trees | Fibonacci spirals |
|
||||
| Decay | Entropy patterns | Rust, dissolution |
|
||||
| Evolution | Branching forms | Darwin's tree reimagined |
|
||||
| Revolution | Circles breaking | Shattered patterns |
|
||||
| Innovation | Spark → flame | Lightning, fusion |
|
||||
| Tradition | Continuous thread | Inherited patterns |
|
||||
| Disruption | Broken grids | Glitch aesthetics |
|
||||
| Integration | Merging streams | Confluence points |
|
||||
|
||||
## Korean-Western Fusion Elements
|
||||
|
||||
| Korean Element | Western Parallel | Fusion Approach |
|
||||
|---------------|-----------------|-----------------|
|
||||
| 여백 (Empty space) | Negative space | Active emptiness |
|
||||
| 오방색 (Five colors) | Color theory | Symbolic palette |
|
||||
| 달항아리 (Moon jar) | Minimalism | Imperfect circles |
|
||||
| 한글 geometry | Typography | Structural letters |
|
||||
| 산수화 (Landscape) | Abstract landscape | Atmospheric depth |
|
||||
| 전통문양 (Patterns) | Geometric design | Cultural geometry |
|
||||
|
||||
## Usage Notes
|
||||
|
||||
1. **Layer metaphors**: Combine 2-3 for depth
|
||||
2. **Avoid clichés**: No obvious tech symbols
|
||||
3. **Cultural sensitivity**: Universal over specific
|
||||
4. **Abstraction levels**: Match essay tone
|
||||
5. **Emotional resonance**: Feel over literal
|
||||
|
||||
## Quick Selection Guide
|
||||
|
||||
For **technology essays**: organic-digital hybrids
|
||||
For **social commentary**: human elements in systems
|
||||
For **philosophy pieces**: space and light
|
||||
For **cultural topics**: layered traditions
|
||||
For **future themes**: transformation states
|
||||
@@ -0,0 +1,211 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
OurDigital Visual Storytelling Prompt Generator
|
||||
Generates sophisticated image prompts for blog featured images
|
||||
"""
|
||||
|
||||
import argparse
|
||||
from typing import Dict, Tuple
|
||||
import json
|
||||
|
||||
class VisualPromptGenerator:
|
||||
def __init__(self):
|
||||
self.style_base = (
|
||||
"sophisticated featured image, minimalist contemporary design, "
|
||||
"clean vector illustration with subtle texture overlays, "
|
||||
"1200x630px, suitable for blog header"
|
||||
)
|
||||
|
||||
self.moods = {
|
||||
"contemplative": "contemplative and introspective atmosphere, zen-like calm",
|
||||
"critical": "analytical precision with underlying urgency, sharp clarity",
|
||||
"hopeful": "dawn breaking through uncertainty, warm optimism",
|
||||
"anxious": "subtle tension and uncertainty, digital unease",
|
||||
"philosophical": "deep meditation quality, timeless wisdom"
|
||||
}
|
||||
|
||||
self.color_palettes = {
|
||||
"contemplative": "monochrome palette with single accent color",
|
||||
"critical": "cool blue-gray with sharp red accents",
|
||||
"hopeful": "warm amber gradients with sky blue highlights",
|
||||
"anxious": "desaturated colors with digital green touches",
|
||||
"philosophical": "near black and off-white with muted gold"
|
||||
}
|
||||
|
||||
self.metaphor_types = {
|
||||
"technology": "organic-digital hybrid forms, natural systems becoming circuits",
|
||||
"identity": "layered masks, fragmented mirrors, dissolving boundaries",
|
||||
"network": "root systems, neural pathways, constellation patterns",
|
||||
"transformation": "metamorphosis states, particle dissolution, phase transitions",
|
||||
"knowledge": "light sources, growing trees, prismatic refractions"
|
||||
}
|
||||
|
||||
def generate_prompt(
|
||||
self,
|
||||
topic: str,
|
||||
mood: str = "contemplative",
|
||||
metaphor: str = None,
|
||||
cultural_fusion: float = 0.6,
|
||||
abstract_level: float = 0.8
|
||||
) -> str:
|
||||
"""
|
||||
Generate a sophisticated image prompt for OurDigital blog
|
||||
|
||||
Args:
|
||||
topic: Main subject of the blog post
|
||||
mood: Emotional tone (contemplative/critical/hopeful/anxious/philosophical)
|
||||
metaphor: Visual metaphor to use
|
||||
cultural_fusion: Balance of Korean-Western aesthetics (0-1)
|
||||
abstract_level: Level of abstraction (0=literal, 1=highly abstract)
|
||||
"""
|
||||
|
||||
# Build core prompt
|
||||
prompt_parts = [
|
||||
f"Create a {self.style_base} for blog post about {topic}.",
|
||||
""
|
||||
]
|
||||
|
||||
# Add visual concept
|
||||
if metaphor:
|
||||
prompt_parts.append(f"Visual concept: {metaphor}.")
|
||||
else:
|
||||
prompt_parts.append(f"Visual concept: Abstract representation of {topic}.")
|
||||
|
||||
prompt_parts.append("")
|
||||
|
||||
# Add mood and atmosphere
|
||||
mood_desc = self.moods.get(mood, self.moods["contemplative"])
|
||||
prompt_parts.append(f"Atmosphere: {mood_desc}.")
|
||||
|
||||
# Add color palette
|
||||
colors = self.color_palettes.get(mood, self.color_palettes["contemplative"])
|
||||
prompt_parts.append(f"Colors: {colors}.")
|
||||
|
||||
# Add composition guidelines
|
||||
prompt_parts.extend([
|
||||
"",
|
||||
"Composition:",
|
||||
f"- {'Highly abstract' if abstract_level > 0.7 else 'Semi-abstract'} interpretation",
|
||||
f"- Minimum 20% negative space for contemplative breathing room",
|
||||
f"- Asymmetrical balance with {'strong' if abstract_level > 0.5 else 'subtle'} geometric structure"
|
||||
])
|
||||
|
||||
# Add cultural elements if needed
|
||||
if cultural_fusion > 0.3:
|
||||
fusion_level = "subtle" if cultural_fusion < 0.6 else "balanced"
|
||||
prompt_parts.append(
|
||||
f"- {fusion_level} integration of Korean minimalist aesthetics with Western modernism"
|
||||
)
|
||||
|
||||
# Add quality notes
|
||||
prompt_parts.extend([
|
||||
"",
|
||||
"Technical notes:",
|
||||
"- Ensure clarity at thumbnail size (200px)",
|
||||
"- Avoid tech clichés (circuits, binary codes)",
|
||||
"- No stock photo aesthetics or literal interpretations",
|
||||
"- Timeless design that won't date quickly"
|
||||
])
|
||||
|
||||
# Add reference
|
||||
prompt_parts.extend([
|
||||
"",
|
||||
"Aesthetic reference: Combine Bauhaus principles with Agnes Martin's contemplative minimalism."
|
||||
])
|
||||
|
||||
return "\n".join(prompt_parts)
|
||||
|
||||
def generate_variations(self, topic: str, count: int = 3) -> list:
|
||||
"""Generate multiple prompt variations for the same topic"""
|
||||
variations = []
|
||||
moods = ["contemplative", "critical", "philosophical"]
|
||||
|
||||
for i in range(min(count, len(moods))):
|
||||
prompt = self.generate_prompt(
|
||||
topic=topic,
|
||||
mood=moods[i],
|
||||
abstract_level=0.7 + (i * 0.1)
|
||||
)
|
||||
variations.append({
|
||||
"variation": i + 1,
|
||||
"mood": moods[i],
|
||||
"prompt": prompt
|
||||
})
|
||||
|
||||
return variations
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Generate visual prompts for OurDigital blog featured images"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--topic",
|
||||
required=True,
|
||||
help="Main topic/subject of the blog post"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--mood",
|
||||
choices=["contemplative", "critical", "hopeful", "anxious", "philosophical"],
|
||||
default="contemplative",
|
||||
help="Emotional tone of the image"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--metaphor",
|
||||
help="Specific visual metaphor to use"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--cultural-fusion",
|
||||
type=float,
|
||||
default=0.6,
|
||||
help="Korean-Western aesthetic balance (0-1)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--abstract",
|
||||
type=float,
|
||||
default=0.8,
|
||||
help="Level of abstraction (0-1)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--variations",
|
||||
type=int,
|
||||
help="Generate N variations of the prompt"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--json",
|
||||
action="store_true",
|
||||
help="Output as JSON"
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
generator = VisualPromptGenerator()
|
||||
|
||||
if args.variations:
|
||||
results = generator.generate_variations(args.topic, args.variations)
|
||||
if args.json:
|
||||
print(json.dumps(results, indent=2, ensure_ascii=False))
|
||||
else:
|
||||
for var in results:
|
||||
print(f"\n--- Variation {var['variation']} ({var['mood']}) ---")
|
||||
print(var['prompt'])
|
||||
else:
|
||||
prompt = generator.generate_prompt(
|
||||
topic=args.topic,
|
||||
mood=args.mood,
|
||||
metaphor=args.metaphor,
|
||||
cultural_fusion=args.cultural_fusion,
|
||||
abstract_level=args.abstract
|
||||
)
|
||||
|
||||
if args.json:
|
||||
result = {
|
||||
"topic": args.topic,
|
||||
"mood": args.mood,
|
||||
"prompt": prompt
|
||||
}
|
||||
print(json.dumps(result, indent=2, ensure_ascii=False))
|
||||
else:
|
||||
print(prompt)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,251 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
OurDigital Mood Calibrator
|
||||
Fine-tune emotional and stylistic parameters for visual prompts
|
||||
"""
|
||||
|
||||
import json
|
||||
from typing import Dict, Any
|
||||
import argparse
|
||||
|
||||
class MoodCalibrator:
|
||||
def __init__(self):
|
||||
self.presets = {
|
||||
"default": {
|
||||
"contemplative_depth": 0.8,
|
||||
"cultural_fusion": 0.6,
|
||||
"technical_precision": 0.7,
|
||||
"emotional_weight": 0.5,
|
||||
"innovation_index": 0.7
|
||||
},
|
||||
"philosophical_essay": {
|
||||
"contemplative_depth": 0.95,
|
||||
"cultural_fusion": 0.7,
|
||||
"technical_precision": 0.6,
|
||||
"emotional_weight": 0.3,
|
||||
"innovation_index": 0.8
|
||||
},
|
||||
"technical_analysis": {
|
||||
"contemplative_depth": 0.6,
|
||||
"cultural_fusion": 0.4,
|
||||
"technical_precision": 0.9,
|
||||
"emotional_weight": 0.3,
|
||||
"innovation_index": 0.6
|
||||
},
|
||||
"social_commentary": {
|
||||
"contemplative_depth": 0.7,
|
||||
"cultural_fusion": 0.6,
|
||||
"technical_precision": 0.5,
|
||||
"emotional_weight": 0.7,
|
||||
"innovation_index": 0.7
|
||||
},
|
||||
"cultural_exploration": {
|
||||
"contemplative_depth": 0.8,
|
||||
"cultural_fusion": 0.9,
|
||||
"technical_precision": 0.4,
|
||||
"emotional_weight": 0.6,
|
||||
"innovation_index": 0.8
|
||||
}
|
||||
}
|
||||
|
||||
self.parameter_descriptions = {
|
||||
"contemplative_depth": "Level of abstraction (0=literal, 1=highly abstract)",
|
||||
"cultural_fusion": "Balance of Korean-Western aesthetics (0=Western only, 1=Korean dominant)",
|
||||
"technical_precision": "Clean geometric vs organic forms (0=organic, 1=geometric)",
|
||||
"emotional_weight": "Mood intensity (0=neutral, 1=heavy atmosphere)",
|
||||
"innovation_index": "Traditional vs experimental approach (0=traditional, 1=experimental)"
|
||||
}
|
||||
|
||||
def calibrate(self, preset: str = "default", **overrides) -> Dict[str, float]:
|
||||
"""
|
||||
Get calibrated mood parameters
|
||||
|
||||
Args:
|
||||
preset: Base preset to use
|
||||
**overrides: Specific parameter overrides
|
||||
|
||||
Returns:
|
||||
Dictionary of calibrated parameters
|
||||
"""
|
||||
params = self.presets.get(preset, self.presets["default"]).copy()
|
||||
|
||||
# Apply overrides
|
||||
for key, value in overrides.items():
|
||||
if key in params:
|
||||
params[key] = max(0, min(1, value)) # Clamp to 0-1
|
||||
|
||||
return params
|
||||
|
||||
def generate_modifier_text(self, params: Dict[str, float]) -> str:
|
||||
"""
|
||||
Generate text modifiers based on parameters
|
||||
|
||||
Args:
|
||||
params: Dictionary of mood parameters
|
||||
|
||||
Returns:
|
||||
Text description for prompt modification
|
||||
"""
|
||||
modifiers = []
|
||||
|
||||
# Contemplative depth
|
||||
if params["contemplative_depth"] > 0.8:
|
||||
modifiers.append("highly abstract and philosophical")
|
||||
elif params["contemplative_depth"] > 0.6:
|
||||
modifiers.append("semi-abstract with symbolic elements")
|
||||
else:
|
||||
modifiers.append("grounded with recognizable forms")
|
||||
|
||||
# Cultural fusion
|
||||
if params["cultural_fusion"] > 0.7:
|
||||
modifiers.append("strong Korean aesthetic influence")
|
||||
elif params["cultural_fusion"] > 0.4:
|
||||
modifiers.append("balanced East-West aesthetic fusion")
|
||||
else:
|
||||
modifiers.append("Western minimalist approach")
|
||||
|
||||
# Technical precision
|
||||
if params["technical_precision"] > 0.7:
|
||||
modifiers.append("precise geometric construction")
|
||||
elif params["technical_precision"] > 0.4:
|
||||
modifiers.append("blend of geometric and organic")
|
||||
else:
|
||||
modifiers.append("flowing organic forms")
|
||||
|
||||
# Emotional weight
|
||||
if params["emotional_weight"] > 0.7:
|
||||
modifiers.append("heavy, contemplative atmosphere")
|
||||
elif params["emotional_weight"] > 0.4:
|
||||
modifiers.append("balanced emotional tone")
|
||||
else:
|
||||
modifiers.append("light, open feeling")
|
||||
|
||||
# Innovation index
|
||||
if params["innovation_index"] > 0.7:
|
||||
modifiers.append("experimental and avant-garde")
|
||||
elif params["innovation_index"] > 0.4:
|
||||
modifiers.append("contemporary with classic elements")
|
||||
else:
|
||||
modifiers.append("timeless and traditional")
|
||||
|
||||
return ", ".join(modifiers)
|
||||
|
||||
def suggest_color_temperature(self, params: Dict[str, float]) -> str:
|
||||
"""
|
||||
Suggest color temperature based on parameters
|
||||
|
||||
Args:
|
||||
params: Dictionary of mood parameters
|
||||
|
||||
Returns:
|
||||
Color temperature suggestion
|
||||
"""
|
||||
emotional = params.get("emotional_weight", 0.5)
|
||||
technical = params.get("technical_precision", 0.7)
|
||||
|
||||
if emotional > 0.6:
|
||||
if technical > 0.6:
|
||||
return "Cool palette with strategic warm accents"
|
||||
else:
|
||||
return "Warm, earthy tones with depth"
|
||||
else:
|
||||
if technical > 0.6:
|
||||
return "Neutral grays with single accent color"
|
||||
else:
|
||||
return "Soft, desaturated natural colors"
|
||||
|
||||
def export_for_prompt(self, params: Dict[str, float]) -> Dict[str, Any]:
|
||||
"""
|
||||
Export parameters in a format ready for prompt generation
|
||||
|
||||
Args:
|
||||
params: Dictionary of mood parameters
|
||||
|
||||
Returns:
|
||||
Formatted export for prompt generation
|
||||
"""
|
||||
return {
|
||||
"parameters": params,
|
||||
"modifiers": self.generate_modifier_text(params),
|
||||
"color_temperature": self.suggest_color_temperature(params),
|
||||
"abstraction_level": params["contemplative_depth"],
|
||||
"cultural_balance": params["cultural_fusion"]
|
||||
}
|
||||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(
|
||||
description="Calibrate mood parameters for OurDigital visual prompts"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--preset",
|
||||
choices=["default", "philosophical_essay", "technical_analysis",
|
||||
"social_commentary", "cultural_exploration"],
|
||||
default="default",
|
||||
help="Base preset to use"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--contemplative-depth",
|
||||
type=float,
|
||||
help="Override contemplative depth (0-1)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--cultural-fusion",
|
||||
type=float,
|
||||
help="Override cultural fusion (0-1)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--technical-precision",
|
||||
type=float,
|
||||
help="Override technical precision (0-1)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--emotional-weight",
|
||||
type=float,
|
||||
help="Override emotional weight (0-1)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--innovation-index",
|
||||
type=float,
|
||||
help="Override innovation index (0-1)"
|
||||
)
|
||||
parser.add_argument(
|
||||
"--export",
|
||||
action="store_true",
|
||||
help="Export full configuration for prompt generation"
|
||||
)
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
calibrator = MoodCalibrator()
|
||||
|
||||
# Build overrides
|
||||
overrides = {}
|
||||
if args.contemplative_depth is not None:
|
||||
overrides["contemplative_depth"] = args.contemplative_depth
|
||||
if args.cultural_fusion is not None:
|
||||
overrides["cultural_fusion"] = args.cultural_fusion
|
||||
if args.technical_precision is not None:
|
||||
overrides["technical_precision"] = args.technical_precision
|
||||
if args.emotional_weight is not None:
|
||||
overrides["emotional_weight"] = args.emotional_weight
|
||||
if args.innovation_index is not None:
|
||||
overrides["innovation_index"] = args.innovation_index
|
||||
|
||||
# Calibrate
|
||||
params = calibrator.calibrate(args.preset, **overrides)
|
||||
|
||||
if args.export:
|
||||
export = calibrator.export_for_prompt(params)
|
||||
print(json.dumps(export, indent=2, ensure_ascii=False))
|
||||
else:
|
||||
print(f"Calibrated Parameters for '{args.preset}':")
|
||||
print("-" * 50)
|
||||
for key, value in params.items():
|
||||
desc = calibrator.parameter_descriptions[key]
|
||||
print(f"{key}: {value:.2f} - {desc}")
|
||||
print("-" * 50)
|
||||
print(f"Modifiers: {calibrator.generate_modifier_text(params)}")
|
||||
print(f"Color Temperature: {calibrator.suggest_color_temperature(params)}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,5 @@
|
||||
# 30-ourdigital-designer dependencies
|
||||
openai>=1.0.0
|
||||
python-dotenv>=1.0.0
|
||||
rich>=13.7.0
|
||||
typer>=0.9.0
|
||||
142
custom-skills/30-ourdigital-designer/desktop/SKILL.md
Normal file
142
custom-skills/30-ourdigital-designer/desktop/SKILL.md
Normal file
@@ -0,0 +1,142 @@
|
||||
---
|
||||
name: ourdigital-visual-storytelling
|
||||
version: 1.0.0
|
||||
description: Creates sophisticated featured image prompts for OurDigital blogs (blog.ourdigital.org, journal.ourdigital.org, ourstory.day) that capture philosophical depth through minimalist visual metaphors. Specializes in translating complex essays about humanity, technology, and culture into contemplative visual narratives using Korean-Western aesthetic fusion. Use when creating blog featured images that require intellectual sophistication and conceptual abstraction.
|
||||
license: MIT
|
||||
---
|
||||
|
||||
# OurDigital Visual Storytelling
|
||||
|
||||
Transform philosophical essays into sophisticated visual narratives through minimalist, conceptually rich featured images.
|
||||
|
||||
## Core Philosophy
|
||||
|
||||
OurDigital images are visual philosophy—not illustrations but parallel texts that invite contemplation. Each image captures the essay's philosophical core through:
|
||||
|
||||
- **Abstract metaphors** over literal representations
|
||||
- **Contemplative minimalism** with 20%+ negative space
|
||||
- **Cultural fusion** of Korean-Western aesthetics
|
||||
- **Emotional resonance** through color psychology
|
||||
|
||||
## Workflow
|
||||
|
||||
### 1. Extract Essay Essence
|
||||
```python
|
||||
# Analyze the blog post for:
|
||||
core_insight = "What philosophical truth?"
|
||||
emotional_tone = "What feeling to evoke?"
|
||||
key_metaphor = "What visual symbol?"
|
||||
```
|
||||
|
||||
### 2. Select Visual Approach
|
||||
|
||||
| Essay Type | Visual Strategy | Color Mood |
|
||||
|-----------|-----------------|------------|
|
||||
| Technology | Organic-digital hybrids | Cool blues → warm accents |
|
||||
| Social | Network patterns, human fragments | Desaturated → hope spots |
|
||||
| Philosophy | Zen space, symbolic objects | Monochrome + single accent |
|
||||
| Cultural | Layered traditions, fusion forms | Earth tones → modern hues |
|
||||
|
||||
### 3. Generate Prompt
|
||||
|
||||
Use template in `scripts/generate_prompt.py`:
|
||||
```bash
|
||||
python scripts/generate_prompt.py \
|
||||
--topic "AI identity crisis" \
|
||||
--mood "contemplative anxiety" \
|
||||
--metaphor "mirror fragments"
|
||||
```
|
||||
|
||||
### 4. Apply Quality Filters
|
||||
|
||||
✅ **Must have:**
|
||||
- Captures philosophical insight
|
||||
- Works at 200px thumbnail
|
||||
- Timeless (2-3 year relevance)
|
||||
- Cross-cultural readability
|
||||
|
||||
❌ **Must avoid:**
|
||||
- Tech clichés (circuits, binary)
|
||||
- Stock photo aesthetics
|
||||
- Literal interpretations
|
||||
- Trendy effects
|
||||
|
||||
## Quick Templates
|
||||
|
||||
### AI & Humanity
|
||||
```
|
||||
"Translucent human silhouette dissolving into crystalline data structures.
|
||||
Monochrome with teal accent. Boundary dissolution between organic/digital.
|
||||
1200x630px, minimalist vector style."
|
||||
```
|
||||
|
||||
### Social Commentary
|
||||
```
|
||||
"Overlapping circles forming maze pattern, tiny humans in separate chambers.
|
||||
Blue-gray palette, warm light leaks for hope. Subtle Korean patterns.
|
||||
High negative space. 1200x630px."
|
||||
```
|
||||
|
||||
### Digital Transformation
|
||||
```
|
||||
"Traditional forms metamorphosing into particle streams. Paper texture → digital grain.
|
||||
Earth tones shifting to cool blues. Sacred geometry underlying.
|
||||
1200x630px, contemplative mood."
|
||||
```
|
||||
|
||||
## Resources
|
||||
|
||||
- `scripts/generate_prompt.py` - Automated prompt builder
|
||||
- `scripts/mood_calibrator.py` - Adjust emotional parameters
|
||||
- `references/visual_metaphors.md` - Concept → Visual dictionary
|
||||
- `references/color_palettes.md` - Emotion → Color mapping
|
||||
- `assets/style_samples/` - Reference images by category
|
||||
|
||||
## Technical Specs
|
||||
|
||||
- **Dimensions**: 1200x630px (OG standard)
|
||||
- **Style**: Vector illustration + subtle textures
|
||||
- **Colors**: 60-30-10 rule (dominant-secondary-accent)
|
||||
- **Format**: WebP primary, JPG fallback
|
||||
|
||||
## Advanced Techniques
|
||||
|
||||
For complex topics, layer metaphors:
|
||||
```python
|
||||
primary_metaphor = "roots becoming circuits"
|
||||
secondary_metaphor = "light through prism"
|
||||
emotional_journey = "organic → synthetic → harmonized"
|
||||
```
|
||||
|
||||
See `references/advanced_techniques.md` for:
|
||||
- Metaphor layering strategies
|
||||
- Cultural symbolism guide
|
||||
- Composition dynamics
|
||||
- Texture integration methods
|
||||
|
||||
## Style Parameters
|
||||
|
||||
Calibrate in `scripts/mood_calibrator.py`:
|
||||
```python
|
||||
contemplative_depth = 0.8 # Abstract level
|
||||
cultural_fusion = 0.6 # East-West balance
|
||||
technical_precision = 0.7 # Clean vs organic
|
||||
emotional_weight = 0.5 # Mood intensity
|
||||
```
|
||||
|
||||
## Quick Reference
|
||||
|
||||
**Visual Metaphor Shortcuts:**
|
||||
- Algorithm → Constellation patterns
|
||||
- Identity → Layered masks, fingerprints
|
||||
- Network → Root systems, neural paths
|
||||
- Time → Spirals, sediment layers
|
||||
- Knowledge → Light sources, growing trees
|
||||
|
||||
**Color Psychology:**
|
||||
- Critical → Deep blue-gray + red accent
|
||||
- Hopeful → Warm amber + sky blue
|
||||
- Philosophical → Near black + off white + gold
|
||||
- Anxious → Charcoal + grey-blue + digital green
|
||||
|
||||
Generate sophisticated visual narratives that complement—never compete with—the written word.
|
||||
Reference in New Issue
Block a user