{
  "id": "sogni-creative-agent-skill",
  "name": "Sogni Creative Agent Skill — Image, Video & Music Generation",
  "description": "Agent skill and CLI for Sogni AI image, video, and music generation.",
  "version": "3.13.0",
  "skills": [
    "."
  ],
  "configSchema": {
    "type": "object",
    "additionalProperties": false,
    "properties": {
      "defaultImageModel": {
        "type": "string",
        "default": "z_image_turbo_bf16",
        "description": "Default model for text-to-image."
      },
      "defaultEditModel": {
        "type": "string",
        "default": "qwen_image_edit_2511_fp8_lightning",
        "description": "Default model for image editing when context images are provided."
      },
      "defaultPhotoboothModel": {
        "type": "string",
        "default": "coreml-sogniXLturbo_alpha1_ad",
        "description": "Default model for photobooth face transfer."
      },
      "defaultMusicModel": {
        "type": "string",
        "default": "ace_step_1.5_xl_turbo",
        "description": "Default model for direct music/audio generation."
      },
      "videoModels": {
        "type": "object",
        "additionalProperties": false,
        "description": "Override per-workflow default video models.",
        "properties": {
          "t2v": { "type": "string", "default": "ltx23-22b-fp8_t2v_distilled" },
          "i2v": { "type": "string", "default": "wan_v2.2-14b-fp8_i2v_lightx2v" },
          "s2v": { "type": "string", "default": "wan_v2.2-14b-fp8_s2v_lightx2v" },
          "ia2v": { "type": "string", "default": "ltx23-22b-fp8_ia2v_distilled" },
          "a2v": { "type": "string", "default": "ltx23-22b-fp8_a2v_distilled" },
          "v2v": { "type": "string", "default": "ltx23-22b-fp8_v2v_distilled" },
          "animate-move": { "type": "string", "default": "wan_v2.2-14b-fp8_animate-move_lightx2v" },
          "animate-replace": { "type": "string", "default": "wan_v2.2-14b-fp8_animate-replace_lightx2v" }
        }
      },
      "defaultVideoWorkflow": {
        "type": "string",
        "enum": ["t2v", "i2v", "s2v", "ia2v", "a2v", "v2v", "animate-move", "animate-replace"],
        "default": "t2v",
        "description": "Default video workflow when none can be inferred."
      },
      "defaultNetwork": {
        "type": "string",
        "enum": ["fast", "relaxed"],
        "default": "fast",
        "description": "Default Sogni network for the client."
      },
      "defaultTokenType": {
        "type": "string",
        "enum": ["spark", "sogni"],
        "default": "spark",
        "description": "Default token balance to use."
      },
      "apiBaseUrl": {
        "type": "string",
        "default": "https://api.sogni.ai",
        "description": "Default Sogni API base URL for --api-chat and --api-workflow modes."
      },
      "defaultLlmModel": {
        "type": "string",
        "default": "qwen3.6-35b-a3b-gguf-iq4xs",
        "description": "Default LLM model for --api-chat."
      },
      "defaultTaskProfile": {
        "type": "string",
        "enum": ["general", "coding", "reasoning"],
        "description": "Optional default Sogni Intelligence task profile forwarded as task_profile for --api-chat."
      },
      "defaultApiMaxTokens": {
        "type": "integer",
        "minimum": 1,
        "description": "Optional default max_tokens value for --api-chat and storyboard planning chat calls."
      },
      "defaultApiThinking": {
        "type": "boolean",
        "description": "Optional default chat_template_kwargs.enable_thinking value for hosted chat requests."
      },
      "defaultApiToolMode": {
        "type": "string",
        "enum": ["creative-agent", "creative-tools", "none"],
        "default": "creative-agent",
        "description": "Default Sogni tool family injected into --api-chat requests."
      },
      "defaultWorkflowMaxCost": {
        "type": "number",
        "minimum": 0,
        "description": "Optional default capacity-unit ceiling forwarded to --api-workflow requests unless --workflow-max-cost is provided."
      },
      "defaultWorkflowConfirmCost": {
        "type": "boolean",
        "description": "Optional default explicit cost confirmation forwarded to --api-workflow requests unless --confirm-cost or --no-confirm-cost is provided."
      },
      "seedStrategy": {
        "type": "string",
        "enum": ["random", "prompt-hash"],
        "default": "prompt-hash",
        "description": "Seed strategy when no seed is provided."
      },
      "modelDefaults": {
        "type": "object",
        "description": "Per-model overrides for steps/guidance.",
        "additionalProperties": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "steps": { "type": "integer", "minimum": 1 },
            "guidance": { "type": "number", "minimum": 0 }
          }
        }
      },
      "defaultWidth": {
        "type": "integer",
        "minimum": 64,
        "maximum": 4096,
        "default": 512
      },
      "defaultHeight": {
        "type": "integer",
        "minimum": 64,
        "maximum": 4096,
        "default": 512
      },
      "defaultCount": {
        "type": "integer",
        "minimum": 1,
        "maximum": 16,
        "default": 1
      },
      "defaultFps": {
        "type": "integer",
        "minimum": 1,
        "maximum": 60,
        "default": 16
      },
      "defaultDurationSec": {
        "type": "integer",
        "minimum": 1,
        "maximum": 60,
        "default": 5
      },
      "defaultImageTimeoutSec": {
        "type": "integer",
        "minimum": 5,
        "default": 30
      },
      "defaultVideoTimeoutSec": {
        "type": "integer",
        "minimum": 30,
        "default": 300
      },
      "defaultMusicDurationSec": {
        "type": "integer",
        "minimum": 10,
        "maximum": 600,
        "default": 30
      },
      "defaultMusicTimeoutSec": {
        "type": "integer",
        "minimum": 30,
        "default": 600
      },
      "credentialsPath": {
        "type": "string",
        "default": "~/.config/sogni/credentials",
        "description": "Optional path to Sogni API key credentials file (can also set SOGNI_CREDENTIALS_PATH)."
      },
      "lastRenderPath": {
        "type": "string",
        "default": "~/.config/sogni/last-render.json",
        "description": "Optional path to persist last render metadata (can also set SOGNI_LAST_RENDER_PATH)."
      },
      "mediaInboundDir": {
        "type": "string",
        "default": "~/.openclaw/media/inbound",
        "description": "Directory used by --list-media (can also set SOGNI_MEDIA_INBOUND_DIR). When unset, the CLI prefers ~/.openclaw/media/inbound and falls back to the legacy ~/.clawdbot/media/inbound if only that exists."
      }
    }
  }
}
