AI Image Generation and Editing
zhayujie/CowAgent
Generates or edits images from text prompts through a Python script that picks an image backend based on which API keys are configured.
Classifies a story seed as known, inspired or original IP and returns strict JSON naming the franchise and the image model to use.
$ npx skills add UfukNode/Noustiny --skill story-copyright-detector -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install UfukNode/Noustiny story-copyright-detector --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/UfukNode/Noustiny.git skills-src && mkdir -p .claude/skills && cp -r skills-src/hermes-additions/skills/creative/story-copyright-detector .claude/skills/story-copyright-detector && rm -rf skills-srcUse ~/.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/
Install the "story-copyright-detector" agent skill from https://github.com/UfukNode/Noustiny/tree/main/hermes-additions/skills/creative/story-copyright-detector into .claude/skills/story-copyright-detector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "story-copyright-detector", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/UfukNode/Noustiny/tree/main/hermes-additions/skills/creative/story-copyright-detectorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add UfukNode/Noustiny --skill story-copyright-detector -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install UfukNode/Noustiny story-copyright-detector --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UfukNode/Noustiny.git skills-src && mkdir -p .agents/skills && cp -r skills-src/hermes-additions/skills/creative/story-copyright-detector .agents/skills/story-copyright-detector && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "story-copyright-detector" agent skill from https://github.com/UfukNode/Noustiny/tree/main/hermes-additions/skills/creative/story-copyright-detector into .agents/skills/story-copyright-detector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "story-copyright-detector", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add UfukNode/Noustiny --skill story-copyright-detector -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install UfukNode/Noustiny story-copyright-detector --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UfukNode/Noustiny.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/hermes-additions/skills/creative/story-copyright-detector .cursor/skills/story-copyright-detector && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "story-copyright-detector" agent skill from https://github.com/UfukNode/Noustiny/tree/main/hermes-additions/skills/creative/story-copyright-detector into .cursor/skills/story-copyright-detector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "story-copyright-detector", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/UfukNode/Noustiny.git --path hermes-additions/skills/creative/story-copyright-detector--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add UfukNode/Noustiny --skill story-copyright-detector -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install UfukNode/Noustiny story-copyright-detector --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UfukNode/Noustiny.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/hermes-additions/skills/creative/story-copyright-detector .gemini/skills/story-copyright-detector && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "story-copyright-detector" agent skill from https://github.com/UfukNode/Noustiny/tree/main/hermes-additions/skills/creative/story-copyright-detector into .gemini/skills/story-copyright-detector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "story-copyright-detector", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install UfukNode/Noustiny story-copyright-detectorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add UfukNode/Noustiny --skill story-copyright-detector -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/UfukNode/Noustiny.git skills-src && mkdir -p .github/skills && cp -r skills-src/hermes-additions/skills/creative/story-copyright-detector .github/skills/story-copyright-detector && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "story-copyright-detector" agent skill from https://github.com/UfukNode/Noustiny/tree/main/hermes-additions/skills/creative/story-copyright-detector into .github/skills/story-copyright-detector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "story-copyright-detector", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add UfukNode/Noustiny --skill story-copyright-detector -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install UfukNode/Noustiny story-copyright-detector --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/UfukNode/Noustiny.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/hermes-additions/skills/creative/story-copyright-detector .opencode/skills/story-copyright-detector && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "story-copyright-detector" agent skill from https://github.com/UfukNode/Noustiny/tree/main/hermes-additions/skills/creative/story-copyright-detector into .opencode/skills/story-copyright-detector/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "story-copyright-detector", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
story-copyright-detectorClassifies a story seed as known, inspired or original IP and returns strict JSON naming the franchise and the image model to use.
Meant to run once per story, when a user enters the canvas with a fresh seed, and again only if the story is reset. It reads the seed and returns one JSON object with ip_level (known, inspired or original), a lowercase franchise slug or null, and a model_preference. Known means a specific copyrighted franchise or trademarked character, inspired means a derivative register that names no IP, and original means a grounded scene with no genre trappings.
Known seeds are sent to flux-photoreal, while inspired and original seeds go to gemini-stylised, which the skill describes as cheaper and faster. The decision is scoped to the story, not to each frame, and downstream steps store it and reuse it for every later image generation instead of asking again. Marvel, Star Wars, DC, Harry Potter and Lord of the Rings are among the franchises listed as known.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 09a0c82. It shows what the files ask for, not the result of running them.
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.
No scripts in the folder and no shell commands in SKILL.md (its code samples are json).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Story Copyright Detector loads about 1.7k tokens when it runs. Until then it costs about 154 tokens; SKILL.md has 593 words of instructions outside code blocks.
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.
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.
The full file from UfukNode/Noustiny at commit 09a0c82, republished under its MIT licence (© UfukNode). 593 words, ~1,730 tokens.
.claude/skills/story-copyright-detector/SKILL.md (or your agent's skills folder).Every image pipeline wants to be the right pipeline for the story. A Marvel-finale seed cannot go to Gemini — one mention of "Iron Man" and the render refuses. A kitchen-sink drama seed should not be forced through FLUX's heavier photoreal render when Nano Banana would paint the scene in half the time with warmer tones.
This skill looks at the seed once and decides the route. One JSON object, fire and forget. Downstream stores it and every subsequent image-gen reads the preference out of memory instead of re-asking.
{
"seed": "Tony Stark holds the Infinity Gauntlet on the Avengers compound battlefield — every possible ending hangs on what he does next."
}Return exactly one JSON object, nothing else:
{
"ip_level": "known",
"franchise": "marvel",
"model_preference": "flux-photoreal",
"reason": "Named Marvel characters (Tony Stark, Avengers), franchise-coded artifact (Infinity Gauntlet); image filters will reject verbatim prompts — route to FLUX with moderation-rewriter retry ladder."
}Rules:
ip_level ∈ "known" | "inspired" | "original".franchise: lowercase slug (marvel, star-wars, harry-potter, got, lotr, dc, avatar-cameron, avatar-airbender, dune, one-piece, naruto, attack-on-titan, anime-generic, breaking-bad, the-wire, …) OR null for non-franchise seeds.model_preference:flux-photoreal when ip_level="known" — FLUX handles IP-sanitized prompts best, photoreal cinematic look, goes through moderation-rewriter on refuse.gemini-stylised when ip_level is "inspired" or "original" — Nano Banana is cheaper, faster, stylised; filter won't trip because there are no trademarks to collide with.ip_level="inspired" but the seed is heavy on violence / body horror, prefer flux-photoreal (FLUX's violence tolerance is higher than Gemini's).reason: one sentence, human-readable, explains the call. Shown in the agent ticker so the demo viewer sees "WHY the router picked this model".No markdown code fences, no preamble. First character {, last character }.
Walk the seed in this order:
known.known, franchise inferred from the token.inspired.original.original, model_preference="gemini-stylised", reason="empty seed — default stylised path".| Detected franchise | model_preference | Why |
|---|---|---|
| marvel / dc / star-wars / lotr / got / harry-potter / dune / avatar-cameron | flux-photoreal | Live-action aesthetic — FLUX photoreal cinematic matches the register |
| avatar-airbender / naruto / one-piece / attack-on-titan / anime-generic | gemini-stylised | Animation register — Nano Banana handles cel-shade natively AND supports multi-modal reference portraits for character consistency |
| breaking-bad / the-wire (grounded drama) | gemini-stylised | Grounded realistic look — Nano Banana's warmer palette suits the register |
| null (original) | gemini-stylised | No IP to dodge, cheap path wins |
reason line only.Input:
{ "seed": "A hacker wakes at the foot of Galata Tower with a cybernetic implant under the skin of the forearm and no memory of the last three years. It is 03:17." }Correct output:
{
"ip_level": "inspired",
"franchise": null,
"model_preference": "gemini-stylised",
"reason": "Cyberpunk register (cybernetic implant, amnesiac hacker) with original setting (Galata Tower); no trademark tokens; stylised path is cheaper and filter-safe."
}Input:
{ "seed": "Aang returns to the Southern Air Temple after a hundred years and finds it empty — every air nomad gone, their bison's bones in the snow." }Correct output:
{
"ip_level": "known",
"franchise": "avatar-airbender",
"model_preference": "flux-photoreal",
"reason": "Named IP character (Aang) + franchise-coded setting (Southern Air Temple) + species (air nomads, sky bison) — image filters will refuse verbatim; route to FLUX with moderation retry."
}© UfukNode, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in hermes-additions/skills/creative/story-copyright-detector of UfukNode/Noustiny.
Open the folder on GitHubat commit 09a0c82
Story Copyright Detector 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Story Copyright Detector this skillUfukNode/Noustiny | 181 | — | ~1.7k | Automated safety check: Pass | MIT | |
| AI Image Generation and Editingzhayujie/CowAgent | 47k | — | ~1.3k | Automated safety check: Pass | MIT | |
| Nano Banana Pro Prompts Recommend SkillYouMind-OpenLab/nano-banana-pro-prompts-recommend-skill | 1.9k | 1 repos | ~4.1k | Automated safety check: Pass | None | |
| Logo Generatorop7418/logo-generator-skill | 2.2k | — | ~1.8k | Automated safety check: Notes | None | |
| Gemini Web Reverse-Engineered ClientJimLiu/baoyu-skills | 26k | 5 repos | ~1.6k | Automated safety check: Pass | MIT | |
| SEO Image GeneratorAgriciDaniel/claude-seo | 19k | 2 repos | ~2.1k | Automated safety check: Pass | MIT |
zhayujie/CowAgent
Generates or edits images from text prompts through a Python script that picks an image backend based on which API keys are configured.
YouMind-OpenLab/nano-banana-pro-prompts-recommend-skill
Recommend suitable prompts from 10,000+ Nano Banana Pro image generation prompts based on user needs.
op7418/logo-generator-skill
Generate professional SVG logos and high-end showcase images.
JimLiu/baoyu-skills
Generates text and images through an unofficial, reverse-engineered Gemini Web API, supporting reference images and multi-turn conversations.
AgriciDaniel/claude-seo
Generates Open Graph previews, blog hero images, product photos and infographics for SEO use through Gemini image tools and the banana extension.
BlockRunAI/ClawRouter
Generates or edits images through ClawRouter's local image API, with a choice of models and sizes and payment handled automatically through x402.
UfukNode/Noustiny
Grades whether a downstream story beat still holds after an upstream insertion, returning a strict JSON verdict of still_valid, needs_rewrite or must_delete.
UfukNode/Noustiny
Turns an ordered list of canon story beats into one continuous piece of present-tense prose with tonal continuity and motif carry-through, never JSON or tool calls.
UfukNode/Noustiny
Expands a one-line author intent into a full story beat that fits between two known nodes of a canon path, returned as strict JSON.
UfukNode/Noustiny
Groups every node of an existing branching story tree into scenes, titles each scene, assigns an act and a one-word motif, and returns the result as JSON.
UfukNode/Noustiny
Chooses the pace, color palette, transition and length of the opening montage for a Noustiny audiobook storybook when the user leaves those settings open.
UfukNode/Noustiny
Produce a cast sheet of 1–4 named characters from a story seed.
Works with
Categories
Classifies a story seed as known, inspired or original IP and returns strict JSON naming the franchise and the image model to use. Meant to run once per story, when a user enters the canvas with a fresh seed, and again only if the story is reset. It reads the seed and returns one JSON object with ip_level (known, inspired or original), a lowercase franchise slug or null, and a model_preference.
Story Copyright Detector fits situations like: choosing an image model for a new story seed; checking whether a seed names a known franchise; re-classifying after the user resets the story.
Run `npx skills add UfukNode/Noustiny --skill story-copyright-detector -a claude-code`. Or copy the skill folder (hermes-additions/skills/creative/story-copyright-detector in UfukNode/Noustiny) into .claude/skills/story-copyright-detector in your project. Claude Code loads it when a task matches its description.
Run `npx skills add UfukNode/Noustiny --skill story-copyright-detector -a codex`. Or copy the skill folder (hermes-additions/skills/creative/story-copyright-detector in UfukNode/Noustiny) into .agents/skills/story-copyright-detector in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add UfukNode/Noustiny --skill story-copyright-detector -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/story-copyright-detector, .gemini/skills/story-copyright-detector, .github/skills/story-copyright-detector and .opencode/skills/story-copyright-detector in your project.
SKILL.md names no scripts, command-line tools or credentials: Story Copyright Detector is instructions for the agent only. Our summary lists: A downstream image pipeline that reads the JSON result.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
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.
Story Copyright Detector is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 1.7k tokens (SKILL.md is roughly 6.9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Story Copyright Detector: AI Image Generation and Editing (zhayujie/CowAgent, 47k stars), Nano Banana Pro Prompts Recommend Skill (YouMind-OpenLab/nano-banana-pro-prompts-recommend-skill, 1.9k stars), Logo Generator (op7418/logo-generator-skill, 2.2k stars) and Gemini Web Reverse-Engineered Client (JimLiu/baoyu-skills, 26k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
UfukNode (a GitHub user) maintains it in UfukNode/Noustiny, which has 181 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on May 4, 2026.
Source: UfukNode/Noustiny on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.