Install
openclaw skills install @indigokarasu/ocas-imagineArt-direction engine for text-to-image generation. Separates Style from Content to keep aesthetic identity consistent across an image series. Use when generating, rendering, or illustrating images (especially across a series), capturing the style of a reference image for reuse, or producing an image in a named/saved style. Not for captioning, image analysis for decisions (use ocas-look), or photo editing.
openclaw skills install @indigokarasu/ocas-imagineImagine is an art-direction engine that treats image generation as a two-part process: Style Prompting and Content Prompting. Decoupling aesthetic DNA from subject matter lets a series of images share one visual identity while their content varies. This separation exists because style and content have different reuse patterns — style is stable across many images while content changes per request.
When invoked interactively, present a two-level menu. See references/interactive-menu.md for the full menu structure.
ocas-lookocas-siftocas-lookBefore ANY imagine run — especially the first after a gap in usage — read this SKILL.md and references/api_reference.md in full. Never reconstruct the methodology from memory of past runs and never guess the generation path: the skill documents the exact working procedure (current-model routing + GenTube browser bridge). If you catch yourself hand-rolling a substitute (hand-coded SVGs, a separate model, ad-hoc scripts), STOP — that is the signature of not having read the skill; fix the blocker instead. (Confirmed 2026-09-19: a banner run skipped the full read, hand-coded SVGs for ~50 turns, then found the documented path.)
Imagine does: style library management, style extraction from reference images, art-directed prompt synthesis, image generation through the current active conversation model when that model is text-to-image capable, and journaling of every generation and extraction run.
Imagine does not: analyze user-provided images to drive downstream decisions (that is ocas-look), perform general web research on aesthetics (that is ocas-sift), edit/post-process existing images, call the separate image_generate tool, or bypass the active model by calling Pollinations/Pollination/FAL/direct provider endpoints.
Adjacent responsibility: ocas-look consumes images as decision inputs; Imagine produces images as creative output. If a request is "look at this image and do X with the info," route to Look; if it is "make an image that looks like this," route to Imagine.
Imagine functions standalone. When present it may cooperate with:
Imagine never depends on these skills and must run normally if they are absent.
imagine.generate and imagine.style.save (external HTTP side effect or persistent state write).imagine.extract and imagine.library.list (analysis or read-only enumeration, no side effects).Every run produces exactly one journal file. See references/journal.md for the record schema.
See references/style_prompt_guide.md for the full Style-Content separation methodology, the five standard style sections, and the overspecification rule.
Use when the user wants an image in a known or predefined style.
Checklist:
references/default_styles.md or a previously saved Style Prompt in {agent_root}/commons/data/ocas-imagine/styles.jsonl.image_generate tool. Do not call Pollinations/Pollination, FAL, or any direct provider endpoint unless explicitly asks for that backend.I/O Example:
imagine.generate --style noir --content "a detective standing under a streetlight at night"{"status": "ok", "image": "<active-mode image URL or file path>", "journal_id": "2026-06-27_abc123"}Concise art-direction output schema: Art-direction output is formatted as structured JSON containing prompt text, style weights, and negative prompts:
{
"prompt": "<Style Prompt + Content Prompt concatenated, style first>",
"style_slug": "noir",
"style_weights": {"mood": 0.8, "composition": 0.7, "color": 0.9, "texture": 0.6},
"negative_prompt": "blurry, low quality, distorted, watermark",
"content_summary": "a detective standing under a streetlight at night"
}
Rules: style_weights are normalized 0.0–1.0 relative weights per standard style section; negative_prompt carries the style library's default exclusions unless overridden; prompt is always the executable style+content concatenation (per Flow 1 step 3). Use this schema for any art-direction output consumed programmatically.
Use when the user provides an image and wants to capture its soul for future use.
Checklist:
vision_analyze or equivalent) to analyze the reference image.references/style_prompt_guide.md.
{agent_root}/commons/data/ocas-imagine/styles.jsonl.I/O Example:
imagine.extract --image https://example.com/ref-photo.jpg{"status": "ok", "style_name": "extracted-noir", "style_prompt": "...", "test_image_url": "...", "journal_id": "2026-06-27_def456"}imagine.generate --style <name|prompt> --content <description> — generate an image in a specific style.imagine.extract --image <path|url> — analyze an image and produce a structured Style Prompt.imagine.library.list — list all available predefined and saved styles.imagine.style.save --name <name> --prompt <prompt> — save a new custom style to the library.imagine.journal — read the most recent run record (final prompt + resulting image URL).This skill implements the recovery contract from spec-ocas-recovery.md.
{agent_root}/commons/data/ocas-imagine/evidence.jsonl, including no-op runs. The not_activity_reason field is mandatory when no side effects occur.degraded: current_model_t2i_unavailable and returns the interface error without using fallback backends.{agent_root}/commons/data/ocas-imagine/
config.json # ConfigBase fields + Imagine defaults
styles.jsonl # Custom user-created style prompts (append-only)
history.jsonl # Append-only log of generation prompts and results
intents.jsonl # Append-only log of user intents per run
evidence.jsonl # Append-only evidence records (recovery contract)
{agent_root}/commons/journals/ocas-imagine/
YYYY-MM-DD/
{run_id}.json # One journal file per run
Config follows ConfigBase from spec-ocas-shared-schemas.md. All paths use the {agent_root}/commons/ root per spec-ocas-storage-conventions.md.
See references/api_reference.md for the current-model execution contract and failure handling.
Imagine has no operational background tasks. The universal imagine:update self-update cron is standard and is not enumerated here.
See references/self-update-imagine.md.
Public.
image_generate, Pollinations/Pollination, FAL, or direct provider calls.history.jsonl, a journal file, AND evidence.jsonl. A generation missing any of these is considered invalid per the OKR data_integrity target.references/api_reference.md end-to-end before generating. Read first, generate second. Hand-coded SVG substitutes for image generation are prohibited when the documented path is available.| Failure | Handling |
|---|---|
| Current model image path unavailable (interface/tooling error) | Log degraded: current_model_t2i_unavailable to evidence.jsonl, return the interface error to the user, and do not use fallback backends |
| vision_analyze fails on reference image | Retry once with explicit prompt asking for visual style description; if still failing, report error to user with image format requirements |
| styles.jsonl is corrupted or unreadable | Initialize fresh styles.jsonl with only built-in defaults from references/default_styles.md; log corruption event to evidence.jsonl |
| Content Prompt accidentally contains style keywords | Halt generation, report content bleed to user, request pure content description |
| Style Test image shows content bleed | Do NOT save the Style Prompt; report extraction failure, suggest providing a cleaner reference image |
| Journal write fails (permissions/disk) | Log failure to stderr, still return generation result to user, flag evidence record with journal_write_failed: true |
| Invalid image path or URL in extract command | Return error with accepted formats: local file path, http(s) URL; do not attempt download of unsupported schemes |
| File | When to read |
|---|---|
references/style_prompt_guide.md | During Flow 2 step 2 — when extracting style from a reference image |
references/default_styles.md | During Flow 1 step 1 — before picking a style, to browse available presets |
references/soma.md | When user requests or you identify a soft luminous gradient aesthetic |
references/noir.md | When user requests or you identify a flat silhouette + low sun aesthetic |
references/hiro.md | When user requests or you identify a woodblock print aesthetic |
references/comic.md | When user requests or you identify an ink linework + warm ground aesthetic |
references/candy.md | When user requests or you identify a plein-air + opaque color field aesthetic |
references/vaporware.md | When user requests or you identify a retro consumer electronics aesthetic |
references/api_reference.md | When executing generation; contains the current-model routing contract |
references/journal.md | Before writing any journal file; contains the record schema |
history.jsonl and a journal file. A generation with no journal is invalid.{agent_root}/commons/data/ocas-imagine/ and {agent_root}/commons/journals/ocas-imagine/.