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