@lebtiga/sonic-agent 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +223 -0
- package/README.md +61 -0
- package/bin/sonic.js +304 -0
- package/lib/index.js +20 -0
- package/lib/installer.js +156 -0
- package/lib/license.js +48 -0
- package/package.json +46 -0
- package/plugin/.claude-plugin/plugin.json +13 -0
- package/plugin/README.md +100 -0
- package/plugin/agents/sonic.md +80 -0
- package/plugin/commands/sonic-build.md +145 -0
- package/plugin/commands/sonic-help.md +71 -0
- package/plugin/skills/accessibility-qa/SKILL.md +160 -0
- package/plugin/skills/accessibility-qa/templates/accessibility-qa-report-template.md +123 -0
- package/plugin/skills/accessibility-qa/templates/wcag-compliance-statement.md +70 -0
- package/plugin/skills/aka-wireframe-wp/SKILL.md +149 -0
- package/plugin/skills/aka-wireframe-wp/assets/aka-framework-theme/README.md +190 -0
- package/plugin/skills/aka-wireframe-wp/assets/aka-framework-theme/footer.php +49 -0
- package/plugin/skills/aka-wireframe-wp/assets/aka-framework-theme/functions.php +395 -0
- package/plugin/skills/aka-wireframe-wp/assets/aka-framework-theme/header.php +58 -0
- package/plugin/skills/aka-wireframe-wp/assets/aka-framework-theme/index.php +39 -0
- package/plugin/skills/aka-wireframe-wp/assets/aka-framework-theme/page-answer.php +62 -0
- package/plugin/skills/aka-wireframe-wp/assets/aka-framework-theme/page-authority-hub.php +122 -0
- package/plugin/skills/aka-wireframe-wp/assets/aka-framework-theme/page-knowledge.php +58 -0
- package/plugin/skills/aka-wireframe-wp/assets/aka-framework-theme/style.css +633 -0
- package/plugin/skills/aka-wireframe-wp/references/content-generator.md +371 -0
- package/plugin/skills/aka-wireframe-wp/references/internal-linker.md +430 -0
- package/plugin/skills/aka-wireframe-wp/references/orchestrator.md +269 -0
- package/plugin/skills/aka-wireframe-wp/references/prompts-library.md +880 -0
- package/plugin/skills/aka-wireframe-wp/references/seo-optimizer.md +433 -0
- package/plugin/skills/aka-wireframe-wp/references/strategy-planner.md +317 -0
- package/plugin/skills/aka-wireframe-wp/references/wordpress-deployer.md +545 -0
- package/plugin/skills/authority-site-builder/SKILL.md +138 -0
- package/plugin/skills/brand-philosophy/SKILL.md +77 -0
- package/plugin/skills/freepik-spaces/SKILL.md +122 -0
- package/plugin/skills/freepik-spaces/docs/automation-guide.md +233 -0
- package/plugin/skills/freepik-spaces/docs/research-notes.md +264 -0
- package/plugin/skills/freepik-spaces/plans/naseberry-demo-plan.md +320 -0
- package/plugin/skills/freepik-spaces/templates/naseberry-demo.json +302 -0
- package/plugin/skills/freepik-spaces/templates/saas-demo.json +212 -0
- package/plugin/skills/frontend-design/LICENSE.txt +177 -0
- package/plugin/skills/frontend-design/SKILL.md +77 -0
- package/plugin/skills/programmatic-seo/SKILL.md +236 -0
- package/plugin/skills/programmatic-seo/references/playbooks.md +293 -0
- package/plugin/skills/seo-qa/SKILL.md +132 -0
- package/plugin/skills/seo-qa/templates/schema-localbusiness.json +49 -0
- package/plugin/skills/seo-qa/templates/schema-service.json +36 -0
- package/plugin/skills/seo-qa/templates/seo-qa-report-template.md +90 -0
- package/plugin/skills/visual-identity/SKILL.md +109 -0
- package/plugin/skills/visual-identity/templates/style-guide-template.md +108 -0
- package/plugin/skills/website-image-gen/SKILL.md +82 -0
- package/plugin/skills/website-image-gen/templates/blog-featured.md +56 -0
- package/plugin/skills/website-image-gen/templates/hero-service-photo.md +56 -0
- package/plugin/skills/wordpress-pro/SKILL.md +105 -0
- package/plugin/skills/wordpress-pro/references/gutenberg-blocks.md +870 -0
- package/plugin/skills/wordpress-pro/references/hooks-filters.md +845 -0
- package/plugin/skills/wordpress-pro/references/performance-security.md +1012 -0
- package/plugin/skills/wordpress-pro/references/plugin-architecture.md +1041 -0
- package/plugin/skills/wordpress-pro/references/theme-development.md +858 -0
- package/plugin/sops/SOP-Sonic 777/authority-site-sop.html +1100 -0
- package/plugin/sops/SOP-WORDPRESS-330-PAGE-SITES.md +926 -0
- package/scripts/postinstall.js +109 -0
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: brand-philosophy
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
description: Run a brand philosophy discovery session before building a site. Produces a Brand Brief — voice, tone, positioning, target customer, brand pillars. This becomes the source of truth for design and copy decisions downstream. Use this BEFORE any design or content work.
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Brand Philosophy Skill
|
|
8
|
+
|
|
9
|
+
The discovery step that ALL good agencies do before designing anything. Without this, sites end up generic and forgettable. With it, every downstream decision has a reason.
|
|
10
|
+
|
|
11
|
+
## When to use this
|
|
12
|
+
|
|
13
|
+
- At the **start** of any new authority site build
|
|
14
|
+
- Before invoking `visual-identity`
|
|
15
|
+
- Before invoking `frontend-design` or `wordpress-pro` for design work
|
|
16
|
+
- Before generating any copy with `programmatic-seo`
|
|
17
|
+
|
|
18
|
+
## Output
|
|
19
|
+
|
|
20
|
+
A `BRAND-BRIEF.md` saved at the project root containing:
|
|
21
|
+
|
|
22
|
+
1. **Target Customer** — demographic, psychographic, pain points
|
|
23
|
+
2. **Positioning Statement** — why this business vs competitors
|
|
24
|
+
3. **Brand Attitude** — 3-5 adjectives (e.g. "premium, trustworthy, direct")
|
|
25
|
+
4. **Voice & Tone** — how the brand speaks (formal/casual, expert/peer, urgent/calm)
|
|
26
|
+
5. **Three Brand Pillars** — non-negotiable values that show up everywhere
|
|
27
|
+
6. **What We're NOT** — explicit anti-positioning
|
|
28
|
+
7. **The Feeling** — what visitors should feel after 10 seconds on the site
|
|
29
|
+
|
|
30
|
+
## The Discovery Flow
|
|
31
|
+
|
|
32
|
+
Sonic asks these questions in order. **Don't skip questions** even if the user seems impatient — each one informs design decisions later.
|
|
33
|
+
|
|
34
|
+
### Round 1 — The Customer
|
|
35
|
+
|
|
36
|
+
> Before we design anything, let's get clear on who we're building this for.
|
|
37
|
+
>
|
|
38
|
+
> 1. **Who is the ideal customer for this business?** Be specific — "homeowners" isn't enough. Age range, income level, who they call when they have this problem.
|
|
39
|
+
> 2. **What's the moment they go looking for this service?** Are they panicking (burst pipe), planning (annual maintenance), or comparison shopping (new install)?
|
|
40
|
+
> 3. **What's their biggest fear about hiring someone in this category?** Bad work? Getting overcharged? Not understanding what they need?
|
|
41
|
+
|
|
42
|
+
### Round 2 — The Positioning
|
|
43
|
+
|
|
44
|
+
> 4. **Who are 2-3 competitors you'd lose business to?** Real names if you have them.
|
|
45
|
+
> 5. **What does this business do differently or better than those competitors?** Even small things count.
|
|
46
|
+
> 6. **What's a common belief in this industry that you actually disagree with?** (This is gold for differentiation.)
|
|
47
|
+
|
|
48
|
+
### Round 3 — The Attitude
|
|
49
|
+
|
|
50
|
+
> 7. **Pick 3 brands you admire (any industry).** Not direct competitors — brands whose VIBE feels right. Why those?
|
|
51
|
+
> 8. **If this brand were a person, what kind of person?** (e.g. "the experienced contractor who explains things plainly" vs "the slick salesperson with the white truck")
|
|
52
|
+
> 9. **What's the ONE thing you absolutely don't want this site to feel like?** (Cheesy? Cheap? Corporate? Generic?)
|
|
53
|
+
|
|
54
|
+
### Round 4 — The Pillars
|
|
55
|
+
|
|
56
|
+
> 10. **What 3 values does the business genuinely live by?** Not aspirational — actual operating principles. (e.g. "Show up on time" / "Quote it before you do it" / "If we break it, we fix it free")
|
|
57
|
+
|
|
58
|
+
### Round 5 — The Feeling
|
|
59
|
+
|
|
60
|
+
> 11. **A homeowner lands on the site, reads for 10 seconds, then leaves. What do you want them to feel?** (Trust? Urgency? Curiosity? Relief? "This is the one"?)
|
|
61
|
+
|
|
62
|
+
## After the Q&A
|
|
63
|
+
|
|
64
|
+
Synthesize the answers into a 1-page Brand Brief. **Be specific and quotable** — generic answers ("we're trustworthy and reliable") get rewritten until they're concrete ("we're the only HVAC company in Tampa that texts you a 30-min ETA window before showing up").
|
|
65
|
+
|
|
66
|
+
Save to: `BRAND-BRIEF.md` in the project workspace root.
|
|
67
|
+
|
|
68
|
+
## Then hand off
|
|
69
|
+
|
|
70
|
+
Once the user approves the Brand Brief, invoke the `visual-identity` skill next.
|
|
71
|
+
|
|
72
|
+
## What NOT to do
|
|
73
|
+
|
|
74
|
+
- ❌ Don't generate generic answers if the user gives short replies — push back, ask follow-ups
|
|
75
|
+
- ❌ Don't skip rounds because "we kind of covered it" — every round informs different design decisions
|
|
76
|
+
- ❌ Don't accept "we're like X but better" — that's not a positioning statement
|
|
77
|
+
- ❌ Don't move to design until the brief is signed off
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Freepik Spaces Skill
|
|
2
|
+
|
|
3
|
+
Automate Freepik Spaces workflows via browser control. Create, configure, and run AI-powered visual pipelines for product shots, marketing campaigns, and video content.
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
- Freepik account with Premium/credits
|
|
8
|
+
- OpenClaw Browser Relay extension installed and attached to Chrome
|
|
9
|
+
- Logged into Freepik in Chrome
|
|
10
|
+
|
|
11
|
+
## Core Concepts
|
|
12
|
+
|
|
13
|
+
### Node Types
|
|
14
|
+
|
|
15
|
+
| Node Type | Inputs | Outputs | Purpose |
|
|
16
|
+
|-----------|--------|---------|---------|
|
|
17
|
+
| **Upload** | None | Media | Import local files |
|
|
18
|
+
| **Media** | None | Media | Use Freepik stock/history |
|
|
19
|
+
| **Text** | None | Text | Prompts, lists, notes |
|
|
20
|
+
| **Image Generator** | Text + Reference | Generated Image | AI image creation |
|
|
21
|
+
| **Video Generator** | Text + Start/End Images | Generated Video | AI video creation |
|
|
22
|
+
| **Assistant** | Text + Reference | Text | AI writing/prompts |
|
|
23
|
+
| **Image Upscaler** | Image | Upscaled Image | Enhance resolution |
|
|
24
|
+
| **Camera Angles** | Image | Angle Variations | Generate perspectives |
|
|
25
|
+
| **List** | Text items | Multiple outputs | Fan out to generators |
|
|
26
|
+
| **Container** | Multiple media | Grouped display | Organize outputs |
|
|
27
|
+
|
|
28
|
+
### Connectors
|
|
29
|
+
|
|
30
|
+
- **Direction**: Output (top-right) → Input (bottom-left)
|
|
31
|
+
- **One-to-many**: Single output can feed multiple inputs
|
|
32
|
+
- **One-directional**: Data flows source → target only
|
|
33
|
+
|
|
34
|
+
### Running Workflows
|
|
35
|
+
|
|
36
|
+
- **Run single node**: Click Run button (bottom-right of node)
|
|
37
|
+
- **Run from here**: Executes node + all downstream nodes
|
|
38
|
+
- **Prerequisites**: All required inputs must be connected before Run activates
|
|
39
|
+
|
|
40
|
+
## Workflow Patterns
|
|
41
|
+
|
|
42
|
+
### Product Demo Pipeline
|
|
43
|
+
```
|
|
44
|
+
Product Input → Component List → 3D Renders
|
|
45
|
+
→ Target Audience → Persona Images
|
|
46
|
+
→ Locations → Scene Images
|
|
47
|
+
All outputs → Composite Shots → Final Campaign Images/Videos
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
### SaaS Demo Pipeline
|
|
51
|
+
```
|
|
52
|
+
Product Description → Feature List → Dashboard Screenshots
|
|
53
|
+
→ UI Mockups
|
|
54
|
+
→ User Personas → User in Context Images
|
|
55
|
+
→ Use Cases → Scenario Visualizations
|
|
56
|
+
All outputs → Product + User + Scenario Composites → Demo Video
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
## Browser Automation
|
|
60
|
+
|
|
61
|
+
### Key Selectors
|
|
62
|
+
|
|
63
|
+
```javascript
|
|
64
|
+
// Navigation
|
|
65
|
+
"button:has-text('New space')" // Create new space
|
|
66
|
+
"button:has-text('Templates')" // Templates tab
|
|
67
|
+
"button:has-text('+ Add element')" // Add node menu
|
|
68
|
+
|
|
69
|
+
// Node Types (in Add menu)
|
|
70
|
+
"button:has-text('Text')"
|
|
71
|
+
"button:has-text('Image Generator')"
|
|
72
|
+
"button:has-text('Video Generator')"
|
|
73
|
+
"button:has-text('Assistant')"
|
|
74
|
+
"button:has-text('Upscaler')"
|
|
75
|
+
|
|
76
|
+
// Node Actions
|
|
77
|
+
"button:has-text('Run')" // Execute node
|
|
78
|
+
"button:has-text('Run from here')" // Execute chain
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Common Operations
|
|
82
|
+
|
|
83
|
+
1. **Create Space**: Click "New space" button
|
|
84
|
+
2. **Add Node**: Click "+ Add element" → select node type
|
|
85
|
+
3. **Edit Text Node**: Click node → type content
|
|
86
|
+
4. **Connect Nodes**: Drag from output point to input point
|
|
87
|
+
5. **Run Workflow**: Click Run on final node or "Run from here"
|
|
88
|
+
|
|
89
|
+
## Templates
|
|
90
|
+
|
|
91
|
+
### SaaS Demo Template
|
|
92
|
+
See `templates/saas-demo.json` for the full workflow definition.
|
|
93
|
+
|
|
94
|
+
**Stages:**
|
|
95
|
+
1. Product Input (name, description, features)
|
|
96
|
+
2. Feature Visualization (dashboard, UI elements)
|
|
97
|
+
3. User Persona Generation
|
|
98
|
+
4. Use Case Scenarios
|
|
99
|
+
5. Product + User Composites
|
|
100
|
+
6. Video Generation
|
|
101
|
+
|
|
102
|
+
## Usage
|
|
103
|
+
|
|
104
|
+
```bash
|
|
105
|
+
# Create a new SaaS demo workflow
|
|
106
|
+
# 1. Attach browser relay to Freepik tab
|
|
107
|
+
# 2. Navigate to Spaces
|
|
108
|
+
# 3. Use this skill to automate template creation
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Files
|
|
112
|
+
|
|
113
|
+
- `SKILL.md` - This documentation
|
|
114
|
+
- `docs/` - Detailed guides and research
|
|
115
|
+
- `templates/` - Workflow template definitions
|
|
116
|
+
- `scripts/` - Automation helper scripts
|
|
117
|
+
|
|
118
|
+
## Resources
|
|
119
|
+
|
|
120
|
+
- [Freepik Spaces Docs](https://www.freepik.com/ai/docs/introduction-to-spaces)
|
|
121
|
+
- [Nodes & Connectors](https://www.freepik.com/ai/docs/nodes-and-connectors)
|
|
122
|
+
- [Your First Space](https://www.freepik.com/ai/docs/your-first-space)
|
|
@@ -0,0 +1,233 @@
|
|
|
1
|
+
# Freepik Spaces Automation Guide
|
|
2
|
+
|
|
3
|
+
Step-by-step browser automation patterns for building workflows.
|
|
4
|
+
|
|
5
|
+
## Prerequisites
|
|
6
|
+
|
|
7
|
+
1. OpenClaw Browser Relay extension installed
|
|
8
|
+
2. Attached to Chrome tab on Freepik
|
|
9
|
+
3. Logged into Freepik account
|
|
10
|
+
|
|
11
|
+
## Common Actions
|
|
12
|
+
|
|
13
|
+
### Navigate to Spaces
|
|
14
|
+
|
|
15
|
+
```javascript
|
|
16
|
+
// Direct URL
|
|
17
|
+
browser.navigate({ targetUrl: "https://www.freepik.com/pikaso/spaces" })
|
|
18
|
+
|
|
19
|
+
// Or via menu
|
|
20
|
+
browser.act({ kind: "click", ref: "spaces-menu-item" })
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Create New Space
|
|
24
|
+
|
|
25
|
+
```javascript
|
|
26
|
+
// Click "New space" button
|
|
27
|
+
browser.act({ kind: "click", ref: "new-space-button" })
|
|
28
|
+
// Ref usually: button with text "New space"
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### Add a Node
|
|
32
|
+
|
|
33
|
+
1. Click "+ Add element" (left sidebar, typically first button)
|
|
34
|
+
2. Select node type from menu:
|
|
35
|
+
- Text
|
|
36
|
+
- Upload
|
|
37
|
+
- Media
|
|
38
|
+
- Image Generator
|
|
39
|
+
- Video Generator
|
|
40
|
+
- Assistant
|
|
41
|
+
- Image Upscaler
|
|
42
|
+
- Camera Angles
|
|
43
|
+
|
|
44
|
+
```javascript
|
|
45
|
+
// Open add menu
|
|
46
|
+
browser.act({ kind: "click", ref: "add-element-button" })
|
|
47
|
+
|
|
48
|
+
// Select node type (look for the type name)
|
|
49
|
+
browser.act({ kind: "click", ref: "text-node-option" })
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Edit Text Node
|
|
53
|
+
|
|
54
|
+
1. Click on the text node to select it
|
|
55
|
+
2. Start typing (or click into the text area)
|
|
56
|
+
3. Use toolbar for formatting
|
|
57
|
+
|
|
58
|
+
```javascript
|
|
59
|
+
// Select node
|
|
60
|
+
browser.act({ kind: "click", ref: "text-node" })
|
|
61
|
+
|
|
62
|
+
// Type content
|
|
63
|
+
browser.act({ kind: "type", ref: "text-node-textarea", text: "Your prompt here" })
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Configure Image Generator
|
|
67
|
+
|
|
68
|
+
1. Click on Image Generator node
|
|
69
|
+
2. Adjust settings in panel:
|
|
70
|
+
- Model dropdown
|
|
71
|
+
- Aspect ratio
|
|
72
|
+
- Number of images
|
|
73
|
+
|
|
74
|
+
```javascript
|
|
75
|
+
// Select generator node
|
|
76
|
+
browser.act({ kind: "click", ref: "image-generator-node" })
|
|
77
|
+
|
|
78
|
+
// Open model dropdown
|
|
79
|
+
browser.act({ kind: "click", ref: "model-dropdown" })
|
|
80
|
+
|
|
81
|
+
// Select model (e.g., Flux)
|
|
82
|
+
browser.act({ kind: "click", ref: "flux-option" })
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### Connect Nodes
|
|
86
|
+
|
|
87
|
+
1. Hover over source node to reveal output point (top-right)
|
|
88
|
+
2. Click and drag from output to target's input (bottom-left)
|
|
89
|
+
3. Release to create connection
|
|
90
|
+
|
|
91
|
+
```javascript
|
|
92
|
+
// This requires drag operation
|
|
93
|
+
browser.act({
|
|
94
|
+
kind: "drag",
|
|
95
|
+
startRef: "source-node-output",
|
|
96
|
+
endRef: "target-node-input"
|
|
97
|
+
})
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
### Run a Node
|
|
101
|
+
|
|
102
|
+
1. Click on the node
|
|
103
|
+
2. Click Run button (bottom-right of node, or in action bar)
|
|
104
|
+
|
|
105
|
+
```javascript
|
|
106
|
+
// Click Run button on node
|
|
107
|
+
browser.act({ kind: "click", ref: "run-button" })
|
|
108
|
+
|
|
109
|
+
// Or "Run from here" for chain execution
|
|
110
|
+
browser.act({ kind: "click", ref: "run-from-here" })
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### Rename a Node
|
|
114
|
+
|
|
115
|
+
1. Click node to select
|
|
116
|
+
2. Click node title/name area
|
|
117
|
+
3. Type new name
|
|
118
|
+
|
|
119
|
+
```javascript
|
|
120
|
+
browser.act({ kind: "click", ref: "node-title" })
|
|
121
|
+
browser.act({ kind: "type", ref: "node-title-input", text: "NEW NAME" })
|
|
122
|
+
browser.act({ kind: "press", key: "Enter" })
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
## Workflow: Build SaaS Demo Template
|
|
126
|
+
|
|
127
|
+
### Phase 1: Create Structure
|
|
128
|
+
|
|
129
|
+
```javascript
|
|
130
|
+
// 1. Create new space
|
|
131
|
+
await browser.navigate({ targetUrl: "https://www.freepik.com/pikaso/spaces" })
|
|
132
|
+
await browser.act({ kind: "click", ref: "new-space-button" })
|
|
133
|
+
|
|
134
|
+
// 2. Add START text node
|
|
135
|
+
await browser.act({ kind: "click", ref: "add-element" })
|
|
136
|
+
await browser.act({ kind: "click", ref: "text-option" })
|
|
137
|
+
// Type content
|
|
138
|
+
await browser.act({ kind: "type", text: "SaaS Demo Workflow - START HERE" })
|
|
139
|
+
|
|
140
|
+
// 3. Add Product Input text node
|
|
141
|
+
// Repeat add element flow...
|
|
142
|
+
|
|
143
|
+
// 4. Add Feature List (List node if available, or multiple Text nodes)
|
|
144
|
+
|
|
145
|
+
// 5. Add Image Generators for each output type
|
|
146
|
+
// - Dashboard screenshots
|
|
147
|
+
// - UI mockups
|
|
148
|
+
// - User personas
|
|
149
|
+
// - Scenario images
|
|
150
|
+
|
|
151
|
+
// 6. Connect all nodes appropriately
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### Phase 2: Configure Generators
|
|
155
|
+
|
|
156
|
+
```javascript
|
|
157
|
+
// For each Image Generator:
|
|
158
|
+
// 1. Click to select
|
|
159
|
+
// 2. Set model to Flux Kontext Pro (good quality, efficient)
|
|
160
|
+
// 3. Set aspect ratio (16:9 for dashboards, 1:1 for portraits)
|
|
161
|
+
// 4. Set num_images to 4
|
|
162
|
+
|
|
163
|
+
// For prompts, use Assistant node to generate from product description
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
### Phase 3: Run Workflow
|
|
167
|
+
|
|
168
|
+
```javascript
|
|
169
|
+
// Run in order:
|
|
170
|
+
// 1. Text/input nodes (just need content)
|
|
171
|
+
// 2. Assistant nodes (to generate prompts)
|
|
172
|
+
// 3. Image generators (parallel if independent)
|
|
173
|
+
// 4. Final composite/hero shots
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
## Tips for Automation
|
|
177
|
+
|
|
178
|
+
### Reliable Node Selection
|
|
179
|
+
|
|
180
|
+
Nodes can be identified by:
|
|
181
|
+
- Their label/title text
|
|
182
|
+
- Generated thumbnails
|
|
183
|
+
- Position on canvas
|
|
184
|
+
- Node type icons
|
|
185
|
+
|
|
186
|
+
### Handling Loading States
|
|
187
|
+
|
|
188
|
+
After running a generator, wait for:
|
|
189
|
+
- Loading indicator to disappear
|
|
190
|
+
- Thumbnail preview to appear
|
|
191
|
+
- Run button to re-enable
|
|
192
|
+
|
|
193
|
+
```javascript
|
|
194
|
+
// Wait pattern
|
|
195
|
+
browser.act({ kind: "wait", textGone: "Generating..." })
|
|
196
|
+
// Or wait for element
|
|
197
|
+
browser.act({ kind: "wait", timeMs: 5000 })
|
|
198
|
+
```
|
|
199
|
+
|
|
200
|
+
### Error Recovery
|
|
201
|
+
|
|
202
|
+
If a generation fails:
|
|
203
|
+
1. Click the node
|
|
204
|
+
2. Check input connections
|
|
205
|
+
3. Verify prompt text is valid
|
|
206
|
+
4. Click Run again
|
|
207
|
+
|
|
208
|
+
### Batch Operations
|
|
209
|
+
|
|
210
|
+
Use List nodes to fan out:
|
|
211
|
+
1. Create List node with multiple items
|
|
212
|
+
2. Connect to Image Generator
|
|
213
|
+
3. Generator produces output for each list item
|
|
214
|
+
|
|
215
|
+
## Snapshot Strategy
|
|
216
|
+
|
|
217
|
+
Take snapshots before/after key operations:
|
|
218
|
+
- After creating new space (capture canvas state)
|
|
219
|
+
- After adding nodes (verify structure)
|
|
220
|
+
- After running generators (capture outputs)
|
|
221
|
+
|
|
222
|
+
```javascript
|
|
223
|
+
// Capture current state
|
|
224
|
+
const snapshot = await browser.snapshot({ profile: "chrome", targetId: tabId })
|
|
225
|
+
// Parse snapshot to verify expected nodes exist
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
## Known Limitations
|
|
229
|
+
|
|
230
|
+
1. **Drag operations**: May be unreliable; prefer click-based alternatives when available
|
|
231
|
+
2. **Dynamic refs**: Node refs change between snapshots; use text/label matching
|
|
232
|
+
3. **Canvas zoom**: May need to zoom out to see all nodes
|
|
233
|
+
4. **Loading times**: AI generation can take 10-60 seconds; build in waits
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
# Freepik Spaces Research Notes
|
|
2
|
+
|
|
3
|
+
*Compiled: 2026-02-13*
|
|
4
|
+
|
|
5
|
+
## Overview
|
|
6
|
+
|
|
7
|
+
Freepik Spaces is a **node-based visual workflow builder** for AI generation. It allows chaining together text prompts, image generators, video generators, and other tools into reusable workflows.
|
|
8
|
+
|
|
9
|
+
**Key Benefits:**
|
|
10
|
+
- Visual pipeline design on infinite canvas
|
|
11
|
+
- Multiple AI models in one interface
|
|
12
|
+
- Reusable templates
|
|
13
|
+
- Real-time collaboration
|
|
14
|
+
- One subscription covers multiple tools
|
|
15
|
+
|
|
16
|
+
## Node System Deep Dive
|
|
17
|
+
|
|
18
|
+
### Input Nodes (Output Only)
|
|
19
|
+
|
|
20
|
+
**Upload Node**
|
|
21
|
+
- Import files from local computer
|
|
22
|
+
- Supports images, videos
|
|
23
|
+
- No incoming connections
|
|
24
|
+
- Output connects to generators, upscalers, assistant
|
|
25
|
+
|
|
26
|
+
**Media Node**
|
|
27
|
+
- Select from personal history, Freepik stock, or Community
|
|
28
|
+
- Great for remixing existing content
|
|
29
|
+
- Output connects to generators, upscalers, assistant
|
|
30
|
+
|
|
31
|
+
**Text Node**
|
|
32
|
+
- Write prompts, instructions, or notes
|
|
33
|
+
- Supports formatting: headings, bold, italic, lists
|
|
34
|
+
- Toolbar appears on click with:
|
|
35
|
+
- Background color
|
|
36
|
+
- Rename/duplicate/delete
|
|
37
|
+
- Preview
|
|
38
|
+
- Run button
|
|
39
|
+
- Output connects to Image/Video generators, Assistant
|
|
40
|
+
|
|
41
|
+
### Generator Nodes
|
|
42
|
+
|
|
43
|
+
**Image Generator**
|
|
44
|
+
- **Inputs**: Text prompt + Reference image (both optional but at least one required)
|
|
45
|
+
- **Output**: Generated images
|
|
46
|
+
- **Settings**:
|
|
47
|
+
- Model selection (Flux, NanoBanana Pro, etc.)
|
|
48
|
+
- Aspect ratio
|
|
49
|
+
- Number of images (1-4)
|
|
50
|
+
- Models available:
|
|
51
|
+
- Flux Kontext Pro (good consistency, saves credits)
|
|
52
|
+
- NanoBanana Pro (high quality edits)
|
|
53
|
+
- And others
|
|
54
|
+
|
|
55
|
+
**Video Generator**
|
|
56
|
+
- **Inputs**: Text + Start image + End image
|
|
57
|
+
- **Output**: Generated video
|
|
58
|
+
- **Settings**:
|
|
59
|
+
- Model (Kling, Seedance 4.5, etc.)
|
|
60
|
+
- Duration
|
|
61
|
+
- Aspect ratio
|
|
62
|
+
- Resolution
|
|
63
|
+
- Number of outputs
|
|
64
|
+
|
|
65
|
+
**Assistant Node**
|
|
66
|
+
- AI-powered text helper
|
|
67
|
+
- **Inputs**: Text + Reference media
|
|
68
|
+
- **Output**: Generated text
|
|
69
|
+
- Uses:
|
|
70
|
+
- Generate prompts from descriptions
|
|
71
|
+
- Describe images/videos
|
|
72
|
+
- Provide variations/suggestions
|
|
73
|
+
- Refine ideas
|
|
74
|
+
|
|
75
|
+
**Image Upscaler**
|
|
76
|
+
- **Input**: Single image
|
|
77
|
+
- **Output**: Upscaled image
|
|
78
|
+
- **Settings**:
|
|
79
|
+
- Mode: Creative or Precision
|
|
80
|
+
- Scale factor
|
|
81
|
+
- Engine presets
|
|
82
|
+
- Creative mode accepts text prompt for guidance
|
|
83
|
+
|
|
84
|
+
**Camera Angles**
|
|
85
|
+
- **Input**: Single image
|
|
86
|
+
- **Output**: Same content from different angles
|
|
87
|
+
- Features:
|
|
88
|
+
- Front/side/top rotations
|
|
89
|
+
- Camera position control
|
|
90
|
+
- Start/end frames for video transitions
|
|
91
|
+
- Great for product imagery
|
|
92
|
+
|
|
93
|
+
### List Node
|
|
94
|
+
|
|
95
|
+
- Contains multiple text items
|
|
96
|
+
- Each item fans out to connected generators
|
|
97
|
+
- Perfect for batch generation:
|
|
98
|
+
- Multiple product variations
|
|
99
|
+
- Multiple personas
|
|
100
|
+
- Multiple locations
|
|
101
|
+
|
|
102
|
+
### Container Node
|
|
103
|
+
|
|
104
|
+
- Groups multiple outputs visually
|
|
105
|
+
- Organizational tool
|
|
106
|
+
- Helps structure complex workflows
|
|
107
|
+
|
|
108
|
+
## Connectors
|
|
109
|
+
|
|
110
|
+
### Connection Points
|
|
111
|
+
- **Output**: Top-right corner of node
|
|
112
|
+
- **Input**: Bottom-left corner of node
|
|
113
|
+
- Points visible on hover
|
|
114
|
+
|
|
115
|
+
### Behavior
|
|
116
|
+
- One-directional (source → target)
|
|
117
|
+
- One output → multiple inputs allowed
|
|
118
|
+
- Click connection line to delete
|
|
119
|
+
|
|
120
|
+
### Valid Connections by Node Type
|
|
121
|
+
|
|
122
|
+
| Source Node | Valid Targets |
|
|
123
|
+
|-------------|---------------|
|
|
124
|
+
| Upload/Media | Image Gen, Video Gen, Assistant, Upscaler, Camera Angles |
|
|
125
|
+
| Text | Image Gen, Video Gen, Assistant |
|
|
126
|
+
| Image Generator | Upscaler, Camera Angles, Video Gen, Assistant, Container |
|
|
127
|
+
| Video Generator | Assistant, Container |
|
|
128
|
+
| Assistant | Image Gen, Video Gen, any text-accepting node |
|
|
129
|
+
| Upscaler | Camera Angles, Video Gen, Container |
|
|
130
|
+
| Camera Angles | Upscaler, Video Gen, Container |
|
|
131
|
+
|
|
132
|
+
## Running Workflows
|
|
133
|
+
|
|
134
|
+
### Single Node Execution
|
|
135
|
+
1. Click node with selection tool
|
|
136
|
+
2. Click Run button (bottom-right)
|
|
137
|
+
3. Node processes and produces output
|
|
138
|
+
4. Output becomes available for downstream nodes
|
|
139
|
+
|
|
140
|
+
### Chain Execution
|
|
141
|
+
1. Click Run icon on a node
|
|
142
|
+
2. Select "Run from here"
|
|
143
|
+
3. Executes selected node + all connected downstream nodes
|
|
144
|
+
4. Great for re-running after upstream changes
|
|
145
|
+
|
|
146
|
+
### Prerequisites
|
|
147
|
+
- All required inputs must be connected
|
|
148
|
+
- Run button stays inactive until prerequisites met
|
|
149
|
+
|
|
150
|
+
## Best Practices (from community)
|
|
151
|
+
|
|
152
|
+
### Efficiency
|
|
153
|
+
- Group related nodes visually
|
|
154
|
+
- Use List nodes for batch operations
|
|
155
|
+
- Copy/paste node structures for similar operations
|
|
156
|
+
- Use Assistant to generate prompts rather than writing manually
|
|
157
|
+
|
|
158
|
+
### Credit Conservation
|
|
159
|
+
- Flux Kontext Pro: Good quality, lower credit cost
|
|
160
|
+
- NanoBanana Pro: Higher quality, higher cost
|
|
161
|
+
- Test with fewer outputs first, then scale up
|
|
162
|
+
|
|
163
|
+
### Known Issues (Reddit feedback)
|
|
164
|
+
- Assets sometimes mix between projects
|
|
165
|
+
- Saved Spaces occasionally not found
|
|
166
|
+
- Consider phygital plus as alternative for complex node work
|
|
167
|
+
|
|
168
|
+
## Template Analysis: Dyson Vacuum Workflow
|
|
169
|
+
|
|
170
|
+
### Structure
|
|
171
|
+
```
|
|
172
|
+
START HERE
|
|
173
|
+
↓
|
|
174
|
+
INPUT PRODUCT HERE → PRODUCT BREAKDOWN
|
|
175
|
+
↓ ↓
|
|
176
|
+
TARGET AUDIENCE MAKER → LIST OF COMPONENTS
|
|
177
|
+
↓ ↓
|
|
178
|
+
LIST OF TARGET 3D RENDERS OF
|
|
179
|
+
DEMOGRAPHIC PRODUCT PARTS
|
|
180
|
+
↓ ↓
|
|
181
|
+
IMAGE GENERATION 360 3D PRODUCT
|
|
182
|
+
OF DEMOGRAPHIC VIEWS
|
|
183
|
+
↓ ↓
|
|
184
|
+
PRODUCT LOCATION → PRODUCT ASSEMBLY
|
|
185
|
+
LIST & GENERATION ↓
|
|
186
|
+
↓ 3D PRODUCT EXPLODED
|
|
187
|
+
↓ DIAGRAM
|
|
188
|
+
↓ ↓
|
|
189
|
+
└────────┬───────────────┘
|
|
190
|
+
↓
|
|
191
|
+
PRODUCT + TARGET DEMOGRAPHIC + LOCATION
|
|
192
|
+
↓
|
|
193
|
+
TV COMMERCIAL SHOTS (COMPOSITES)
|
|
194
|
+
↓
|
|
195
|
+
TV COMMERCIAL SHOTS W/ EXPLODED COMPONENTS
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
### Key Patterns
|
|
199
|
+
1. **Parallel branches**: Product visuals + Demographics + Locations
|
|
200
|
+
2. **List nodes**: Fan out to multiple generators
|
|
201
|
+
3. **Convergence**: Multiple streams combine for final output
|
|
202
|
+
4. **Container nodes**: Group related outputs (TV Commercial Shots)
|
|
203
|
+
|
|
204
|
+
## SaaS Demo Template Design
|
|
205
|
+
|
|
206
|
+
### Target Output
|
|
207
|
+
- Dashboard/analytics product visuals
|
|
208
|
+
- User personas in context
|
|
209
|
+
- Feature highlights
|
|
210
|
+
- Demo video clips
|
|
211
|
+
|
|
212
|
+
### Proposed Structure
|
|
213
|
+
```
|
|
214
|
+
PRODUCT INPUT (Name, Description, Key Features)
|
|
215
|
+
↓
|
|
216
|
+
├── FEATURE LIST → DASHBOARD SCREENSHOTS (Image Gen)
|
|
217
|
+
│ → UI MOCKUP VARIATIONS
|
|
218
|
+
│
|
|
219
|
+
├── USER PERSONAS → PERSONA LIST → USER IMAGES (Image Gen)
|
|
220
|
+
│ (Startup founder, Enterprise, etc.)
|
|
221
|
+
│
|
|
222
|
+
└── USE CASES → SCENARIO LIST → SCENARIO IMAGES (Image Gen)
|
|
223
|
+
(Data analysis, Team collaboration, etc.)
|
|
224
|
+
|
|
225
|
+
All outputs combine:
|
|
226
|
+
↓
|
|
227
|
+
PRODUCT + USER + SCENARIO COMPOSITES
|
|
228
|
+
↓
|
|
229
|
+
DEMO VIDEO CLIPS (Video Gen) [Phase 2]
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
### Prompt Templates
|
|
233
|
+
|
|
234
|
+
**Dashboard Screenshot Prompt:**
|
|
235
|
+
```
|
|
236
|
+
Professional SaaS dashboard UI screenshot, [PRODUCT] analytics platform,
|
|
237
|
+
clean modern interface, data visualizations, charts and graphs,
|
|
238
|
+
dark mode / light mode, high-fidelity mockup, web application design
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
**User Persona Prompt:**
|
|
242
|
+
```
|
|
243
|
+
Professional portrait of [PERSONA TYPE], using laptop showing analytics dashboard,
|
|
244
|
+
modern office environment, natural lighting, business casual attire,
|
|
245
|
+
focused expression, realistic photography style
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
**Use Case Scenario Prompt:**
|
|
249
|
+
```
|
|
250
|
+
[PERSONA] using [PRODUCT] for [USE CASE],
|
|
251
|
+
computer screen showing dashboard interface,
|
|
252
|
+
[ENVIRONMENT] setting, professional photography,
|
|
253
|
+
showing [EMOTION/RESULT] from using the product
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
## Resources
|
|
257
|
+
|
|
258
|
+
- Official Docs: https://www.freepik.com/ai/docs/introduction-to-spaces
|
|
259
|
+
- Nodes Guide: https://www.freepik.com/ai/docs/nodes-and-connectors
|
|
260
|
+
- First Space Tutorial: https://www.freepik.com/ai/docs/your-first-space
|
|
261
|
+
- YouTube Tutorials:
|
|
262
|
+
- "Build your first creative AI workflow in Spaces" (Freepik Academy)
|
|
263
|
+
- "How to get started with Spaces" (Freepik Academy)
|
|
264
|
+
- "Freepik Just Launched SPACES" (Third-party overview)
|