Agent skill

Image Style Imitation

by OpenSenseNova in OpenSenseNova/SenseNova-Skills

Generates a new image in the style and layout of a reference image with new content, using caption extraction, caption rewriting and a layout-consistency check.

MITAuto-check passedMedia & Creative

Install Image Style Imitation

skills CLI
$ npx skills add OpenSenseNova/SenseNova-Skills --skill sn-image-imitate -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install OpenSenseNova/SenseNova-Skills sn-image-imitate --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/OpenSenseNova/SenseNova-Skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/sn-image-imitate .claude/skills/sn-image-imitate && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
sn-image-imitate
GitHub stars
5.7k
Token cost
~3.8k tokens
SKILL.md length
1,203 words
Files
6
Skills in repo
36
Repo updated
First seen
Licence
MIT

At a glance

Generates a new image in the style and layout of a reference image with new content, using caption extraction, caption rewriting and a layout-consistency check.

  • Works in 4 steps: Initialization → Image Annotation (long caption + layout… → New long caption generation (content… → …
  • Redrawing a reference image in the same style with new subject matter
  • SKILL.md covers Non-goals, Input Specification, Environment Variable and API Configuration, plus 6 more sections
  • Calls python; reaches token.sensenova.cn; needs SN_API_KEY and SN_CHAT_API_KEY

What it does

Given a reference image and a description of the new content, the skill extracts a detailed long caption from the reference, rewrites it to carry the requested change while locking style and layout, and sends the result to image generation. After generation it scores layout consistency against a threshold and retries a bounded number of times.

Inputs are reference_image, target_content, output_mode, aspect_ratio, image_size, max_attempts and layout_threshold, and the output includes structured process artifacts for debugging. It relies on the recognize, text-optimize and generate tools from sn-image-base and needs SenseNova API settings such as SN_BASE_URL and SN_API_KEY. It handles one static image at a time and does not do inpainting, video input, batch runs or pixel-exact reproduction.

When your agent uses it

  • Redrawing a reference image in the same style with new subject matter
  • Producing visuals that keep the layout of an existing graphic
  • Generating variants of a design with updated text or content

Example prompts

  • “Imitate the style of ./refs/poster.png but make it about our spring sale.”
  • “Use ./refs/banner.png as the style reference and generate a 16:9 image about our product launch.”
  • “Keep this layout and style, but change the content to a weekly team update.”

Requirements

  • The sn-image-base skill, installed and configured
  • A SenseNova API key set as SN_API_KEY
  • Python dependencies installed as described for sn-image-base

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Initialization
  2. Image Annotation (long caption + layout blueprint)
  3. New long caption generation (content rewrite with layout lock)
  4. Image Generation and Layout Review Loop

What it can do on your machine

Read from SKILL.md and the folder at commit 7838651. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • token.sensenova.cn

    Also links to:

    • platform.sensenova.cn

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • SN_API_KEY
    • SN_CHAT_API_KEY
    • SN_TEXT_API_KEY
    • SN_VISION_API_KEY
    • SN_IMAGE_GEN_API_KEY

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Image Style Imitation loads about 3.8k tokens when it runs. Until then it costs about 83 tokens; SKILL.md has 1,203 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~83
When it runs · the whole SKILL.md, loaded when a task matches
~3.8k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from OpenSenseNova/SenseNova-Skills at commit 7838651, republished under its MIT licence (© OpenSenseNova). 1,203 words, ~3,844 tokens.

Download SKILL.mdSave it as .claude/skills/sn-image-imitate/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.
name
sn-image-imitate
description
Generates a new image that imitates the style of a reference image while updating content based on user intent. Uses a three-stage pipeline: image annotation (long caption), caption rewriting, and image generation. Use when user asks to "imitate style", "保持这个风格重画", "按这张图风格生成", or "style transfer with new content".
metadata.project
SenseNova-Skills
metadata.tier
1
metadata.category
scene
metadata.priority
8
metadata.user_visible
true
triggers
style imitation, style transfer, imitate this image style, use this style with new content, reference style image, 风格模仿, 风格迁移, 模仿这张图风格, 按参考图风格生成

sn-image-imitate

Image style imitation scene skill (tier 1), relying on the sn-image-recognize, sn-text-optimize, and sn-image-generate tools provided by sn-image-base (tier 0).

Features:

  • Extracts high-fidelity long caption from a reference image
  • Rewrites caption according to user requested content change while preserving style and layout
  • Enforces layout-lock constraints during caption rewrite
  • Performs post-generation layout consistency review and bounded retries
  • Returns structured process artifacts for debugging and reproducibility

Non-goals

  • Pure neural style transfer without content change (use dedicated style-transfer tools instead)
  • Local editing / inpainting of specific regions within the reference image
  • Processing video or animation input (only single static images are supported)
  • Batch generation from multiple reference images in one invocation
  • Guaranteeing pixel-level fidelity to the reference; the skill targets layout and style consistency, not exact reproduction

Input Specification

  • reference_image (string, required): local path or URL of the style reference image
  • target_content (string, required): new content user wants in the generated image
  • output_mode (string, default friendly): output mode, friendly or verbose
  • aspect_ratio (string, default 16:9): output aspect ratio for generation
  • image_size (string, default 2k): output image size preset
  • max_attempts (int, default 3): maximum generation attempts for meeting layout consistency
  • layout_threshold (float, default 0.75): minimum layout similarity score to accept result

Environment Variable

Dependency installation and API key configuration are for sn-image-base skill.

The minimum environment variables to configure sn-image-base skill running with SenseNova Token Plan:

ini
SN_BASE_URL="https://token.sensenova.cn/v1"
SN_API_KEY="your-api-key"

Fallback priority is dedicated variable > domain shared variable > global variable. Text calls use SN_TEXT_API_KEY -> SN_CHAT_API_KEY -> SN_API_KEY; vision calls use SN_VISION_API_KEY -> SN_CHAT_API_KEY -> SN_API_KEY; image generation uses SN_IMAGE_GEN_API_KEY -> SN_API_KEY.

Please refer to the Python dependencies and API keys section in sn-image-generate_en.md for more configurations.

API Configuration

All API calls in this skill are executed through the sn_agent_runner.py of the sn-image-base skill, please refer to the sn-image-base skill (README.md) for more details.

  • VLM call: sn-image-recognize (Step 1 & 3)
  • LLM call: sn-text-optimize (Step 2)
  • Image generation call: sn-image-generate (Step 3)

When encountering MissingApiKeyError or needing explicit model control: pass model and auth params explicitly via CLI arguments. See $SN_IMAGE_BASE/references/api_spec.md.

$SN_IMAGE_BASE path explanation: $SN_IMAGE_BASE is the installation directory of the sn-image-base skill (SKILL.md exists). The agent can locate this path by skill name sn-image-base.

Architecture: Main Agent + Worker Agent

This skill uses a two-tier agent architecture:

  • Main Agent: receives user request, normalizes parameters, sends preflight, invokes Worker Agent, and sends final text/image to user
  • Worker Agent: executes fixed 3-step pipeline and returns structured JSON

Responsibility Boundaries:

  • Worker Agent does not send any user-visible message directly
  • Main Agent sends all user-facing responses
  • Worker Agent last message must be and only be the JSON string defined in Return Contract
  • Worker Agent executes VLM/LLM/image calls directly; no nested subagent for these low-level calls

Workflow

Main Agent Workflow
  1. Extract reference_image, target_content, output_mode (default friendly), aspect_ratio (default 16:9), image_size (default 2k), max_attempts (default 3), and layout_threshold (default 0.75)
  2. Validate required inputs:
    • reference_image is provided and resolvable
    • target_content is non-empty
  3. Send preflight message: "Using sn-image-imitate skill to generate a style-consistent image, please wait..."
  4. Start Worker Agent with full normalized parameters and working directory
  5. On Worker result:
    • status=ok: send final summary and generated image
    • status=error: report the actual error
Worker Agent Workflow

Worker Agent receives reference_image, target_content, output_mode, aspect_ratio, image_size, max_attempts, layout_threshold, and the working directory of this skill ($SKILL_DIR).

Error Handling Strategy:

All sn_agent_runner.py calls share the same error handling rules:

  • If the subprocess exits with non-zero code, crashes, or times out: do not fallback, return status=error with the actual error message from stderr or the system error string
  • If the subprocess returns invalid JSON or the JSON lacks an expected result field: return status=error, do not silently continue with empty or default values
  • If the VLM review call fails during Step 3, treat the attempt as incomplete: do not record a score, and either retry the review once or skip to the next attempt depending on remaining budget
Step 0 — Initialization
  1. Generate task_id with format YYYYMMDD_HHMMSS
  2. Create temp directory: /tmp/openclaw/sn-image-imitate/<task_id>/ as TEMP_DIR
  3. Resolve and normalize REFERENCE_IMAGE
  4. Persist user request:
bash
echo "$TARGET_CONTENT" > "$TEMP_DIR/target-content.txt"
Step 1 — Image Annotation (long caption + layout blueprint)

Use prompts/image_annotate.md as system prompt and call sn-image-recognize on reference image.

bash
python "$SN_IMAGE_BASE/scripts/sn_agent_runner.py" sn-image-recognize \
  --system-prompt-path "$SKILL_DIR/prompts/image_annotate.md" \
  --user-prompt "Please annotate this reference image and follow the required output format." \
  --images "$REFERENCE_IMAGE" \
  --output-format json

Parse JSON result, then parse three blocks:

  • SHORT_CAPTION: ...
  • LONG_CAPTION: ...
  • LAYOUT_BLUEPRINT_JSON: { ... }

If parsing fails, LONG_CAPTION is empty, or LAYOUT_BLUEPRINT_JSON is invalid JSON, return status=error.

Persist outputs:

bash
echo "$SHORT_CAPTION" > "$TEMP_DIR/reference-short-caption.txt"
echo "$LONG_CAPTION" > "$TEMP_DIR/reference-long-caption.txt"
echo "$LAYOUT_BLUEPRINT_JSON" > "$TEMP_DIR/layout-blueprint.json"
Show full SKILL.md (499 more words)Show less
Step 2 — New long caption generation (content rewrite with layout lock)

Goal: preserve style/layout/visual language from reference long caption while replacing core content by target_content.

Hard constraints to preserve (guided by layout-blueprint.json):

  • visual hierarchy (title/subtitle/body emphasis order)
  • region topology (number of major blocks and their relative positions)
  • reading flow (left-to-right / top-to-bottom / radial / timeline direction)
  • chart type and data encoding form (if present)
  • spacing rhythm and alignment pattern
  • major region bounding boxes and topological relations from blueprint

Preferred system prompt: prompts/caption_rewrite.md (recommended to add). If missing, use inline fallback system prompt:

Rewrite the long caption by preserving style and layout constraints while replacing semantic content according to user target. Do not change block topology, reading order, or visual hierarchy. Keep the caption detailed and directly usable for image generation.

Call sn-text-optimize:

bash
python "$SN_IMAGE_BASE/scripts/sn_agent_runner.py" sn-text-optimize \
  --system-prompt-path "$SKILL_DIR/prompts/caption_rewrite.md" \
  --user-prompt "Reference long caption:\n$LONG_CAPTION\n\nLayout blueprint JSON:\n$LAYOUT_BLUEPRINT_JSON\n\nTarget content:\n$TARGET_CONTENT\n\nReturn only the rewritten long caption." \
  --output-format json

Parse JSON result as NEW_LONG_CAPTION. If empty, return status=error.

Persist output:

bash
echo "$NEW_LONG_CAPTION" > "$TEMP_DIR/new-long-caption.txt"
Step 3 — Image Generation and Layout Review Loop

Execute attempt from 1 to max_attempts sequentially:

Generate Image (using sn-image-base's sn-image-generate tool):

bash
python "$SN_IMAGE_BASE/scripts/sn_agent_runner.py" sn-image-generate \
  --prompt "$CURRENT_PROMPT" \
  --aspect-ratio "$ASPECT_RATIO" \
  --image-size "$IMAGE_SIZE" \
  --save-path "$TEMP_DIR/attempt_<N>.png" \
  --output-format json

VLM configuration requirements:

  • When max_attempts > 1, VLM review is required for each attempt
  • Select VLM model from OpenClaw configuration as parameter for image recognition
  • If no suitable VLM model exists in OpenClaw configuration:
    • Notify user that current parameter combination cannot be executed
    • Suggest adding VLM configuration or setting max_attempts to 1 to skip review
  • If VLM call times out or fails: do not fallback, report the real error directly

Layout Consistency Review (only executed when max_attempts > 1):

Review candidate vs reference using prompts/layout_review.md (with blueprint as structural oracle):

bash
python "$SN_IMAGE_BASE/scripts/sn_agent_runner.py" sn-image-recognize \
  --system-prompt-path "$SKILL_DIR/prompts/layout_review.md" \
  --user-prompt "Reference is image[0], candidate is image[1]. Layout blueprint JSON:\n$LAYOUT_BLUEPRINT_JSON\n\nEvaluate layout similarity and return JSON only." \
  --images "$REFERENCE_IMAGE" "$TEMP_DIR/attempt_<N>.png" \
  --output-format json

Expected review JSON (inside result):

json
{
  "layout_similarity_score": 0.0,
  "style_similarity_score": 0.0,
  "pass": false,
  "major_deviations": [],
  "fix_hints": []
}

Save Attempt Result:

json
{
  "attempt": 1,
  "image": "$TEMP_DIR/attempt_1.png",
  "layout_similarity_score": 0.0,
  "style_similarity_score": 0.0,
  "pass": false,
  "major_deviations": [],
  "timing": {
    "image_generation": { "elapsed_seconds": 12.34, "model": "sn_image_model" },
    "vlm_review": { "elapsed_seconds": 5.67, "model": "sensenova-122b" }
  }
}

Note: elapsed_seconds is read from the --output-format json return of each CLI call; image_generation.model is fixed to the hardcoded placeholder "sn_image_model" (sn-image-generate does not return the model field); vlm_review.model is read from the JSON return of sn-image-recognize. timing.vlm_review is omitted when max_attempts=1.

Early Termination Check (only executed when max_attempts > 1):

Pass criteria:

  • layout_similarity_score >= layout_threshold

  • pass = true

  • If pass: immediately exit the loop, do not continue generating

  • If fail and attempts remain, append correction hints to prompt:

text
Layout correction requirements:
- <fix_hint_1>
- <fix_hint_2>
...
  • If all attempts fail to pass threshold, return highest-score candidate and mark layout_passed=false

Return Contract

Worker Agent final response must be bare JSON (no extra text, no code fence).

Normal Flow
json
{
  "status": "ok",
  "need_main_agent_send": true,
  "output_mode": "friendly|verbose",
  "result": {
    "image": "/tmp/openclaw/sn-image-imitate/<task_id>/attempt_2.png",
    "reference_image": "<resolved_reference_image>",
    "reference_short_caption": "<short caption from step 1>",
    "reference_long_caption": "<long caption from step 1>",
    "layout_blueprint": { "...": "..." },
    "new_long_caption": "<rewritten long caption from step 2>",
    "layout_passed": true,
    "selected_attempt": 2
  },
  "attempts": [
    {
      "attempt": 1,
      "image": "/tmp/openclaw/sn-image-imitate/<task_id>/attempt_1.png",
      "layout_similarity_score": 0.62,
      "style_similarity_score": 0.79,
      "pass": false,
      "major_deviations": ["center panel too narrow", "title block moved to top-right"]
    },
    {
      "attempt": 2,
      "image": "/tmp/openclaw/sn-image-imitate/<task_id>/attempt_2.png",
      "layout_similarity_score": 0.81,
      "style_similarity_score": 0.84,
      "pass": true,
      "major_deviations": []
    }
  ],
  "review": {
    "threshold": 0.75
  },
  "timing": {
    "total_elapsed_seconds": 24.56,
    "annotate": { "elapsed_seconds": 3.21, "model": "sensenova-122b" },
    "rewrite": { "elapsed_seconds": 2.45, "model": "sensenova-122b" },
    "generation_total": { "elapsed_seconds": 11.90, "model": "sn_image_model" },
    "review_total": { "elapsed_seconds": 7.00, "model": "sensenova-122b" }
  }
}
Error Flow
json
{
  "status": "error",
  "error": "<actual_error_message>"
}

Rules:

  • status=ok must include need_main_agent_send: true
  • result.image must be an existing generated image path
  • timing.total_elapsed_seconds covers full worker execution
  • If parsing of Step 1 format fails (including invalid blueprint JSON), return status=error (do not silently continue)
  • attempts must record each generation + review attempt
  • If no attempt passes threshold, return highest-score candidate and set result.layout_passed=false

Output Format

friendly mode (default)
  • One concise sentence: generated image follows reference style and updates to requested content
  • Mention whether layout consistency passed threshold and attempt count
  • Send single image: result.image
verbose mode
Style imitation result
---
Reference short caption: <reference_short_caption>
---
Style/layout cues:
<brief extraction from reference_long_caption + layout_blueprint>
---
New long caption:
<new_long_caption>
---
#1 attempt=<n> layout_score=<0.00> style_score=<0.00> pass=<true|false> [selected]
  deviations: <major_deviations or none>
#2 attempt=<n> layout_score=<0.00> style_score=<0.00> pass=<true|false>
  deviations: <major_deviations or none>
...
---
Layout threshold: <0.75> | Passed: <true|false> | Selected: attempt <n>
Time statistics: Total <total>s | Annotation <t>s | Rewrite <t>s | Generation <t>s×<n> attempts | Review <t>s×<n> attempts
---
Images (selected image)

Call Relationship

  • Bottom-level dependency: sn-image-base → sn-image-recognize, sn-text-optimize, sn-image-generate

References

  • prompts/image_annotate.md - Image annotation + layout blueprint system prompt (Step 1, required)
  • prompts/caption_rewrite.md - Caption rewrite system prompt with layout-lock constraints (Step 2, required)
  • prompts/layout_review.md - Candidate-vs-reference layout/style review prompt (Step 3, required)
  • ../sn-image-base/SKILL.md - Base tool behavior and parameter defaults

© OpenSenseNova, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 5 other files in skills/sn-image-imitate of OpenSenseNova/SenseNova-Skills.

  • SKILL.md
  • README.md
  • README_CN.md
  • prompts/caption_rewrite.md
  • prompts/image_annotate.md
  • prompts/layout_review.md

Open the folder on GitHubat commit 7838651

Compare with similar skills

Image Style Imitation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Image Style Imitation compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Image Style Imitation this skillOpenSenseNova/SenseNova-Skills5.7k—~3.8kAutomated safety check: PassMIT
AI Image Generation and Editingzhayujie/CowAgent47k—~1.3kAutomated safety check: PassMIT
Structured Image Generationbytedance/deer-flow84k4 repos~2.9kAutomated safety check: PassMIT
Canghe Comicfreestylefly/canghe-skills4618 repos~3.2kAutomated safety check: PassNone
Generate Imageynulihao/AgentSkillOS61810 repos~1.7kAutomated safety check: NotesNone
GPT Image Generation CLIwuyoscar/GPT-Image2-Skill5.7k—~2.5kAutomated safety check: NotesMIT

Similar skills

  • Generates or edits images from text prompts through a Python script that picks an image backend based on which API keys are configured.

    47k GitHub stars~1.3k tokensUpdated yesterday
    Media & CreativeAuto-check passed
  • Structured Image Generation

    bytedance/deer-flow

    Turns an image request into a structured JSON prompt and runs a bundled Python script to generate the picture, optionally guided by reference images.

    84k GitHub starsUsed in 4 repos~2.9k tokens
    Media & CreativeAuto-check passed
  • Canghe Comic

    freestylefly/canghe-skills

    Knowledge comic creator supporting multiple art styles and tones.

    461 GitHub starsUsed in 8 repos~3.2k tokens
    Media & CreativeAuto-check passed
  • Generate Image

    ynulihao/AgentSkillOS

    Generate or edit images using AI models (FLUX, Gemini). An agent skill from ynulihao/AgentSkillOS.

    618 GitHub starsUsed in 10 repos~1.7k tokens
    Media & CreativeAuto-check: notes
  • GPT Image Generation CLI

    wuyoscar/GPT-Image2-Skill

    Generates and edits images with GPT Image 2 or 2.5 through a packaged CLI and a prompt gallery, after settling which model fits the request.

    5.7k GitHub stars~2.5k tokensUpdated 10 days ago
    Media & CreativeAuto-check: notes
  • Minimal Zine Poster Generator

    LiamGvchi/gc-minimal-zine-poster

    Creates or analyzes quiet, paper-texture zine posters with big negative space, one color accent and experimental type, returning an image prompt and the generated poster.

    7.3k GitHub stars~2.9k tokensUpdated 1 mo ago
    Media & CreativeAuto-check passed

More from OpenSenseNova/SenseNova-Skills

All 36 skills in this repo
  • SN Motion HTML

    OpenSenseNova/SenseNova-Skills

    Builds HTML stories where one continuous camera journey advances with page progress, using researched structure, AI stills, Seedance video clips and browser QA.

    5.7k GitHub stars~2.2k tokensUpdated 2 days ago
    Auto-check: notes
  • SenseNova PPT Fallback Tools

    OpenSenseNova/SenseNova-Skills

    Fallback scripts for web search, image search and download, and image generation that PPT skills use only when the host agent lacks or fails its own tools.

    5.7k GitHub stars~575 tokensUpdated 2 days ago
    Auto-check: notes
  • SenseNova PPT Workbench

    OpenSenseNova/SenseNova-Skills

    Opens the PPT Workbench web editor for an existing SenseNova HTML slide deck so you can preview, inspect and visually edit it without regenerating.

    5.7k GitHub stars~2.5k tokensUpdated 2 days ago
    Auto-check: notes
  • SenseNova PPT Creative Renderer

    OpenSenseNova/SenseNova-Skills

    Turns an approved slide outline into a full-page image for every slide, one 16:9 PNG per page, and optionally packages the set into a PPTX.

    5.7k GitHub stars~1.2k tokensUpdated 2 days ago
    Auto-check passed
  • SenseNova PPT Entry

    OpenSenseNova/SenseNova-Skills

    Entry point for SenseNova presentation generation: creates a task folder, picks depth, output format and design richness, and routes to the right PPT skill.

    5.7k GitHub stars~2.7k tokensUpdated 2 days ago
    Auto-check: notes
  • China Market Open Data Search

    OpenSenseNova/SenseNova-Skills

    Researches Chinese market, macro, trade, procurement, listed-company and regulatory information from free official sources that need no sign-up or API key.

    5.7k GitHub stars~954 tokensUpdated 2 days ago
    Auto-check: notes

Questions about Image Style Imitation

What does Image Style Imitation do?

Generates a new image in the style and layout of a reference image with new content, using caption extraction, caption rewriting and a layout-consistency check. Given a reference image and a description of the new content, the skill extracts a detailed long caption from the reference, rewrites it to carry the requested change while locking style and layout, and sends the result to image generation. After generation it scores layout consistency against a threshold and retries a bounded number of times.

When should I use Image Style Imitation?

Image Style Imitation fits situations like: redrawing a reference image in the same style with new subject matter; producing visuals that keep the layout of an existing graphic; generating variants of a design with updated text or content.

How do I install Image Style Imitation in Claude Code?

Run `npx skills add OpenSenseNova/SenseNova-Skills --skill sn-image-imitate -a claude-code`. Or copy the skill folder (skills/sn-image-imitate in OpenSenseNova/SenseNova-Skills) into .claude/skills/sn-image-imitate in your project. Claude Code loads it when a task matches its description.

How do I install Image Style Imitation in Codex?

Run `npx skills add OpenSenseNova/SenseNova-Skills --skill sn-image-imitate -a codex`. Or copy the skill folder (skills/sn-image-imitate in OpenSenseNova/SenseNova-Skills) into .agents/skills/sn-image-imitate in your project. Codex loads it when a task matches its description.

Can I use Image Style Imitation in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add OpenSenseNova/SenseNova-Skills --skill sn-image-imitate -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/sn-image-imitate, .gemini/skills/sn-image-imitate, .github/skills/sn-image-imitate and .opencode/skills/sn-image-imitate in your project.

What does Image Style Imitation need to run?

Going by SKILL.md and its folder, Image Style Imitation needs the command-line tools its instructions call (python) and credentials named SN_API_KEY, SN_CHAT_API_KEY, SN_TEXT_API_KEY and SN_VISION_API_KEY. Our summary lists: The sn-image-base skill, installed and configured; A SenseNova API key set as SN_API_KEY; Python dependencies installed as described for sn-image-base.

Does Image Style Imitation access the network?

SKILL.md names 2 domains. In commands or code: token.sensenova.cn; the agent is likely to contact it when it follows the instructions. As links in the text: platform.sensenova.cn. This is read from the text; nothing was executed.

Is Image Style Imitation safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Image Style Imitation use?

Image Style Imitation is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Image Style Imitation use?

About 3.8k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Image Style Imitation?

Skills that share tags, products or a category with Image Style Imitation: AI Image Generation and Editing (zhayujie/CowAgent, 47k stars), Structured Image Generation (bytedance/deer-flow, 84k stars), Canghe Comic (freestylefly/canghe-skills, 461 stars) and Generate Image (ynulihao/AgentSkillOS, 618 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Image Style Imitation?

OpenSenseNova (a GitHub organization) maintains it in OpenSenseNova/SenseNova-Skills, which has 5,749 GitHub stars. The repository holds 36 skills in this directory. The repository was last updated on October 9, 2026.

Source: OpenSenseNova/SenseNova-Skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.