Video Modelsalibaba-cloud

معرفی و مستندات مدل هوش مصنوعی wan2.2-vace-fun-a14b-pose-image-to-video

مستندات مدل تولید ویدیو از تصویر و پُز wan2.2-vace-fun-a14b-pose-image-to-video، ارائه شده توسط ای آی کار (AI-KAR).

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

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

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

توضیحات مدل wan2.2-vace-fun-a14b-pose-image-to-video

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

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

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

نحوه عملکرد:

  1. ورودی: مدل به یک تصویر منبع، یک ماسک (اختیاری) و یک ویدیوی مرجع نیاز دارد.
  2. پردازش: مدل با استفاده از الگوریتم‌های یادگیری عمیق، حرکات و پوزهای موجود در ویدیوی مرجع را تحلیل می‌کند.
  3. خروجی: مدل یک ویدیوی جدید تولید می‌کند که حرکات و پوزهای موجود در ویدیوی مرجع را تقلید می‌کند، در حالی که تصویر منبع را حفظ می‌کند.

مزایای استفاده از این مدل:

  • کنترل دقیق: کاربران می‌توانند کنترل دقیقی بر روی محتوای تولید شده داشته باشند.
  • کیفیت بالا: مدل ویدیوهایی با کیفیت بالا تولید می‌کند.
  • سرعت بالا: فرایند تولید ویدیو نسبتاً سریع است.
  • سهولت استفاده: استفاده از مدل نسبتاً آسان است و نیاز به دانش فنی خاصی ندارد.

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

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

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

پارامترنوعتوضیحات و مقادیر
model
stringRequired
نام مدل. مقدار ثابت: alibaba/wan2.2-vace-fun-a14b-pose
مقادیر مجاز (کلیک برای کپی):
video_url
stringRequired
آدرس URL فایل ویدیویی منبع. برای وظیفه pose مورد نیاز است.
prompt
stringRequired
توضیحات متنی صحنه، موضوع یا عملی که می‌خواهید در ویدیو تولید شود.
negative_prompt
string
توضیحات عناصری که باید در ویدیوی تولید شده از آنها اجتناب شود.
match_input_num_frames
boolean
اینکه آیا تعداد فریم‌های ویدیو تولید شده با ویدیو ورودی مطابقت داشته باشد یا خیر.
num_frames
integer
تعداد فریم‌هایی که باید تولید شوند. حداقل: 81، حداکثر: 241. مقدار پیش‌فرض: 81
match_input_frames_per_second
boolean
اینکه آیا فریم در ثانیه (FPS) ویدیو تولید شده با ویدیو ورودی مطابقت داشته باشد یا خیر.
frames_per_second
integer
فریم در ثانیه ویدیوی تولید شده. حداقل: 5، حداکثر: 30. مقدار پیش‌فرض: 16
seed
integer
تغییر عدد seed راهی برای به دست آوردن نتایج مختلف برای پارامترهای درخواست یکسان است. استفاده از مقدار یکسان برای یک درخواست یکسان نتایج مشابهی ایجاد می‌کند. اگر مشخص نشود، یک عدد تصادفی انتخاب می‌شود.
resolution
string
یک شمارش که در آن ضلع کوتاه فریم ویدیو، وضوح را تعیین می‌کند. مقدار پیش‌فرض: auto
مقادیر مجاز (کلیک برای کپی):
aspect_ratio
string
نسبت تصویر ویدیوی تولید شده. مقدار پیش‌فرض: auto
مقادیر مجاز (کلیک برای کپی):
num_inference_steps
integer
تعداد مراحل استنتاج برای نمونه‌برداری. مقادیر بالاتر کیفیت بهتری می‌دهند اما زمان بیشتری می‌برند. مقدار پیش‌فرض: 30
guidance_scale
number
مقیاس هدایت بدون طبقه‌بندی. میزان پایبندی به پرامپت / خلاقیت را کنترل می‌کند. مقدار پیش‌فرض: 5
shift
number
پارامتر شیفت برنامه نویز. بر پویایی زمانی تأثیر می‌گذارد. مقدار پیش‌فرض: 5
image_list
string[]
آرایه‌ای از آدرس‌های URL تصویر (2-4 تصویر) برای تولید ویدیو از چند تصویر.
image_url
string
آدرس URL تصویری که به عنوان اولین فریم ویدیو استفاده می‌شود.
last_image_url
string
یک لینک مستقیم به یک تصویر آنلاین یا یک تصویر محلی کدگذاری شده با Base64 که به عنوان آخرین فریم ویدیو استفاده می‌شود.
enable_safety_checker
boolean
اگر روی true تنظیم شود، بررسی کننده ایمنی فعال می‌شود.
enable_prompt_expansion
boolean
اینکه آیا گسترش پرامپت فعال شود یا خیر.
preprocess
boolean
اینکه آیا ویدیوی ورودی پیش پردازش شود یا خیر.
acceleration
string
شتابی که برای استنتاج استفاده می‌شود. مقدار پیش‌فرض: regular
مقادیر مجاز (کلیک برای کپی):
video_quality
string
کیفیت ویدیوی تولید شده. مقدار پیش‌فرض: high
مقادیر مجاز (کلیک برای کپی):
video_write_mode
string
روش مورد استفاده برای نوشتن ویدیو. مقدار پیش‌فرض: balanced
مقادیر مجاز (کلیک برای کپی):
num_interpolated_frames
integer
تعداد فریم‌هایی که بین فریم‌های اصلی درون‌یابی می‌شوند.
temporal_downsample_factor
integer
ضریب نمونه‌برداری زمانی برای ویدیو.
enable_auto_downsample
boolean
حداقل فریم در ثانیه برای کاهش نمونه ویدیو.
auto_downsample_min_fps
number
حداقل فریم در ثانیه برای کاهش نمونه ویدیو. مقدار پیش‌فرض: 15
interpolator_model
string
مدلی که برای درون‌یابی استفاده می‌شود. Rife یا film در دسترس هستند. مقدار پیش‌فرض: film
مقادیر مجاز (کلیک برای کپی):
sync_mode
boolean
حالت همگام سازی برای صدا و تصویر. Loose یا tight در دسترس هستند.

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

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

برای احراز هویت، حتما کلید 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}/video/generations"
    headers = {
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json"
    }
    data = {
        "model": "alibaba/wan2.2-vace-fun-a14b-pose",
        "video_url": "https://storage.googleapis.com/falserverless/example_inputs/wan_animate_input_video.mp4",
        "prompt": "A lone woman strides through the neon-drenched streets of Tokyo at night.  Her crimson dress, a vibrant splash of color against the deep blues and blacks of the cityscape, flows slightly with each step. A tailored black jacket, crisp and elegant, contrasts sharply with the dress's rich texture. Medium shot:  The city hums around her, blurred lights creating streaks of color in the background. Close-up:  The fabric of her dress catches the streetlight's glow, revealing a subtle silk sheen and the intricate stitching at the hem. Her black jacket’s subtle texture is visible – a fine wool perhaps, with a matte finish. The overall mood is one of quiet confidence and mystery, a vibrant woman navigating a bustling, nocturnal landscape. High resolution 4k.",
        "resolution": "720p",
    }
    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}/video/generations"
    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")
            if status == "completed":
                video_url = response_data.get("video", {}).get("url")
                print("Video URL: ", video_url)
                break
            else:
                print(f"Status: {status}. Waiting...")
                time.sleep(10)
        else:
            print("Timeout reached. Could not retrieve video.")

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
    }
  }
}