Video Modelsalibaba-cloud

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

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

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

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

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

معرفی مدل wan2.2-vace-fun-a14b-reframe-image-to-video

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

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

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

نحوه عملکرد:

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

مزایا:

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

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

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

پارامترنوعتوضیحات و مقادیر
model
stringRequired
نام مدل. مقدار این فیلد باید 'alibaba/wan2.2-vace-fun-a14b-reframe' باشد.
مقادیر مجاز (کلیک برای کپی):
video_url
stringRequired
آدرس URL فایل ویدیویی منبع. این ویدیو به عنوان مرجع برای وظیفه reframe استفاده خواهد شد.
zoom_factor
number
ضریب بزرگنمایی برای ویدیو. وقتی این مقدار بزرگتر از 0 باشد، ویدیو با این ضریب (نسبت به اندازه بوم) بزرگنمایی می‌شود و لبه‌های ویدیو بریده می‌شوند. مقدار 0 به معنی عدم بزرگنمایی است.
trim_borders
boolean
مشخص می‌کند که آیا حاشیه‌ها از ویدیو حذف شوند یا خیر. مقدار پیش‌فرض true است.
prompt
string
متن prompt برای هدایت تولید ویدیو. برای reframing اختیاری است.
negative_prompt
string
توضیح عناصری که باید در ویدیوی تولید شده از آنها اجتناب شود. مقدار پیش‌فرض شامل مواردی مانند letterboxing، حاشیه‌ها، نوارهای سیاه، رنگ‌های روشن، نوردهی بیش از حد، استاتیک، جزئیات تار، زیرنویس‌ها، سبک هنری، نقاشی، تصویر ثابت، کیفیت پایین، فشرده‌سازی JPEG، چهره‌های زشت، اندام‌های ناقص و غیره است.
match_input_num_frames
boolean
مشخص می‌کند که آیا تعداد فریم‌های خروجی باید با تعداد فریم‌های ورودی مطابقت داشته باشد یا خیر. مقدار پیش‌فرض true است.
num_frames
integer
تعداد فریم‌هایی که باید تولید شوند. مقدار باید بین 81 و 241 باشد. مقدار پیش‌فرض 81 است.
match_input_frames_per_second
boolean
مشخص می‌کند که آیا نرخ فریم بر ثانیه خروجی باید با نرخ فریم بر ثانیه ورودی مطابقت داشته باشد یا خیر. مقدار پیش‌فرض true است.
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
مقیاس هدایت بدون طبقه‌بندی. کنترل میزان پایبندی به prompt / خلاقیت. مقدار پیش‌فرض 5 است.
shift
number
پارامتر شیفت برنامه نویز. بر پویایی زمانی تأثیر می‌گذارد. مقدار پیش‌فرض 5 است.
image_list
string · uri[]
آرایه‌ای از URLهای تصویر (2-4 تصویر) برای تولید ویدیو از چند تصویر.
image_url
string · uri
آدرس URL تصویری که به عنوان اولین فریم ویدیو استفاده می‌شود.
last_image_url
string · uri
یک لینک مستقیم به یک تصویر آنلاین یا یک تصویر محلی با کد Base64 که به عنوان آخرین فریم ویدیو استفاده می‌شود.
enable_safety_checker
boolean
اگر روی true تنظیم شود، بررسی کننده ایمنی فعال خواهد شد.
enable_prompt_expansion
boolean
مشخص می‌کند که آیا گسترش prompt فعال شود یا خیر.
preprocess
boolean
مشخص می‌کند که آیا ویدیوی ورودی پیش‌پردازش شود یا خیر.
acceleration
string · enum
شتاب برای استفاده در استنتاج. مقدار پیش‌فرض regular است.
مقادیر مجاز (کلیک برای کپی):
video_quality
string · enum
کیفیت ویدیوی تولید شده. مقدار پیش‌فرض high است.
مقادیر مجاز (کلیک برای کپی):
video_write_mode
string · enum
روش مورد استفاده برای نوشتن ویدیو. مقدار پیش‌فرض balanced است.
مقادیر مجاز (کلیک برای کپی):
num_interpolated_frames
integer
تعداد فریم‌هایی که بین فریم‌های اصلی درون‌یابی می‌شوند.
temporal_downsample_factor
integer
ضریب downsample زمانی برای ویدیو.
enable_auto_downsample
boolean
حداقل فریم در ثانیه برای downsample کردن ویدیو.
auto_downsample_min_fps
number
حداقل فریم در ثانیه برای downsample کردن ویدیو. مقدار پیش‌فرض 15 است.
interpolator_model
string · enum
مدلی که برای درون‌یابی استفاده می‌شود. 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}",
    }
    data = {
        "model": "alibaba/wan2.2-vace-fun-a14b-reframe",
        "video_url": "https://storage.googleapis.com/falserverless/example_inputs/wan_animate_input_video.mp4",
        "image_url": "https://s2-111386.kwimgs.com/bs2/mmu-aiplatform-temp/kling/20240620/1.jpeg",
        "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")
            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
    }
  }
}