Skip to content
Worix
BrowsePublish
Log inSign Up

QCut Toolkit

Unified QCut media toolkit — organize project files, process media with FFmpeg, generate AI content, control the QCut editor with native CLI commands, genera...

82 downloads
Free
Reviewed

AI Content Pipeline Skill

Generate AI content (images, videos, audio) and analyze media using AICP.

Reference files:

  • REFERENCE.md - model specs, API endpoints, troubleshooting
  • EXAMPLES.md - YAML pipeline examples

FAL API Key Setup

QCut resolves the FAL key from a 3-tier fallback (highest priority wins):

TierSourceHow to set
1Environment variableexport FAL_KEY=your_key
2QCut Electron storeEditor -> Settings -> API Keys
3AICP CLI credential storeaicp set-key FAL_KEY

Recommended for Claude Code / CLI workflows:

# Set FAL key persistently (secure hidden prompt, stored at ~/.config/video-ai-studio/credentials.env)
aicp set-key FAL_KEY

# Verify the key is stored
aicp check-keys

# Or use the bundled binary directly
./electron/resources/bin/aicp/darwin-arm64/aicp set-key FAL_KEY

Once set via any tier, QCut automatically injects the key when spawning AICP for generation commands. No .env file or GUI interaction is required.

Quick check — verify FAL key is available before generating:

aicp check-keys

If FAL_KEY shows not set, set it using any method above.

Usage Modes

Mode 1 (Recommended): QCut Bundled AICP

Use this when working inside QCut.

What QCut handles for you:

  • bundled aicp binary (no local Python or pip required)
  • 3-tier API key resolution (env > Electron store > AICP CLI store)
  • FAL_KEY injection at spawn time for generation commands
  • output path recovery and optional media auto-import in app flow

Setup steps:

  1. Set your FAL key via CLI (aicp set-key FAL_KEY) or GUI (Editor -> Settings -> API Keys).
  2. Use AI generation features from the app or CLI.

Notes:

  • No .env file is required for normal QCut usage.
  • If key is missing, app should fail fast with actionable guidance.
  • Settings UI shows a source badge (env/app/cli) next to each key.

Mode 2: Standalone CLI (Debug/Dev)

Use this for local debugging outside QCut.

# Use bundled binary directly
./electron/resources/bin/aicp/darwin-arm64/aicp --version
./electron/resources/bin/aicp/darwin-arm64/aicp --help

Set keys via the CLI credential store (persistent, secure):

aicp set-key FAL_KEY
# optional
aicp set-key GEMINI_API_KEY
aicp set-key ELEVENLABS_API_KEY

Or export keys manually per session:

export FAL_KEY=your_fal_key

Mode 3: QCut CLI Key Management

QCut's Electron binary can also delegate key management headlessly:

./QCut set-key FAL_KEY      # Delegates to bundled aicp set-key
./QCut check-keys           # Shows all key statuses
./QCut delete-key FAL_KEY   # Removes a stored key

Quick Commands

Always inspect available models first in your current environment:

aicp list-models

Then use a model returned by your local list-models output.

Generate Image

aicp generate-image \
  --text "A cinematic portrait at golden hour" \
  --model MODEL_FROM_LIST_MODELS

Generate Video

aicp create-video --text "A serene mountain lake at sunset" --model wan_2_6

Generate Avatar (Lipsync)

aicp generate-avatar \
  --image-url "https://..." \
  --audio-url "https://..." \
  --model omnihuman_v1_5

Transfer Motion

aicp transfer-motion -i person.jpg -v dance.mp4

Analyze Video (CLI)

aicp analyze-video -i video.mp4
aicp analyze-video -i video.mp4 -t timeline -m gemini-2.5-flash
aicp analyze-video -i video.mp4 -t transcribe
aicp analyze-video -i video.mp4 -t describe -f json

Analyze Video (HTTP API)

QCut exposes video analysis through the Claude HTTP server (port 8765). Accepts video from timeline elements, media panel items, or file paths.

# Analyze from file path
curl -X POST http://localhost:8765/api/claude/analyze/PROJECT_ID \
  -H "Content-Type: application/json" \
  -d '{"source":{"type":"path","filePath":"/path/to/video.mp4"},"analysisType":"timeline","model":"gemini-2.5-flash"}'

# Analyze from media panel
curl -X POST http://localhost:8765/api/claude/analyze/PROJECT_ID \
  -H "Content-Type: application/json" \
  -d '{"source":{"type":"media","mediaId":"MEDIA_ID"},"analysisType":"timeline"}'

# Analyze from timeline element
curl -X POST http://localhost:8765/api/claude/analyze/PROJECT_ID \
  -H "Content-Type: application/json" \
  -d '{"source":{"type":"timeline","elementId":"ELEMENT_ID"},"analysisType":"transcribe"}'

# List available analysis models
curl http://localhost:8765/api/claude/analyze/models

Run YAML Pipeline

PIPELINE_PARALLEL_ENABLED=true aicp run-chain --config pipeline.yaml

Model and Feature Availability

Do not assume all documented models are enabled in every runtime.

Availability depends on:

  • packaged binary build contents
  • provider modules present in runtime
  • API keys and account/provider access

Practical rule:

  • treat aicp list-models as source of truth for your current machine/runtime

Known CLI Caveats

  • list-models may emit provider initialization warnings in standalone mode.
  • list-models does not reliably support --json in current upstream behavior.
  • generate-image can fail if selected model is not actually available in your runtime.

Output Structure

Generated content should follow QCut project structure:

media/generated/
├── images/
├── videos/
└── audio/

This aligns with native-cli project-organization commands (init-project, organize-project, structure-info).

FAL API Direct Access

For direct API calls (not via CLI), model keys still map to endpoint slugs. See REFERENCE.md for endpoint mappings.

Key Files Reference

ComponentFile
Key storage & fallbackelectron/api-key-handler.ts
AICP spawn + key injectionelectron/ai-pipeline-handler.ts
Binary managerelectron/binary-manager.ts
Settings UI (key source badges)apps/web/src/components/editor/properties-panel/settings-view.tsx
CLI key delegationelectron/main.ts (CLI_KEY_COMMANDS block)
Binary manifestresources/bin/manifest.json
Video analysis handlerelectron/claude/claude-analyze-handler.ts
Analysis types & APIelectron/types/claude-api.ts (AnalyzeSource, AnalyzeOptions, AnalyzeResult)
Analysis HTTP routeselectron/claude/claude-http-server.ts
Analysis testselectron/__tests__/claude-analyze-handler.test.ts
Fallback testselectron/__tests__/api-key-aicp-fallback.test.ts

Download

ZIP package — ready to use

Skill Info

Creator
donghaozhang
Downloads
82
Published
Mar 15, 2026
Updated
Mar 16, 2026