Video Modelsalibaba-cloud

معرفی و مستندات مدل هوش مصنوعی wan-2.5-preview-image-to-video

مستندات مدل تولید ویدیو از تصویر wan-2.5-preview-image-to-video از alibaba-cloud، ارائه شده توسط ای ای کار (AI-KAR).

معرفی و بررسی فنی

⚡ وضعیت پشتیبانی از زبان فارسی

این مدل در درک متون فارسی عملکرد متوسطی دارد. برای نتایج بهتر، توصیه می‌شود از عبارات ساده و واضح استفاده کنید.

معرفی مدل wan-2.5-preview-image-to-video

این مدل هوش مصنوعی، که توسط Alibaba Cloud توسعه یافته، قادر است ویدیوهایی با کیفیت تا 1080p تولید کند. یکی از ویژگی‌های برجسته این مدل، امکان صداگذاری بر روی شخصیت‌های موجود در ویدیو با هماهنگی کامل لب‌ها (lip-sync) است. این کار با ارائه مستقیم متن گفتگو در پارامتر prompt انجام می‌شود. به عبارت دیگر، شما می‌توانید دیالوگ مورد نظر را به مدل بدهید و مدل آن را به صورت خودکار با حرکات لب شخصیت هماهنگ می‌کند.

علاوه بر قابلیت‌های مدل Wan 2.5 Preview (Text-to-Video)، این مدل از بارگذاری یک تصویر مرجع نیز پشتیبانی می‌کند. این تصویر می‌تواند شخصیت مورد نظر برای انیمیشن یا صحنه اطراف آن را به تصویر بکشد. این ویژگی به کاربران امکان می‌دهد تا کنترل بیشتری بر ظاهر و محتوای ویدیوی تولید شده داشته باشند.

به طور خلاصه، مدل wan-2.5-preview-image-to-video یک ابزار قدرتمند برای تولید ویدیوهای جذاب و با کیفیت بالا است که ترکیبی از متن، تصویر و صدا را پشتیبانی می‌کند. این مدل می‌تواند در زمینه‌های مختلفی مانند تولید محتوای آموزشی، تبلیغاتی، سرگرمی و هنری مورد استفاده قرار گیرد.

نحوه استفاده:

برای استفاده از این مدل، ابتدا باید یک کلید API از AI-KAR دریافت کنید. سپس، می‌توانید با استفاده از دو endpoint زیر، ویدیو تولید کنید:

  1. ایجاد و ارسال درخواست تولید ویدیو: این endpoint یک شناسه تولید (generation ID) را برمی‌گرداند.
  2. دریافت ویدیوی تولید شده: با استفاده از شناسه تولید، می‌توانید ویدیوی تولید شده را از سرور دریافت کنید.

در ادامه، می‌توانید مشخصات فنی (API Schema) و نمونه‌های کد برای هر دو endpoint را مشاهده کنید.

مزایای استفاده از مدل wan-2.5-preview-image-to-video:

  • تولید ویدیوهای با کیفیت بالا (تا 1080p)
  • امکان صداگذاری بر روی شخصیت‌ها با هماهنگی کامل لب‌ها
  • پشتیبانی از بارگذاری تصویر مرجع
  • کنترل بیشتر بر ظاهر و محتوای ویدیو
  • کاربرد در زمینه‌های مختلف

این مدل یک ابزار نوآورانه و کارآمد برای تولید ویدیوهای خلاقانه و جذاب است که می‌تواند نیازهای مختلف کاربران را در زمینه‌های گوناگون برآورده کند. تیم ای ای کار (AI-KAR) همواره در تلاش است تا بهترین و به‌روزترین مدل‌های هوش مصنوعی را در اختیار شما قرار دهد.

با استفاده از این مدل، شما می‌توانید به راحتی ویدیوهایی با کیفیت بالا و محتوای جذاب تولید کنید و ایده‌های خود را به واقعیت تبدیل کنید. این مدل یک ابزار قدرتمند برای تولیدکنندگان محتوا، هنرمندان، بازاریابان و هر کسی است که به دنبال تولید ویدیوهای خلاقانه و با کیفیت بالا است.

مشخصات فنی (API References)

پارامترنوعتوضیحات و مقادیر
model
stringRequired
مدل مورد استفاده برای تولید ویدیو. مقدار ثابت: alibaba/wan2.5-i2v-preview
مقادیر مجاز (کلیک برای کپی):
prompt
stringRequired
توضیحات متنی صحنه، موضوع یا عملی که می‌خواهید در ویدیو تولید شود. حداقل طول: 1 کاراکتر، حداکثر طول: 800 کاراکتر.
image_url
stringRequired
یک لینک مستقیم به یک تصویر آنلاین یا یک تصویر محلی کدگذاری شده به صورت Base64 که به عنوان پایه بصری یا اولین فریم برای ویدیو استفاده خواهد شد.
resolution
string
یک شمارش که در آن ضلع کوتاه فریم ویدیو، وضوح را تعیین می‌کند. مقدار پیش‌فرض: 720p
مقادیر مجاز (کلیک برای کپی):
duration
integer
طول ویدیوی خروجی بر حسب ثانیه.
مقادیر مجاز (کلیک برای کپی):
negative_prompt
string
توضیحات عناصری که باید در ویدیوی تولید شده از آنها اجتناب شود.
enable_prompt_expansion
boolean
فعال کردن یا غیرفعال کردن گسترش prompt. مقدار پیش‌فرض: true
seed
integer
تغییر عدد seed راهی برای به دست آوردن نتایج مختلف برای سایر پارامترهای درخواست یکسان است. استفاده از مقدار یکسان برای یک درخواست یکسان، نتایج مشابهی را تولید می‌کند. اگر مشخص نشده باشد، یک عدد تصادفی انتخاب می‌شود.

نمونه کدهای درخواست

نکته مهم برای توسعه‌دهندگان:

برای احراز هویت، حتما کلید API خود را جایگزین YOUR_API_KEY کنید. هدر Authorization الزامی است.

import requests
import time

# replace <YOUR_AI-KARAPI_KEY> with your actual ای آی کار (AI-KAR) key
api_key = "<YOUR_AI-KARAPI_KEY>"
base_url = "https://api.ai-kar.com/v1"

# Creating and sending a video generation task to the server
def generate_video():
    url = f"{base_url}/generate/video/alibaba/generation"
    headers = {
        "Authorization": f"Bearer {api_key}",
    }
    data = {
        "model": "alibaba/wan2.5-i2v-preview",
        "prompt": '''Mona Lisa nervously puts on glasses with her hands and asks her off-screen friend to the left: ‘Do they suit me?’ She then tilts her head slightly to one side and then the other, so the unseen friend can better judge.''',
        "image_url": "https://s2-111386.kwimgs.com/bs2/mmu-aiplatform-temp/kling/20240620/1.jpeg",
    }
    response = requests.post(url, json=data, headers=headers)
    if response.status_code >= 400:
        print(f"Error: {response.status_code} - {response.text}")
    else:
        response_data = response.json()
        print(response_data)
        return response_data

# Requesting the result of the task from the server using the generation_id
def get_video(gen_id):
    url = f"{base_url}/generate/video/alibaba/generation"
    params = {
        "generation_id": gen_id,
    }
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }
    response = requests.get(url, params=params, headers=headers)
    return response.json()

def main():
    # Running video generation and getting a task id
    gen_response = generate_video()
    gen_id = gen_response.get("id")
    print("Generation ID:  ", gen_id)

    # Trying to retrieve the video from the server every 10 sec
    if gen_id:
        start_time = time.time()
        timeout = 600
        while time.time() - start_time < timeout:
            response_data = get_video(gen_id)
            if response_data is None:
                print("Error: No response from API")
                break
            status = response_data.get("status")
            print("Status:", status)
            if status == "waiting" or status == "active" or  status == "queued" or status == "generating":
                print("Still waiting... Checking again in 10 seconds.")
                time.sleep(10)
            else:
                print("Processing complete:/n", response_data)
                return response_data
        print("Timeout reached. Stopping.")
        return None

if __name__ == "__main__":
    main()

نمونه پاسخ موفق (JSON)

RESPONSE (200 OK)
{
  "id": "60ac7c34-3224-4b14-8e7d-0aa0db708325",
  "status": "completed",
  "video": {
    "url": "#",
    "duration": 8
  },
  "duration": 8,
  "error": null,
  "meta": {
    "usage": {
      "tokens_used": 120000
    }
  }
}