muapi-workflow
Build, run, and visualize multi-step AI generation workflows. The AI architect translates natural language descriptions into connected node graphs — chain image generation, video creation, enhancement, and editing into automated pipelines.
Install
npx skills add https://github.com/SamurAIGPT/Generative-Media-Skills/tree/main/library/workflow
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install samuraigpt-generative-media-skills@llmmart
git clone https://github.com/SamurAIGPT/Generative-Media-Skills.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole samuraigpt/generative-media-skills collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
AI Workflow Builder
Chain any combination of muapi.ai generation steps into automated pipelines. The AI architect converts your plain-language description into a runnable node graph.
Prerequisites
Always ensure the muapi CLI is up-to-date before running any commands. Reinstall from source at the start of every session:
pip install --upgrade /path/to/muapi-cli
Replace /path/to/muapi-cli with the actual path to the muapi-cli directory in the workspace (the directory containing pyproject.toml).
Core Operations
- Generate (
generate-workflow.sh) — AI architect creates a workflow from a description - Discover (
discover-workflow.sh) — Find a relevant existing workflow by natural language - Edit (
generate-workflow.sh --workflow-id) — Modify an existing workflow with a prompt - Interactive Run (
interactive-run.sh) — Prompt for inputs and execute a workflow - Run (
run-workflow.sh) — Execute a workflow, poll node-by-node, collect outputs - CLI (
muapi workflow) — Full CRUD + visualization directly from the terminal
Agent Guided Discovery & Selection
As an AI agent, you have the ability to read and understand the purpose of available workflows to select the best one for the user's task (e.g., "create a UGC video").
- Discover: Fetch the catalog of available workflows and their descriptions in JSON format.
muapi workflow discover --output-json - Match (Internal Reasoning): Use your LLM capabilities to analyze the
name,category, anddescriptionfields of the returned workflows. Find the best match for the user's intent. - Analyze: If you find a promising candidate, inspect its structure to ensure it has the necessary nodes and parameters.
CRITICAL RULE: The output ofmuapi workflow get <workflow_id>muapi workflow getwill include an "API Inputs" table. You MUST read this table to understand what inputs are required. - Choose & Confirm & Prompt User:
- If one workflow is a perfect match, you MUST ask the user to provide the exact values for the required API inputs before executing it. Never invent or guess input values (like prompts, URLs, etc.) on your own.
- If multiple workflows are highly relevant, present the options to the user with their descriptions and ask them to confirm which one to use, and also ask for the required inputs.
- If no workflow matches the user's complex request, offer to architect a new one using
muapi workflow create.
Example Agent Reasoning
"The user wants a product promo video. I fetched the catalog using
discover. I see two potential workflows:
wf_123: 'Product promo with background music'wf_456: 'Simple video gen' I will analyzewf_123withget. It has the required nodes. I will suggestwf_123or just run it if the match is precise."
Protocol: Building a Workflow
Step 1 — Describe your pipeline
muapi workflow create "take a text prompt, generate an image with flux-dev, then upscale it to 4K"
The architect returns a workflow with a unique ID and a node graph. Save the ID.
Step 2 — Inspect and visualize
# Rich ASCII node graph in the terminal
muapi workflow get <workflow_id>
# Or raw JSON
muapi workflow get <workflow_id> --output-json
Step 3 — Run it
# Run with specific inputs
muapi workflow execute <workflow_id> \
--input "node1.prompt=a glowing crystal cave at midnight"
# Use --download to pull results locally
muapi workflow execute <workflow_id> \
--input "node1.prompt=a sunset" \
--download ./outputs
Step 4 — Discovery (Optional)
If you want to reuse an existing workflow instead of creating a new one:
# Search by keywords
muapi workflow discover "ugc video"
Step 5 — Interactive Execution
Run a workflow and have the CLI prompt you for each required input:
muapi workflow run-interactive <workflow_id>
Workflow Examples
Image Pipelines
# Text → Image → Upscale
muapi workflow create "take a text prompt, generate with flux-dev, upscale the result"
# Text → Image → Background removal → Product shot
muapi workflow create "generate a product image with hidream, remove background, create professional product shot"
Video Pipelines
# Text → Video
muapi workflow create "generate a 10-second cinematic video from a text prompt using kling-master"
# Image → Video → Lipsync
muapi workflow create "animate an input image with seedance, then apply lipsync from an audio file"
Editing an Existing Workflow
# Add a step
muapi workflow edit <id> --prompt "add a face-swap step after the image generation"
# Swap a model
muapi workflow edit <id> --prompt "change the video model from kling to veo3"
CLI Reference
# List all your workflows
muapi workflow list
# Browse templates
muapi workflow templates
# Generate new workflow
muapi workflow create "text → flux image → upscale → face swap"
# Visualize a workflow
muapi workflow get <id>
# Execute with inputs
muapi workflow execute <id> --input "node1.prompt=a sunset"
# Monitor a run
muapi workflow status <run_id>
# Get outputs
muapi workflow outputs <run_id> --download ./results
# Edit with AI
muapi workflow edit <id> --prompt "add lipsync at the end"
# Rename / delete
muapi workflow rename <id> --name "Product Pipeline v2"
muapi workflow delete <id>
MCP Tools (for AI agents)
| Tool | Description |
|---|---|
muapi_workflow_list |
List user's workflows |
muapi_workflow_create |
AI architect: prompt → workflow |
muapi_workflow_get |
Get workflow definition + node graph |
muapi_workflow_execute |
Run with specific inputs |
muapi_workflow_status |
Node-by-node run status |
muapi_workflow_outputs |
Final output URLs |
Constraints
- Workflows can contain any combination of muapi.ai nodes (image, video, audio, enhance, edit)
- Node outputs are automatically wired as inputs to downstream nodes
--syncmode waits up to 120s for generation; use--asyncfor complex workflows and poll separately- Run timeouts: 10 minutes maximum per workflow execution
Files (generative-media-skills)
-
scripts
-
discover-workflow.sh 397 B
#!/bin/bash # Assistant Skill: Discover Relevant Workflow # Thin wrapper around muapi CLI. QUERY="" LIMIT=5 while [[ $# -gt 0 ]]; do case $1 in --query|-q) QUERY="$2"; shift 2 ;; --limit) LIMIT="$2"; shift 2 ;; *) shift ;; esac done if [ -z "$QUERY" ]; then echo "Error: --query is required" >&2; exit 1; fi muapi workflow discover "$QUERY" --limit "$LIMIT" -
generate-workflow.sh 892 B
#!/bin/bash # Expert Skill: AI Workflow Architect # Thin wrapper around muapi CLI. PROMPT="" WORKFLOW_ID="" # Set to edit an existing workflow ASYNC=false VIEW=false JSON_ONLY=false while [[ $# -gt 0 ]]; do case $1 in --prompt|-p) PROMPT="$2"; shift 2 ;; --workflow-id|-w) WORKFLOW_ID="$2"; shift 2 ;; --async) ASYNC=true; shift ;; --view) VIEW=true; shift ;; --json) JSON_ONLY=true; shift ;; *) shift ;; esac done if [ -z "$PROMPT" ]; then echo "Error: --prompt is required" >&2; exit 1; fi ARGS=() [ "$ASYNC" = true ] && ARGS+=("--async") [ "$VIEW" = true ] && ARGS+=("--view") [ "$JSON_ONLY" = true ] && ARGS+=("--output-json") if [ -n "$WORKFLOW_ID" ]; then muapi workflow edit "$WORKFLOW_ID" --prompt "$PROMPT" "${ARGS[@]}" else muapi workflow create "$PROMPT" "${ARGS[@]}" fi -
interactive-run.sh 373 B
#!/bin/bash # Assistant Skill: Interactive Workflow Runner # Thin wrapper around muapi CLI. WORKFLOW_ID="" while [[ $# -gt 0 ]]; do case $1 in --workflow-id|-w) WORKFLOW_ID="$2"; shift 2 ;; *) shift ;; esac done if [ -z "$WORKFLOW_ID" ]; then echo "Error: --workflow-id is required" >&2; exit 1; fi muapi workflow run-interactive "$WORKFLOW_ID" -
list-workflows.sh 390 B
#!/bin/bash # Assistant Skill: List Workflows # Thin wrapper around muapi CLI. JSON_ONLY=false LIMIT=20 while [[ $# -gt 0 ]]; do case $1 in --json) JSON_ONLY=true; shift ;; --limit) LIMIT="$2"; shift 2 ;; *) shift ;; esac done if [ "$JSON_ONLY" = true ]; then muapi workflow list --output-json else muapi workflow list | head -n $((LIMIT + 5)) fi -
run-workflow.sh 981 B
#!/bin/bash # Expert Skill: Run & Visualize an AI Workflow # Thin wrapper around muapi CLI. WORKFLOW_ID="" INPUT_ARGS=() WEBHOOK="" ASYNC=false DOWNLOAD_DIR="" while [[ $# -gt 0 ]]; do case $1 in --workflow-id|-w) WORKFLOW_ID="$2"; shift 2 ;; --input|-i) INPUT_ARGS+=("$2"); shift 2 ;; --webhook) WEBHOOK="$2"; shift 2 ;; --async) ASYNC=true; shift ;; --download|-d) DOWNLOAD_DIR="$2"; shift 2 ;; *) shift ;; esac done if [ -z "$WORKFLOW_ID" ]; then echo "Error: --workflow-id is required" >&2; exit 1; fi ARGS=() for ITEM in "${INPUT_ARGS[@]}"; do ARGS+=("--input" "$ITEM"); done [ -n "$WEBHOOK" ] && ARGS+=("--webhook" "$WEBHOOK") [ "$ASYNC" = true ] && ARGS+=("--no-wait") [ -n "$DOWNLOAD_DIR" ] && ARGS+=("--download" "$DOWNLOAD_DIR") if [ ${#INPUT_ARGS[@]} -gt 0 ]; then muapi workflow execute "$WORKFLOW_ID" "${ARGS[@]}" else muapi workflow run "$WORKFLOW_ID" "${ARGS[@]}" fi
-
-
SKILL.md 6.5 KB
--- name: muapi-workflow version: 0.1.0 description: Build, run, and visualize multi-step AI generation workflows. The AI architect translates natural language descriptions into connected node graphs — chain image generation, video creation, enhancement, and editing into automated pipelines. --- # AI Workflow Builder Chain any combination of muapi.ai generation steps into automated pipelines. The AI architect converts your plain-language description into a runnable node graph. ## Prerequisites Always ensure the `muapi` CLI is up-to-date before running any commands. Reinstall from source at the start of every session: ```bash pip install --upgrade /path/to/muapi-cli ``` Replace `/path/to/muapi-cli` with the actual path to the `muapi-cli` directory in the workspace (the directory containing `pyproject.toml`). ## Core Operations 1. **Generate** (`generate-workflow.sh`) — AI architect creates a workflow from a description 2. **Discover** (`discover-workflow.sh`) — Find a relevant existing workflow by natural language 3. **Edit** (`generate-workflow.sh --workflow-id`) — Modify an existing workflow with a prompt 4. **Interactive Run** (`interactive-run.sh`) — Prompt for inputs and execute a workflow 5. **Run** (`run-workflow.sh`) — Execute a workflow, poll node-by-node, collect outputs 6. **CLI** (`muapi workflow`) — Full CRUD + visualization directly from the terminal --- ## Agent Guided Discovery & Selection As an AI agent, you have the ability to read and understand the purpose of available workflows to select the best one for the user's task (e.g., "create a UGC video"). 1. **Discover**: Fetch the catalog of available workflows and their descriptions in JSON format. ```bash muapi workflow discover --output-json ``` 2. **Match (Internal Reasoning)**: Use your LLM capabilities to analyze the `name`, `category`, and `description` fields of the returned workflows. Find the best match for the user's intent. 3. **Analyze**: If you find a promising candidate, inspect its structure to ensure it has the necessary nodes and parameters. ```bash muapi workflow get <workflow_id> ``` **CRITICAL RULE**: The output of `muapi workflow get` will include an "API Inputs" table. You MUST read this table to understand what inputs are required. 4. **Choose & Confirm & Prompt User**: - If one workflow is a perfect match, you MUST ask the user to provide the exact values for the required API inputs before executing it. **Never invent or guess input values (like prompts, URLs, etc.) on your own.** - If multiple workflows are highly relevant, present the options to the user with their descriptions and ask them to confirm which one to use, and also ask for the required inputs. - If no workflow matches the user's complex request, offer to **architect** a new one using `muapi workflow create`. ### Example Agent Reasoning > "The user wants a product promo video. I fetched the catalog using `discover`. I see two potential workflows: > 1. `wf_123`: 'Product promo with background music' > 2. `wf_456`: 'Simple video gen' > I will analyze `wf_123` with `get`. It has the required nodes. I will suggest `wf_123` or just run it if the match is precise." --- ## Protocol: Building a Workflow ### Step 1 — Describe your pipeline ```bash muapi workflow create "take a text prompt, generate an image with flux-dev, then upscale it to 4K" ``` The architect returns a workflow with a unique ID and a node graph. Save the ID. ### Step 2 — Inspect and visualize ```bash # Rich ASCII node graph in the terminal muapi workflow get <workflow_id> # Or raw JSON muapi workflow get <workflow_id> --output-json ``` ### Step 3 — Run it ```bash # Run with specific inputs muapi workflow execute <workflow_id> \ --input "node1.prompt=a glowing crystal cave at midnight" # Use --download to pull results locally muapi workflow execute <workflow_id> \ --input "node1.prompt=a sunset" \ --download ./outputs ``` ### Step 4 — Discovery (Optional) If you want to reuse an existing workflow instead of creating a new one: ```bash # Search by keywords muapi workflow discover "ugc video" ``` ### Step 5 — Interactive Execution Run a workflow and have the CLI prompt you for each required input: ```bash muapi workflow run-interactive <workflow_id> ``` --- ## Workflow Examples ### Image Pipelines ```bash # Text → Image → Upscale muapi workflow create "take a text prompt, generate with flux-dev, upscale the result" # Text → Image → Background removal → Product shot muapi workflow create "generate a product image with hidream, remove background, create professional product shot" ``` ### Video Pipelines ```bash # Text → Video muapi workflow create "generate a 10-second cinematic video from a text prompt using kling-master" # Image → Video → Lipsync muapi workflow create "animate an input image with seedance, then apply lipsync from an audio file" ``` --- ## Editing an Existing Workflow ```bash # Add a step muapi workflow edit <id> --prompt "add a face-swap step after the image generation" # Swap a model muapi workflow edit <id> --prompt "change the video model from kling to veo3" ``` --- ## CLI Reference ```bash # List all your workflows muapi workflow list # Browse templates muapi workflow templates # Generate new workflow muapi workflow create "text → flux image → upscale → face swap" # Visualize a workflow muapi workflow get <id> # Execute with inputs muapi workflow execute <id> --input "node1.prompt=a sunset" # Monitor a run muapi workflow status <run_id> # Get outputs muapi workflow outputs <run_id> --download ./results # Edit with AI muapi workflow edit <id> --prompt "add lipsync at the end" # Rename / delete muapi workflow rename <id> --name "Product Pipeline v2" muapi workflow delete <id> ``` --- ## MCP Tools (for AI agents) | Tool | Description | |------|-------------| | `muapi_workflow_list` | List user's workflows | | `muapi_workflow_create` | AI architect: prompt → workflow | | `muapi_workflow_get` | Get workflow definition + node graph | | `muapi_workflow_execute` | Run with specific inputs | | `muapi_workflow_status` | Node-by-node run status | | `muapi_workflow_outputs` | Final output URLs | --- ## Constraints - Workflows can contain any combination of muapi.ai nodes (image, video, audio, enhance, edit) - Node outputs are automatically wired as inputs to downstream nodes - `--sync` mode waits up to 120s for generation; use `--async` for complex workflows and poll separately - Run timeouts: 10 minutes maximum per workflow execution
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.