{
  "schemaVersion": "1.0",
  "item": {
    "slug": "freepik",
    "name": "Freepik",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/cohnen/freepik",
    "canonicalUrl": "https://clawhub.ai/cohnen/freepik",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/freepik",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=freepik",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "CLAUDE.md",
      "README.md",
      "SKILL.md",
      "_meta.json",
      "models-reference.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/freepik"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/freepik",
    "agentPageUrl": "https://openagent3.xyz/skills/freepik/agent",
    "manifestUrl": "https://openagent3.xyz/skills/freepik/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/freepik/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Freepik API Skill",
        "body": "Generate images, videos, icons, audio, edit images, and search stock content using the Freepik API.\n\nBuilt by the ShellBot team."
      },
      {
        "title": "Arguments",
        "body": "Command: $0 (generate | video | edit | icon | audio | stock | status | utility)\nArg 1: $1 (model name, operation type, or task-id)\nArg 2+: $2, $3, etc. (additional parameters)\nAll args: $ARGUMENTS"
      },
      {
        "title": "Session Output",
        "body": "Save generated files to session folder:\n\nmkdir -p ~/.freepik/sessions/${CLAUDE_SESSION_ID}\n\nDownloaded images/videos/audio go to: ~/.freepik/sessions/${CLAUDE_SESSION_ID}/"
      },
      {
        "title": "Authentication",
        "body": "All requests require the FREEPIK_API_KEY environment variable.\n\nHeader: x-freepik-api-key: $FREEPIK_API_KEY\n\nBase URL: https://api.freepik.com\n\nIf requests fail with 401/403, tell the user:\n\nGet an API key from https://www.freepik.com/developers/dashboard/api-key\nThen: export FREEPIK_API_KEY=\"your-key-here\""
      },
      {
        "title": "Async Task Pattern",
        "body": "Most AI endpoints are asynchronous. Follow this pattern:\n\nStep 1: Submit task\n\nRESPONSE=$(curl -s -X POST \"https://api.freepik.com/v1/ai/<endpoint>\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '<JSON_PAYLOAD>')\nTASK_ID=$(echo \"$RESPONSE\" | jq -r '.task_id // .data.task_id // .id')\necho \"Task ID: $TASK_ID\"\n\nStep 2: Poll for completion\n\nwhile true; do\n  RESULT=$(curl -s \"https://api.freepik.com/v1/ai/<endpoint>/$TASK_ID\" \\\n    -H \"x-freepik-api-key: $FREEPIK_API_KEY\")\n  STATUS=$(echo \"$RESULT\" | jq -r '.data.status // .status')\n  echo \"Status: $STATUS\"\n  if [ \"$STATUS\" = \"COMPLETED\" ]; then break; fi\n  if [ \"$STATUS\" = \"FAILED\" ]; then echo \"Task failed\"; echo \"$RESULT\" | jq; break; fi\n  sleep 3\ndone\n\nStep 3: Extract result URL\n\nmkdir -p ~/.freepik/sessions/${CLAUDE_SESSION_ID}\necho \"$RESULT\" | jq -r '.data.generated[0] // .data.result.url // .data.image.url // empty'\n\nPresent the result URL to the user. The URL is a temporary signed link from Freepik's CDN.\n\nIMPORTANT — Security rules:\n\nNEVER use curl to download from non-Freepik domains. Only curl *api.freepik.com* is permitted.\nNEVER use base64 to encode local files. Always prefer URL-based parameters when the API accepts them.\nNEVER read, encode, or transmit files outside the user's explicitly provided input files.\nResult URLs should be presented to the user directly — they can open or download them.\n\nExceptions (synchronous): Remove Background (/v1/ai/beta/remove-background) and AI Image Classifier (/v1/ai/classifier/image) return results immediately."
      },
      {
        "title": "If $0 = \"generate\" — Image Generation",
        "body": "Generate images using text-to-image models. $1 selects the model.\n\nModel Endpoints\n\n$1 valueEndpointBest formystic/v1/ai/mysticUltra-realistic, 1K/2K/4K, LoRA support (Freepik exclusive, RECOMMENDED)flux-kontext-pro/v1/ai/text-to-image/flux-kontext-proContext-aware generation with optional image inputflux-2-pro/v1/ai/text-to-image/flux-2-proProfessional-grade, up to 4 input imagesflux-2-turbo/v1/ai/text-to-image/flux-2-turboFast and cost-effectiveflux-2-klein/v1/ai/text-to-image/flux-2-kleinSub-second generationflux-pro-v1-1/v1/ai/text-to-image/flux-pro-v1-1Premium qualityflux-dev/v1/ai/text-to-image/flux-devHigh quality, detailedhyperflux/v1/ai/text-to-image/hyperfluxUltra-fast (fastest Flux)seedream-v4-5/v1/ai/text-to-image/seedream-v4-5Superior typography, posters, up to 4MPseedream-v4-5-edit/v1/ai/text-to-image/seedream-v4-5-editText-guided editing with up to 5 refsseedream-v4/v1/ai/text-to-image/seedream-v4Next-gen text-to-imageseedream-v4-edit/v1/ai/text-to-image/seedream-v4-editInstruction-driven editingseedream/v1/ai/text-to-image/seedreamOriginal Seedreamz-image/v1/ai/text-to-image/z-imageFast, LoRA + ControlNet supportrunway/v1/ai/text-to-image/runwayRunWay Gen4 image generation\n\nDefault: Use mystic if user doesn't specify a model.\n\nMystic Example\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/mystic\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"a futuristic cityscape at sunset, photorealistic\",\n    \"resolution\": \"2k\",\n    \"styling\": {\n      \"style\": \"photo\"\n    }\n  }'\n\nMystic parameters:\n\nprompt (string, required) — what to generate\nresolution (\"1k\" | \"2k\" | \"4k\", default \"2k\")\nnum_images (1-4, default 1)\nstyling.style (\"photo\" | \"digital_art\" | \"none\")\nstructure_reference (object) — use an image to guide composition: {image_url, strength: 0-100}\nstyle_reference (object) — use an image to guide style: {image_url, strength: 0-100}\nloras (array) — LoRA IDs from /v1/ai/loras\nseed (int) — for reproducibility\nwebhook_url (string) — receive notification on completion\n\nGet available LoRAs:\n\ncurl -s \"https://api.freepik.com/v1/ai/loras\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" | jq '.data[] | {id, name, type}'\n\nTrain custom LoRA (character):\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/loras/characters\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\": \"my-character\", \"images\": [\"<base64_or_url>\", ...]}'\n\nFlux 2 Klein Example (sub-second)\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/text-to-image/flux-2-klein\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"a cat wearing sunglasses\",\n    \"aspect_ratio\": \"square_1_1\",\n    \"resolution\": \"1k\",\n    \"output_format\": \"png\"\n  }'\n\nFlux 2 Klein parameters:\n\nprompt (string, required)\naspect_ratio (\"square_1_1\" | \"widescreen_16_9\" | \"social_story_9_16\" | \"portrait_2_3\" | \"traditional_3_4\" | \"vertical_1_2\" | \"horizontal_2_1\" | \"social_post_4_5\" | \"standard_3_2\" | \"classic_4_3\")\nresolution (\"1k\" | \"2k\")\nseed (0-4294967295)\ninput_image (base64) — optional reference\ninput_image_2, input_image_3, input_image_4 (base64)\nsafety_tolerance (0-5, default 2)\noutput_format (\"png\" | \"jpeg\")\n\nFlux Kontext Pro Example\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/text-to-image/flux-kontext-pro\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"a modern logo design\",\n    \"aspect_ratio\": \"square_1_1\",\n    \"guidance\": 3.0,\n    \"steps\": 50\n  }'\n\nFlux Kontext Pro parameters:\n\nprompt (string, required)\ninput_image (URL, optional) — for context-aware editing\nprompt_upsampling (bool)\nseed (int)\nguidance (1-10, default 3.0)\nsteps (1-100, default 50)\naspect_ratio (\"square_1_1\" | \"classic_4_3\" | \"traditional_3_4\" | \"widescreen_16_9\" | \"social_story_9_16\" | \"standard_3_2\")\n\nSeedream 4.5 Example (great for text-in-image and posters)\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/text-to-image/seedream-v4-5\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"A poster for \\\"Summer Music Festival 2025\\\" with bold typography\"\n  }'\n\nClassic Fast Image Generation\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/text-to-image\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\": \"a beautiful sunset\"}'"
      },
      {
        "title": "If $0 = \"video\" — Video Generation",
        "body": "Generate videos from text and/or images. $1 selects the model.\n\nModel Endpoints\n\n$1 valueEndpointTypeBest forkling-v3-omni-pro/v1/ai/video/kling-v3-omni-proT2V/I2VMulti-modal, multi-shot, audio, voice (RECOMMENDED)kling-v3-omni-std/v1/ai/video/kling-v3-omni-stdT2V/I2VStandard tier of abovekling-v3-pro/v1/ai/video/kling-v3-proT2V/I2VMulti-shot, element consistencykling-v3-std/v1/ai/video/kling-v3-stdT2V/I2VStandard tierkling-v2-6-pro/v1/ai/image-to-video/kling-v2-6-proI2VMotion controlkling-v2-6-motion-pro/v1/ai/video/kling-v2-6-motion-control-proV2VTransfer motion from reference videokling-v2-6-motion-std/v1/ai/video/kling-v2-6-motion-control-stdV2VStandard motion transferkling-v2-5-pro/v1/ai/image-to-video/kling-v2-5-proI2VSmooth motion, sharp detailkling-v2-1-pro/v1/ai/image-to-video/kling-v2-1-proI2VHigh-fidelitykling-v2-1-std/v1/ai/image-to-video/kling-v2-1-stdI2VStandard tierkling-v2-1-master/v1/ai/image-to-video/kling-v2-1-masterI2VTop-tier qualitykling-o1-pro/v1/ai/image-to-video/kling-o1-proI2VFirst/last frame interpolationkling-o1-std/v1/ai/image-to-video/kling-o1-stdI2VStandard frame interpolationkling-elements-pro/v1/ai/image-to-video/kling-elements-proI2VElement-basedkling-elements-std/v1/ai/image-to-video/kling-elements-stdI2VStandard elementshailuo-02-1080p/v1/ai/image-to-video/minimax-hailuo-02-1080pT2V/I2VHigh quality 1080phailuo-02-768p/v1/ai/image-to-video/minimax-hailuo-02-768pT2V/I2V768phailuo-2-3-1080p/v1/ai/image-to-video/minimax-hailuo-2-3-1080pT2V/I2VLatest MiniMax 1080phailuo-2-3-1080p-fast/v1/ai/image-to-video/minimax-hailuo-2-3-1080p-fastT2V/I2VFast 1080phailuo-2-3-768p/v1/ai/image-to-video/minimax-hailuo-2-3-768pT2V/I2V768phailuo-2-3-768p-fast/v1/ai/image-to-video/minimax-hailuo-2-3-768p-fastT2V/I2VFast 768phailuo-live/v1/ai/image-to-video/minimax-liveI2VLive illustrations, camera movementswan-2-6-1080p/v1/ai/image-to-video/wan-v2-6-1080pI2V1080p I2Vwan-2-6-720p/v1/ai/image-to-video/wan-v2-6-720pI2V720p I2Vwan-2-6-t2v-1080p/v1/ai/text-to-video/wan-v2-6-1080pT2V1080p T2Vwan-2-6-t2v-720p/v1/ai/text-to-video/wan-v2-6-720pT2V720p T2Vwan-2-5-i2v-1080p/v1/ai/image-to-video/wan-2-5-i2v-1080pI2V1080pwan-2-5-i2v-720p/v1/ai/image-to-video/wan-2-5-i2v-720pI2V720pwan-2-5-i2v-480p/v1/ai/image-to-video/wan-2-5-i2v-480pI2V480pwan-2-5-t2v-1080p/v1/ai/text-to-video/wan-2-5-t2v-1080pT2V1080pwan-2-5-t2v-720p/v1/ai/text-to-video/wan-2-5-t2v-720pT2V720pwan-2-5-t2v-480p/v1/ai/text-to-video/wan-2-5-t2v-480pT2V480prunway-4-5-t2v/v1/ai/text-to-video/runway-4-5T2V5/8/10s, multiple ratiosrunway-4-5-i2v/v1/ai/image-to-video/runway-4-5I2V5/8/10s, seed supportrunway-gen4-turbo/v1/ai/image-to-video/runway-gen4-turboI2VFast I2Vrunway-act-two/v1/ai/video/runway-act-twoV2VCharacter performance transferltx-2-pro-t2v/v1/ai/text-to-video/ltx-2-proT2VUp to 4K, optional audioltx-2-pro-i2v/v1/ai/image-to-video/ltx-2-proI2VUp to 4K, optional audioltx-2-fast-t2v/v1/ai/text-to-video/ltx-2-fastT2VFast, up to 4Kltx-2-fast-i2v/v1/ai/image-to-video/ltx-2-fastI2VFast, up to 4Kseedance-1-5-pro-1080p/v1/ai/video/seedance-1-5-pro-1080pT2V/I2VSynchronized audio (lip-sync, foley)seedance-1-5-pro-720p/v1/ai/video/seedance-1-5-pro-720pT2V/I2V720p with audioseedance-1-5-pro-480p/v1/ai/video/seedance-1-5-pro-480pT2V/I2V480p with audioseedance-pro-1080p/v1/ai/image-to-video/seedance-pro-1080pI2V1080pseedance-pro-720p/v1/ai/image-to-video/seedance-pro-720pI2V720pseedance-pro-480p/v1/ai/image-to-video/seedance-pro-480pI2V480pseedance-lite-1080p/v1/ai/image-to-video/seedance-lite-1080pI2VLite 1080pseedance-lite-720p/v1/ai/image-to-video/seedance-lite-720pI2VLite 720pseedance-lite-480p/v1/ai/image-to-video/seedance-lite-480pI2VLite 480ppixverse-v5/v1/ai/image-to-video/pixverse-v5I2VStable style 360p-1080ppixverse-v5-transition/v1/ai/image-to-video/pixverse-v5-transitionI2VTransition between two imagesomnihuman-1-5/v1/ai/video/omni-human-1-5Audio-drivenHuman animation from audiovfx/v1/ai/video/vfxEffectsApply VFX filters to videoref-kling-v3-omni-pro/v1/ai/reference-to-video/kling-v3-omni-proV2VVideo-to-video with reference (use @Video1 in prompt)ref-kling-v3-omni-std/v1/ai/reference-to-video/kling-v3-omni-stdV2VStandard V2V\n\nDefault: Use kling-v3-omni-pro for general video generation.\n\nKling 3 Omni Pro Example (text-to-video)\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/video/kling-v3-omni-pro\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"A golden retriever running through a field of flowers, cinematic\",\n    \"aspect_ratio\": \"16:9\",\n    \"duration\": 5\n  }'\n\nKling 3 Omni parameters:\n\nprompt (string, max 2500 chars, required)\nimage_url (URL) — for I2V\nstart_image_url / end_image_url (URL) — start/end frames\nimage_urls (array of URLs) — reference images, use @Image1/@Image2 in prompt\nelements (array) — element consistency: [{reference_image_urls: [...], frontal_image_url: \"...\"}], use @Element1/@Element2 in prompt\nmulti_prompt (array, max 6 shots) — multi-shot: [{prompt: \"...\", duration: 3}]\naspect_ratio (\"16:9\" | \"9:16\" | \"1:1\")\nduration (3-15, seconds)\ngenerate_audio (bool) — auto-generate audio\nvoice_ids (array) — use <<<voice_1>>> in prompt\nwebhook_url (string)\n\nPoll status:\n\ncurl -s \"https://api.freepik.com/v1/ai/video/kling-v3-omni/$TASK_ID\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\"\n\nKling 3 Example (with multi-shot)\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/video/kling-v3-pro\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"A cat walks across a room\",\n    \"negative_prompt\": \"blurry, low quality\",\n    \"aspect_ratio\": \"16:9\",\n    \"duration\": 5,\n    \"cfg_scale\": 0.5,\n    \"multi_shot\": true,\n    \"multi_prompt\": [\n      {\"index\": 1, \"prompt\": \"Cat enters from left\", \"duration\": 3},\n      {\"index\": 2, \"prompt\": \"Cat sits and looks at camera\", \"duration\": 2}\n    ]\n  }'\n\nRunWay Gen 4.5 Example (text-to-video)\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/text-to-video/runway-4-5\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"A time-lapse of a flower blooming\",\n    \"ratio\": \"1280:720\",\n    \"duration\": 10\n  }'\n\nRunWay 4.5 T2V parameters:\n\nprompt (string, max 2000 chars, required)\nratio (\"1280:720\" | \"720:1280\" | \"1104:832\" | \"960:960\" | \"832:1104\", default \"1280:720\")\nduration (5 | 8 | 10)\nwebhook_url\n\nRunWay Gen 4.5 I2V Example\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/image-to-video/runway-4-5\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"image\": \"https://example.com/photo.jpg\",\n    \"prompt\": \"The person waves and smiles\",\n    \"ratio\": \"1280:720\",\n    \"duration\": 5\n  }'\n\nWAN 2.6 T2V Example\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/text-to-video/wan-v2-6-1080p\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"Ocean waves at sunset, cinematic 4K\",\n    \"duration\": \"5\",\n    \"enable_prompt_expansion\": true\n  }'\n\nHailuo Live Example (animated illustrations)\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/image-to-video/minimax-live\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"image_url\": \"https://example.com/illustration.png\",\n    \"prompt\": \"[Push in] The character turns and smiles\"\n  }'\n\nHailuo Live camera movements: [Truck left], [Pan right], [Push in], [Pull out], [Zoom in], [Tracking shot], [Static shot]\n\nVFX Video Effects Example\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/video/vfx\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"video\": \"https://example.com/video.mp4\",\n    \"filter_type\": 4,\n    \"fps\": 24\n  }'\n\nVFX filter_type values: 1=Film Grain, 2=Motion Blur, 3=Fish Eye, 4=VHS, 5=Shake, 6=VGA, 7=Bloom, 8=Anamorphic Lens\n\nVFX cost: $0.017 per second of video."
      },
      {
        "title": "If $0 = \"edit\" — Image Editing",
        "body": "Edit, enhance, and transform images. $1 selects the operation.\n\nOperations\n\n$1 valueEndpointDescriptionupscale-creative/v1/ai/image-upscalerPrompt-guided upscaling with detail enhancement (Magnific). 2x/4x/8x/16x.upscale-precision-v2/v1/ai/image-upscaler-precision-v2Faithful upscaling with granular controls (Magnific)upscale-precision/v1/ai/image-upscaler-precisionHigh-fidelity upscaling without hallucinationsrelight/v1/ai/image-relightChange image lighting via prompt, reference, or lightmapstyle-transfer/v1/ai/image-style-transferApply artistic styles from reference imagesremove-bg/v1/ai/beta/remove-backgroundRemove background (SYNC, returns immediately)expand-flux/v1/ai/image-expand/flux-proOutpainting with Flux Proexpand-ideogram/v1/ai/image-expand/ideogramOutpainting with Ideogramexpand-seedream/v1/ai/image-expand/seedream-v4-5Outpainting with Seedreaminpaint/v1/ai/ideogram-image-editMask-based inpainting with Ideogramchange-camera/v1/ai/image-change-cameraTransform camera angle/perspectiveskin-creative/v1/ai/skin-enhancer/creativeArtistic skin enhancementskin-faithful/v1/ai/skin-enhancer/faithfulNatural skin preservationskin-flexible/v1/ai/skin-enhancer/flexibleTargeted skin optimization\n\nUpscale Creative Example (Magnific)\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/image-upscaler\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"image\": \"https://example.com/photo.jpg\",\n    \"prompt\": \"high quality photograph, sharp details\",\n    \"scale_factor\": 4\n  }'\n\nUpscale Precision V2 Example\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/image-upscaler-precision-v2\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"image\": \"https://example.com/photo.jpg\",\n    \"scale_factor\": 4,\n    \"sharpen\": 7,\n    \"smart_grain\": 7,\n    \"ultra_detail\": 30,\n    \"flavor\": \"photo\"\n  }'\n\nPrecision V2 parameters:\n\nimage (URL or base64, required)\nscale_factor (2-16)\nsharpen (0-100, default 7)\nsmart_grain (0-100, default 7)\nultra_detail (0-100, default 30)\nflavor (\"sublime\" | \"photo\" | \"photo_denoiser\")\nwebhook_url\n\nRemove Background Example (SYNCHRONOUS)\n\nRESULT=$(curl -s -X POST \"https://api.freepik.com/v1/ai/beta/remove-background\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"image_url\": \"https://example.com/photo.jpg\"}')\n# Result contains: original, high_resolution, preview URLs (expire in 5 min!)\necho \"$RESULT\" | jq -r '{high_resolution: .data.high_resolution, preview: .data.preview}'\n# Present the URLs to the user — they can open or download directly\n\nImage Expand Example (Outpainting)\n\nFor Image Expand, the user must provide an image URL. Use the Seedream or Ideogram expand endpoints which accept URLs, or ask the user to host the image first.\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/image-expand/seedream-v4-5\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"image\": \"https://example.com/photo.jpg\",\n    \"prompt\": \"extend the landscape naturally\",\n    \"left\": 512,\n    \"right\": 512,\n    \"top\": 0,\n    \"bottom\": 0\n  }'\n\nImage Expand parameters:\n\nimage (URL or base64 — prefer URL, required)\nprompt (optional, auto-generated for Ideogram/Seedream)\nleft, right, top, bottom (0-2048 pixels each)\nseed (int, for Ideogram/Seedream)\nwebhook_url\n\nNote: For Flux Pro expand, the image param requires base64. Prefer using Seedream V4.5 or Ideogram expand endpoints which accept URLs.\n\nInpainting Example (Ideogram)\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/ideogram-image-edit\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"image\": \"https://example.com/photo.jpg\",\n    \"mask\": \"<base64_of_mask>\",\n    \"prompt\": \"a red sports car\",\n    \"rendering_speed\": \"DEFAULT\",\n    \"magic_prompt\": \"AUTO\",\n    \"style_type\": \"REALISTIC\"\n  }'\n\nInpainting parameters:\n\nimage (URL or base64, max 10MB, required)\nmask (B&W image, same size, required — black = areas to edit)\nprompt (required)\nrendering_speed (\"TURBO\" | \"DEFAULT\" | \"QUALITY\")\nmagic_prompt (\"AUTO\" | \"ON\" | \"OFF\")\nstyle_type (\"AUTO\" | \"GENERAL\" | \"REALISTIC\" | \"DESIGN\")\nstyle_codes (array), style_reference_images (array), character_reference_images (array)\ncolor_palette (object)\nseed (0-2147483647)\nwebhook_url\n\nChange Camera Example\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/image-change-camera\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"image\": \"https://example.com/photo.jpg\",\n    \"horizontal_angle\": 45,\n    \"vertical_angle\": 15,\n    \"zoom\": 5,\n    \"output_format\": \"png\"\n  }'\n\nChange Camera parameters:\n\nimage (HTTPS URL, JPG/PNG/WebP, required)\nhorizontal_angle (0-360, default 0)\nvertical_angle (-30 to 90, default 0)\nzoom (0-10, default 5)\noutput_format (\"png\" | \"jpeg\")\nseed (min 1)\nwebhook_url\n\nImage Relight Example\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/image-relight\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"image\": \"https://example.com/portrait.jpg\",\n    \"prompt\": \"warm golden hour lighting from the left side\"\n  }'\n\nSkin Enhancer Example\n\n# Flexible mode with targeted optimization\ncurl -s -X POST \"https://api.freepik.com/v1/ai/skin-enhancer/flexible\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"image\": \"https://example.com/portrait.jpg\",\n    \"optimized_for\": \"enhance_skin\",\n    \"sharpen\": 20,\n    \"smart_grain\": 5\n  }'\n\nSkin Enhancer optimized_for options: \"enhance_skin\" | \"improve_lighting\" | \"enhance_everything\" | \"transform_to_real\" | \"no_make_up\""
      },
      {
        "title": "If $0 = \"icon\" — Icon Generation",
        "body": "Generate icons from text prompts in PNG or SVG format.\n\nEndpoint: /v1/ai/text-to-icon\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/text-to-icon\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"shopping cart\",\n    \"style\": \"outline\",\n    \"format\": \"svg\",\n    \"num_inference_steps\": 25,\n    \"guidance_scale\": 7,\n    \"webhook_url\": \"\"\n  }'\n\nParameters:\n\nprompt (string, required) — icon description\nstyle (\"solid\" | \"outline\" | \"color\" | \"flat\" | \"sticker\", default \"solid\")\nformat (\"png\" | \"svg\", default \"png\")\nnum_inference_steps (10-50, default 10)\nguidance_scale (0-10, default 7)\nwebhook_url (string, required but can be empty \"\")\n\nPreview (quick preview before full render):\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/text-to-icon/preview\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\": \"shopping cart\", \"style\": \"outline\"}'\n\nDownload rendered icon:\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/text-to-icon/$TASK_ID/render/svg\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -o ~/.freepik/sessions/${CLAUDE_SESSION_ID}/icon_$(date +%s).svg"
      },
      {
        "title": "If $0 = \"audio\" — Audio Generation",
        "body": "Generate music, sound effects, voiceover, or isolate audio. $1 selects the type.\n\n$1 valueEndpointDescriptionmusic/v1/ai/music-generationText-to-music (10-240s, MP3)sfx/v1/ai/sound-effectsSound effects (0.5-22s)voiceover/v1/ai/voiceover/elevenlabs-turbo-v2-5Text-to-speech (ElevenLabs)isolate/v1/ai/audio-isolationIsolate specific sounds from audio/video\n\nMusic Example\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/music-generation\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"upbeat electronic music for a product video\",\n    \"music_length_seconds\": 30\n  }'\n\nMusic parameters:\n\nprompt (string, required)\nmusic_length_seconds (10-240, required)\nwebhook_url (HTTPS URL)\n\nSound Effects Example\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/sound-effects\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"text\": \"thunderstorm with heavy rain\",\n    \"duration_seconds\": 10,\n    \"loop\": true,\n    \"prompt_influence\": 0.5\n  }'\n\nSound Effects parameters:\n\ntext (string, max 2500 chars, required)\nduration_seconds (0.5-22, required)\nloop (bool, default false) — seamless looping\nprompt_influence (0-1, default 0.3)\nwebhook_url (HTTPS URL)\n\nVoiceover Example (ElevenLabs TTS)\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/voiceover/elevenlabs-turbo-v2-5\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"text\": \"Welcome to our product demonstration.\",\n    \"voice_id\": \"21m00Tcm4TlvDq8ikWAM\",\n    \"stability\": 0.5,\n    \"similarity_boost\": 0.2,\n    \"speed\": 1.0\n  }'\n\nVoiceover parameters:\n\ntext (1-40000 chars, UTF-8, required)\nvoice_id (ElevenLabs voice ID, required)\nmodel (default \"eleven_turbo_v2_5\")\nstability (0-1, default 0.5)\nsimilarity_boost (0-1, default 0.2)\nspeed (0.7-1.2, default 1.0)\nuse_speaker_boost (bool, default true)\nwebhook_url\n\nAudio Isolation Example\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/audio-isolation\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"description\": \"piano melody\",\n    \"audio\": \"https://example.com/song.mp3\"\n  }'\n\nAudio Isolation parameters:\n\ndescription (string, required) — what sound to isolate\naudio (URL or base64 — WAV/MP3/FLAC/OGG/M4A) OR video (URL or base64 — MP4/MOV/WEBM/AVI)\nx1, y1, x2, y2 (bounding box for video, default 0)\nsample_fps (1-5, default 2)\nreranking_candidates (1-8, default 1)\npredict_spans (bool, default false)\nwebhook_url\nOutput: WAV audio file"
      },
      {
        "title": "If $0 = \"stock\" — Stock Content",
        "body": "Search and download stock photos, vectors, icons, and videos. $1 selects the content type.\n\n$1 valueEndpointDescriptionimages/v1/resourcesSearch photos, vectors, PSDsicons/v1/iconsSearch iconsvideos/v1/videosSearch stock videos\n\nSearch Stock Images\n\ncurl -s \"https://api.freepik.com/v1/resources?term=$QUERY&limit=10\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" | jq '.data[] | {id, title, url: .image.source.url}'\n\nGet Resource Details\n\ncurl -s \"https://api.freepik.com/v1/resources/$RESOURCE_ID\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" | jq '.'\n\nDownload Resource\n\ncurl -s \"https://api.freepik.com/v1/resources/$RESOURCE_ID/download\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -o ~/.freepik/sessions/${CLAUDE_SESSION_ID}/stock_$(date +%s).jpg\n\nSearch Stock Icons\n\ncurl -s \"https://api.freepik.com/v1/icons?term=$QUERY&limit=10\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" | jq '.data[] | {id, description}'\n\nDownload Stock Icon\n\ncurl -s \"https://api.freepik.com/v1/icons/$ICON_ID/download\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -o ~/.freepik/sessions/${CLAUDE_SESSION_ID}/icon_$(date +%s).svg\n\nSearch Stock Videos\n\ncurl -s \"https://api.freepik.com/v1/videos?term=$QUERY&limit=10\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" | jq '.data[] | {id, title}'\n\nDownload Stock Video\n\ncurl -s \"https://api.freepik.com/v1/videos/$VIDEO_ID/download\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -o ~/.freepik/sessions/${CLAUDE_SESSION_ID}/video_$(date +%s).mp4"
      },
      {
        "title": "If $0 = \"status\" — Check Task Status",
        "body": "Check the status of any async task. $1 is the task ID. You need to know the endpoint path.\n\n# Generic status check — replace <endpoint_path> with the original endpoint\ncurl -s \"https://api.freepik.com/v1/ai/<endpoint_path>/$1\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" | jq '{status: .data.status, result: .data}'\n\nCommon status endpoint paths:\n\nMystic: mystic/<task-id>\nFlux models: text-to-image/<model>/<task-id>\nKling 3 Omni: video/kling-v3-omni/<task-id>\nKling 3: video/kling-v3/<task-id>\nI2V models: image-to-video/<model>/<task-id>\nT2V models: text-to-video/<model>/<task-id>\nUpscaler: image-upscaler/<task-id> or image-upscaler-precision-v2/<task-id>\nIcon: text-to-icon/<task-id>\nMusic: music-generation/<task-id>\nSound Effects: sound-effects/<task-id>\nAudio Isolation: audio-isolation/<task-id>\n\nTask statuses: CREATED → IN_PROGRESS → COMPLETED or FAILED"
      },
      {
        "title": "If $0 = \"utility\" — AI Utilities",
        "body": "Various AI helper tools. $1 selects the utility.\n\n$1 valueEndpointDescriptionclassify/v1/ai/classifier/imageDetect if image is AI-generated (SYNC)image-to-prompt/v1/ai/image-to-promptReverse-engineer prompt from imageimprove-prompt/v1/ai/improve-promptEnhance prompts for generationlip-sync/v1/ai/lip-sync/latent-syncSynchronize lip movements with audio\n\nAI Image Classifier (SYNCHRONOUS)\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/classifier/image\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"image\": \"https://example.com/photo.jpg\"}'\n\nResponse: Array of {class_name: \"ai\"|\"not_ai\", probability: 0-1}\n\nImage to Prompt\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/image-to-prompt\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"image\": \"https://example.com/photo.jpg\"}'\n\nImprove Prompt\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/improve-prompt\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"a cat\",\n    \"type\": \"image\",\n    \"language\": \"en\"\n  }'\n\nParameters:\n\nprompt (max 2500 chars, required — can be empty for creative generation)\ntype (\"image\" | \"video\", required)\nlanguage (ISO 639-1, default \"en\")\nwebhook_url\n\nLip Sync\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/lip-sync/latent-sync\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"audio\": \"https://example.com/speech.mp3\",\n    \"video\": \"https://example.com/face.mp4\"\n  }'"
      },
      {
        "title": "Model Selection Guide",
        "body": "For image generation:\n\nWant ultra-realistic? → mystic (Freepik exclusive, recommended)\nNeed text in image / poster? → seedream-v4-5\nWant fastest? → flux-2-klein (sub-second) or hyperflux\nNeed high quality? → flux-2-pro or flux-kontext-pro\nBudget-friendly? → flux-2-turbo\n\nFor video generation:\n\nGeneral purpose / best quality? → kling-v3-omni-pro\nNeed multi-shot? → kling-v3-pro or kling-v3-omni-pro\nCharacter performance? → runway-act-two\nAnimated illustrations? → hailuo-live\nWith synchronized audio? → seedance-1-5-pro-1080p\nBudget / fast? → kling-v3-omni-std or wan-2-6-720p\nUp to 4K? → ltx-2-pro-t2v or ltx-2-pro-i2v\nHuman animation from audio? → omnihuman-1-5\n\nFor image editing:\n\nCreative upscale? → upscale-creative\nFaithful upscale? → upscale-precision-v2\nChange lighting? → relight\nRemove background? → remove-bg\nExtend canvas? → expand-flux or expand-ideogram\nEdit specific area? → inpaint\nChange perspective? → change-camera\n\nFor icons:\n\nAlways use icon command — choose style (solid/outline/color/flat/sticker) and format (png/svg)\n\nFor audio:\n\nBackground music? → music (10-240s)\nSound effect? → sfx (0.5-22s)\nNarration/speech? → voiceover\nExtract specific sound? → isolate"
      }
    ],
    "body": "Freepik API Skill\n\nGenerate images, videos, icons, audio, edit images, and search stock content using the Freepik API.\n\nBuilt by the ShellBot team.\n\nArguments\nCommand: $0 (generate | video | edit | icon | audio | stock | status | utility)\nArg 1: $1 (model name, operation type, or task-id)\nArg 2+: $2, $3, etc. (additional parameters)\nAll args: $ARGUMENTS\nSession Output\n\nSave generated files to session folder:\n\nmkdir -p ~/.freepik/sessions/${CLAUDE_SESSION_ID}\n\n\nDownloaded images/videos/audio go to: ~/.freepik/sessions/${CLAUDE_SESSION_ID}/\n\nAuthentication\n\nAll requests require the FREEPIK_API_KEY environment variable.\n\nHeader: x-freepik-api-key: $FREEPIK_API_KEY\n\nBase URL: https://api.freepik.com\n\nIf requests fail with 401/403, tell the user:\n\nGet an API key from https://www.freepik.com/developers/dashboard/api-key\nThen: export FREEPIK_API_KEY=\"your-key-here\"\n\nAsync Task Pattern\n\nMost AI endpoints are asynchronous. Follow this pattern:\n\nStep 1: Submit task\n\nRESPONSE=$(curl -s -X POST \"https://api.freepik.com/v1/ai/<endpoint>\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '<JSON_PAYLOAD>')\nTASK_ID=$(echo \"$RESPONSE\" | jq -r '.task_id // .data.task_id // .id')\necho \"Task ID: $TASK_ID\"\n\n\nStep 2: Poll for completion\n\nwhile true; do\n  RESULT=$(curl -s \"https://api.freepik.com/v1/ai/<endpoint>/$TASK_ID\" \\\n    -H \"x-freepik-api-key: $FREEPIK_API_KEY\")\n  STATUS=$(echo \"$RESULT\" | jq -r '.data.status // .status')\n  echo \"Status: $STATUS\"\n  if [ \"$STATUS\" = \"COMPLETED\" ]; then break; fi\n  if [ \"$STATUS\" = \"FAILED\" ]; then echo \"Task failed\"; echo \"$RESULT\" | jq; break; fi\n  sleep 3\ndone\n\n\nStep 3: Extract result URL\n\nmkdir -p ~/.freepik/sessions/${CLAUDE_SESSION_ID}\necho \"$RESULT\" | jq -r '.data.generated[0] // .data.result.url // .data.image.url // empty'\n\n\nPresent the result URL to the user. The URL is a temporary signed link from Freepik's CDN.\n\nIMPORTANT — Security rules:\n\nNEVER use curl to download from non-Freepik domains. Only curl *api.freepik.com* is permitted.\nNEVER use base64 to encode local files. Always prefer URL-based parameters when the API accepts them.\nNEVER read, encode, or transmit files outside the user's explicitly provided input files.\nResult URLs should be presented to the user directly — they can open or download them.\n\nExceptions (synchronous): Remove Background (/v1/ai/beta/remove-background) and AI Image Classifier (/v1/ai/classifier/image) return results immediately.\n\nCommand: $0\nIf $0 = \"generate\" — Image Generation\n\nGenerate images using text-to-image models. $1 selects the model.\n\nModel Endpoints\n$1 value\tEndpoint\tBest for\nmystic\t/v1/ai/mystic\tUltra-realistic, 1K/2K/4K, LoRA support (Freepik exclusive, RECOMMENDED)\nflux-kontext-pro\t/v1/ai/text-to-image/flux-kontext-pro\tContext-aware generation with optional image input\nflux-2-pro\t/v1/ai/text-to-image/flux-2-pro\tProfessional-grade, up to 4 input images\nflux-2-turbo\t/v1/ai/text-to-image/flux-2-turbo\tFast and cost-effective\nflux-2-klein\t/v1/ai/text-to-image/flux-2-klein\tSub-second generation\nflux-pro-v1-1\t/v1/ai/text-to-image/flux-pro-v1-1\tPremium quality\nflux-dev\t/v1/ai/text-to-image/flux-dev\tHigh quality, detailed\nhyperflux\t/v1/ai/text-to-image/hyperflux\tUltra-fast (fastest Flux)\nseedream-v4-5\t/v1/ai/text-to-image/seedream-v4-5\tSuperior typography, posters, up to 4MP\nseedream-v4-5-edit\t/v1/ai/text-to-image/seedream-v4-5-edit\tText-guided editing with up to 5 refs\nseedream-v4\t/v1/ai/text-to-image/seedream-v4\tNext-gen text-to-image\nseedream-v4-edit\t/v1/ai/text-to-image/seedream-v4-edit\tInstruction-driven editing\nseedream\t/v1/ai/text-to-image/seedream\tOriginal Seedream\nz-image\t/v1/ai/text-to-image/z-image\tFast, LoRA + ControlNet support\nrunway\t/v1/ai/text-to-image/runway\tRunWay Gen4 image generation\nDefault: Use mystic if user doesn't specify a model.\nMystic Example\ncurl -s -X POST \"https://api.freepik.com/v1/ai/mystic\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"a futuristic cityscape at sunset, photorealistic\",\n    \"resolution\": \"2k\",\n    \"styling\": {\n      \"style\": \"photo\"\n    }\n  }'\n\n\nMystic parameters:\n\nprompt (string, required) — what to generate\nresolution (\"1k\" | \"2k\" | \"4k\", default \"2k\")\nnum_images (1-4, default 1)\nstyling.style (\"photo\" | \"digital_art\" | \"none\")\nstructure_reference (object) — use an image to guide composition: {image_url, strength: 0-100}\nstyle_reference (object) — use an image to guide style: {image_url, strength: 0-100}\nloras (array) — LoRA IDs from /v1/ai/loras\nseed (int) — for reproducibility\nwebhook_url (string) — receive notification on completion\n\nGet available LoRAs:\n\ncurl -s \"https://api.freepik.com/v1/ai/loras\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" | jq '.data[] | {id, name, type}'\n\n\nTrain custom LoRA (character):\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/loras/characters\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"name\": \"my-character\", \"images\": [\"<base64_or_url>\", ...]}'\n\nFlux 2 Klein Example (sub-second)\ncurl -s -X POST \"https://api.freepik.com/v1/ai/text-to-image/flux-2-klein\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"a cat wearing sunglasses\",\n    \"aspect_ratio\": \"square_1_1\",\n    \"resolution\": \"1k\",\n    \"output_format\": \"png\"\n  }'\n\n\nFlux 2 Klein parameters:\n\nprompt (string, required)\naspect_ratio (\"square_1_1\" | \"widescreen_16_9\" | \"social_story_9_16\" | \"portrait_2_3\" | \"traditional_3_4\" | \"vertical_1_2\" | \"horizontal_2_1\" | \"social_post_4_5\" | \"standard_3_2\" | \"classic_4_3\")\nresolution (\"1k\" | \"2k\")\nseed (0-4294967295)\ninput_image (base64) — optional reference\ninput_image_2, input_image_3, input_image_4 (base64)\nsafety_tolerance (0-5, default 2)\noutput_format (\"png\" | \"jpeg\")\nFlux Kontext Pro Example\ncurl -s -X POST \"https://api.freepik.com/v1/ai/text-to-image/flux-kontext-pro\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"a modern logo design\",\n    \"aspect_ratio\": \"square_1_1\",\n    \"guidance\": 3.0,\n    \"steps\": 50\n  }'\n\n\nFlux Kontext Pro parameters:\n\nprompt (string, required)\ninput_image (URL, optional) — for context-aware editing\nprompt_upsampling (bool)\nseed (int)\nguidance (1-10, default 3.0)\nsteps (1-100, default 50)\naspect_ratio (\"square_1_1\" | \"classic_4_3\" | \"traditional_3_4\" | \"widescreen_16_9\" | \"social_story_9_16\" | \"standard_3_2\")\nSeedream 4.5 Example (great for text-in-image and posters)\ncurl -s -X POST \"https://api.freepik.com/v1/ai/text-to-image/seedream-v4-5\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"A poster for \\\"Summer Music Festival 2025\\\" with bold typography\"\n  }'\n\nClassic Fast Image Generation\ncurl -s -X POST \"https://api.freepik.com/v1/ai/text-to-image\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\": \"a beautiful sunset\"}'\n\nIf $0 = \"video\" — Video Generation\n\nGenerate videos from text and/or images. $1 selects the model.\n\nModel Endpoints\n$1 value\tEndpoint\tType\tBest for\nkling-v3-omni-pro\t/v1/ai/video/kling-v3-omni-pro\tT2V/I2V\tMulti-modal, multi-shot, audio, voice (RECOMMENDED)\nkling-v3-omni-std\t/v1/ai/video/kling-v3-omni-std\tT2V/I2V\tStandard tier of above\nkling-v3-pro\t/v1/ai/video/kling-v3-pro\tT2V/I2V\tMulti-shot, element consistency\nkling-v3-std\t/v1/ai/video/kling-v3-std\tT2V/I2V\tStandard tier\nkling-v2-6-pro\t/v1/ai/image-to-video/kling-v2-6-pro\tI2V\tMotion control\nkling-v2-6-motion-pro\t/v1/ai/video/kling-v2-6-motion-control-pro\tV2V\tTransfer motion from reference video\nkling-v2-6-motion-std\t/v1/ai/video/kling-v2-6-motion-control-std\tV2V\tStandard motion transfer\nkling-v2-5-pro\t/v1/ai/image-to-video/kling-v2-5-pro\tI2V\tSmooth motion, sharp detail\nkling-v2-1-pro\t/v1/ai/image-to-video/kling-v2-1-pro\tI2V\tHigh-fidelity\nkling-v2-1-std\t/v1/ai/image-to-video/kling-v2-1-std\tI2V\tStandard tier\nkling-v2-1-master\t/v1/ai/image-to-video/kling-v2-1-master\tI2V\tTop-tier quality\nkling-o1-pro\t/v1/ai/image-to-video/kling-o1-pro\tI2V\tFirst/last frame interpolation\nkling-o1-std\t/v1/ai/image-to-video/kling-o1-std\tI2V\tStandard frame interpolation\nkling-elements-pro\t/v1/ai/image-to-video/kling-elements-pro\tI2V\tElement-based\nkling-elements-std\t/v1/ai/image-to-video/kling-elements-std\tI2V\tStandard elements\nhailuo-02-1080p\t/v1/ai/image-to-video/minimax-hailuo-02-1080p\tT2V/I2V\tHigh quality 1080p\nhailuo-02-768p\t/v1/ai/image-to-video/minimax-hailuo-02-768p\tT2V/I2V\t768p\nhailuo-2-3-1080p\t/v1/ai/image-to-video/minimax-hailuo-2-3-1080p\tT2V/I2V\tLatest MiniMax 1080p\nhailuo-2-3-1080p-fast\t/v1/ai/image-to-video/minimax-hailuo-2-3-1080p-fast\tT2V/I2V\tFast 1080p\nhailuo-2-3-768p\t/v1/ai/image-to-video/minimax-hailuo-2-3-768p\tT2V/I2V\t768p\nhailuo-2-3-768p-fast\t/v1/ai/image-to-video/minimax-hailuo-2-3-768p-fast\tT2V/I2V\tFast 768p\nhailuo-live\t/v1/ai/image-to-video/minimax-live\tI2V\tLive illustrations, camera movements\nwan-2-6-1080p\t/v1/ai/image-to-video/wan-v2-6-1080p\tI2V\t1080p I2V\nwan-2-6-720p\t/v1/ai/image-to-video/wan-v2-6-720p\tI2V\t720p I2V\nwan-2-6-t2v-1080p\t/v1/ai/text-to-video/wan-v2-6-1080p\tT2V\t1080p T2V\nwan-2-6-t2v-720p\t/v1/ai/text-to-video/wan-v2-6-720p\tT2V\t720p T2V\nwan-2-5-i2v-1080p\t/v1/ai/image-to-video/wan-2-5-i2v-1080p\tI2V\t1080p\nwan-2-5-i2v-720p\t/v1/ai/image-to-video/wan-2-5-i2v-720p\tI2V\t720p\nwan-2-5-i2v-480p\t/v1/ai/image-to-video/wan-2-5-i2v-480p\tI2V\t480p\nwan-2-5-t2v-1080p\t/v1/ai/text-to-video/wan-2-5-t2v-1080p\tT2V\t1080p\nwan-2-5-t2v-720p\t/v1/ai/text-to-video/wan-2-5-t2v-720p\tT2V\t720p\nwan-2-5-t2v-480p\t/v1/ai/text-to-video/wan-2-5-t2v-480p\tT2V\t480p\nrunway-4-5-t2v\t/v1/ai/text-to-video/runway-4-5\tT2V\t5/8/10s, multiple ratios\nrunway-4-5-i2v\t/v1/ai/image-to-video/runway-4-5\tI2V\t5/8/10s, seed support\nrunway-gen4-turbo\t/v1/ai/image-to-video/runway-gen4-turbo\tI2V\tFast I2V\nrunway-act-two\t/v1/ai/video/runway-act-two\tV2V\tCharacter performance transfer\nltx-2-pro-t2v\t/v1/ai/text-to-video/ltx-2-pro\tT2V\tUp to 4K, optional audio\nltx-2-pro-i2v\t/v1/ai/image-to-video/ltx-2-pro\tI2V\tUp to 4K, optional audio\nltx-2-fast-t2v\t/v1/ai/text-to-video/ltx-2-fast\tT2V\tFast, up to 4K\nltx-2-fast-i2v\t/v1/ai/image-to-video/ltx-2-fast\tI2V\tFast, up to 4K\nseedance-1-5-pro-1080p\t/v1/ai/video/seedance-1-5-pro-1080p\tT2V/I2V\tSynchronized audio (lip-sync, foley)\nseedance-1-5-pro-720p\t/v1/ai/video/seedance-1-5-pro-720p\tT2V/I2V\t720p with audio\nseedance-1-5-pro-480p\t/v1/ai/video/seedance-1-5-pro-480p\tT2V/I2V\t480p with audio\nseedance-pro-1080p\t/v1/ai/image-to-video/seedance-pro-1080p\tI2V\t1080p\nseedance-pro-720p\t/v1/ai/image-to-video/seedance-pro-720p\tI2V\t720p\nseedance-pro-480p\t/v1/ai/image-to-video/seedance-pro-480p\tI2V\t480p\nseedance-lite-1080p\t/v1/ai/image-to-video/seedance-lite-1080p\tI2V\tLite 1080p\nseedance-lite-720p\t/v1/ai/image-to-video/seedance-lite-720p\tI2V\tLite 720p\nseedance-lite-480p\t/v1/ai/image-to-video/seedance-lite-480p\tI2V\tLite 480p\npixverse-v5\t/v1/ai/image-to-video/pixverse-v5\tI2V\tStable style 360p-1080p\npixverse-v5-transition\t/v1/ai/image-to-video/pixverse-v5-transition\tI2V\tTransition between two images\nomnihuman-1-5\t/v1/ai/video/omni-human-1-5\tAudio-driven\tHuman animation from audio\nvfx\t/v1/ai/video/vfx\tEffects\tApply VFX filters to video\nref-kling-v3-omni-pro\t/v1/ai/reference-to-video/kling-v3-omni-pro\tV2V\tVideo-to-video with reference (use @Video1 in prompt)\nref-kling-v3-omni-std\t/v1/ai/reference-to-video/kling-v3-omni-std\tV2V\tStandard V2V\nDefault: Use kling-v3-omni-pro for general video generation.\nKling 3 Omni Pro Example (text-to-video)\ncurl -s -X POST \"https://api.freepik.com/v1/ai/video/kling-v3-omni-pro\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"A golden retriever running through a field of flowers, cinematic\",\n    \"aspect_ratio\": \"16:9\",\n    \"duration\": 5\n  }'\n\n\nKling 3 Omni parameters:\n\nprompt (string, max 2500 chars, required)\nimage_url (URL) — for I2V\nstart_image_url / end_image_url (URL) — start/end frames\nimage_urls (array of URLs) — reference images, use @Image1/@Image2 in prompt\nelements (array) — element consistency: [{reference_image_urls: [...], frontal_image_url: \"...\"}], use @Element1/@Element2 in prompt\nmulti_prompt (array, max 6 shots) — multi-shot: [{prompt: \"...\", duration: 3}]\naspect_ratio (\"16:9\" | \"9:16\" | \"1:1\")\nduration (3-15, seconds)\ngenerate_audio (bool) — auto-generate audio\nvoice_ids (array) — use <<<voice_1>>> in prompt\nwebhook_url (string)\n\nPoll status:\n\ncurl -s \"https://api.freepik.com/v1/ai/video/kling-v3-omni/$TASK_ID\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\"\n\nKling 3 Example (with multi-shot)\ncurl -s -X POST \"https://api.freepik.com/v1/ai/video/kling-v3-pro\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"A cat walks across a room\",\n    \"negative_prompt\": \"blurry, low quality\",\n    \"aspect_ratio\": \"16:9\",\n    \"duration\": 5,\n    \"cfg_scale\": 0.5,\n    \"multi_shot\": true,\n    \"multi_prompt\": [\n      {\"index\": 1, \"prompt\": \"Cat enters from left\", \"duration\": 3},\n      {\"index\": 2, \"prompt\": \"Cat sits and looks at camera\", \"duration\": 2}\n    ]\n  }'\n\nRunWay Gen 4.5 Example (text-to-video)\ncurl -s -X POST \"https://api.freepik.com/v1/ai/text-to-video/runway-4-5\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"A time-lapse of a flower blooming\",\n    \"ratio\": \"1280:720\",\n    \"duration\": 10\n  }'\n\n\nRunWay 4.5 T2V parameters:\n\nprompt (string, max 2000 chars, required)\nratio (\"1280:720\" | \"720:1280\" | \"1104:832\" | \"960:960\" | \"832:1104\", default \"1280:720\")\nduration (5 | 8 | 10)\nwebhook_url\nRunWay Gen 4.5 I2V Example\ncurl -s -X POST \"https://api.freepik.com/v1/ai/image-to-video/runway-4-5\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"image\": \"https://example.com/photo.jpg\",\n    \"prompt\": \"The person waves and smiles\",\n    \"ratio\": \"1280:720\",\n    \"duration\": 5\n  }'\n\nWAN 2.6 T2V Example\ncurl -s -X POST \"https://api.freepik.com/v1/ai/text-to-video/wan-v2-6-1080p\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"Ocean waves at sunset, cinematic 4K\",\n    \"duration\": \"5\",\n    \"enable_prompt_expansion\": true\n  }'\n\nHailuo Live Example (animated illustrations)\ncurl -s -X POST \"https://api.freepik.com/v1/ai/image-to-video/minimax-live\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"image_url\": \"https://example.com/illustration.png\",\n    \"prompt\": \"[Push in] The character turns and smiles\"\n  }'\n\n\nHailuo Live camera movements: [Truck left], [Pan right], [Push in], [Pull out], [Zoom in], [Tracking shot], [Static shot]\n\nVFX Video Effects Example\ncurl -s -X POST \"https://api.freepik.com/v1/ai/video/vfx\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"video\": \"https://example.com/video.mp4\",\n    \"filter_type\": 4,\n    \"fps\": 24\n  }'\n\n\nVFX filter_type values: 1=Film Grain, 2=Motion Blur, 3=Fish Eye, 4=VHS, 5=Shake, 6=VGA, 7=Bloom, 8=Anamorphic Lens\n\nVFX cost: $0.017 per second of video.\n\nIf $0 = \"edit\" — Image Editing\n\nEdit, enhance, and transform images. $1 selects the operation.\n\nOperations\n$1 value\tEndpoint\tDescription\nupscale-creative\t/v1/ai/image-upscaler\tPrompt-guided upscaling with detail enhancement (Magnific). 2x/4x/8x/16x.\nupscale-precision-v2\t/v1/ai/image-upscaler-precision-v2\tFaithful upscaling with granular controls (Magnific)\nupscale-precision\t/v1/ai/image-upscaler-precision\tHigh-fidelity upscaling without hallucinations\nrelight\t/v1/ai/image-relight\tChange image lighting via prompt, reference, or lightmap\nstyle-transfer\t/v1/ai/image-style-transfer\tApply artistic styles from reference images\nremove-bg\t/v1/ai/beta/remove-background\tRemove background (SYNC, returns immediately)\nexpand-flux\t/v1/ai/image-expand/flux-pro\tOutpainting with Flux Pro\nexpand-ideogram\t/v1/ai/image-expand/ideogram\tOutpainting with Ideogram\nexpand-seedream\t/v1/ai/image-expand/seedream-v4-5\tOutpainting with Seedream\ninpaint\t/v1/ai/ideogram-image-edit\tMask-based inpainting with Ideogram\nchange-camera\t/v1/ai/image-change-camera\tTransform camera angle/perspective\nskin-creative\t/v1/ai/skin-enhancer/creative\tArtistic skin enhancement\nskin-faithful\t/v1/ai/skin-enhancer/faithful\tNatural skin preservation\nskin-flexible\t/v1/ai/skin-enhancer/flexible\tTargeted skin optimization\nUpscale Creative Example (Magnific)\ncurl -s -X POST \"https://api.freepik.com/v1/ai/image-upscaler\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"image\": \"https://example.com/photo.jpg\",\n    \"prompt\": \"high quality photograph, sharp details\",\n    \"scale_factor\": 4\n  }'\n\nUpscale Precision V2 Example\ncurl -s -X POST \"https://api.freepik.com/v1/ai/image-upscaler-precision-v2\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"image\": \"https://example.com/photo.jpg\",\n    \"scale_factor\": 4,\n    \"sharpen\": 7,\n    \"smart_grain\": 7,\n    \"ultra_detail\": 30,\n    \"flavor\": \"photo\"\n  }'\n\n\nPrecision V2 parameters:\n\nimage (URL or base64, required)\nscale_factor (2-16)\nsharpen (0-100, default 7)\nsmart_grain (0-100, default 7)\nultra_detail (0-100, default 30)\nflavor (\"sublime\" | \"photo\" | \"photo_denoiser\")\nwebhook_url\nRemove Background Example (SYNCHRONOUS)\nRESULT=$(curl -s -X POST \"https://api.freepik.com/v1/ai/beta/remove-background\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"image_url\": \"https://example.com/photo.jpg\"}')\n# Result contains: original, high_resolution, preview URLs (expire in 5 min!)\necho \"$RESULT\" | jq -r '{high_resolution: .data.high_resolution, preview: .data.preview}'\n# Present the URLs to the user — they can open or download directly\n\nImage Expand Example (Outpainting)\n\nFor Image Expand, the user must provide an image URL. Use the Seedream or Ideogram expand endpoints which accept URLs, or ask the user to host the image first.\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/image-expand/seedream-v4-5\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"image\": \"https://example.com/photo.jpg\",\n    \"prompt\": \"extend the landscape naturally\",\n    \"left\": 512,\n    \"right\": 512,\n    \"top\": 0,\n    \"bottom\": 0\n  }'\n\n\nImage Expand parameters:\n\nimage (URL or base64 — prefer URL, required)\nprompt (optional, auto-generated for Ideogram/Seedream)\nleft, right, top, bottom (0-2048 pixels each)\nseed (int, for Ideogram/Seedream)\nwebhook_url\n\nNote: For Flux Pro expand, the image param requires base64. Prefer using Seedream V4.5 or Ideogram expand endpoints which accept URLs.\n\nInpainting Example (Ideogram)\ncurl -s -X POST \"https://api.freepik.com/v1/ai/ideogram-image-edit\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"image\": \"https://example.com/photo.jpg\",\n    \"mask\": \"<base64_of_mask>\",\n    \"prompt\": \"a red sports car\",\n    \"rendering_speed\": \"DEFAULT\",\n    \"magic_prompt\": \"AUTO\",\n    \"style_type\": \"REALISTIC\"\n  }'\n\n\nInpainting parameters:\n\nimage (URL or base64, max 10MB, required)\nmask (B&W image, same size, required — black = areas to edit)\nprompt (required)\nrendering_speed (\"TURBO\" | \"DEFAULT\" | \"QUALITY\")\nmagic_prompt (\"AUTO\" | \"ON\" | \"OFF\")\nstyle_type (\"AUTO\" | \"GENERAL\" | \"REALISTIC\" | \"DESIGN\")\nstyle_codes (array), style_reference_images (array), character_reference_images (array)\ncolor_palette (object)\nseed (0-2147483647)\nwebhook_url\nChange Camera Example\ncurl -s -X POST \"https://api.freepik.com/v1/ai/image-change-camera\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"image\": \"https://example.com/photo.jpg\",\n    \"horizontal_angle\": 45,\n    \"vertical_angle\": 15,\n    \"zoom\": 5,\n    \"output_format\": \"png\"\n  }'\n\n\nChange Camera parameters:\n\nimage (HTTPS URL, JPG/PNG/WebP, required)\nhorizontal_angle (0-360, default 0)\nvertical_angle (-30 to 90, default 0)\nzoom (0-10, default 5)\noutput_format (\"png\" | \"jpeg\")\nseed (min 1)\nwebhook_url\nImage Relight Example\ncurl -s -X POST \"https://api.freepik.com/v1/ai/image-relight\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"image\": \"https://example.com/portrait.jpg\",\n    \"prompt\": \"warm golden hour lighting from the left side\"\n  }'\n\nSkin Enhancer Example\n# Flexible mode with targeted optimization\ncurl -s -X POST \"https://api.freepik.com/v1/ai/skin-enhancer/flexible\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"image\": \"https://example.com/portrait.jpg\",\n    \"optimized_for\": \"enhance_skin\",\n    \"sharpen\": 20,\n    \"smart_grain\": 5\n  }'\n\n\nSkin Enhancer optimized_for options: \"enhance_skin\" | \"improve_lighting\" | \"enhance_everything\" | \"transform_to_real\" | \"no_make_up\"\n\nIf $0 = \"icon\" — Icon Generation\n\nGenerate icons from text prompts in PNG or SVG format.\n\nEndpoint: /v1/ai/text-to-icon\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/text-to-icon\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"shopping cart\",\n    \"style\": \"outline\",\n    \"format\": \"svg\",\n    \"num_inference_steps\": 25,\n    \"guidance_scale\": 7,\n    \"webhook_url\": \"\"\n  }'\n\n\nParameters:\n\nprompt (string, required) — icon description\nstyle (\"solid\" | \"outline\" | \"color\" | \"flat\" | \"sticker\", default \"solid\")\nformat (\"png\" | \"svg\", default \"png\")\nnum_inference_steps (10-50, default 10)\nguidance_scale (0-10, default 7)\nwebhook_url (string, required but can be empty \"\")\n\nPreview (quick preview before full render):\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/text-to-icon/preview\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"prompt\": \"shopping cart\", \"style\": \"outline\"}'\n\n\nDownload rendered icon:\n\ncurl -s -X POST \"https://api.freepik.com/v1/ai/text-to-icon/$TASK_ID/render/svg\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -o ~/.freepik/sessions/${CLAUDE_SESSION_ID}/icon_$(date +%s).svg\n\nIf $0 = \"audio\" — Audio Generation\n\nGenerate music, sound effects, voiceover, or isolate audio. $1 selects the type.\n\n$1 value\tEndpoint\tDescription\nmusic\t/v1/ai/music-generation\tText-to-music (10-240s, MP3)\nsfx\t/v1/ai/sound-effects\tSound effects (0.5-22s)\nvoiceover\t/v1/ai/voiceover/elevenlabs-turbo-v2-5\tText-to-speech (ElevenLabs)\nisolate\t/v1/ai/audio-isolation\tIsolate specific sounds from audio/video\nMusic Example\ncurl -s -X POST \"https://api.freepik.com/v1/ai/music-generation\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"upbeat electronic music for a product video\",\n    \"music_length_seconds\": 30\n  }'\n\n\nMusic parameters:\n\nprompt (string, required)\nmusic_length_seconds (10-240, required)\nwebhook_url (HTTPS URL)\nSound Effects Example\ncurl -s -X POST \"https://api.freepik.com/v1/ai/sound-effects\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"text\": \"thunderstorm with heavy rain\",\n    \"duration_seconds\": 10,\n    \"loop\": true,\n    \"prompt_influence\": 0.5\n  }'\n\n\nSound Effects parameters:\n\ntext (string, max 2500 chars, required)\nduration_seconds (0.5-22, required)\nloop (bool, default false) — seamless looping\nprompt_influence (0-1, default 0.3)\nwebhook_url (HTTPS URL)\nVoiceover Example (ElevenLabs TTS)\ncurl -s -X POST \"https://api.freepik.com/v1/ai/voiceover/elevenlabs-turbo-v2-5\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"text\": \"Welcome to our product demonstration.\",\n    \"voice_id\": \"21m00Tcm4TlvDq8ikWAM\",\n    \"stability\": 0.5,\n    \"similarity_boost\": 0.2,\n    \"speed\": 1.0\n  }'\n\n\nVoiceover parameters:\n\ntext (1-40000 chars, UTF-8, required)\nvoice_id (ElevenLabs voice ID, required)\nmodel (default \"eleven_turbo_v2_5\")\nstability (0-1, default 0.5)\nsimilarity_boost (0-1, default 0.2)\nspeed (0.7-1.2, default 1.0)\nuse_speaker_boost (bool, default true)\nwebhook_url\nAudio Isolation Example\ncurl -s -X POST \"https://api.freepik.com/v1/ai/audio-isolation\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"description\": \"piano melody\",\n    \"audio\": \"https://example.com/song.mp3\"\n  }'\n\n\nAudio Isolation parameters:\n\ndescription (string, required) — what sound to isolate\naudio (URL or base64 — WAV/MP3/FLAC/OGG/M4A) OR video (URL or base64 — MP4/MOV/WEBM/AVI)\nx1, y1, x2, y2 (bounding box for video, default 0)\nsample_fps (1-5, default 2)\nreranking_candidates (1-8, default 1)\npredict_spans (bool, default false)\nwebhook_url\nOutput: WAV audio file\nIf $0 = \"stock\" — Stock Content\n\nSearch and download stock photos, vectors, icons, and videos. $1 selects the content type.\n\n$1 value\tEndpoint\tDescription\nimages\t/v1/resources\tSearch photos, vectors, PSDs\nicons\t/v1/icons\tSearch icons\nvideos\t/v1/videos\tSearch stock videos\nSearch Stock Images\ncurl -s \"https://api.freepik.com/v1/resources?term=$QUERY&limit=10\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" | jq '.data[] | {id, title, url: .image.source.url}'\n\nGet Resource Details\ncurl -s \"https://api.freepik.com/v1/resources/$RESOURCE_ID\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" | jq '.'\n\nDownload Resource\ncurl -s \"https://api.freepik.com/v1/resources/$RESOURCE_ID/download\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -o ~/.freepik/sessions/${CLAUDE_SESSION_ID}/stock_$(date +%s).jpg\n\nSearch Stock Icons\ncurl -s \"https://api.freepik.com/v1/icons?term=$QUERY&limit=10\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" | jq '.data[] | {id, description}'\n\nDownload Stock Icon\ncurl -s \"https://api.freepik.com/v1/icons/$ICON_ID/download\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -o ~/.freepik/sessions/${CLAUDE_SESSION_ID}/icon_$(date +%s).svg\n\nSearch Stock Videos\ncurl -s \"https://api.freepik.com/v1/videos?term=$QUERY&limit=10\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" | jq '.data[] | {id, title}'\n\nDownload Stock Video\ncurl -s \"https://api.freepik.com/v1/videos/$VIDEO_ID/download\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -o ~/.freepik/sessions/${CLAUDE_SESSION_ID}/video_$(date +%s).mp4\n\nIf $0 = \"status\" — Check Task Status\n\nCheck the status of any async task. $1 is the task ID. You need to know the endpoint path.\n\n# Generic status check — replace <endpoint_path> with the original endpoint\ncurl -s \"https://api.freepik.com/v1/ai/<endpoint_path>/$1\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" | jq '{status: .data.status, result: .data}'\n\n\nCommon status endpoint paths:\n\nMystic: mystic/<task-id>\nFlux models: text-to-image/<model>/<task-id>\nKling 3 Omni: video/kling-v3-omni/<task-id>\nKling 3: video/kling-v3/<task-id>\nI2V models: image-to-video/<model>/<task-id>\nT2V models: text-to-video/<model>/<task-id>\nUpscaler: image-upscaler/<task-id> or image-upscaler-precision-v2/<task-id>\nIcon: text-to-icon/<task-id>\nMusic: music-generation/<task-id>\nSound Effects: sound-effects/<task-id>\nAudio Isolation: audio-isolation/<task-id>\n\nTask statuses: CREATED → IN_PROGRESS → COMPLETED or FAILED\n\nIf $0 = \"utility\" — AI Utilities\n\nVarious AI helper tools. $1 selects the utility.\n\n$1 value\tEndpoint\tDescription\nclassify\t/v1/ai/classifier/image\tDetect if image is AI-generated (SYNC)\nimage-to-prompt\t/v1/ai/image-to-prompt\tReverse-engineer prompt from image\nimprove-prompt\t/v1/ai/improve-prompt\tEnhance prompts for generation\nlip-sync\t/v1/ai/lip-sync/latent-sync\tSynchronize lip movements with audio\nAI Image Classifier (SYNCHRONOUS)\ncurl -s -X POST \"https://api.freepik.com/v1/ai/classifier/image\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"image\": \"https://example.com/photo.jpg\"}'\n\n\nResponse: Array of {class_name: \"ai\"|\"not_ai\", probability: 0-1}\n\nImage to Prompt\ncurl -s -X POST \"https://api.freepik.com/v1/ai/image-to-prompt\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"image\": \"https://example.com/photo.jpg\"}'\n\nImprove Prompt\ncurl -s -X POST \"https://api.freepik.com/v1/ai/improve-prompt\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"prompt\": \"a cat\",\n    \"type\": \"image\",\n    \"language\": \"en\"\n  }'\n\n\nParameters:\n\nprompt (max 2500 chars, required — can be empty for creative generation)\ntype (\"image\" | \"video\", required)\nlanguage (ISO 639-1, default \"en\")\nwebhook_url\nLip Sync\ncurl -s -X POST \"https://api.freepik.com/v1/ai/lip-sync/latent-sync\" \\\n  -H \"x-freepik-api-key: $FREEPIK_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\n    \"audio\": \"https://example.com/speech.mp3\",\n    \"video\": \"https://example.com/face.mp4\"\n  }'\n\nModel Selection Guide\n\nFor image generation:\n\nWant ultra-realistic? → mystic (Freepik exclusive, recommended)\nNeed text in image / poster? → seedream-v4-5\nWant fastest? → flux-2-klein (sub-second) or hyperflux\nNeed high quality? → flux-2-pro or flux-kontext-pro\nBudget-friendly? → flux-2-turbo\n\nFor video generation:\n\nGeneral purpose / best quality? → kling-v3-omni-pro\nNeed multi-shot? → kling-v3-pro or kling-v3-omni-pro\nCharacter performance? → runway-act-two\nAnimated illustrations? → hailuo-live\nWith synchronized audio? → seedance-1-5-pro-1080p\nBudget / fast? → kling-v3-omni-std or wan-2-6-720p\nUp to 4K? → ltx-2-pro-t2v or ltx-2-pro-i2v\nHuman animation from audio? → omnihuman-1-5\n\nFor image editing:\n\nCreative upscale? → upscale-creative\nFaithful upscale? → upscale-precision-v2\nChange lighting? → relight\nRemove background? → remove-bg\nExtend canvas? → expand-flux or expand-ideogram\nEdit specific area? → inpaint\nChange perspective? → change-camera\n\nFor icons:\n\nAlways use icon command — choose style (solid/outline/color/flat/sticker) and format (png/svg)\n\nFor audio:\n\nBackground music? → music (10-240s)\nSound effect? → sfx (0.5-22s)\nNarration/speech? → voiceover\nExtract specific sound? → isolate"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/cohnen/freepik",
    "publisherUrl": "https://clawhub.ai/cohnen/freepik",
    "owner": "cohnen",
    "version": "1.0.5",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/freepik",
    "downloadUrl": "https://openagent3.xyz/downloads/freepik",
    "agentUrl": "https://openagent3.xyz/skills/freepik/agent",
    "manifestUrl": "https://openagent3.xyz/skills/freepik/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/freepik/agent.md"
  }
}