Video Modelsalibaba-cloud

معرفی و مستندات مدل هوش مصنوعی wan-2.2-14b-animate-replace-image-to-video

مستندات مدل wan-2.2-14b-animate-replace-image-to-video برای جایگزینی کاراکترهای متحرک در ویدیوها، ارائه شده توسط ای آی کار (AI-KAR).

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

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

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

مدل wan-2.2-14b-animate-replace-image-to-video یک مدل هوش مصنوعی است که برای ادغام کاراکترهای متحرک در ویدیوهای مرجع طراحی شده است. این مدل با جایگزینی سوژه اصلی در ویدیو، کاراکتر متحرک جدید را به گونه‌ای در صحنه ادغام می‌کند که نورپردازی، رنگ و لحن کلی ویدیو حفظ شود. این امر باعث می‌شود که کاراکتر جدید به طور یکپارچه با محیط هماهنگ شود و نتیجه‌ای طبیعی و باورپذیر ایجاد شود. این مدل از دو مرحله اصلی برای تولید ویدیو استفاده می‌کند. در مرحله اول، یک درخواست تولید ویدیو به سرور ارسال می‌شود و یک شناسه تولید (generation ID) دریافت می‌شود. در مرحله دوم، با استفاده از این شناسه، ویدیو تولید شده از سرور درخواست می‌شود. این فرآیند دو مرحله‌ای به مدل امکان می‌دهد تا منابع محاسباتی را به طور موثر مدیریت کند و ویدیوهای با کیفیت بالا تولید کند. یکی از ویژگی‌های برجسته این مدل، توانایی آن در حفظ سازگاری بصری در طول ویدیو است. این بدان معناست که کاراکتر متحرک جدید نه تنها به طور طبیعی در صحنه قرار می‌گیرد، بلکه با تغییرات نور و رنگ در طول ویدیو نیز سازگار می‌شود. این امر باعث می‌شود که ویدیو نهایی بسیار واقع‌گرایانه و جذاب به نظر برسد. این مدل می‌تواند در زمینه‌های مختلفی مورد استفاده قرار گیرد. به عنوان مثال، می‌توان از آن برای ایجاد ویدیوهای تبلیغاتی جذاب، فیلم‌های آموزشی تعاملی، یا حتی محتوای سرگرم‌کننده برای شبکه‌های اجتماعی استفاده کرد. با استفاده از این مدل، کاربران می‌توانند به راحتی کاراکترهای متحرک مورد علاقه خود را در ویدیوهای خود ادغام کنند و محتوایی خلاقانه و جذاب ایجاد کنند. برای استفاده از این مدل، کاربران باید یک کلید API معتبر داشته باشند. این کلید به کاربران امکان می‌دهد تا به API مدل دسترسی پیدا کنند و درخواست‌های تولید ویدیو را ارسال کنند. پس از ارسال درخواست، کاربران می‌توانند با استفاده از شناسه تولید، وضعیت تولید ویدیو را پیگیری کنند و پس از تکمیل، ویدیو نهایی را دانلود کنند. به طور خلاصه، مدل wan-2.2-14b-animate-replace-image-to-video یک ابزار قدرتمند و کارآمد برای ادغام کاراکترهای متحرک در ویدیوها است. با استفاده از این مدل، کاربران می‌توانند به راحتی ویدیوهای جذاب و واقع‌گرایانه‌ای ایجاد کنند که توجه مخاطبان را به خود جلب کند. این مدل با حفظ سازگاری بصری و ارائه یک فرآیند تولید دو مرحله‌ای، یک راه حل جامع برای نیازهای تولید ویدیوی کاربران ارائه می‌دهد.

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

پارامترنوعتوضیحات و مقادیر
model
stringRequired
مدل مورد استفاده برای تولید ویدیو. مقدار آن باید alibaba/wan2.2-14b-animate-replace باشد.
مقادیر مجاز (کلیک برای کپی):
video_url
stringRequired
آدرس اینترنتی (URL) ویدیوی ورودی.
image_url
stringRequired
آدرس اینترنتی (URL) تصویر ورودی. اگر نسبت تصویر ورودی با نسبت تصویر انتخاب شده مطابقت نداشته باشد، اندازه آن تغییر کرده و به صورت مرکزی برش داده می‌شود.
resolution
string
رزولوشن ویدیوی تولید شده (480p، 580p یا 720p).
مقادیر مجاز (کلیک برای کپی):
seed
integer
تغییر مقدار seed یک راه برای دریافت نتایج مختلف برای پارامترهای درخواست یکسان است. استفاده از مقدار یکسان برای یک درخواست مشابه، نتایج مشابهی تولید می‌کند. اگر مشخص نشود، یک عدد تصادفی انتخاب می‌شود.
num_inference_steps
integer
تعداد مراحل استنتاج برای نمونه‌برداری. مقادیر بالاتر کیفیت بهتری می‌دهند اما زمان بیشتری می‌برند.
enable_safety_checker
boolean
اگر روی true تنظیم شود، داده‌های ورودی قبل از پردازش از نظر ایمنی بررسی می‌شوند.
shift
number
مقدار شیفت برای ویدیو. باید بین 1.0 و 10.0 باشد.
video_quality
string
کیفیت ویدیوی خروجی. کیفیت بالاتر به معنای کیفیت بصری بهتر اما اندازه فایل بزرگتر است.
مقادیر مجاز (کلیک برای کپی):
video_write_mode
string
حالت نوشتن ویدیوی خروجی. حالت نوشتن سریعتر به معنای نتایج سریعتر اما اندازه فایل بزرگتر است، حالت نوشتن متعادل یک مصالحه خوب بین سرعت و کیفیت است، و حالت نوشتن کوچکترین کندترین است اما کوچکترین اندازه فایل را تولید می‌کند.
مقادیر مجاز (کلیک برای کپی):

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

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

برای احراز هویت، حتما کلید 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-14b-animate-replace",
        "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
    }
  }
}