Semua artikel
Tutorial9 menit baca

Bagaimana Menggunakan Kling 2.6 API pada PoYo: Panduan Pengembang Lengkap

Pelajari cara untuk mengintegrasikan Kling 2.6 API untuk generasi video AI dengan audio asli. Panduan langkah demi langkah dengan contoh kode untuk teks-ke-video dan gambar-ke-video generasi.

Bagaimana Menggunakan Kling 2.6 API pada PoYo: Panduan Pengembang Lengkap
Tutorial

Bagaimana Menggunakan Kling 2.6 API pada PoYo

2026 update: Kling 2.6 API tersedia pada PoYo dengan harga saat ini dari 65 kredit untuk 5- video detik tanpa audio dan 120 kredit untuk 5- Video detik dengan audio. Panduan ini akan membimbing Anda melalui integrasi Kling 2.6kemampuan audio asli disinkronkan ke aplikasi Anda.

Memulai dengan Kling 2.6 API

Langkah 1: Buatlah Anda PoYo Akun

Pertama, buatlah PoYo akun dan mendapatkan API Keterangan:

  1. Daftar di PoYo.ai
  2. Menghasilkan kunci API Anda di dalam papan pemindai
  3. Tambahkan kredit ke rekening Anda (Kling 2.6 harga bervariasi berdasarkan durasi dan audio)

Langkah 2: Install Dependensi yang Dibutuhkan

# For Node.js/JavaScript
npm install axios

# For Python
pip install requests

# For cURL (no installation needed)

Generasi teks-ke-video dasar

JavaScript/Node.js Pelaksanaan

const axios = require('axios');

const generateVideo = async (prompt, options = {}) => {
  const {
    duration = 5,       // 5 or 10 seconds
    aspectRatio = '16:9', // '1:1', '16:9', or '9:16'
    sound = true        // Enable native audio
  } = options;

  try {
    const response = await axios.post(
      'https://api.poyo.ai/api/generate/submit',
      {
        model: 'kling-2.6',
        callback_url: 'https://your-domain.com/callback', // Optional webhook
        input: {
          prompt: prompt,
          sound: sound,
          aspect_ratio: aspectRatio,
          duration: duration
        }
      },
      {
        headers: {
          'Authorization': `Bearer YOUR_API_KEY`,
          'Content-Type': 'application/json'
        }
      }
    );

    console.log('Task ID:', response.data.data.task_id);
    console.log('Status:', response.data.data.status);
    console.log('Created:', response.data.data.created_time);
    return response.data.data;
  } catch (error) {
    console.error('Error generating video:', error.response?.data || error.message);
  }
};

// Example: Generate a video with speech
generateVideo(
  'A man in a coffee shop looking at his laptop, smiling. He says "This AI is incredible!" in an excited voice.',
  { duration: 5, aspectRatio: '16:9', sound: true }
);

Python Pelaksanaan

import requests
import json

def generate_video(prompt, api_key, duration=5, aspect_ratio='16:9', sound=True):
    url = "https://api.poyo.ai/api/generate/submit"

    payload = {
        "model": "kling-2.6",
        "callback_url": "https://your-domain.com/callback",  # Optional
        "input": {
            "prompt": prompt,
            "sound": sound,
            "aspect_ratio": aspect_ratio,
            "duration": duration
        }
    }

    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }

    try:
        response = requests.post(url, json=payload, headers=headers)
        response.raise_for_status()

        result = response.json()
        print(f"Task ID: {result['data']['task_id']}")
        print(f"Status: {result['data']['status']}")
        print(f"Created: {result['data']['created_time']}")
        return result['data']

    except requests.exceptions.RequestException as e:
        print(f"Error generating video: {e}")
        return None

# Example usage
api_key = "YOUR_API_KEY"
result = generate_video(
    "A chef in a kitchen demonstrating how to chop vegetables. He narrates: 'First, we cut the onion in half.'",
    api_key,
    duration=10,
    aspect_ratio='16:9',
    sound=True
)

cURL Pelaksanaan

curl -X POST "https://api.poyo.ai/api/generate/submit" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "kling-2.6",
    "callback_url": "https://your-domain.com/callback",
    "input": {
      "prompt": "A woman sitting at a piano, playing a gentle melody. She sings softly: Welcome to my world of music.",
      "sound": true,
      "aspect_ratio": "16:9",
      "duration": 10
    }
  }'

API Parameter

Badan Permintaan

Parameter Jenis Kebutuhan Deskripsi
model string Ya Pasti "kling-2.6"
callback_url string Tidak, tidak. Webhook URL untuk pemberitahuan async
input.prompt string Ya Deskripsi teks (maksimum) 1000 karakter)
input.sound bahasa boolean Ya Memungkinkan generasi audio asli
input.aspect_ratio string Ya "1:1", "16:9", atau "9:16"
input.duration bilangan bulat Ya 5 atau 10 detik
input.image_urls array Tidak, tidak. Gambar referensi untuk gambar-video

Format respons

{
  "code": 200,
  "data": {
    "task_id": "task-unified-1757165031-uyujaw3d",
    "status": "not_started",
    "created_time": "2026-06-12T10:30:00"
  }
}

Generasi Gambar-Ke-Video

Mengubah gambar statis menjadi video dinamis dengan Kling 2.6:

const generateVideoFromImage = async (imageUrl, prompt, options = {}) => {
  const {
    duration = 5,
    aspectRatio = '16:9',
    sound = true
  } = options;

  try {
    const response = await axios.post(
      'https://api.poyo.ai/api/generate/submit',
      {
        model: 'kling-2.6',
        callback_url: 'https://your-domain.com/callback',
        input: {
          prompt: prompt,
          sound: sound,
          aspect_ratio: aspectRatio,
          duration: duration,
          image_urls: [imageUrl] // Reference image
        }
      },
      {
        headers: {
          'Authorization': `Bearer YOUR_API_KEY`,
          'Content-Type': 'application/json'
        }
      }
    );

    return response.data.data;
  } catch (error) {
    console.error('Error generating video:', error.response?.data || error.message);
  }
};

// Example: Animate a portrait photo
const result = await generateVideoFromImage(
  'https://example.com/portrait.jpg',
  'The person in the photo turns to smile at the camera and waves hello.',
  { duration: 5, sound: true }
);

Python Gambar-ke-video

def generate_video_from_image(image_url, prompt, api_key, duration=5, aspect_ratio='16:9', sound=True):
    url = "https://api.poyo.ai/api/generate/submit"

    payload = {
        "model": "kling-2.6",
        "callback_url": "https://your-domain.com/callback",
        "input": {
            "prompt": prompt,
            "sound": sound,
            "aspect_ratio": aspect_ratio,
            "duration": duration,
            "image_urls": [image_url]
        }
    }

    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }

    try:
        response = requests.post(url, json=payload, headers=headers)
        response.raise_for_status()
        return response.json()['data']
    except requests.exceptions.RequestException as e:
        print(f"Error: {e}")
        return None

# Example: Animate a product image
result = generate_video_from_image(
    "https://example.com/product.jpg",
    "The product rotates slowly, showcasing all angles. A voice says: Introducing our latest innovation.",
    api_key,
    duration=10,
    sound=True
)

Fitur Audio Native

Pembagian sound parameter memungkinkan Kling 2.6Generasi audio asli:

Kapan sound: true, termasuk sinyal audio dalam permintaan Anda:

// Prompt with speech
const speechPrompt = `
  A news anchor at a desk looks into the camera.
  He says: "Breaking news tonight, scientists have made an incredible discovery."
  The anchor gestures with his hands while speaking.
`;

// Prompt with sound effects
const sfxPrompt = `
  A cat walks across a wooden floor, meowing softly.
  Birds chirp outside the window.
  The cat jumps onto a couch with a soft thud.
`;

// Prompt with singing
const musicPrompt = `
  A woman with a guitar sits on a beach at sunset.
  She strums gently and sings a soft melody about the ocean.
  Waves crash softly in the background.
`;

// Prompt with multilingual speech
const multilingualPrompt = `
  Scene: Open office with printer sounds in background.
  [Male worker] asks: "报告快好了吗?Manager needs it this afternoon."
  [Female worker] replies: "Almost done. I'll send it in ten minutes."
`;

Audio vs Video Diam

// Generate with audio (120 credits for 5s)
const withAudio = await generateVideo(
  'A barista making coffee, explaining each step of the process.',
  { duration: 5, sound: true }
);

// Generate without audio (65 credits for 5s)
const silent = await generateVideo(
  'A timelapse of clouds moving across a mountain landscape.',
  { duration: 5, sound: false }
);

Hasil Pengendalian

Webhook Pengendali

const express = require('express');
const app = express();

app.use(express.json());

app.post('/webhook/callback', async (req, res) => {
  const { task_id, status, files, error_message } = req.body;

  console.log(`Task ${task_id}: ${status}`);

  if (status === 'finished' && files && files.length > 0) {
    const videoFile = files.find(f => f.file_type === 'video');
    if (videoFile) {
      console.log('Video URL:', videoFile.file_url);
      await processCompletedVideo(task_id, videoFile.file_url);
    }
  } else if (status === 'failed') {
    console.error('Generation failed:', error_message);
    await handleVideoError(task_id, error_message);
  }

  res.status(200).send('OK');
});

app.listen(3000);

Penentuan Status Manual

const checkTaskStatus = async (taskId) => {
  try {
    const response = await axios.get(
      `https://api.poyo.ai/api/generate/status/${taskId}`,
      {
        headers: {
          'Authorization': `Bearer YOUR_API_KEY`
        }
      }
    );
    return response.data.data;
  } catch (error) {
    console.error('Error checking status:', error.message);
    return null;
  }
};

const waitForVideo = async (taskId, maxAttempts = 120) => {
  for (let attempt = 0; attempt < maxAttempts; attempt++) {
    const taskData = await checkTaskStatus(taskId);

    if (!taskData) break;

    console.log(`Status: ${taskData.status}, Progress: ${taskData.progress || 0}%`);

    if (taskData.status === 'finished') {
      console.log('Video generated successfully!');
      const videoFile = taskData.files?.find(f => f.file_type === 'video');
      if (videoFile) {
        console.log('Video URL:', videoFile.file_url);
      }
      return taskData;
    } else if (taskData.status === 'failed') {
      console.error('Generation failed:', taskData.error_message);
      return null;
    }

    // Wait 5 seconds between checks (video generation takes time)
    await new Promise(resolve => setTimeout(resolve, 5000));
  }

  console.error('Timeout waiting for video');
  return null;
};

// Complete workflow
const createVideo = async (prompt, options = {}) => {
  const generation = await generateVideo(prompt, options);
  if (!generation) return null;

  const result = await waitForVideo(generation.task_id);
  return result;
};

Python Status Pemungutan Suara

import time

def check_task_status(task_id, api_key):
    url = f"https://api.poyo.ai/api/generate/status/{task_id}"
    headers = {"Authorization": f"Bearer {api_key}"}

    try:
        response = requests.get(url, headers=headers)
        response.raise_for_status()
        return response.json()['data']
    except requests.exceptions.RequestException as e:
        print(f"Error: {e}")
        return None

def wait_for_video(task_id, api_key, max_attempts=120):
    for attempt in range(max_attempts):
        task_data = check_task_status(task_id, api_key)

        if not task_data:
            break

        print(f"Status: {task_data['status']}, Progress: {task_data.get('progress', 0)}%")

        if task_data['status'] == 'finished':
            print("Video generated successfully!")
            video_file = next(
                (f for f in task_data.get('files', []) if f['file_type'] == 'video'),
                None
            )
            if video_file:
                print(f"Video URL: {video_file['file_url']}")
            return task_data
        elif task_data['status'] == 'failed':
            print(f"Failed: {task_data.get('error_message')}")
            return None

        time.sleep(5)  # Wait 5 seconds

    print("Timeout")
    return None

# Complete workflow
def create_video(prompt, api_key, **options):
    generation = generate_video(prompt, api_key, **options)
    if not generation:
        return None
    return wait_for_video(generation['task_id'], api_key)

Pengendalian Kesalahan

const robustVideoGeneration = async (prompt, options = {}, retries = 3) => {
  for (let attempt = 0; attempt < retries; attempt++) {
    try {
      const response = await axios.post(
        'https://api.poyo.ai/api/generate/submit',
        {
          model: 'kling-2.6',
          input: {
            prompt,
            sound: options.sound ?? true,
            aspect_ratio: options.aspectRatio ?? '16:9',
            duration: options.duration ?? 5
          }
        },
        {
          headers: {
            'Authorization': `Bearer YOUR_API_KEY`,
            'Content-Type': 'application/json'
          },
          timeout: 30000
        }
      );

      return response.data.data;

    } catch (error) {
      if (error.response) {
        const status = error.response.status;

        if (status === 401 || status === 403) {
          throw new Error('Authentication failed');
        }
        if (status === 400) {
          throw new Error(`Invalid request: ${error.response.data?.error}`);
        }
        if (status === 402) {
          throw new Error('Insufficient credits');
        }
      }

      if (attempt === retries - 1) throw error;

      const delay = Math.pow(2, attempt) * 1000;
      await new Promise(resolve => setTimeout(resolve, delay));
    }
  }
};

Tips Teknik prompt

Video Pesan yang Efektif

// Structure: Scene + Characters + Action + Audio cues
const effectivePrompts = [
  // Interview style
  `A business woman in a modern office, facing the camera.
   She speaks confidently: "Our company has grown 200% this year."
   She gestures with her hands while explaining.`,

  // Product demo
  `Close-up of hands opening a smartphone box.
   A voice narrates: "Unboxing the latest flagship device."
   The phone is lifted out, camera pans to show the screen.`,

  // Storytelling
  `A child runs through a sunlit meadow, laughing.
   Birds sing in the background.
   The child stops to pick a flower and smiles at the camera.`,

  // Educational
  `An animated diagram of the solar system.
   A narrator explains: "The Earth takes 365 days to orbit the sun."
   Planets rotate in their orbits.`
];

Kesimpulan

Kling 2.6 API pada PoYo menyediakan generasi video AI inovatif dengan kemampuan audio asli. Menghasilkan video lengkap dengan suara, musik, dan efek suara yang disinkronkan dalam satu API call.

Untuk informasi lebih lanjut, kunjungi pejabat Kling 2.6 Dokumentasi API.

Siap untuk memulai? Ambillahmu kunci API dan membuat video AI dengan audio asli hari ini.


Kau butuh bantuan? Bergabunglah dengan kami komunitas pengembang atau menjelajahi lebih banyak Tutorial.

Blog · PoYo.aiSemua artikel
HUBUNGI KAMI

Punya proyek?

Ceritakan apa yang Anda bangun. Tim kami akan membantu memilih API AI yang tepat.

Data Anda hanya digunakan untuk menanggapi pertanyaan ini.

PoYo AI

Siap menjelajahi model?

Jelajahi model gambar, video, audio, dan bahasa di PoYo.

Lihat model AI