Art Skill
Complete visual content system for creating illustrations, diagrams, and visual content.
Customization
Before executing, check for user customizations at:
~/.opencode/skills/CORE/USER/SKILLCUSTOMIZATIONS/Art/
If this directory exists, load and apply:
PREFERENCES.md- Aesthetic preferences, default model, output locationCharacterSpecs.md- Character design specificationsSceneConstruction.md- Scene composition guidelines
These override default behavior. If the directory does not exist, proceed with skill defaults.
π¨π¨π¨ MANDATORY: Output to Downloads First π¨π¨π¨
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β οΈ ALL GENERATED IMAGES GO TO ~/Downloads/ FIRST β οΈ
β οΈ NEVER output directly to project directories β οΈ
β οΈ User MUST preview in Finder/Preview before use β οΈ
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
This applies to ALL workflows in this skill.
Voice Notification
When executing a workflow, do BOTH:
-
Send voice notification:
curl -s -X POST http://localhost:8888/notify \ -H "Content-Type: application/json" \ -d '{"message": "Running the WORKFLOWNAME workflow from the Art skill"}' \ > /dev/null 2>&1 & -
Output text notification:
Running the **WorkflowName** workflow from the **Art** skill...
Workflow Routing
Route to the appropriate workflow based on the request.
- Blog header or editorial illustration β
Workflows/Essay.md - D3.js interactive chart or dashboard β
Workflows/D3Dashboards.md - Visualization or unsure which format β
Workflows/Visualize.md - Mermaid flowchart or sequence diagram β
Workflows/Mermaid.md - Technical or architecture diagram β
Workflows/TechnicalDiagrams.md - Taxonomy or classification grid β
Workflows/Taxonomies.md - Timeline or chronological progression β
Workflows/Timelines.md - Framework or 2x2 matrix β
Workflows/Frameworks.md - Comparison or X vs Y β
Workflows/Comparisons.md - Annotated screenshot β
Workflows/AnnotatedScreenshots.md - Recipe card or step-by-step β
Workflows/RecipeCards.md - Aphorism or quote card β
Workflows/Aphorisms.md - Conceptual map or territory β
Workflows/Maps.md - Stat card or big number visual β
Workflows/Stats.md - Comic or sequential panels β
Workflows/Comics.md - YouTube thumbnail (with existing assets) β
Workflows/YouTubeThumbnail.md - Ad-hoc YouTube thumbnail (generate from content) β
Workflows/AdHocYouTubeThumbnail.md - PAI pack icon β
Workflows/CreatePAIPackIcon.md
Core Aesthetic
Default: Production-quality concept art style appropriate for editorial and technical content.
User customization defines specific aesthetic preferences including:
- Visual style and influences
- Line treatment and rendering approach
- Color palette and wash technique
- Character design specifications
- Scene composition rules
Load from: ~/.opencode/skills/CORE/USER/SKILLCUSTOMIZATIONS/Art/PREFERENCES.md
Reference Images
User customization may include reference images for consistent style.
Check ~/.opencode/skills/CORE/USER/SKILLCUSTOMIZATIONS/Art/PREFERENCES.md for:
- Reference image locations
- Style examples by use case
- Character and scene reference guidance
Usage: Before generating images, load relevant user-provided references to match their preferred style.
Image Generation
Default model: Check user customization at SKILLCUSTOMIZATIONS/Art/PREFERENCES.md
Fallback: nano-banana-pro (Gemini 3 Pro)
π¨ CRITICAL: Always Output to Downloads First
ALL generated images MUST go to ~/Downloads/ first for preview and selection.
Never output directly to a project's public/images/ directory. User needs to review images in Preview before they're used.
Workflow:
- Generate to
~/Downloads/[descriptive-name].png - User reviews in Preview
- If approved, THEN copy to final destination (e.g.,
cms/public/images/) - Create WebP and thumbnail versions at final destination
# CORRECT - Output to Downloads for preview
bun run ~/.opencode/skills/Art/Tools/Generate.ts \
--model nano-banana-pro \
--prompt "[PROMPT]" \
--size 2K \
--aspect-ratio 1:1 \
--thumbnail \
--output ~/Downloads/blog-header-concept.png
# After approval, copy to final location
cp ~/Downloads/blog-header-concept.png ~/Projects/Website/cms/public/images/
cp ~/Downloads/blog-header-concept-thumb.png ~/Projects/Website/cms/public/images/
Multiple Reference Images (Character/Style Consistency)
For improved character or style consistency, use multiple --reference-image flags:
# Multiple reference images for better likeness
bun run ~/.opencode/skills/Art/Tools/Generate.ts \
--model nano-banana-pro \
--prompt "Person from references at a party..." \
--reference-image face1.jpg \
--reference-image face2.jpg \
--reference-image face3.jpg \
--size 2K \
--aspect-ratio 16:9 \
--output ~/Downloads/character-scene.png
API Limits (Gemini):
- Up to 5 human reference images
- Up to 6 object reference images
- Maximum 14 total reference images per request
API keys in: ${PAI_DIR}/.env
Examples
Example 1: Blog header image
User: "create a header for my AI agents post"
β Invokes ESSAY workflow
β Generates charcoal sketch prompt
β Creates image with architectural aesthetic
β Saves to ~/Downloads/ for preview
β After approval, copies to public/images/
Example 2: Technical architecture diagram
User: "make a diagram showing the SPQA pattern"
β Invokes TECHNICALDIAGRAMS workflow
β Creates structured architecture visual
β Outputs PNG with consistent styling
Example 3: Comparison visualization
User: "visualize humans vs AI decision-making"
β Invokes COMPARISONS workflow
β Creates side-by-side visual
β Charcoal sketch with labeled elements
Example 4: PAI pack icon
User: "create icon for the skill system pack"
β Invokes CREATEPAIPACKICON workflow
β Reads workflow from Workflows/CreatePAIPackIcon.md
β Generates 1K image with --remove-bg for transparency
β Resizes to 256x256 RGBA PNG
β Outputs to ~/Downloads/ for preview
β After approval, copies to ~/Projects/PAI/Packs/icons/