
Skywork Design
- 318 installs
- 196 repo stars
- Updated April 2, 2026
- skyworkai/skywork-skills
skywork design is a Claude agent skill that generates and refines UI layouts, visual hierarchy, and brand-consistent mockups in Skywork for developers who need design validation before committing frontend engineering res
About
skywork design is a skyworkai/skywork-skills agent skill that produces UI layouts, visual hierarchy decisions, and brand-consistent mockups inside the Skywork platform before teams invest in full frontend implementation. Developers describe screens or flows and receive refined layout proposals that preserve typography, spacing, and brand cues so engineering estimates stay grounded in an approved visual direction. The skill supports iterative mockup refinement—adjusting hierarchy, component grouping, and responsive structure—without immediately opening a codebase. Reach for skywork design when prototyping dashboards, marketing surfaces, or mobile flows where stakeholders must sign off on look-and-feel before sprinting on React or native UI work. skywork design keeps design exploration in Skywork so frontend developers receive clearer layout contracts and fewer late rework cycles on CSS grids, navigation patterns, and brand tokens. Use it early in a feature when visual alignment matters more than pixel-perfect production components.
- Layout and hierarchy
- Brand-consistent visuals
- Rapid mock iteration
- UX flow exploration
- Handoff-ready artifacts
Skywork Design by the numbers
- 318 all-time installs (skills.sh)
- +8 installs in the week ending Aug 5, 2026 (Skillselion tracking)
- Ranked #783 of 1,880 Design & UI/UX skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/skyworkai/skywork-skills --skill skywork-designAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 318 |
|---|---|
| repo stars | ★ 196 |
| Last updated | April 2, 2026 |
| Repository | skyworkai/skywork-skills ↗ |
How do you prototype UI layouts before frontend coding?
Generate and refine UI layouts, visual hierarchy, and brand-consistent mockups in Skywork before committing engineering resources to full frontend implementation.
Who is it for?
Frontend developers and tech leads who want Skywork mockups and hierarchy decisions approved before sprinting on production UI components.
Skip if: Teams that already have finalized Figma design systems and only need code generation from exported design tokens without Skywork exploration.
When should I use this skill?
A developer asks to generate UI layouts in Skywork, refine visual hierarchy, or produce brand-consistent mockups before frontend implementation.
What you get
Skywork mockups with defined visual hierarchy, brand-consistent layout specs, and screen-flow refinements ready for frontend handoff.
- UI mockup set
- Visual hierarchy spec
- Brand-consistent layout refinements
Files
Visual Design — Image Generation & Editing
Generate new images or edit existing ones via the backend image API. Be patient, it takes about 2 minutes to generate an image each time.
---
Prerequisites
API Key Configuration (Required First)
This skill requires a SKYWORK_API_KEY to be configured in OpenClaw.
If you don't have an API key yet, please visit: https://skywork.ai
For detailed setup instructions, see: references/apikey-fetch.md
Usage
Run the script using absolute path (do NOT cd to skill directory):
Generate new image:
python3 <SKILL_DIR>/scripts/generate_image.py --prompt "description" --filename "output.png" [--aspect-ratio 3:4] [--resolution 1K|2K|4K]Edit existing image:
python3 <SKILL_DIR>/scripts/generate_image.py --prompt "edit instructions" --filename "output.png" --input-image "source.png" [--aspect-ratio 3:4] [--resolution 2K]Edit with multiple reference images:
python3 <SKILL_DIR>/scripts/generate_image.py --prompt "combine these styles" --filename "output.png" -i "ref1.png" -i "ref2.png"Always run from the user's working directory so images save there.
When to Generate vs Edit
- Generation (
--promptonly): Creating new images from scratch — posters, logos, illustrations, photos, infographics. - Editing (
--prompt+--input-image): User provides existing image(s) and wants modifications — style changes, element addition/removal, color adjustments, format conversion. - Notice: Edit api supports character resemblance of up to 4 characters and the fidelity of up to 10 objects in a single workflow
If the user uploads/references images and wants changes, always use --input-image.
Resolution
- 1K — ~1024px, fast drafts
- 2K (default) — ~2048px, good for most deliverables
- 4K — ~4096px, final high-res output
Map user requests: "low/draft" → 1K, "normal/medium/2K" → 2K, "high-res/hi-res/4K/ultra" → 4K.
Aspect Ratio
Supported ratios: 1:1, 2:3, 3:2, 3:4, 4:3, 4:5, 5:4, 9:16, 16:9, 21:9.
Selection guidance:
- 1:1 — Social media avatars, icons, album covers
- 3:4 / 4:3 — General posters, presentations
- 4:5 / 5:4 — Instagram posts, portraits
- 9:16 / 16:9 — Mobile stories / desktop wallpapers, video covers
- 2:3 / 3:2 — Print posters, book covers
- 21:9 — Ultra-wide banners, cinema format
If the user doesn't specify, omit --aspect-ratio and let the API decide.
Filename Convention
Pattern: yyyy-mm-dd-hh-mm-ss-descriptive-name.png
Examples:
- "A serene Japanese garden" →
2026-03-10-14-23-05-japanese-garden.png - "sunset over mountains" →
2026-03-10-15-30-12-sunset-mountains.png - Unclear context →
2026-03-10-17-12-48-x9k2.png
Preflight
command -v python3(must exist)- If editing: verify each
--input-imagefile exists
Common Failures
Error: Input image not found:→ wrong path; verify--input-imagefile existsHTTP error 500→ backend service error; retry or check server statusRequest failed: Connection refused→ backend service unavailable; ensure the service is running- Insufficient benefit: The script or log may show a message like
Insufficient benefit. Please upgrade your account at {url}, meaning the user's benefit level does not meet the requirement for this skill.
How to reply when benefit is insufficient
When you detect the above, reply in the user's current language — do not echo the English message. Use this pattern:
- Convey: "Sorry, image generation failed. This skill requires upgrading your Skywork membership to use." then a single call-to-action link.
- Format: One short sentence in the user's language + a link like
[Upgrade now →](url)or the equivalent in their language. - URL: Extract the upgrade URL from the log/script output (e.g. the
at https://...part).
Note: Only suggest upgrading when the error is Insufficient benefit. For auth errors likeNO_TOKEN/INVALID_TOKEN/401/ “invalid API key”, keep the error code / raw message and guide users to updateSKYWORK_API_KEY. Do not suggest upgrading membership.
Output
- Script prints the local file path and the OSS URL.
- Depending on the platform, use the most appropriate way to deliver the image (e.g. send as image message, display inline, or print the URLs). By default, return both the local path and OSS URL to the user. The OSS URL ensures cross-platform accessibility.
Design Scenarios
Match the user's request to a scenario and read the corresponding file for specialized workflow:
- E-commerce product image: See scenarios/e-commerce.md
- Storyboard: See scenarios/storyboard.md
- Infographic: See scenarios/infographic.md
- Logo: See scenarios/logo.md
- Branding / VI: See scenarios/branding.md
- Brochure: See scenarios/brochure.md
- Social media: See scenarios/social-media.md
- Poster: See scenarios/poster.md
Prompt Engineering
Prompts Best Practices
Follow these principles for quality prompts using the image API for generation or editing:
- Describe the scene, don't just list keywords. A narrative, descriptive paragraph produces much better results than disconnected words. The model's core strength is deep language understanding.
- Weak: "cat, sunset, beach"
- Strong: "A ginger tabby cat sitting on a sandy beach at golden hour, facing the camera with soft warm backlighting, shallow depth of field, ocean waves blurred in the background"
- Be hyper-specific. The more detail you provide, the more control you have. Include all visual details: style, colors, composition, lighting, background, textures.
- Provide context and intent. Explain the purpose of the image — the model's understanding of context influences the output.
- Use step-by-step instructions for complex scenes with many elements. Break the prompt into layers: foreground, middle ground, background.
- Use "semantic negative prompts." Instead of "no cars," describe positively: "an empty, deserted street with no signs of traffic."
- Control the camera. Use photographic and cinematic terms: "wide-angle shot", "macro shot", "low-angle perspective", "bird's eye view", "rule of thirds", "shallow depth of field".
- Time perception. If the result needs real-time timeliness, mention the current time context in the prompt.
- Text in images. Place text content within double quotation marks:
A movie poster with the title "INCEPTION" in large silver metallic letters at the top
- Clearly specify and emphasize the elements that require modification. Describe reference images by their order (first image, second image), not by filename.
Skywork API Key Setup Guide (OpenClaw)
SKYWORK_API_KEY Not Configured
When the SKYWORK_API_KEY environment variable is not set, follow these steps:
1. Get API Key
Visit the Skywork website and sign in to your account:
https://skywork.ai
- Log in with your Skywork account
- Open account / Settings / API Key (https://skywork.ai/?openApiKeySetting=1)
- Create or copy your API key
If your organization uses a separate console or test environment, use the URL and credentials your team provides.
2. Configure OpenClaw
Edit the OpenClaw configuration file: ~/.openclaw/openclaw.json
In current OpenClaw, Skywork skills store the key under skills.entries.<Skill Name>.apiKey (not under env). OpenClaw will inject this value into the skill's SKYWORK_API_KEY environment when primaryEnv matches. Add or merge the following structure (adjust the skill name to match the installed skill):
{
"skills": {
"entries": {
"Skywork Design": {
"enabled": true,
"apiKey": "your_actual_skywork_api_key_here"
}
}
}
}Replace "your_actual_skywork_api_key_here" with your real key.
For multiple Skywork skills, repeat the same apiKey field on each skill entry.
3. Verify Configuration
# Check JSON format
cat ~/.openclaw/openclaw.json | python3 -m json.tool4. Restart OpenClaw
openclaw gateway restartTroubleshooting
- Ensure
~/.openclaw/openclaw.jsonexists and is valid JSON - Confirm the API key is active and not expired
- Check Skywork account status, membership, or quota if requests fail with auth or benefit errors
- Restart OpenClaw after configuration changes
Recommended: Use the OpenClaw configuration file for centralized environment management.
Branding / Visual Identity (VI)
Triggers
branding, brand identity, VI, visual identity, brand guidelines, brand kit, brand system, style guide
Defaults
- Aspect ratio: varies per deliverable (see table)
- Resolution:
2K
Consistency Strategy
A brand system demands the highest level of visual consistency — every deliverable must feel like it was designed by the same studio in the same session.
If the user provides a logo or brand assets: 1. Use them as --input-image for all subsequent deliverables 2. Extract the visual DNA: primary/secondary colors (describe exact hues), style mood (minimal, playful, corporate, etc.), shape language (rounded, angular, geometric) 3. Skip logo generation (deliverable 1) and begin from color palette or whichever deliverable is needed 4. Carry the user's existing visual language — do not reinvent it
If the user provides NO existing assets: 1. Start with brand discovery: ask about industry, target audience, brand personality (3-5 adjectives), competitors to differentiate from 2. Generate the logo first (following logo.md guidance) — the logo is the seed from which all other brand elements grow 3. Once the user approves the logo, derive everything else from it
Deliverables
Generate in this order. Each step uses --input-image from the previous to maintain consistency.
| # | Deliverable | Ratio | Description |
|---|---|---|---|
| 1 | Logo mark | 1:1 | Core brand symbol (see logo.md) |
| 2 | Color palette card | 3:2 | Primary, secondary, accent colors with hex values shown as labeled swatches |
| 3 | Typography showcase | 3:2 | Heading + body font pairing shown in sample text hierarchy |
| 4 | Pattern / texture | 1:1 | Repeatable brand pattern derived from logo shapes or brand motifs |
| 5 | Stationery mockup | 3:4 | Business card, letterhead, envelope on a styled flat-lay |
| 6 | Brand guidelines page | 3:4 | Summary layout showing logo usage rules, color specs, and type hierarchy |
Not all deliverables are always needed. Ask the user which items they want. If unclear, generate deliverables 1-5 (skip the guidelines page unless requested).
Design Thinking
1. Brand personality drives everything — Before any visual work, define 3-5 personality adjectives (e.g., "bold, modern, trustworthy"). Every design choice — color, shape, typography — must trace back to these words 2. Differentiate, don't decorate — Research the competitive landscape. If every competitor uses blue and sans-serif, the new brand needs a reason to follow suit or a strategy to stand apart. Ask the user about key competitors 3. System over individual pieces — A brand is not a logo + some colors. It's a system where every element reinforces the others. The pattern echoes the logo shapes; the color palette reflects the logo colors; the typography matches the logo's personality 4. Constraint breeds cohesion — Fewer colors, fewer fonts, fewer design elements = stronger brand recognition. Resist the urge to add variety; embrace deliberate limitation 5. Test across touchpoints mentally — Before finalizing, imagine the brand on a website header, a mobile app icon, a product label, a social media post, and a conference badge. If it breaks at any touchpoint, simplify
Aesthetics Guidelines
- Color system: Define exactly 1 primary color, 1-2 secondary colors, and 1-2 neutral tones. Every color must have a purpose (primary = brand recognition, secondary = accents/CTAs, neutrals = background/text). Describe colors with precise hue names, not just "blue" — say "deep navy blue" or "electric cyan"
- Typography pairing: Choose one display/heading font and one body font. They should contrast in weight/style but share a visual kinship (similar x-height, complementary proportions). Describe the fonts by character: "geometric sans-serif with uniform stroke width" not just "modern font"
- Logo-derived patterns: Brand patterns should be abstracted from logo geometry — repeated shapes, rotated elements, or deconstructed forms from the mark. This creates subliminal brand recognition without showing the logo itself
- Mockup realism: Stationery and application mockups should feel physically real — paper texture, subtle shadows, realistic perspective. This elevates perceived brand quality. Specify material finish: "matte uncoated paper", "glossy card stock", "embossed letterpress"
- Whitespace as brand signal: Premium brands use generous whitespace; energetic brands can be denser. The amount of whitespace IS a brand decision. Define it and enforce it consistently
- Visual rhythm: Repeated spacing, consistent margins, and aligned elements across all deliverables create the invisible grid that holds a brand together. Describe the layout structure explicitly in each prompt
Prompt Rules
- Use the same style descriptors (color names, style keywords, mood adjectives) across every prompt — copy-paste, don't paraphrase
- Always pass previous output via
--input-imagewhen generating subsequent deliverables - Describe colors with exact hue names: "warm coral #FF6B6B" not just "red"
- Include brand personality adjectives in every prompt: "reflecting a bold, modern, trustworthy brand identity"
- For stationery mockups: specify material, finish, and scene context ("on a marble desk with soft natural light")
Brochure
Triggers
brochure, pamphlet, leaflet, tri-fold, bi-fold, flyer, booklet, handout
Defaults
- Resolution:
2K
Formats & Image Count
Generate one image per physical side, with all panels of that side composed together in a single image.
| Format | Images | Aspect ratio | Description |
|---|---|---|---|
| Single page / Flyer | 1 | 3:4 | All content on one image |
| Bi-fold | 2 | 16:9 | Outside (front + back side by side), Inside (inside-left + inside-right side by side) |
| Tri-fold | 2 | 21:9 | Outside (3 panels side by side), Inside (3 panels side by side) |
| Multi-page booklet | 1 per spread | 16:9 | Each 2-page spread as one image |
This approach ensures visual consistency within each side and reduces generation calls.
Consistency Strategy
A brochure is a multi-panel system — visual inconsistency between panels destroys professionalism instantly.
If the user provides brand assets or a reference image (logo, brand guidelines, existing design): 1. Use them as --input-image for every generation 2. Extract the visual DNA: color palette, typography style, layout density, mood 3. Maintain the established brand language — do not introduce new visual elements
If the user provides NO reference: 1. Generate the outside face first — this sets the entire visual direction: color palette, typography style, imagery mood, layout density 2. Do NOT proceed to the inside face until the user approves the outside direction 3. Use the approved outside face as --input-image when generating the inside face
Workflow
Step 1: Clarify Scope
Before generating, confirm with the user:
- Format: single page, bi-fold, tri-fold, or booklet (how many pages?)
- Content: what text/information goes on each panel? (get the actual copy or at minimum the topic per panel)
- Tone: corporate, playful, luxurious, informational, promotional?
- Brand assets: any existing logo, colors, or style to match?
Step 2: Outside Face
Generate the outside face as a single image with all panels composed together.
- Bi-fold (
16:9): left half = back cover, right half = front cover. Name:...-outside.png - Tri-fold (
21:9): left = back cover, center = front flap, right = front cover. Name:...-outside.png - The front cover area must be the visual hero — it establishes the design direction
- Describe the full layout in the prompt: "a tri-fold brochure outside face, 3 panels side by side separated by subtle fold lines, left panel is the back cover with contact info, center panel is the front flap with a teaser, right panel is the front cover with the main headline and hero image"
- Wait for user approval before continuing
Step 3: Inside Face
Generate the inside face as a single image, using the outside face as --input-image.
- Bi-fold (
16:9): left = inside-left, right = inside-right. Name:...-inside.png - Tri-fold (
21:9): left = inside-left, center = inside-center, right = inside-right. Name:...-inside.png - Describe: "a tri-fold brochure inside face, 3 panels side by side separated by subtle fold lines, matching the style of the reference image, left panel covers [topic], center panel covers [topic], right panel covers [topic]"
Design Thinking
1. Design for the fold — In bi-fold and tri-fold formats, the fold line is a real physical constraint. Include subtle fold line indicators in the prompt. Critical content must not straddle the fold. The front panel is the first impression; the first inner panel revealed on opening is the "aha" moment 2. Sequential storytelling — A brochure is read in a specific physical order. Design the content flow to match: hook (front cover) → expand (inner panels) → convince (data/testimonials) → act (back cover CTA). Each panel should make the reader want to see the next 3. One hero per panel — Each panel gets one dominant visual or message. Competing elements on the same panel create confusion. If you have 4 key messages and 4 panels, the layout is obvious — one per panel 4. Print thinking — Brochures are physical objects. Design for how they'll be held, folded, and read. Consider that colors look different on paper than on screen — bright neon colors often print poorly; rich, slightly muted tones print beautifully 5. The back cover matters — Many designers neglect it. The back is often the first thing someone sees on a desk or shelf. A clean back with logo, tagline, and contact info reinforces brand presence. Never leave it as an afterthought
Aesthetics Guidelines
- Cross-panel color system: Define a primary background color, a secondary accent, and a text color. Use these consistently across ALL panels. Do not introduce a new color on the inside that wasn't established on the outside
- Typography discipline: One heading font, one body font, applied identically across all panels. Heading size, body size, and line spacing should be uniform. Describe these in every prompt: "bold sans-serif headings, regular serif body text"
- Image style consistency: If the outside uses photography, the inside uses photography. If the outside uses illustration, the inside uses illustration. Never mix photographic and illustrated imagery in the same brochure
- Layout grid: All panels should share the same margin width, column structure, and content alignment. Describe the grid: "each panel has centered single-column layout with generous margins"
- Visual breathing room: Each panel needs whitespace. For text-heavy panels, increase margins rather than shrink type size. Cramped panels signal amateur design
- Print-safe colors: Avoid pure RGB brights that can't reproduce in CMYK. Specify "print-ready" in the prompt. Rich blacks, deep navies, and warm neutrals look premium in print
Prompt Rules
- Describe ALL panels of the side in a single prompt: "3 panels side by side, separated by subtle fold lines"
- Specify what content goes in each panel by position: "left panel shows..., center panel shows..., right panel shows..."
- Put all text content in double quotes for accurate rendering
- Always pass the outside face via
--input-imagewhen generating the inside face - Use the same style/mood phrase for both sides — copy-paste, don't paraphrase
E-commerce Product Images
Triggers
amazon, product listing, product photo, e-commerce, shopify, product shot, packshot, white background product, marketplace image
Defaults
- Aspect ratio:
1:1 - Resolution:
4K(Amazon requires min 1600px on longest side for zoom; recommend 2000px+)
Image Set
A complete Amazon listing supports up to 7 images. Images are split into required (always generate) and optional (generate only when the user requests, or when the product clearly benefits from it).
Ask the user for product details, key selling points, and target audience before starting. By default, generate the 3 required images only.
Required Images (always generate)
Image 1: Main Image (Hero Shot)
The most critical image — determines click-through rate in search results.
- Pure white background (RGB 255,255,255) — no gradients, no shadows on background, no off-white
- Product only — absolutely no text, logos, badges, watermarks, props, or accessories not included in the sale
- Fill 85%+ of the frame — the product should feel large and dominant, with minimal white border
- Single, clean angle — front-facing or 3/4 angle that best shows the product's shape and identity
- Studio-quality lighting — soft, even lighting with subtle shadow beneath the product for grounding. No harsh reflections or dark spots
- No mannequins — for apparel, show on a human model or as a clean flat-lay. Ghost mannequin (invisible mannequin) effect is acceptable
Image 2: Lifestyle / In-Use Image
- Product shown in a realistic usage context — a person using it, or the product in its natural environment
- Environment should match the target customer's aspirational setting (modern kitchen, outdoor adventure, minimalist desk, etc.)
- Warm, natural lighting. The scene should feel authentic, not stock-photo-generic
- Product must remain the clear focal point — the scene supports but never overwhelms
Image 3: Feature Callout Infographic
- Annotated diagram highlighting 4-6 key selling points with callout lines/icons
- Clean layout: product centered, callout text arranged around it with clear pointers
- Use short, benefit-driven phrases (not feature specs). E.g., "Keeps drinks cold 24 hrs" not "Double-wall vacuum insulation"
- Consistent icon style (all outline or all filled, same line weight)
- Background: solid white or very light neutral. No busy patterns
Optional Images (generate when user requests or product needs it)
Image 4: Alternate Angle / Back View
- Show the product from a different perspective (back, side, top-down, or 3/4 from the opposite side)
- Same pure white background and lighting as the main image
- Reveals details not visible in the hero shot (back panel, ports, closure, label)
- When to suggest: products with functional back/side elements (electronics, bags, furniture)
Image 5: Detail / Close-Up Shots
- Macro-level close-ups of materials, textures, stitching, hardware, buttons, or key components
- Can be a collage of 2-3 close-ups in a grid layout, or a single dramatic close-up
- Demonstrates build quality and craftsmanship — this image builds trust
- Same lighting temperature as other images for visual consistency
- When to suggest: products where material quality is a selling point (leather goods, jewelry, textiles, premium hardware)
Image 6: Scale / Dimensions Reference
- Show the product next to a common reference object (hand, phone, pen, coin) or with explicit dimension annotations
- For apparel/wearables: a size chart with clear measurements table
- For multi-size products: side-by-side comparison of available sizes
- When to suggest: products where size is frequently misjudged (furniture, bags, small accessories, apparel)
Image 7: Package Contents / What's in the Box
- Flat-lay or arranged display of everything included: the product, accessories, cables, manuals, packaging
- Clean white or light background, each item clearly separated and identifiable
- Optional: small text labels identifying each component
- When to suggest: products that ship with multiple accessories (electronics kits, tool sets, gift boxes)
Design Thinking
1. Understand the purchase decision — What hesitation stops a buyer? Design each image to remove a specific objection (Is it well-made? Will it fit? What's included? How does it look in real life?) 2. Design for the search grid first — The main image competes in a grid of 20+ products at thumbnail size. It must be instantly recognizable, well-lit, and product-dominant. Overly clever compositions fail at thumbnail scale 3. Tell a visual story — The required 3 images cover the core narrative: attract (main) → desire (lifestyle) → understand (features). Optional images deepen the story when needed: explore (angles) → trust (details) → confirm (size) → commit (contents) 4. Consistency is professionalism — All 7 images must feel like they belong to the same listing. Same color temperature, same quality level, same visual language. Mixed styles signal amateur sellers 5. Benefit over feature — Every image should communicate why the customer's life improves, not just what the product is. A lifestyle shot sells the dream; a feature callout sells the solution
Aesthetics Guidelines
- Lighting consistency: Use the same soft, diffused studio lighting across all white-background shots (images 1, 2, 5, 7). Lifestyle shots (image 3) can use warmer natural light but should not clash in color temperature
- Color accuracy: Product colors must look accurate — what the customer sees should match what arrives. Avoid over-saturated or heavily graded images. Describe the exact product color in the prompt
- Composition for square format: Every image will be viewed in 1:1. Center the product with even margins. For infographic images, maintain a clear central anchor with callouts radiating outward
- Typography in secondary images: Use clean, sans-serif fonts. Maximum 2 font sizes (heading + body). Text must be readable at mobile phone size — if a callout requires squinting, it's too small or too wordy
- Visual hierarchy in infographics: The product image dominates; text callouts are secondary. Never let annotations overwhelm the product. Use thin callout lines, not thick arrows
- Professional restraint: No starburst badges, no "BEST SELLER" stamps, no red/yellow sale graphics, no clip-art icons. These signal cheap quality. Let the product photography speak
Prompt Rules
- Main image: specify "pure white background RGB 255,255,255, studio photography, product centered, soft even lighting, subtle ground shadow"
- All images should default to photorealistic style ("professional product photography") unless the user or platform context calls for a different approach (e.g., illustrated style for Xiaohongshu)
- Put all text content in double quotes for accurate rendering
- Maintain consistent lighting and color temperature across the set — reference the main image with
--input-imagefor subsequent shots - Describe the product material, color, and finish explicitly (e.g., "brushed stainless steel with matte black silicone grip") — do not leave surface details to chance
Infographic
Triggers
infographic, data visualization, chart, diagram, flowchart, timeline, statistics, process diagram
Defaults
- Aspect ratio:
2:3(vertical scroll); use16:9for presentation slides - Resolution:
2K
Content Integrity
- Key information must not be lost: Core conclusions, key figures, key steps must be preserved from the source
- No fabrication: Do not invent data, conclusions, or causal relationships absent from the original material
- No relationship distortion: Comparisons must not become processes; correlations must not become causations
- Data accuracy is non-negotiable: Numbers, ratios, timeframes, and rankings must be exact
- Compress without distortion: Abbreviation is allowed; altering the original meaning is not
Design Thinking
1. Identify the core message — What is the single takeaway the viewer should remember? 2. Choose the right structure — Match the infographic type (timeline, flowchart, comparison, etc.) to the logical relationship in the content. Do not force data into a mismatched layout 3. Establish information hierarchy — Primary data/conclusion at the top or center; supporting details flow outward or downward 4. Group related items — Use spatial proximity, shared color, or enclosing shapes to signal that items belong together 5. Guide the reading path — Use arrows, numbering, or visual flow (top→bottom, left→right) so the viewer never wonders "where do I look next?"
Aesthetics Guidelines
- Color palette: Pick 1 primary + 1-2 accent colors; derive lighter/darker shades from these rather than adding unrelated hues. Ensure sufficient contrast (WCAG AA minimum) between text and background
- Typography: Use no more than 2 font families — one for headings, one for body. Maintain consistent size hierarchy across sections
- Icons and decoration: Icons should serve comprehension, not decoration. Keep the total count proportional to the number of information modules. Use a single, line-weight-consistent icon set — never mix outline, filled, and hand-drawn styles
- White space: Every section needs breathing room. Cramped layouts destroy readability — when in doubt, cut content rather than shrink spacing
- Alignment and grid: All elements should snap to a visible or implied grid. Misaligned text or uneven margins signal low quality instantly
- Visual consistency: Repeated elements (cards, dividers, bullet styles) must look identical throughout. Inconsistency erodes trust in the data
Prompt Rules
- Specify all text and numbers in double quotes — maximizes text rendering accuracy
- Specify exact data values — do not let the model invent numbers
Logo Design
Triggers
logo, brand mark, icon design, app icon, favicon, logomark, logo concept, trademark
Defaults
- Aspect ratio:
1:1 - Resolution:
2K
Design Thinking
1. Clarify brand essence — Before generating, ask: What does the brand stand for? What emotion should the mark evoke? (trustworthy, playful, premium, techy…) 2. Pick the right logo type — A tech startup may suit an abstract mark; a bakery fits a pictorial mark; a law firm calls for a lettermark or emblem. Match type to industry and personality 3. Start with concept, not style — Define the core metaphor/symbol first (e.g., "shield = protection", "leaf = growth"), then explore stylistic variations around that concept 4. Design for scalability — The mark must be recognizable from a billboard down to a 16px favicon. If a detail vanishes at small size, it shouldn't be there 5. Test in context — Mentally place the logo on business cards, app icons, social avatars, and merchandise. A good mark works across all touchpoints
Aesthetics Guidelines
- Shape language: Use deliberate geometric shapes — circles convey friendliness, squares convey stability, triangles convey dynamism. Avoid arbitrary organic blobs unless the brand calls for it
- Color restraint: Limit the palette to 1-3 colors max. Each color should carry meaning (e.g., blue = trust, green = growth). The logo must also work in pure monochrome
- Negative space: Leverage negative space for cleverness and memorability (think FedEx arrow, NBC peacock). Describe negative-space concepts explicitly in the prompt
- Symmetry and balance: Logos benefit from optical balance — either symmetric or deliberately asymmetric with a clear visual anchor. Avoid unintentionally lopsided compositions
- Line weight consistency: Whether thick and bold or thin and elegant, line weights should be uniform throughout. Mixed weights look unfinished
- Avoid trends, aim for timeless: Skip gradients-of-the-year, overly complex 3D effects, or style fads. The best logos are simple enough to age well
Prompt Rules
- Solid background — Always specify a solid color background (e.g., "on a white background"). Do not request transparency
- Describe the concept, not the outcome — Write "a shield formed by two overlapping leaves" rather than "a logo that represents security and nature". Concrete visual descriptions produce better results than abstract adjectives
- Specify style explicitly — State the rendering style: flat vector, geometric minimal, line art, isometric, etc. Without this, models default to inconsistent semi-realistic styles
- Constrain complexity — Describe at most 2-3 visual elements. Every added element increases the chance of muddy composition. If it wouldn't survive at 16x16, remove it from the prompt
- State what to avoid — Use negative constraints to exclude unwanted elements (e.g., "no photorealistic textures, no busy background"). Be selective — only exclude what truly conflicts with the concept; over-constraining kills creative possibilities
- Anchor the composition — Specify spatial relationships: "centered", "contained within a circle", "symmetrical along the vertical axis". Without this, models produce off-balance layouts
- About Text Render - Be clear about the text, the font style (descriptively), and the overall design.
Poster
Triggers
poster, banner, event poster, promotional, marketing, movie poster, concert poster, advertising
Defaults
- Aspect ratio:
3:4 - Resolution:
2K
Visual Hierarchy
Specify this top-to-bottom reading flow in the prompt:
1. Eye-catcher — Hero image or bold visual 2. Headline — Main message in large, prominent text 3. Supporting info — Date, location, secondary details 4. Call to action — CTA text, website, QR code area
Design Thinking
1. Define the communication goal — What should the viewer do after seeing this poster? (attend an event, buy a product, feel an emotion, learn something). Every design choice serves this goal 2. Identify the single hero element — A poster has ~2 seconds to grab attention. Decide what dominates: a bold image, a striking headline, or a dramatic color. Never compete for attention with multiple heroes 3. Design for viewing distance — A street poster is read from 3 meters; a social share from 15cm. Scale type and detail accordingly. When in doubt, go bigger and bolder 4. Create emotional resonance — The best posters trigger a feeling before the brain processes the words. Choose imagery, color, and composition that evoke the target emotion (urgency, excitement, elegance, nostalgia) 5. Respect the medium — A concert poster can be raw and experimental; a corporate event poster needs polish. Match the visual style to the audience expectation
Aesthetics Guidelines
- Focal point: Every poster needs one unmistakable focal point. Use scale, contrast, color, or isolation to make it dominant. If you squint and nothing pops, the design fails
- Color mood: Use color psychology intentionally — warm tones (red/orange) for energy and urgency, cool tones (blue/green) for calm and trust, high saturation for youth and fun, muted tones for sophistication. Limit to 2-3 dominant colors plus neutrals
- Typography as design: In posters, type is not just information — it's a visual element. Oversized headlines, creative text placement, and expressive font choices can BE the design. Describe specific type treatments in the prompt (e.g., "massive bold sans-serif title filling the top third")
- Composition techniques: Use the rule of thirds, golden ratio, or bold centered symmetry. Describe the layout structure explicitly: "centered composition with radial symmetry" or "off-center subject with text balanced on the opposite side"
- Contrast is everything: Text must be legible at a glance. If placing text over imagery, specify overlay treatments.
- Breathing room: Resist the urge to fill every corner. Generous margins and whitespace make the key message louder, not quieter
Prompt Rules
- Clarify design direction before generating — ask user about style, color mood, and tone if unspecified
- One poster = one clear message
- Put all text content in double quotes for accurate rendering
- For a series, use
--input-imagefrom the first to maintain consistency
Social Media
Triggers
social media, instagram, twitter, X, facebook, linkedin, xiaohongshu, douyin, TikTok, post, story, reels, banner, thumbnail, cover photo, OG image
Defaults
- Resolution:
2K - Aspect ratio: depends on platform (see table); default
1:1if unspecified
Platform Aspect Ratio Map
| Platform | Format | Aspect ratio |
|---|---|---|
| Post | 1:1 or 4:5 | |
| Story / Reels | 9:16 | |
| Twitter / X | Post image | 16:9 |
| Post | 1:1 or 4:5 | |
| Cover photo | 16:9 | |
| Post | 1:1 or 4:5 | |
| Banner | 16:9 | |
| Xiaohongshu (RED) | Post | 3:4 |
| Douyin / TikTok | Cover | 9:16 |
| YouTube | Thumbnail | 16:9 |
| Pin | 2:3 |
Design Thinking
1. Understand the scroll context — Your image competes with hundreds of others in a feed. Design for the 0.3-second thumb-stop moment: if the core message isn't instantly clear, the post loses 2. Platform personality matters — Xiaohongshu rewards polished, aspirational aesthetics; Twitter/X favors bold statements and memes; LinkedIn expects professional clarity; Instagram rewards visual beauty. Tailor the visual tone to the platform 3. Design for the crop — Platforms display thumbnails, circular avatars, and cropped previews differently. Keep the hero element centered and away from edges. Mentally preview how the image looks in a feed grid 4. Tell a micro-story — The best social images create curiosity or emotion in a single frame. A before/after, a surprising visual, or a bold statement paired with an arresting image outperforms generic graphics 5. Brand consistency across posts — If creating a series, define a visual system upfront: consistent color palette, layout template, font style. Followers should recognize your brand before reading the handle
Aesthetics Guidelines
- Thumb-stop color: Use bold, saturated colors that pop on both light and dark mode feeds. Avoid muddy mid-tones. Test mentally: would this stand out in a grid of muted photos?
- Text hierarchy at phone scale: On mobile, body text under 14pt equivalent is invisible. Use 2 levels max: a punchy headline and one short supporting line. If you need more text, it belongs in the caption, not the image
- Safe zones: Keep all critical elements (text, faces, key visuals) within the center 80% of the canvas. Platform UI overlays, cropping, and rounded corners eat the edges
- Visual consistency for series: Define a template system — same background color/texture, same text position, same accent color. Describe this template explicitly in the prompt and use
--input-imageto enforce it - Platform-native feel: The image should feel native to the platform, not like a repurposed print ad. Xiaohongshu posts feel editorial; Instagram Stories feel immersive; LinkedIn posts feel clean and informative. Describe the target platform aesthetic in the prompt
- Authenticity over polish: Overly corporate, stock-photo-style graphics underperform on most platforms. Favor genuine, relatable, or visually surprising imagery. Describe specific scenes rather than generic concepts
Prompt Rules
- Design for thumb-stopping: clear focal point and strong visual contrast. Adapt color intensity to the platform.
- Keep text in safe zones — away from edges where platforms crop
- Put all text content in double quotes for accurate rendering
- Headlines must be readable at thumbnail size
- For a series, use
--input-imagefrom the first post to maintain visual consistency
Storyboard
Triggers
storyboard, scene breakdown, shot list, animatic, shot planning, visual script, frame-by-frame
Defaults
- Aspect ratio:
16:9 - Resolution:
2K
Consistency Strategy
Storyboards live or die on visual consistency — the same characters, locations, and style must carry across every frame.
If the user provides reference images (character designs, mood boards, style references): 1. Use them as --input-image for every subsequent frame 2. Extract and document the visual DNA: art style, color palette, character features, lighting mood 3. Repeat these descriptors verbatim in every frame prompt
If the user provides NO reference images: 1. Begin with Phase 1 (story breakdown) and Phase 2 (reference sheet generation) below — do NOT skip to frame generation 2. The reference sheets become the source of truth for all subsequent frames
Workflow
Phase 1: Story Breakdown
Analyze the narrative and produce a shot list before generating any images. Define:
- Scene count and sequence — number of frames, scene transitions, pacing
- Character bible — each main character with exact appearance descriptors: name, age, build, hair color/style, skin tone, clothing (color, material, fit), distinguishing features (scars, glasses, accessories). Be exhaustively specific — vague descriptors cause drift
- Location directory — each recurring location with architectural style, lighting conditions, color atmosphere, key props
- Art style lock — choose ONE style phrase and use it verbatim in every prompt (e.g., "Makoto Shinkai anime style with soft volumetric lighting" or "Moebius-inspired line art with flat pastel colors"). Never paraphrase or vary the style description
Phase 2: Reference Sheet Generation
Generate reference sheets before any storyboard frames. These anchor visual consistency.
1. Character sheets: For each main character — full body, front-facing, neutral pose, plain background. Include 3/4 view and profile if the character appears in many frames. Name: ...-char-[name].png 2. Location sheets: For each recurring location — wide establishing view with characteristic lighting. Name: ...-location-[name].png 3. Style reference: If the art style is complex, generate one standalone "style sample" frame to use as visual anchor
Phase 3: Frame-by-Frame Generation
Generate each frame sequentially. For every frame:
- Pass relevant character/location sheets via
--input-image - For multiple characters in one frame, pass all relevant sheets as multiple
-iarguments - Copy-paste the exact character description and style phrase from Phase 1 — do not rephrase
- Describe the shot composition using cinematic language: camera angle, distance, framing
- Name:
...-shot-01.png,...-shot-02.png, ...
Phase 4: Review and Revise
Re-generate inconsistent frames using --input-image from both the character sheet and the nearest consistent frame. Reference two anchors simultaneously for maximum consistency.
Design Thinking
1. Serve the story, not the art — Every frame exists to advance the narrative. Ask: what must the viewer understand from this frame? If a frame doesn't convey new information or emotion, it shouldn't exist 2. Control pacing through composition — Wide establishing shots slow the pace and set context; close-ups accelerate emotion and tension; medium shots carry dialogue. Vary shot types to create rhythm 3. Plan transitions — Adjacent frames should flow visually. If frame 5 ends on a character looking right, frame 6 should have the subject of their gaze on the left. Continuity of eye-line and spatial direction matters 4. Emotion through camera language — Low angles convey power/menace; high angles convey vulnerability; Dutch angles convey unease; eye-level conveys neutrality. Choose deliberately 5. Less is more — A 12-frame storyboard that tells a clear story beats a 30-frame board with redundant shots. Edit ruthlessly before generating
Aesthetics Guidelines
- Style coherence is absolute: Every frame must look like it was drawn by the same artist. The style phrase from Phase 1 is sacred — never modify, abbreviate, or "improve" it across frames
- Color continuity: Establish a scene-level color palette (warm interiors, cool exteriors, etc.) and maintain it. Dramatic shifts in color should only occur at intentional story beats (e.g., flashback = desaturated, climax = high contrast)
- Consistent character scale: Characters should maintain proportional relationships across frames. If character A is taller than B in frame 1, this must hold in frame 10
- Lighting as storytelling: Match lighting to emotional tone — soft diffused light for calm moments, harsh directional light for conflict, silhouette for mystery. Describe the lighting direction and quality in every frame prompt
- Compositional clarity: Each frame should have a clear focal point. Use the rule of thirds. The viewer's eye should never wander aimlessly — lead it with contrast, positioning, or character gaze direction
- Negative space for text/annotation: If the storyboard will include dialogue or action notes, leave intentional space (typically bottom 15%) for text overlay
Prompt Rules
- Copy-paste the art style phrase identically into every frame prompt — never paraphrase
- Copy-paste full character descriptions into each frame where that character appears
- Always pass reference sheets via
--input-image— verbal description alone causes drift - Use cinematic shot terminology: "wide shot", "close-up", "over-the-shoulder", "POV shot", "two-shot"
- Describe lighting direction and quality explicitly: "warm golden key light from upper left, cool blue fill from right"
- When a frame includes dialogue, enclose the spoken text in quotation marks within the prompt (e.g.,
a speech bubble saying "Let's go!"). Define the speech bubble style once in Phase 1 (shape, font style) based on the art direction, and reuse that description verbatim across all frames
SKYWORK_GATEWAY_URL = "https://api-tools.skywork.ai/theme-gateway"
POD_TYPE = ""
#!/usr/bin/env python3
"""
Generate or edit images via backend image API.
Usage:
python3 generate_image.py --prompt "description" --filename "out.png"
python3 generate_image.py --prompt "edit instructions" --filename "out.png" --input-image "ref.png"
python3 generate_image.py --prompt "combine styles" --filename "out.png" -i "ref1.png" -i "ref2.png"
"""
import argparse
import base64
import json
import mimetypes
import os
import sys
import urllib.request
import urllib.error
from pathlib import Path
from constant import SKYWORK_GATEWAY_URL, POD_TYPE
VALID_ASPECT_RATIOS = [
"1:1", "2:3", "3:2", "3:4", "4:3",
"4:5", "5:4", "9:16", "16:9", "21:9",
]
def load_image_base64(path: str) -> tuple[str, str]:
"""Return (base64_data, mime_type) for a local image file."""
p = Path(path)
if not p.exists():
print(f"Error: Input image not found: {path}", file=sys.stderr)
sys.exit(1)
mime = mimetypes.guess_type(str(p))[0] or "image/png"
return base64.b64encode(p.read_bytes()).decode(), mime
# ---------------------------------------------------------------------------
# SSE parsing
# ---------------------------------------------------------------------------
def parse_sse_stream(resp):
"""Yield (event_type, data_dict) from an SSE byte stream."""
cur_event = None
cur_data = None
for line in resp:
line = line.decode("utf-8", errors="replace").rstrip("\r\n")
if line == "":
if cur_event is not None and cur_data is not None:
try:
data = json.loads(cur_data) if cur_data else {}
except json.JSONDecodeError:
data = {}
if not isinstance(data, dict):
data = {}
yield cur_event, data
cur_event = None
cur_data = None
continue
if line.startswith("event:"):
cur_event = line[6:].strip()
elif line.startswith("data:"):
cur_data = line[5:].strip()
if cur_event is not None and cur_data is not None:
try:
data = json.loads(cur_data) if cur_data else {}
except json.JSONDecodeError:
data = {}
if not isinstance(data, dict):
data = {}
yield cur_event, data
from skywork_auth import get_skywork_api_key
def call_sse(url: str, body: dict) -> dict | None:
"""POST to an SSE endpoint. Print progress, return success payload or exit on error."""
skywork_api_key = get_skywork_api_key()
if not skywork_api_key:
print("[error] SKYWORK_API_KEY is required", file=sys.stderr)
sys.exit(1)
payload = json.dumps(body).encode("utf-8")
headers={
"Content-Type": "application/json",
"Accept": "text/event-stream",
"Authorization": f"Bearer {skywork_api_key}",
}
req = urllib.request.Request(
url, data=payload, method="POST",
headers=headers,
)
success_data = None
try:
with urllib.request.urlopen(req, timeout=300) as resp:
for event_type, event_data in parse_sse_stream(resp):
if event_type == "progress":
pct = event_data.get("percentage", 0)
msg = event_data.get("message", "")
print(f"[{pct:.0f}%] {msg}", flush=True)
elif event_type == "success":
success_data = event_data
elif event_type == "error":
print(f"Error: {event_data.get('message', event_data)}", file=sys.stderr)
sys.exit(1)
except urllib.error.HTTPError as e:
body_text = e.read().decode("utf-8", errors="replace")
print(f"HTTP error {e.code}: {body_text}", file=sys.stderr)
sys.exit(1)
except Exception as e:
print(f"Request failed: {e}", file=sys.stderr)
sys.exit(1)
return success_data
def download_image(file_url: str, output_path: str) -> None:
"""Download the result image from a URL (OSS CDN)."""
out_abs = os.path.abspath(output_path)
os.makedirs(os.path.dirname(out_abs) or ".", exist_ok=True)
try:
req = urllib.request.Request(file_url, method="GET")
with urllib.request.urlopen(req, timeout=120) as r:
with open(out_abs, "wb") as f:
f.write(r.read())
print(f"\nImage saved: {out_abs}")
print(f"OSS URL: {file_url}")
print("Please notice that the local path and OSS URL are provided for user reference.")
except Exception as e:
print(f"Download failed: {e}", file=sys.stderr)
sys.exit(1)
# ---------------------------------------------------------------------------
# main
# ---------------------------------------------------------------------------
def main():
parser = argparse.ArgumentParser(description="Generate/edit images via backend API")
parser.add_argument("--prompt", "-p", required=True, help="Image prompt or edit instructions")
parser.add_argument("--filename", "-f", required=True, help="Output filename")
parser.add_argument("--input-image", "-i", action="append", help="Input image(s) for editing (repeatable)")
parser.add_argument("--aspect-ratio", "-a", choices=VALID_ASPECT_RATIOS, default=None, help="Aspect ratio")
parser.add_argument("--resolution", "-r", choices=["1K", "2K", "4K"], default="2K",
help="Output resolution (default: 2K)")
args = parser.parse_args()
base_url = SKYWORK_GATEWAY_URL
if args.input_image:
# --- Edit mode: POST /api/sse/image/update ---
images = []
for img_path in args.input_image:
b64, mime = load_image_base64(img_path)
images.append({"base64": b64, "mime_type": mime})
operation: dict = {
"action": "edit",
"prompt": args.prompt,
"source_images": images,
"resolution": args.resolution,
}
if args.aspect_ratio:
operation["aspect_ratio"] = args.aspect_ratio
body = {
"file_id": "from-local",
"operations": [operation],
}
mode = "Editing"
url = f"{base_url}/api/sse/image/update"
else:
# --- Generate mode: POST /api/sse/image/create ---
body: dict = {
"title": args.prompt[:60],
"content": args.prompt,
"style": {},
"options": {"resolution": args.resolution},
}
if args.aspect_ratio:
body["style"]["aspect_ratio"] = args.aspect_ratio
mode = "Generating"
url = f"{base_url}/api/sse/image/create"
print(f"{mode} image (resolution={args.resolution}, aspect_ratio={args.aspect_ratio or 'auto'})...")
print("This may take 30-120 seconds. Please wait...")
body["source_platform"] = "skyclaw" if POD_TYPE == "skyclaw" else ""
result = call_sse(url, body)
if not result:
print("No success response from server.", file=sys.stderr)
sys.exit(1)
file_url = result.get("file_url", "")
if file_url:
download_image(file_url, args.filename)
else:
print("Warning: No file_url in response.", file=sys.stderr)
file_path = result.get("file_path", "")
if file_path:
print(f"Server file path: {file_path}")
if __name__ == "__main__":
main()
import os
from typing import Optional
def get_skywork_api_key() -> Optional[str]:
"""
Returns skywork api key.
"""
api_key = os.environ.get("SKYWORK_API_KEY", "")
if not api_key:
print("SKYWORK_API_KEY is not set.")
return None
return api_keyRelated skills
How it compares
Use skywork design for Skywork-native mockup iteration; pick code-first frontend skills when designs are finalized and only implementation remains.
FAQ
What platform does skywork design use for mockups?
skywork design generates and refines layouts inside Skywork, producing brand-consistent mockups with clear visual hierarchy. Developers use outputs to validate screen structure before committing React or native frontend implementation resources.
When should developers invoke skywork design?
Developers should invoke skywork design when UI direction is unsettled and stakeholders need mockups before engineering sprints. The skill focuses on layout and hierarchy refinement rather than shipping production component code.