@renoise/plugin 0.2.1
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/.claude-plugin/marketplace.json +15 -0
- package/.claude-plugin/plugin.json +23 -0
- package/README.md +53 -0
- package/hooks/check-api-key.sh +28 -0
- package/hooks/hooks.json +28 -0
- package/hooks/session-start.sh +40 -0
- package/index.mjs +1 -0
- package/openclaw.plugin.json +22 -0
- package/package.json +22 -0
- package/skills/director/SKILL.md +269 -0
- package/skills/director/references/narrative-pacing.md +257 -0
- package/skills/director/references/style-library.md +179 -0
- package/skills/file-upload/SKILL.md +79 -0
- package/skills/file-upload/scripts/upload.mjs +103 -0
- package/skills/gemini-gen/SKILL.md +236 -0
- package/skills/gemini-gen/scripts/gemini.mjs +220 -0
- package/skills/product-sheet-generate/SKILL.md +75 -0
- package/skills/renoise-gen/SKILL.md +364 -0
- package/skills/renoise-gen/references/api-endpoints.md +142 -0
- package/skills/renoise-gen/references/video-capabilities.md +524 -0
- package/skills/renoise-gen/renoise-cli.mjs +723 -0
- package/skills/scene-generate/SKILL.md +52 -0
- package/skills/short-film-editor/SKILL.md +478 -0
- package/skills/short-film-editor/examples/mystery-package-4shot.md +260 -0
- package/skills/short-film-editor/references/continuity-guide.md +170 -0
- package/skills/short-film-editor/scripts/analyze-beats.py +271 -0
- package/skills/short-film-editor/scripts/batch-generate.sh +150 -0
- package/skills/short-film-editor/scripts/split-grid.sh +70 -0
- package/skills/tiktok-content-maker/SKILL.md +140 -0
- package/skills/tiktok-content-maker/examples/dress-demo.md +86 -0
- package/skills/tiktok-content-maker/references/ecom-prompt-guide.md +266 -0
- package/skills/video-download/SKILL.md +161 -0
- package/skills/video-download/scripts/download-video.sh +91 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "renoise-plugins-official",
|
|
3
|
+
"owner": {
|
|
4
|
+
"name": "Renoise"
|
|
5
|
+
},
|
|
6
|
+
"description": "Official Claude Code plugins by Renoise",
|
|
7
|
+
"plugins": [
|
|
8
|
+
{
|
|
9
|
+
"name": "renoise",
|
|
10
|
+
"version": "0.2.0",
|
|
11
|
+
"source": "./",
|
|
12
|
+
"description": "AI video production skills — creative direction, generation, editing, and e-commerce content"
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "renoise",
|
|
3
|
+
"description": "AI video production skills — creative direction, generation, editing, and e-commerce content",
|
|
4
|
+
"version": "0.2.0",
|
|
5
|
+
"author": {
|
|
6
|
+
"name": "Renoise"
|
|
7
|
+
},
|
|
8
|
+
"homepage": "https://github.com/ArcoCodes/renoise-plugins-official",
|
|
9
|
+
"repository": "https://github.com/ArcoCodes/renoise-plugins-official",
|
|
10
|
+
"keywords": [
|
|
11
|
+
"skills",
|
|
12
|
+
"video",
|
|
13
|
+
"ai-video",
|
|
14
|
+
"creative-direction",
|
|
15
|
+
"ecommerce",
|
|
16
|
+
"tiktok",
|
|
17
|
+
"renoise"
|
|
18
|
+
],
|
|
19
|
+
"commands": [
|
|
20
|
+
"./commands/setup.md",
|
|
21
|
+
"./commands/add-credits.md"
|
|
22
|
+
]
|
|
23
|
+
}
|
package/README.md
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# renoise-plugins-official
|
|
2
|
+
|
|
3
|
+
AI video production skills by Renoise — creative direction, generation, editing, and e-commerce content.
|
|
4
|
+
|
|
5
|
+
## Skills
|
|
6
|
+
|
|
7
|
+
| Skill | Description |
|
|
8
|
+
|-------|-------------|
|
|
9
|
+
| **director** | Creative director — main entry point for all video requests |
|
|
10
|
+
| **gemini-gen** | Visual understanding & multimodal analysis via Gemini 3.1 Pro |
|
|
11
|
+
| **renoise-gen** | AI video & image generation engine (renoise-cli) |
|
|
12
|
+
| **tiktok-content-maker** | TikTok & e-commerce short video specialist |
|
|
13
|
+
| **scene-generate** | Background/environment image generation |
|
|
14
|
+
| **product-sheet-generate** | Multi-angle product design sheet |
|
|
15
|
+
| **short-film-editor** | Short film & drama editing |
|
|
16
|
+
| **video-download** | Video downloader (yt-dlp) |
|
|
17
|
+
| **file-upload** | Upload files to Renoise for use with gemini-gen |
|
|
18
|
+
|
|
19
|
+
## Installation
|
|
20
|
+
|
|
21
|
+
### Claude Code
|
|
22
|
+
|
|
23
|
+
1. Add the marketplace:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
claude plugin marketplace add ArcoCodes/renoise-plugins-official
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
2. Install the plugin:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
claude plugin install renoise@renoise-plugins-official
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### OpenClaw
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
openclaw plugins install @renoise/plugin
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
3. Launch Claude Code and run the setup command to connect your Renoise account:
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
/renoise:setup
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
This will guide you through connecting your API key and enabling the real-time credit balance display in the status bar.
|
|
48
|
+
|
|
49
|
+
## Environment Variables
|
|
50
|
+
|
|
51
|
+
| Variable | Required By | Description |
|
|
52
|
+
|----------|------------|-------------|
|
|
53
|
+
| `RENOISE_API_KEY` | All skills | Renoise API credential. Get one at https://www.renoise.ai |
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# PreToolUse hook: block when neither RENOISE_API_KEY nor RENOISE_AUTH_TOKEN is set
|
|
4
|
+
# and the tool invocation looks like a renoise-cli call.
|
|
5
|
+
|
|
6
|
+
set -euo pipefail
|
|
7
|
+
|
|
8
|
+
# Read the tool input from stdin
|
|
9
|
+
INPUT=$(cat)
|
|
10
|
+
|
|
11
|
+
# Extract the command being executed
|
|
12
|
+
COMMAND=$(echo "$INPUT" | jq -r '.tool_input.command // empty')
|
|
13
|
+
|
|
14
|
+
# Only check if the command involves renoise-cli
|
|
15
|
+
if [[ "$COMMAND" != *renoise-cli* ]]; then
|
|
16
|
+
exit 0
|
|
17
|
+
fi
|
|
18
|
+
|
|
19
|
+
# If either credential is configured, allow
|
|
20
|
+
if [ -n "${RENOISE_API_KEY:-}" ] || [ -n "${RENOISE_AUTH_TOKEN:-}" ]; then
|
|
21
|
+
exit 0
|
|
22
|
+
fi
|
|
23
|
+
|
|
24
|
+
# Block and guide user
|
|
25
|
+
jq -n '{
|
|
26
|
+
decision: "block",
|
|
27
|
+
reason: "RENOISE_API_KEY or RENOISE_AUTH_TOKEN is not set. Add one to the env block in .claude/settings.local.json. Get your key at https://www.renoise.ai"
|
|
28
|
+
}'
|
package/hooks/hooks.json
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"hooks": {
|
|
3
|
+
"SessionStart": [
|
|
4
|
+
{
|
|
5
|
+
"matcher": "*",
|
|
6
|
+
"hooks": [
|
|
7
|
+
{
|
|
8
|
+
"type": "command",
|
|
9
|
+
"command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/session-start.sh",
|
|
10
|
+
"timeout": 10
|
|
11
|
+
}
|
|
12
|
+
]
|
|
13
|
+
}
|
|
14
|
+
],
|
|
15
|
+
"PreToolUse": [
|
|
16
|
+
{
|
|
17
|
+
"matcher": "Bash",
|
|
18
|
+
"hooks": [
|
|
19
|
+
{
|
|
20
|
+
"type": "command",
|
|
21
|
+
"command": "bash ${CLAUDE_PLUGIN_ROOT}/hooks/check-api-key.sh",
|
|
22
|
+
"timeout": 10
|
|
23
|
+
}
|
|
24
|
+
]
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
# SessionStart hook: guide users based on their setup state.
|
|
4
|
+
# - No API key → prompt to login
|
|
5
|
+
# - Has API key but no statusLine → prompt to enable credits display
|
|
6
|
+
|
|
7
|
+
set -euo pipefail
|
|
8
|
+
|
|
9
|
+
# Consume stdin (SessionStart sends context JSON, we don't need it)
|
|
10
|
+
cat > /dev/null
|
|
11
|
+
|
|
12
|
+
HAS_KEY=false
|
|
13
|
+
HAS_STATUSLINE=false
|
|
14
|
+
|
|
15
|
+
# Check if API key is configured
|
|
16
|
+
if [ -n "${RENOISE_API_KEY:-}" ] || [ -n "${RENOISE_AUTH_TOKEN:-}" ]; then
|
|
17
|
+
HAS_KEY=true
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
# Check if statusLine is pointing to our script
|
|
21
|
+
SETTINGS_FILE="${CLAUDE_CONFIG_DIR:-$HOME/.claude}/settings.json"
|
|
22
|
+
if [ -f "$SETTINGS_FILE" ] && grep -q "statusLine" "$SETTINGS_FILE" 2>/dev/null && grep -q "renoise-plugins-official/renoise" "$SETTINGS_FILE" 2>/dev/null; then
|
|
23
|
+
HAS_STATUSLINE=true
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
# Case 1: New user — no API key
|
|
27
|
+
if [ "$HAS_KEY" = false ]; then
|
|
28
|
+
# stdout goes to Claude as context — Claude will relay the message to the user
|
|
29
|
+
echo '[Renoise] Plugin installed successfully, but Renoise account is not connected yet. Tell the user: type /renoise:setup to connect your account. One sentence only.'
|
|
30
|
+
exit 0
|
|
31
|
+
fi
|
|
32
|
+
|
|
33
|
+
# Case 2: Existing user updated plugin — has key but no statusLine
|
|
34
|
+
if [ "$HAS_STATUSLINE" = false ]; then
|
|
35
|
+
echo '[Renoise] Plugin updated — new feature: real-time credit balance in status bar. Tell the user: type /renoise:setup to activate. One sentence only.'
|
|
36
|
+
exit 0
|
|
37
|
+
fi
|
|
38
|
+
|
|
39
|
+
# Case 3: Everything configured — silent
|
|
40
|
+
exit 0
|
package/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function register() {}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "renoise",
|
|
3
|
+
"name": "Renoise",
|
|
4
|
+
"description": "AI video production skills — creative direction, generation, editing, and e-commerce content",
|
|
5
|
+
"version": "0.2.0",
|
|
6
|
+
"configSchema": {
|
|
7
|
+
"type": "object",
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {}
|
|
10
|
+
},
|
|
11
|
+
"skills": [
|
|
12
|
+
"skills/director",
|
|
13
|
+
"skills/gemini-gen",
|
|
14
|
+
"skills/renoise-gen",
|
|
15
|
+
"skills/tiktok-content-maker",
|
|
16
|
+
"skills/scene-generate",
|
|
17
|
+
"skills/product-sheet-generate",
|
|
18
|
+
"skills/short-film-editor",
|
|
19
|
+
"skills/video-download",
|
|
20
|
+
"skills/file-upload"
|
|
21
|
+
]
|
|
22
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@renoise/plugin",
|
|
3
|
+
"version": "0.2.1",
|
|
4
|
+
"license": "Apache-2.0",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"description": "AI video production skills — creative direction, generation, editing, and e-commerce content",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "https://github.com/ArcoCodes/renoise-plugins-official.git"
|
|
10
|
+
},
|
|
11
|
+
"openclaw": {
|
|
12
|
+
"extensions": ["./index.mjs"]
|
|
13
|
+
},
|
|
14
|
+
"files": [
|
|
15
|
+
".claude-plugin/",
|
|
16
|
+
"openclaw.plugin.json",
|
|
17
|
+
"index.mjs",
|
|
18
|
+
"hooks/",
|
|
19
|
+
"skills/",
|
|
20
|
+
"README.md"
|
|
21
|
+
]
|
|
22
|
+
}
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: director
|
|
3
|
+
description: >
|
|
4
|
+
AI video creative director for any video type — product, drama, comedy,
|
|
5
|
+
brand film, animated comic, action sequence. Analyzes materials, suggests 2-3 style
|
|
6
|
+
directions, generates video prompts, and submits video tasks. Use when
|
|
7
|
+
user says "make a video", "video idea", "creative direction", "help me
|
|
8
|
+
shoot", "I want a video", "video script", "storyboard", "generate video",
|
|
9
|
+
"action sequence", "generate video". Do NOT use for downloading videos or editing existing footage.
|
|
10
|
+
This skill is the ONLY entry point for video creation in the Visiono project.
|
|
11
|
+
allowed-tools: Bash, Read
|
|
12
|
+
metadata:
|
|
13
|
+
author: renoise
|
|
14
|
+
version: 0.1.0
|
|
15
|
+
category: video-production
|
|
16
|
+
tags: [director, creative, video]
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+
# Video Director
|
|
20
|
+
|
|
21
|
+
You are a creative director for AI video production. You guide users from raw idea to finished video through a structured creative process. Default language: English. Adapt to the user's language if they use another.
|
|
22
|
+
|
|
23
|
+
## Critical Rules
|
|
24
|
+
|
|
25
|
+
- **The Renoise platform URL is https://www.renoise.ai** — NEVER say or link to "renoise.com". The correct domain is `renoise.ai`.
|
|
26
|
+
- **You are the default entry point** for ALL video creation requests. Only route to specialized skills when `metadata.tags` clearly match.
|
|
27
|
+
- **Video prompts must be in English** — the model understands English best.
|
|
28
|
+
- **Dialogue must feel natural** — conversational American English, never salesy or translated.
|
|
29
|
+
- **Always apply advanced prompt techniques**: technical params prefix, negative prompting, style keywords from video-capabilities.md.
|
|
30
|
+
- **Respect the 15-second single-segment default**. Only split into multiple segments if total duration > 15s.
|
|
31
|
+
- **Long videos (>15s) require narrative planning FIRST**. Never jump straight to writing segment prompts. Read `narrative-pacing.md`, design a rhythm blueprint, get user confirmation, THEN write prompts.
|
|
32
|
+
- **Every segment prompt must declare its energy level and transition** in a comment header (e.g., `<!-- Energy: 8→10→6 | Transition: Sound Bridge -->`).
|
|
33
|
+
- **Shot density is mandatory**. Each 15s segment must contain 3-5 distinct camera setups with time annotations (action scenes: 5-7). Never write a 15s prompt as one continuous take unless explicitly requested. See "Shot Density" in video-capabilities.md.
|
|
34
|
+
- **NEVER upload images containing realistic human faces** — privacy detection will block them. Describe people in text instead.
|
|
35
|
+
|
|
36
|
+
## Phase 1 — Understand & Discover
|
|
37
|
+
|
|
38
|
+
1. **Collect input**: Accept the user's materials (images, videos, text) and creative brief.
|
|
39
|
+
|
|
40
|
+
2. **Load preferences** (if file exists):
|
|
41
|
+
```
|
|
42
|
+
Read ~/.claude/renoise/preferences.json
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
3. **Discover available skills** by scanning frontmatter:
|
|
46
|
+
```bash
|
|
47
|
+
for f in ${CLAUDE_PLUGIN_ROOT}/skills/*/SKILL.md; do head -15 "$f"; echo "---FILE:$f---"; done
|
|
48
|
+
```
|
|
49
|
+
Parse each skill's `name`, `metadata.tags`, and `description`. Build an internal capability map.
|
|
50
|
+
|
|
51
|
+
4. **Analyze the request**:
|
|
52
|
+
- What type of video? (product, story, drama, comedy, brand, art, etc.)
|
|
53
|
+
- What materials does the user have? (product photos, character refs, scripts, nothing)
|
|
54
|
+
- What's the intended platform/audience? (TikTok, Instagram, YouTube, general)
|
|
55
|
+
|
|
56
|
+
5. **If user provided product images**, analyze them using the `gemini-gen` skill — send product image(s) with a prompt to extract product type, colors, material, selling points, brand tone, and scene suggestions.
|
|
57
|
+
|
|
58
|
+
6. **Present a brief summary**: "Here's what I understand: [product/story/concept]. I'll use [capabilities]. Let me suggest some creative directions."
|
|
59
|
+
|
|
60
|
+
## Phase 2 — Creative Direction
|
|
61
|
+
|
|
62
|
+
1. **Load style references**:
|
|
63
|
+
```
|
|
64
|
+
Read ${CLAUDE_SKILL_DIR}/references/style-library.md
|
|
65
|
+
```
|
|
66
|
+
If preferences exist, also load the relevant category section:
|
|
67
|
+
```
|
|
68
|
+
Read ~/.claude/renoise/style-profile.md
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
2. **Propose 2-3 style directions** adapted to the specific project. For each:
|
|
72
|
+
- **Style name** (from library or custom blend)
|
|
73
|
+
- **One-line pitch**: What this video would feel like
|
|
74
|
+
- **Visual tone**: Camera, lighting, color keywords
|
|
75
|
+
- **Opening hook**: A specific example first 3 seconds
|
|
76
|
+
- **Why this works**: Connection to the product/story
|
|
77
|
+
|
|
78
|
+
3. **If user has preferences**, rank familiar styles first but always include one fresh option.
|
|
79
|
+
|
|
80
|
+
4. **Wait for user choice**. Accept: a number, a name, "combine 1 and 3", or adjustment requests like "more cinematic" / "less salesy".
|
|
81
|
+
|
|
82
|
+
## Phase 3 — Route & Generate
|
|
83
|
+
|
|
84
|
+
**Match the request to a specialized skill using `metadata.tags`:**
|
|
85
|
+
|
|
86
|
+
- Tags match `[product, ecommerce, tiktok]` → Read and follow `${CLAUDE_PLUGIN_ROOT}/skills/tiktok-content-maker/SKILL.md`
|
|
87
|
+
- Tags match `[short-film, multi-clip, narrative, story]` → Read and follow `${CLAUDE_PLUGIN_ROOT}/skills/short-film-editor/SKILL.md`
|
|
88
|
+
- Tags match `[scene, background]` → Use `scene-generate` as a helper
|
|
89
|
+
- No specialized match → Director generates directly (most common path)
|
|
90
|
+
|
|
91
|
+
**When generating directly:**
|
|
92
|
+
|
|
93
|
+
1. Read the prompt writing guide:
|
|
94
|
+
```
|
|
95
|
+
Read ${CLAUDE_PLUGIN_ROOT}/skills/renoise-gen/references/video-capabilities.md
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
2. **For videos ≤ 15s** — Generate a complete package directly:
|
|
99
|
+
- **Video prompt** (English, natural narrative, time-annotated for 15s)
|
|
100
|
+
- Apply chosen style's camera, lighting, and pacing
|
|
101
|
+
- Use advanced techniques: technical params prefix, negative prompting at end
|
|
102
|
+
- **Dialogue script** (if applicable): conversational American English, timestamped
|
|
103
|
+
- **BGM recommendation**: genre, tempo, energy level
|
|
104
|
+
- **Sound design notes**: key SFX moments
|
|
105
|
+
|
|
106
|
+
3. **For videos > 15s** — Narrative planning before prompts:
|
|
107
|
+
|
|
108
|
+
a. Read the pacing guide:
|
|
109
|
+
```
|
|
110
|
+
Read ${CLAUDE_SKILL_DIR}/references/narrative-pacing.md
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
b. **Design the rhythm blueprint**:
|
|
114
|
+
- Determine total duration and segment count (N × 15s)
|
|
115
|
+
- Select the matching narrative arc template (30s/45s/60s/90s+)
|
|
116
|
+
- For each segment, assign: narrative goal, energy curve (start→mid→end), primary camera movement
|
|
117
|
+
- Design transitions between every pair of adjacent segments (choose from the 7 transition types)
|
|
118
|
+
- Validate the energy curve: no flat lines, drop before climax, breathing after peaks
|
|
119
|
+
- Mark the 4 key moments: Hook, Midpoint, Climax, Final Image
|
|
120
|
+
|
|
121
|
+
c. **Present the rhythm blueprint** to the user using the format from narrative-pacing.md. Wait for confirmation or adjustments before proceeding.
|
|
122
|
+
|
|
123
|
+
d. **Generate a visual anchor** (concept art) to lock the style across all segments:
|
|
124
|
+
```bash
|
|
125
|
+
node ${CLAUDE_PLUGIN_ROOT}/skills/renoise-gen/renoise-cli.mjs task generate \
|
|
126
|
+
--model nano-banana-2 --resolution 2k --ratio 16:9 \
|
|
127
|
+
--prompt "Concept art sheet for [project]. Key visual elements: [color palette], [material textures], [character appearance], [environment], [lighting]. Multiple vignettes in unified style."
|
|
128
|
+
```
|
|
129
|
+
Upload the result as material:
|
|
130
|
+
```bash
|
|
131
|
+
node ${CLAUDE_PLUGIN_ROOT}/skills/renoise-gen/renoise-cli.mjs material upload <concept-art-url>
|
|
132
|
+
```
|
|
133
|
+
Note the material ID — this will be passed to EVERY segment as `--materials "ID:ref_image"`.
|
|
134
|
+
|
|
135
|
+
Write a **visual anchor prefix** (2-3 lines) summarizing the core visual DNA — color palette, material textures, lighting mood. This prefix goes at the start of every segment prompt.
|
|
136
|
+
|
|
137
|
+
For realistic human characters, prefer `--characters "ID"` over ref_image (use `renoise-cli.mjs character list` to browse preset characters).
|
|
138
|
+
|
|
139
|
+
e. **Write segment prompts** following the approved blueprint:
|
|
140
|
+
- Each prompt starts with the **visual anchor prefix** (same text in every segment)
|
|
141
|
+
- Each prompt includes an energy/transition comment header
|
|
142
|
+
- All segments generated **in parallel** with `--materials "CONCEPT_ID:ref_image"` for visual consistency
|
|
143
|
+
- Apply the assigned camera movement and pacing for that energy level
|
|
144
|
+
- Repeat full character appearance description in every segment where they appear
|
|
145
|
+
- Include dialogue and sound design aligned to the energy curve
|
|
146
|
+
|
|
147
|
+
e. Generate the supporting package:
|
|
148
|
+
- **Dialogue script**: timestamped across all segments, emotional arc matches energy curve
|
|
149
|
+
- **BGM recommendation**: specify tempo changes or build/drop moments matching the energy curve
|
|
150
|
+
- **Sound design notes**: key SFX moments, silence beats, sound bridges between segments
|
|
151
|
+
|
|
152
|
+
f. **Music continuity strategy** — ask the user before generating:
|
|
153
|
+
- If the user provides a BGM track → analyze BPM/beats, align segment time splits to beat drops
|
|
154
|
+
- If no BGM provided → each segment generates its own audio. Warn the user that cross-segment music may not match perfectly. Offer to strip audio and overlay a unified BGM track in post-processing.
|
|
155
|
+
|
|
156
|
+
4. Present the full script. Iterate based on user feedback.
|
|
157
|
+
|
|
158
|
+
**When routing to a specialized skill:**
|
|
159
|
+
|
|
160
|
+
Read that skill's SKILL.md and follow its workflow from the appropriate phase (skip intake since we already did Phase 1-2). Pass along: analyzed materials, chosen style, user preferences.
|
|
161
|
+
|
|
162
|
+
## Phase 4 — Submit & Learn
|
|
163
|
+
|
|
164
|
+
1. **Submit the video** using the Renoise CLI:
|
|
165
|
+
|
|
166
|
+
```bash
|
|
167
|
+
# Check balance first
|
|
168
|
+
node ${CLAUDE_PLUGIN_ROOT}/skills/renoise-gen/renoise-cli.mjs credit me
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
**For single-segment videos (≤ 15s):**
|
|
172
|
+
```bash
|
|
173
|
+
node ${CLAUDE_PLUGIN_ROOT}/skills/renoise-gen/renoise-cli.mjs task generate \
|
|
174
|
+
--prompt "<video-prompt>" --duration 15 --ratio 9:16 \
|
|
175
|
+
[--materials "ID:ref_image"] [--tags "project-tag"]
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**For multi-segment videos (> 15s) — PARALLEL with VISUAL ANCHOR:**
|
|
179
|
+
|
|
180
|
+
All segments are generated in parallel using the concept art as `ref_image` for visual consistency. This takes ~8 minutes regardless of segment count.
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
# Submit all segments in parallel, each with the concept art ref_image
|
|
184
|
+
# (CONCEPT_ID from Phase 3 step d)
|
|
185
|
+
node ${CLAUDE_PLUGIN_ROOT}/skills/renoise-gen/renoise-cli.mjs task create \
|
|
186
|
+
--prompt "<S1-prompt with visual anchor prefix>" --duration 15 --ratio 16:9 \
|
|
187
|
+
--materials "CONCEPT_ID:ref_image" --tags "project-tag,s1"
|
|
188
|
+
|
|
189
|
+
node ${CLAUDE_PLUGIN_ROOT}/skills/renoise-gen/renoise-cli.mjs task create \
|
|
190
|
+
--prompt "<S2-prompt with visual anchor prefix>" --duration 15 --ratio 16:9 \
|
|
191
|
+
--materials "CONCEPT_ID:ref_image" --tags "project-tag,s2"
|
|
192
|
+
|
|
193
|
+
# ... repeat for all segments
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
Wait for all tasks to complete (~8 minutes), then download and concatenate:
|
|
197
|
+
```bash
|
|
198
|
+
# Download all segment videos, then concatenate with ffmpeg
|
|
199
|
+
ffmpeg -f concat -safe 0 -i <concat-list> -c copy final-output.mp4
|
|
200
|
+
```
|
|
201
|
+
|
|
202
|
+
2. **Update preference system** after video is delivered:
|
|
203
|
+
|
|
204
|
+
**Layer 1 — Core preferences** (`~/.claude/renoise/preferences.json`):
|
|
205
|
+
Update preferred_styles (frequency-sorted), ratio, dialogue_tone, avoid list, session count.
|
|
206
|
+
Write the entire JSON file (overwrite, not append).
|
|
207
|
+
|
|
208
|
+
**Layer 2 — Style profile** (`~/.claude/renoise/style-profile.md`):
|
|
209
|
+
If the user expressed a new preference or custom style blend, update the relevant category section.
|
|
210
|
+
Only write extracted insights, not raw conversation.
|
|
211
|
+
|
|
212
|
+
**Layer 3 — History** (`~/.claude/renoise/history/YYYY-MM.md`):
|
|
213
|
+
Append a brief entry (5 lines max): date, project name, category, style chosen, result.
|
|
214
|
+
|
|
215
|
+
**Initialize preference files** if they don't exist:
|
|
216
|
+
```bash
|
|
217
|
+
mkdir -p ~/.claude/renoise/history
|
|
218
|
+
[ -f ~/.claude/renoise/preferences.json ] || echo '{}' > ~/.claude/renoise/preferences.json
|
|
219
|
+
[ -f ~/.claude/renoise/style-profile.md ] || echo '# Style Profile' > ~/.claude/renoise/style-profile.md
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
## Examples
|
|
223
|
+
|
|
224
|
+
### Example 1: Product video (common)
|
|
225
|
+
User: "I have photos of my new sneakers, help me make a video"
|
|
226
|
+
1. Phase 1: Analyze sneaker images via `gemini-gen` skill → extract product type, colors, selling points
|
|
227
|
+
2. Phase 2: Suggest Minimal Showcase / Dynamic Sports / Lifestyle Vlog with adapted descriptions
|
|
228
|
+
3. User picks "Dynamic Sports"
|
|
229
|
+
4. Phase 3: Generate 15s video prompt with fast tracking, high-energy BGM, beat-synced cuts
|
|
230
|
+
5. Phase 4: Upload product image, submit task, wait for result
|
|
231
|
+
|
|
232
|
+
### Example 2: Short drama (no specialized skill)
|
|
233
|
+
User: "I want a 15-second suspense clip about a mysterious package"
|
|
234
|
+
1. Phase 1: No images — text-only creative brief, discover no matching specialized skill
|
|
235
|
+
2. Phase 2: Suggest Suspense & Twist / Dramatic Conflict / Warm & Heartfelt
|
|
236
|
+
3. User picks "Suspense & Twist"
|
|
237
|
+
4. Phase 3: Director generates video prompt directly (cold tones, slow push-in, surprise ending)
|
|
238
|
+
5. Phase 4: Submit text-to-video task
|
|
239
|
+
|
|
240
|
+
### Example 3: User has style preferences
|
|
241
|
+
User: "Make another product video for my candle" (returning user)
|
|
242
|
+
1. Phase 1: Read preferences.json → user historically prefers "Calm & Aesthetic", dislikes "hard-sell tone"
|
|
243
|
+
2. Phase 2: Rank "Calm & Aesthetic" first, also suggest "Premium Commercial" and "Lifestyle Vlog"
|
|
244
|
+
3. Faster iteration because preferences pre-filter the options
|
|
245
|
+
|
|
246
|
+
## Troubleshooting
|
|
247
|
+
|
|
248
|
+
### PrivacyInformation error
|
|
249
|
+
**Cause**: Uploaded image contains realistic human face.
|
|
250
|
+
**Solution**: Switch to text-to-video. Describe the person's appearance in the prompt instead of uploading their photo.
|
|
251
|
+
|
|
252
|
+
### Insufficient credits (402)
|
|
253
|
+
**Cause**: Renoise balance too low.
|
|
254
|
+
**Solution**: Run `renoise-cli.mjs credit me` to check balance, inform user of current balance and estimated cost.
|
|
255
|
+
|
|
256
|
+
### Skill routing confusion
|
|
257
|
+
**Cause**: User intent unclear between director vs specialized skill.
|
|
258
|
+
**Solution**: Default to director flow. If the user specifically mentions "TikTok" or "ecommerce", route to tiktok-content-maker.
|
|
259
|
+
|
|
260
|
+
### Video generation takes too long
|
|
261
|
+
**Cause**: 15s videos typically need 5-10 minutes.
|
|
262
|
+
**Solution**: Set `--timeout 600` (10 min). For longer waits, use `--timeout 900`.
|
|
263
|
+
|
|
264
|
+
## Performance Notes
|
|
265
|
+
|
|
266
|
+
- Take your time to analyze the user's materials thoroughly
|
|
267
|
+
- Quality of style suggestions is more important than speed
|
|
268
|
+
- Do not skip the preference system read/write steps
|
|
269
|
+
- Always read the full video-capabilities.md before writing prompts
|