Video Modelsalibaba-cloud

معرفی و مستندات مدل هوش مصنوعی wan-2.2-plus-text-to-video

مستندات مدل تولید ویدیو از متن wan-2.2-plus-text-to-video از alibaba-cloud، ارائه شده توسط ای آی کار (AI-KAR).

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

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

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

معرفی مدل wan-2.2-plus-text-to-video

مدل wan-2.2-plus-text-to-video یک مدل پیشرفته تولید ویدیو از متن (Text-to-Video) است که توسط Alibaba Cloud توسعه داده شده است. این مدل قادر است ویدیوهای صامت با کیفیت 480p و 1080p با نرخ فریم تقریبی 30 فریم بر ثانیه تولید کند. این مدل به کاربران اجازه می‌دهد تا با ارائه یک توضیح متنی، ویدیویی با محتوای مورد نظر خود ایجاد کنند.

کاربردهای مدل

این مدل در زمینه‌های مختلفی کاربرد دارد، از جمله:

  • تولید محتوای آموزشی: ایجاد ویدیوهای آموزشی کوتاه بر اساس متن‌های آموزشی.
  • تبلیغات: ساخت ویدیوهای تبلیغاتی جذاب و خلاقانه با استفاده از توضیحات متنی.
  • سرگرمی: تولید ویدیوهای سرگرم‌کننده و خلاقانه برای شبکه‌های اجتماعی و پلتفرم‌های اشتراک ویدیو.
  • پیش‌نمایش فیلم و سریال: ایجاد پیش‌نمایش‌های اولیه از فیلم‌ها و سریال‌ها بر اساس فیلمنامه.
  • تولید محتوای خبری: ساخت ویدیوهای خبری کوتاه بر اساس گزارش‌های متنی.

نحوه استفاده

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

  1. ارسال درخواست تولید ویدیو به سرور و دریافت یک شناسه تولید (generation ID).
  2. درخواست ویدیو تولید شده از سرور با استفاده از شناسه تولید دریافت شده.

مزایا

  • کیفیت بالا: تولید ویدیوهای با کیفیت 480p و 1080p.
  • سرعت بالا: تولید ویدیو با نرخ فریم تقریبی 30 فریم بر ثانیه.
  • سهولت استفاده: استفاده آسان از طریق API.
  • انعطاف‌پذیری: امکان تنظیم پارامترهای مختلف مانند رزولوشن، نسبت تصویر و غیره.

محدودیت‌ها

  • صامت بودن ویدیوها: ویدیوهای تولید شده فاقد صدا هستند.
  • نیاز به کلید API: برای استفاده از مدل، نیاز به دریافت کلید API از سرویس AI-KAR دارید.

نکات مهم

  • برای دریافت نتایج مختلف با استفاده از پارامترهای مشابه، می‌توانید از مقادیر مختلف برای پارامتر seed استفاده کنید.
  • برای جلوگیری از نمایش عناصر ناخواسته در ویدیو، می‌توانید از پارامتر negative_prompt استفاده کنید.

با استفاده از مدل wan-2.2-plus-text-to-video، می‌توانید به راحتی ویدیوهای خلاقانه و جذابی را از متن تولید کنید. این مدل ابزاری قدرتمند برای تولید محتوای ویدیویی در زمینه‌های مختلف است.

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

پارامترنوعتوضیحات و مقادیر
model
stringRequired
مدل مورد استفاده برای تولید ویدیو. مقدار ثابت: alibaba/wan2.2-t2v-plus
مقادیر مجاز (کلیک برای کپی):
prompt
stringRequired
توضیحات متنی صحنه، موضوع یا عملی که می‌خواهید در ویدیو تولید شود.
resolution
string
رزولوشن ویدیو تولید شده. تعیین می‌کند که ضلع کوچکتر فریم ویدیو چه رزولوشنی داشته باشد. مقدار پیش‌فرض: 1080P
مقادیر مجاز (کلیک برای کپی):
aspect_ratio
string
نسبت تصویر ویدیو تولید شده. مقدار پیش‌فرض: 16:9
مقادیر مجاز (کلیک برای کپی):
negative_prompt
string
توضیحات عناصری که باید در ویدیو از آن‌ها اجتناب شود.
watermark
boolean
مشخص می‌کند که آیا ویدیو حاوی واترمارک باشد یا خیر. مقدار پیش‌فرض: false
مقادیر مجاز (کلیک برای کپی):
seed
integer
تغییر مقدار seed باعث می‌شود نتایج متفاوتی برای پارامترهای درخواست یکسان بدست آید. استفاده از مقدار یکسان برای درخواست‌های یکسان نتایج مشابهی تولید می‌کند. اگر مشخص نشود، یک عدد تصادفی انتخاب می‌شود.
enable_prompt_expansion
boolean
مشخص می‌کند که آیا گسترش prompt فعال شود یا خیر. مقدار پیش‌فرض: true
مقادیر مجاز (کلیک برای کپی):
generation_id
stringRequired
شناسه تولید ویدیو که از درخواست اولیه دریافت شده است.

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

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

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

import requests
import time

# Insert your AI-KAR API Key instead of <YOUR_AI-KARAPI_KEY>:
AI-KARapi_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 {AI-KARapi_key}",
    }
    data = {
        "model": "alibaba/wan2.2-t2v-plus",
        "prompt": '''
A menacing evil dragon appears in a distance above the tallest mountain, then rushes toward the camera with its jaws open, revealing massive fangs. We see it's coming.
'''
    }
    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()
        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 {AI-KARapi_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 = 1000
        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
    }
  }
}