← Back to Skills Marketplace
pauldelavallaz

Cinematic Kling

by Paul de Lavallaz · GitHub ↗ · v1.0.2 · MIT-0
cross-platform ⚠ suspicious
234
Downloads
0
Stars
0
Active Installs
3
Versions
Install in OpenClaw
/install cinematic-kling
Description
Generate 5-second cinematic AI videos using Kling via ComfyDeploy. Takes a character image, item image, and location image, then produces a character sheet,...
README (SKILL.md)

Cinematic Kling

Generates a 5-second cinematic video by combining:

  • A character (person/model)
  • An item (product, object, prop)
  • A location (background, environment)

Internally creates a Character Sheet and Item Sheet, then feeds them into Kling for video generation.


Deployment

  • Deployment ID: e5258667-dec2-438f-84d0-f22049692483
  • API: POST https://api.comfydeploy.com/api/run/deployment/queue
  • Auth: Authorization: Bearer $COMFY_DEPLOY_API_KEY

Inputs

Field Type Description
character_base URL Public image URL of the character/person
item_base URL Public image URL of the item/product
location_base URL Public image URL of the location/environment
character_sheet_prompt String Character sheet prompt — only modify the [brackets]
video_prompt String Simple description of the 5-second scene
input_seed Integer -1 for random, fixed number for reproducible results

Character Sheet Prompt Structure

The prompt has two parts — only the [brackets] part changes:

Create a photorealistic character sheet. Include a closeup portrait which is left aligned (the outfit must be visible in the portrait), no borders, with a neutral expression and then also include a full view shot that shows the front, right side view, left side view and back of the character. The character is placed on a white background. Don't include any text. No borders, no soft gradients. [CLOTHING DESCRIPTION HERE]

Rule: Replace [CLOTHING DESCRIPTION HERE] with the outfit appropriate for the scene. Everything before the brackets stays exactly as-is.

Examples:

  • [They are wearing a tailored black suit with a white shirt, no tie, luxury editorial style.]
  • [They are wearing dirty damaged clothes in the style of The Last Of Us, dystopic aesthetic.]
  • [They are wearing a red Nike tracksuit and white sneakers, athletic style.]

Video Prompt Guidelines

  • Keep it simple — describe the action/interaction, not every detail
  • Mention character + item + location implicitly through the action
  • You can suggest 1-2 camera cuts within the 5 seconds
  • Works for: ads, short films, music videos, product demos, action clips

Good examples:

  • "Short cinematic sequence of the character dunking a basketball in the ring while wearing the green Shaq shoes."
  • "Character walks into the desert location, picks up the item from the sand, holds it toward camera. Quick cut to close-up of the item."
  • "Product reveal: character turns around in the urban location, tosses the item to camera in slow motion."

Bad (too detailed):

  • "Camera starts at f/1.8 aperture, golden hour light at 47 degrees, character moves exactly 3 steps forward..."

Step 0 — Verify Which Image Is Which (MANDATORY)

ALWAYS use the image tool to identify each file before assigning roles. Never assume by order.

image(images=[file1, file2, file3], prompt="Para cada imagen, decí brevemente si es: persona, producto/objeto, o lugar/ambiente")

Then assign:

  • character_base = the person/model
  • item_base = the product/object they interact with
  • location_base = the place/environment/background

Step 1 — Upload Images to ComfyDeploy Storage

ALWAYS upload local files to ComfyDeploy's own storage first. NEVER use external/custom domains.

source ~/clawd/.env

upload_to_comfy() {
  curl -s -X POST "https://api.comfydeploy.com/api/file/upload" \
    -H "Authorization: Bearer $COMFY_DEPLOY_API_KEY" \
    -F "file=@$1" | jq -r '.file_url'
}

URL_CHAR=$(upload_to_comfy /path/to/character.jpg)
URL_ITEM=$(upload_to_comfy /path/to/item.jpg)
URL_LOC=$(upload_to_comfy /path/to/location.jpg)
# Returns: https://comfy-deploy-output.s3.us-east-2.amazonaws.com/inputs/img_XXXX.jpg

Step 2 — Submit Run

RUN_ID=$(curl -s -X POST "https://api.comfydeploy.com/api/run/deployment/queue" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $COMFY_DEPLOY_API_KEY" \
  -d "{
    \"deployment_id\": \"e5258667-dec2-438f-84d0-f22049692483\",
    \"inputs\": {
      \"character_base\": \"$URL_CHAR\",
      \"item_base\": \"$URL_ITEM\",
      \"location_base\": \"$URL_LOC\",
      \"character_sheet_prompt\": \"Create a photorealistic character sheet. Include a closeup portrait which is left aligned (the outfit must be visible in the portrait), no borders, with a neutral expression and then also include a full view shot that shows the front, right side view, left side view and back of the character. The character is placed on a white background. Don't include any text. No borders, no soft gradients. [CLOTHING DESCRIPTION]\",
      \"video_prompt\": \"VIDEO_SCENE_DESCRIPTION\",
      \"input_seed\": -1
    }
  }" | jq -r '.run_id')

echo "Run ID: $RUN_ID"

Polling for Results

while true; do
  RESULT=$(curl -s "https://api.comfydeploy.com/api/run/$RUN_ID" \
    -H "Authorization: Bearer $COMFY_DEPLOY_API_KEY")
  STATUS=$(echo $RESULT | jq -r '.status')
  echo "Status: $STATUS"
  if [ "$STATUS" = "success" ]; then
    echo $RESULT | jq '.outputs'
    break
  elif [ "$STATUS" = "failed" ]; then
    echo "Failed!"
    break
  fi
  sleep 10
done

Step 3 — Poll & Download Results

# Poll until success
while true; do
  RESULT=$(curl -s "https://api.comfydeploy.com/api/run/$RUN_ID" \
    -H "Authorization: Bearer $COMFY_DEPLOY_API_KEY")
  STATUS=$(echo $RESULT | jq -r '.status')
  [ "$STATUS" = "success" ] && break
  [ "$STATUS" = "failed" ] && echo "FAILED" && break
  sleep 15
done

# Download outputs to allowed directory
mkdir -p ~/clawd/output/cinematic-kling
BASE_URL="https://comfy-deploy-output.s3.us-east-2.amazonaws.com/outputs/runs/$RUN_ID"
curl -sL "$BASE_URL/CS_2_00001_.png" -o ~/clawd/output/cinematic-kling/character-sheet.png
curl -sL "$BASE_URL/ITEM_00001_.png" -o ~/clawd/output/cinematic-kling/item-sheet.png
curl -sL "$BASE_URL/LOCATION_00001_.png" -o ~/clawd/output/cinematic-kling/location-sheet.png
curl -sL "$BASE_URL/ComfyUI_00001_.mp4" -o ~/clawd/output/cinematic-kling/video.mp4

Step 4 — Send Results as Files

ALWAYS send as file attachments using filePath — NEVER send raw URLs.

message(action=send, channel=telegram, target=USER_ID, filePath=~/clawd/output/cinematic-kling/character-sheet.png, message="Character Sheet")
message(action=send, channel=telegram, target=USER_ID, filePath=~/clawd/output/cinematic-kling/item-sheet.png, message="Item Sheet")
message(action=send, channel=telegram, target=USER_ID, filePath=~/clawd/output/cinematic-kling/location-sheet.png, message="Location Sheet")
message(action=send, channel=telegram, target=USER_ID, filePath=~/clawd/output/cinematic-kling/video.mp4, message="🎬 Video")

Output Structure

Node File Action
4 CS_2_00001_.png Send as file (Character Sheet)
14 ITEM_00001_.png Send as file (Item Sheet)
25 LOCATION_00001_.png Send as file (Location Sheet)
22 ComfyUI_00001_.mp4 Send as file — main output
38 text Internal video prompt used by Kling (ignore)

Python Helper

import requests, os, time

def cinematic_kling(character_url, item_url, location_url, clothing_desc, video_prompt, seed=-1):
    """
    character_url: public URL of character image
    item_url: public URL of item image
    location_url: public URL of location image
    clothing_desc: description for [brackets] in character sheet prompt
    video_prompt: simple scene description
    Returns: dict with 'images' list and 'video' URL
    """
    API_KEY = os.environ['COMFY_DEPLOY_API_KEY']
    
    character_sheet_prompt = (
        "Create a photorealistic character sheet. Include a closeup portrait which is left aligned "
        "(the outfit must be visible in the portrait), no borders, with a neutral expression and then "
        "also include a full view shot that shows the front, right side view, left side view and back "
        "of the character. The character is placed on a white background. Don't include any text. "
        f"No borders, no soft gradients. [{clothing_desc}]"
    )
    
    # Submit job
    r = requests.post(
        "https://api.comfydeploy.com/api/run/deployment/queue",
        headers={"Content-Type": "application/json", "Authorization": f"Bearer {API_KEY}"},
        json={
            "deployment_id": "e5258667-dec2-438f-84d0-f22049692483",
            "inputs": {
                "character_base": character_url,
                "item_base": item_url,
                "location_base": location_url,
                "character_sheet_prompt": character_sheet_prompt,
                "video_prompt": video_prompt,
                "input_seed": seed
            }
        }
    )
    run_id = r.json()['run_id']
    print(f"Run ID: {run_id}")
    
    # Poll
    while True:
        result = requests.get(
            f"https://api.comfydeploy.com/api/run/{run_id}",
            headers={"Authorization": f"Bearer {API_KEY}"}
        ).json()
        status = result.get('status')
        print(f"Status: {status}")
        if status == 'success':
            return result.get('outputs', {})
        elif status == 'failed':
            raise Exception(f"Run failed: {result}")
        time.sleep(10)

Typical Run Time

~3–5 minutes (character sheet generation + Kling video generation)


Use Cases

  • Product ads: character using/wearing the item in a branded location
  • Short films: character interacting with a prop in a cinematic environment
  • Music videos: artist + instrument/prop + stage/location
  • Fashion: model wearing clothing item in a specific setting
  • Gaming/dystopian: character in Last-of-Us style with game item in post-apocalyptic location

Notes

  • The character_sheet_prompt fixed portion must never be modified — only the [brackets]
  • input_seed: -1 = random each time; set a fixed integer to reproduce results
  • 5 seconds is the fixed video length
  • Outputs come from ComfyDeploy's built-in S3 storage — no manual upload needed
Usage Guidance
This skill appears to do what it says (call ComfyDeploy to generate short videos), but its SKILL.md asks you to 'source ~/clawd/.env' and uses a COMFY_DEPLOY_API_KEY without declaring it in the registry. Before installing or running: (1) require the publisher to declare the exact environment variables the skill needs (COMFY_DEPLOY_API_KEY) and why; (2) never source or import a user's ~/.env — ask the user to set only the minimal COMFY_DEPLOY_API_KEY in a named variable; (3) consider whether you’re comfortable uploading image files to the ComfyDeploy service (they will be stored on third-party S3); and (4) avoid using this skill if your ~/.env contains other sensitive keys (AWS, database credentials, slack tokens), because the current instructions could accidentally expose them. If the author can remove the 'source ~/.env' step and explicitly declare the single required API key, the incoherence would be resolved and the risk lowered.
Capability Analysis
Type: OpenClaw Skill Name: cinematic-kling Version: 1.0.2 The cinematic-kling skill is designed to generate AI videos by interacting with the ComfyDeploy API. The SKILL.md and Python helper code demonstrate standard integration patterns, including sourcing an API key from a local environment file (~/clawd/.env), uploading images to the service's storage, and polling for results. All network activity is directed toward legitimate service endpoints (api.comfydeploy.com and associated S3 buckets), and the instructions are consistent with the stated goal of media generation.
Capability Assessment
Purpose & Capability
The declared purpose — generating 5-second videos via Kling on ComfyDeploy — matches the runtime calls to ComfyDeploy endpoints. However, the skill runtime relies on an environment variable (COMFY_DEPLOY_API_KEY) and on uploading files to ComfyDeploy storage even though the registry metadata lists no required env vars or primary credential. That omission is an incoherence: a deployment integration legitimately needs an API key and should declare it.
Instruction Scope
SKILL.md instructs the agent to 'source ~/clawd/.env' and to upload local files to ComfyDeploy. Sourcing a local .env reads arbitrary secrets from the user's home directory (unrelated to the skill's stated inputs) and is unnecessary if the only required secret is a single COMFY_DEPLOY_API_KEY which should be requested explicitly. The instructions also strongly push using ComfyDeploy storage for all inputs, which could result in user data being uploaded to the provider rather than a user-controlled endpoint. The mandatory use of an image tool to classify images is fine, but the explicit guidance to read a local .env is scope creep and increases risk of secret exposure.
Install Mechanism
This is an instruction-only skill with no install spec or code files, so it doesn't write or execute new code on disk. That reduces install-time risk.
Credentials
The instructions clearly require COMFY_DEPLOY_API_KEY for Authorization, but the skill metadata lists no required env vars. Additionally, sourcing ~/clawd/.env could leak many unrelated secrets (AWS keys, other API tokens). Asking users to place or source secrets in a local .env without declaring them and without explaining minimal required privileges is disproportionate.
Persistence & Privilege
The skill does not request always: true and makes no claims about persisting itself or modifying other skills. Autonomous invocation is permitted (platform default) but not combined with other high-risk privileges here.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install cinematic-kling
  3. After installation, invoke the skill by name or use /cinematic-kling
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.2
Fix: mandatory image tool verification before assigning character/item/location roles
v1.0.1
Fix: upload via ComfyDeploy API; send outputs as filePath not URLs
v1.0.0
Initial release — 5-second cinematic video generation via ComfyDeploy + Kling
Metadata
Slug cinematic-kling
Version 1.0.2
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 3
Frequently Asked Questions

What is Cinematic Kling?

Generate 5-second cinematic AI videos using Kling via ComfyDeploy. Takes a character image, item image, and location image, then produces a character sheet,... It is an AI Agent Skill for Claude Code / OpenClaw, with 234 downloads so far.

How do I install Cinematic Kling?

Run "/install cinematic-kling" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Cinematic Kling free?

Yes, Cinematic Kling is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Cinematic Kling support?

Cinematic Kling is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Cinematic Kling?

It is built and maintained by Paul de Lavallaz (@pauldelavallaz); the current version is v1.0.2.

💬 Comments