Learn reusable 2D motion-generation knowledge from user-specified action resources with `/img2mo-learn <resource>`. Use when the user provides videos, extracted frame sequences, spritesheets, Spine assets, generated outputs, failed attempts, or reference motion folders and wants to summarize animation timing, pose beats, style traits, prompt patterns, extraction/cropping rules, or failure lessons into the project `img2mo-knowledge/` folder for later `/img2motion` generation.
npx skills add https://github.com/WU-HAOTIAN34/2dimg2motion --skill img2mo-learn
Use this skill when the user invokes:
/img2mo-learn <resource-path-or-folder>
img2mo-learn <resource-path-or-folder>
The goal is to turn finished or reference motion assets into reusable project knowledge. Store learned knowledge in the project-level img2mo-knowledge/ folder, never in the installed Codex skill directory during normal work.
Resolve the argument after img2mo-learn as follows:
sample\<name>, then output\<name>, then motion\<name>.manifest.json, preview.gif, contact-sheet.*, spritesheet.*, fullframe/, frames/, Spine .json/.atlas/.skel, then videos.Supported resources:
.mp4, .mov, .webm;output/<action-id>/;.json, .atlas, .skel, texture folders;motion/.Create this structure if missing:
img2mo-knowledge/
|-- index.md
|-- learnings.jsonl
|-- action-patterns.md
|-- style-patterns.md
|-- prompt-patterns.md
`-- failures.md
Append one JSON object per learning session to img2mo-knowledge/learnings.jsonl. Keep Markdown files concise and curated; do not paste huge logs, full prompts, or complete frame listings.
ffprobe when available.img2mo-knowledge/; store outputs under output/ or tmp/ and reference their paths in JSON.guard, anticipation, acceleration, contact, contact hold, follow-through, recovery.learnings.jsonl.output/<action-id>/retro.md.Each line in img2mo-knowledge/learnings.jsonl should be a compact JSON object:
{
"id": "learn-YYYYMMDD-HHMMSS-short-name",
"date": "YYYY-MM-DD",
"source": "relative/or/absolute/path",
"resource_type": "video|frame_sequence|spritesheet|spine|output|reference_folder",
"action_type": "attack|walk|idle|block|suffer|death|born|skill|unknown",
"fps": 24,
"frame_count": 14,
"loop": true,
"beats": [
{"name": "anticipation", "frames": "02-04", "notes": "body compresses before strike"}
],
"key_pose_guidance": ["frame 05 should be the clearest contact silhouette"],
"topology": {
"active": "screen-left sword hand",
"anchor": "screen-right hand",
"weapon_owner": "screen-left hand"
},
"style": ["thick dark outline", "warm orange shadow shapes"],
"prompt_clauses": ["same foot/bottom baseline in every cell"],
"failure_lessons": ["reject sheets where the weapon hand swaps"],
"artifacts": ["output/.../contact-sheet.jpg"]
}
Use null for unknown scalar fields and [] for empty lists. Keep one line per session.
index.md: list recent learning sessions and high-level tags.action-patterns.md: update durable motion timing rules by action type.style-patterns.md: update durable visual style observations.prompt-patterns.md: update short reusable prompt clauses and anti-clauses.failures.md: update rejection checks and known failure modes.When adding Markdown entries, include the source path and date. Keep entries short enough that /img2motion can read them quickly.
Later /img2motion work must read img2mo-knowledge/index.md first when it exists. Then read only the relevant knowledge files for the requested action/style:
action-patterns.md;style-patterns.md;prompt-patterns.md;failures.md;learnings.jsonl for matching action_type, source tags, or character style.Do not let learned knowledge override the current user's explicit request or the current baseline image identity. Treat project knowledge as guidance, not ground truth.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Improves the quality of images, especially screenshots, by enhancing resolution, sharpness, and clarity. Perfect for preparing images for presentations, documentation, or social media posts.
Downloads videos from YouTube and other platforms for offline viewing, editing, or archival. Handles various formats and quality options.
Lightweight WSI tile extraction and preprocessing. Use for basic slide processing tissue detection, tile extraction, stain normalization for H&E images. Best for simple pipelines, dataset preparation, quick tile-based analysis. For advanced spatial proteomics, multiplexed imaging, or deep learning pipelines use pathml.
Microscopy data management platform. Access images via Python, retrieve datasets, analyze pixels, manage ROIs/annotations, batch processing, for high-content screening and microscopy workflows.
Python library for working with DICOM (Digital Imaging and Communications in Medicine) files. Use this skill when reading, writing, or modifying medical imaging data in DICOM format, extracting pixel data from medical images (CT, MRI, X-ray, ultrasound), anonymizing DICOM files, working with DICOM metadata and tags, converting DICOM images to other formats, handling compressed DICOM data, or processing medical imaging datasets. Applies to tasks involving medical image analysis, PACS systems, radiology workflows, and healthcare imaging applications.
This skill should be used when working with pre-trained transformer models for natural language processing, computer vision, audio, or multimodal tasks. Use for text generation, classification, question answering, translation, summarization, image classification, object detection, speech recognition, and fine-tuning models on custom datasets.
Take wu-haotian34/img2mo-learn from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.