Skip to content

Repository files navigation

Image-Words

Turn one photograph into three original editorial posters where the main transformation grows from the source and every supporting element earns its place.

Version License Commercial use

Image-Words is a Codex Skill and optional GPT Image API workflow for interpreting a photograph as a coherent three-poster family. It reads the photograph before styling it, preserves identity and emotional color memory, derives the main transformation from the source, and judges supporting lines, geometry, materials, and typography by their spatial role in the specific composition.

中文简介:Image-Words 会先理解一张照片的主体、情绪、运动方向、可消失区域和可生长边界,再生成三张不同的 3:4 编辑艺术海报。第一眼仍能认出原照片,第二眼才发现照片内部或边界发生了现实中不可能发生的变化。

Earlier visual studies

Times Square — THE CITY NEVER BLINKS.

Times Square transformed at three abstraction levels

Forbidden City — TIME ENTERS QUIETLY.

Forbidden City transformed at three abstraction levels

These earlier studies remain useful as evidence of composition range, but the current 0.3.0 workflow no longer forces the old Photo-led / Drawn / Abstract ladder. The repository contains compressed previews only. Source photographs are not redistributed. See sources and provenance.

Validated source-derived transformation — Chinatown

Chinatown photograph, drawing, and abstraction combined in one source-derived poster

This case retains the photographed alley as a recognisable spine, translates surrounding architecture into print fields, repeats the real lantern rhythm, and derives geometric rails from the real fire escapes. See source and transformation notes.

Archived words-input validation

The repository preserves these earlier experiments for development history. Sentence-only generation is deferred in 0.2.0; the installable Skill now requires a photograph.

Impermanence — NOTHING IS PERMANENT.

Nothing is permanent translated through one imagined mountain

Emotion — I ALMOST CAME CLOSER.

I almost came closer translated through one imagined door

Memory — I REMEMBER IT DIFFERENTLY.

I remember it differently translated through one imagined pressed flower

What it does

  • accepts one source photograph plus an optional sentence, mood, memory, place, or music-related cue;
  • maps the photograph's anchor, energy, trace seed, disappear zone, growth edge, and color memory before generating;
  • produces three ranked candidates using source-derived trace, disappearance, field extension, drawing, translucent material, geometry, and abstraction;
  • preserves the recognition sequence: first the user's photograph, then a change ordinary editing templates cannot explain;
  • checks whether the main transformation has an observable source cause and whether supporting elements have a clear spatial role;
  • checks highlights, shadows, white balance, saturation, photographic whites, and edge integration before delivery;
  • selects from 48 layout skeletons across six composition families;
  • prevents invented timestamps, coordinates, dates, decimals, or decorative metadata;
  • avoids copying a named artist or reference composition.

Install in Codex

Open this repository, copy its URL, and ask Codex to install the Skill:

Please use $skill-installer to install skills/image-words from https://github.com/fry-haha/image-words.

中文安装提示词:

请使用 $skill-installer,从 https://github.com/fry-haha/image-words 安装 skills/image-words。

Codex detects newly installed skills automatically. If Image-Words does not appear, restart Codex.

Manual installation is also available after cloning the repository:

cp -R skills/image-words ~/.codex/skills/image-words

After installation, upload a photograph and invoke the Skill:

Use $image-words to process this photograph.

No style prompt is required. Image-Words reads the source, generates three genuinely different candidates, and ranks the strongest first. Add exact wording, mood, location, or a music-related cue only when you want to guide the interpretation.

中文最简用法:先按上面的安装提示词安装;然后上传照片并说 使用 $image-words 处理这张照片。。默认返回三张,把最合适的一张放在最前面。当前版本暂不处理只有一句话、没有照片的输入。

What changed in 0.3.0

  • separates the source cause of the main transformation from the spatial role of supporting lines, geometry, and material;
  • chooses tape, ribbon, vellum, fabric, or transparent film by scene instead of repeating one generic strip;
  • lets material interact intentionally with headlines, seams, signs, edges, and movement;
  • keeps a few natural folds or bubbles when useful while rejecting excessive, attention-seeking wrinkles;
  • adds stronger thumbnail, anchor, exposure, color, placement, and structural-invariant checks before delivery.

Optional API workflow

The bundled generator reads OPENAI_API_KEY from the environment. Never paste a key into the repository.

export OPENAI_API_KEY="your-key"

python skills/image-words/scripts/generate_image.py \
  --image source.jpg \
  --prompt "Preserve the street's light, perspective, and emotional temperature" \
  --output outputs/poster.png

Prepare one generated portrait for a 3:4 social post without stretching it:

python skills/image-words/scripts/prepare_social.py \
  outputs/poster-01.png \
  outputs/poster-01-social.png

Install the image utility dependency with:

python -m pip install -r requirements.txt

The transformation system

Image-Words uses three source-derived actions as a vocabulary, not a rigid output order:

  • Trace growth continues a real road, reflection, contour, shadow, gesture, or perspective rail.
  • Partial disappearance veils or removes a secondary zone while keeping identity recognisable.
  • Field extension lets a photographed light, surface, rhythm, material, or color atmosphere grow into new space.

Each candidate uses one dominant action and may combine one supporting action. The three results share the same photograph, emotional temperature, color memory, and compatible material family while changing crop, scale, abstraction balance, edge behavior, and spatial composition.

Validated patterns include a photographic spine combined with drawn replacement and abstraction; subject-specific material transfer; real road or architectural lines continuing into the field; content-specific edge dissolution; and unequal translucent fragments that offset existing image information. Detailed success and failure patterns live in skills/image-words/references/validated-patterns.md.

Repository structure

skills/image-words/
├── SKILL.md
├── agents/openai.yaml
├── references/
│   ├── visual-system.md
│   ├── layout-library.md
│   ├── validated-patterns.md
│   └── shape-line-edge-library.md
└── scripts/
    ├── generate_image.py
    ├── prepare_social.py
    ├── select_layouts.py
    ├── make_triptych.py
    ├── make_before_after.py
    └── extract_triptych.py

The installable Skill contains only runtime instructions and resources. Repository-facing documentation, licensing, and examples stay at the repository root.

Originality and responsible use

Image-Words extracts high-level principles such as hierarchy, negative space, paper texture, asymmetry, and typographic contrast. It must not recreate a reference's exact composition, wording, icon, illustration, or distinctive arrangement.

Generated output may contain errors. Review text, source rights, likenesses, and platform disclosure requirements before publishing. Examples in this repository contain AI-generated or AI-edited image content.

License

Roadmap

  • Source map and origin test
  • Trace / Disappear / Grow transformation vocabulary
  • Validated success and failure pattern library
  • 48-layout composition library
  • Photo-to-structure translation
  • GPT Image API helper
  • 3:4 social export helper
  • More rights-cleared public case studies
  • Deterministic typography correction layer
  • Automated exposure, color, edge, and layout scoring

If Image-Words helps your creative practice, consider starring the repository and sharing what you make.

About

Turn themes and travel photos into three original editorial poster directions with Codex and GPT Image.

Topics

Resources

Contributing

Stars

23 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages