معرفی و مستندات مدل هوش مصنوعی 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، بازسازی و بهبود بخشید.
- تولید ویدیوهای هنری: هنرمندان میتوانند از این مدل برای خلق آثار هنری دیجیتال جدید و نوآورانه استفاده کنند.
نحوه عملکرد:
- ورودی: مدل سه ورودی اصلی دریافت میکند: یک تصویر منبع، یک ماسک (اختیاری) و یک ویدیوی مرجع.
- پردازش: مدل با استفاده از الگوریتمهای پیشرفته هوش مصنوعی، تصویر منبع را با ویدیوی مرجع ترکیب میکند و ویدیوی جدیدی تولید میکند که محتوای تصویر اصلی را در قالب ویدیوی مرجع نمایش میدهد. ماسک به مدل کمک میکند تا قسمتهای خاصی از تصویر منبع را حفظ کند یا تغییر دهد.
- خروجی: مدل یک ویدیوی جدید تولید میکند که با توجه به پارامترهای ورودی، میتواند دارای ویژگیهای مختلفی مانند طول، نرخ فریم و کیفیت باشد.
مزایا:
- کنترل دقیق: کاربران میتوانند با استفاده از ماسک و پارامترهای مختلف، کنترل دقیقی بر روی فرآیند تولید ویدیو داشته باشند.
- سرعت بالا: مدل با سرعت بالایی ویدیوها را تولید میکند و به کاربران امکان میدهد تا به سرعت نتایج مورد نظر خود را دریافت کنند.
- کیفیت بالا: ویدیوهای تولید شده توسط این مدل دارای کیفیت بالایی هستند و میتوانند در کاربردهای مختلف مورد استفاده قرار گیرند.
- سهولت استفاده: استفاده از این مدل بسیار آسان است و کاربران با کمترین دانش فنی میتوانند ویدیوهای خلاقانهای تولید کنند.
این مدل یک ابزار قدرتمند برای تولید ویدیوهای خلاقانه و جذاب است و میتواند در زمینههای مختلفی مانند تبلیغات، آموزش، هنر و سرگرمی مورد استفاده قرار گیرد. با استفاده از این مدل، کاربران میتوانند به راحتی ایدههای خود را به واقعیت تبدیل کنند و ویدیوهایی تولید کنند که مخاطبان را تحت تاثیر قرار دهد.
مشخصات فنی (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)
{
"id": "60ac7c34-3224-4b14-8e7d-0aa0db708325",
"status": "completed",
"video": {
"url": "#",
"duration": 8
},
"duration": 8,
"error": null,
"meta": {
"usage": {
"tokens_used": 120000
}
}
}