Video Modelsalibaba-cloud
معرفی و مستندات مدل هوش مصنوعی wan2.2-vace-fun-a14b-depth-image-to-video
مستندات مدل تولید ویدیو از تصویر و عمق wan2.2-vace-fun-a14b-depth-image-to-video، ارائه شده توسط ای ای کار (AI-KAR).
معرفی و بررسی فنی
⚡ وضعیت پشتیبانی از زبان فارسی
این مدل از زبان فارسی در سطح متوسط پشتیبانی میکند. درک نسبتا خوبی از دستورات فارسی دارد اما برای نتیجه بهتر پیشنهاد می شود از عبارات ساده تر استفاده شود.
مدل wan2.2-vace-fun-a14b-depth-image-to-video یک مدل تولید ویدیو است که توسط Alibaba Cloud توسعه داده شده است. این مدل به شما امکان میدهد با ترکیب یک تصویر منبع، یک ماسک و یک ویدیوی مرجع، ویدیوهایی با کنترل دقیق بر روی محتوای تولید شده ایجاد کنید. به عبارت دیگر، شما میتوانید با استفاده از این مدل، ویدیویی تولید کنید که در آن عناصر خاصی از تصویر منبع شما (مانند یک شیء یا یک شخص) در ویدیوی تولید شده حضور داشته باشند و حرکات و رفتارهای ویدیوی مرجع را تقلید کنند. این مدل برای کاربردهایی مانند تولید محتوای تبلیغاتی، ایجاد جلوههای ویژه در فیلمها و بازیها، و تولید ویدیوهای آموزشی بسیار مناسب است.
نحوه کارکرد مدل:
این مدل از یک رویکرد دو مرحلهای برای تولید ویدیو استفاده میکند. در مرحله اول، یک شناسه تولید (generation ID) ایجاد میشود. این شناسه به عنوان یک کلید برای پیگیری فرآیند تولید ویدیو استفاده میشود. در مرحله دوم، با استفاده از این شناسه، میتوان وضعیت تولید ویدیو را بررسی کرد و پس از اتمام فرآیند، ویدیوی تولید شده را دریافت کرد.
کاربردهای مدل:
این مدل کاربردهای فراوانی دارد، از جمله:
مزایای استفاده از مدل:
نکات مهم:
برای استفاده از این مدل، به یک کلید API نیاز دارید. همچنین، باید توجه داشته باشید که این مدل به یک تصویر منبع، یک ماسک و یک ویدیوی مرجع نیاز دارد. کیفیت ویدیوهای تولید شده به کیفیت تصاویر و ویدیوهای ورودی بستگی دارد. برای دستیابی به بهترین نتایج، توصیه میشود از تصاویر و ویدیوهای با کیفیت بالا استفاده کنید. این مدل به خوبی میتواند با توضیحات متنی (prompt) فارسی کار کند، اما ممکن است در برخی موارد نیاز به تنظیم دقیقتر پارامترها باشد. با این حال، به طور کلی، پشتیبانی از زبان فارسی در این مدل در سطح خوبی قرار دارد.
نحوه کارکرد مدل:
این مدل از یک رویکرد دو مرحلهای برای تولید ویدیو استفاده میکند. در مرحله اول، یک شناسه تولید (generation ID) ایجاد میشود. این شناسه به عنوان یک کلید برای پیگیری فرآیند تولید ویدیو استفاده میشود. در مرحله دوم، با استفاده از این شناسه، میتوان وضعیت تولید ویدیو را بررسی کرد و پس از اتمام فرآیند، ویدیوی تولید شده را دریافت کرد.
کاربردهای مدل:
این مدل کاربردهای فراوانی دارد، از جمله:
- تولید ویدیوهای تبلیغاتی جذاب و خلاقانه
- ایجاد جلوههای ویژه بصری در فیلمها و بازیها
- تولید ویدیوهای آموزشی و سرگرمکننده
- تبدیل تصاویر ثابت به ویدیوهای متحرک
- شخصیسازی ویدیوها بر اساس سلیقه و نیاز کاربر
مزایای استفاده از مدل:
- کنترل دقیق بر روی محتوای تولید شده
- کیفیت بالای ویدیوهای تولید شده
- سرعت بالای تولید ویدیو
- سهولت استفاده
نکات مهم:
برای استفاده از این مدل، به یک کلید API نیاز دارید. همچنین، باید توجه داشته باشید که این مدل به یک تصویر منبع، یک ماسک و یک ویدیوی مرجع نیاز دارد. کیفیت ویدیوهای تولید شده به کیفیت تصاویر و ویدیوهای ورودی بستگی دارد. برای دستیابی به بهترین نتایج، توصیه میشود از تصاویر و ویدیوهای با کیفیت بالا استفاده کنید. این مدل به خوبی میتواند با توضیحات متنی (prompt) فارسی کار کند، اما ممکن است در برخی موارد نیاز به تنظیم دقیقتر پارامترها باشد. با این حال، به طور کلی، پشتیبانی از زبان فارسی در این مدل در سطح خوبی قرار دارد.
مشخصات فنی (API References)
| پارامتر | نوع | توضیحات و مقادیر |
|---|---|---|
model | stringRequired | نام مدل. مقدار این فیلد باید `alibaba/wan2.2-vace-fun-a14b-depth` باشد. مقادیر مجاز (کلیک برای کپی): |
video_url | stringRequired | آدرس URL فایل ویدیویی منبع. برای وظیفه عمق (depth task) مورد نیاز است. |
prompt | stringRequired | توضیحات متنی صحنه، موضوع یا عملی که میخواهید در ویدیو تولید شود. |
negative_prompt | string | توضیحات عناصری که باید در ویدیوی تولید شده از آنها اجتناب شود. |
match_input_num_frames | boolean | مشخص میکند که آیا تعداد فریمهای ویدیوی تولید شده باید با تعداد فریمهای ویدیوی ورودی مطابقت داشته باشد یا خیر. |
num_frames | integer | تعداد فریمهایی که باید تولید شوند. باید بین 81 تا 241 باشد. |
match_input_frames_per_second | boolean | مشخص میکند که آیا نرخ فریم (FPS) ویدیوی تولید شده باید با نرخ فریم ویدیوی ورودی مطابقت داشته باشد یا خیر. |
frames_per_second | integer | نرخ فریم (FPS) ویدیوی تولید شده. باید بین 5 تا 30 باشد. |
seed | integer | یک عدد تصادفی برای تولید نتایج مختلف با پارامترهای مشابه. استفاده از یک مقدار ثابت برای درخواستهای یکسان، نتایج مشابهی تولید میکند. اگر مشخص نشود، یک عدد تصادفی انتخاب میشود. |
resolution | string | یک شمارش که در آن ضلع کوتاه فریم ویدیو، وضوح را تعیین میکند. مقادیر مجاز (کلیک برای کپی): |
aspect_ratio | string | نسبت تصویر ویدیوی تولید شده. مقادیر مجاز (کلیک برای کپی): |
num_inference_steps | integer | تعداد مراحل استنتاج برای نمونهبرداری. مقادیر بالاتر کیفیت بهتری میدهند اما زمان بیشتری میبرند. |
guidance_scale | number | مقیاس هدایت بدون طبقهبندی. کنترل میزان پایبندی به دستورات / خلاقیت. |
shift | number | پارامتر شیفت زمانبندی نویز. بر پویایی زمانی تأثیر میگذارد. |
image_list | string | آرایهای از URLهای تصویر (2-4 تصویر) برای تولید ویدیو از چند تصویر. |
image_url | string | آدرس URL تصویری که به عنوان اولین فریم ویدیو استفاده میشود. |
last_image_url | string | یک لینک مستقیم به یک تصویر آنلاین یا یک تصویر محلی با کد Base64 که به عنوان آخرین فریم ویدیو استفاده میشود. |
enable_safety_checker | boolean | اگر روی true تنظیم شود، بررسیکننده ایمنی فعال میشود. |
enable_prompt_expansion | boolean | مشخص میکند که آیا گسترش prompt فعال شود یا خیر. |
preprocess | boolean | مشخص میکند که آیا ویدیوی ورودی پیشپردازش شود یا خیر. |
acceleration | string | شتاب مورد استفاده برای استنتاج. مقادیر موجود: none یا regular. مقادیر مجاز (کلیک برای کپی): |
video_quality | string | کیفیت ویدیوی تولید شده. مقادیر مجاز (کلیک برای کپی): |
video_write_mode | string | روش مورد استفاده برای نوشتن ویدیو. مقادیر موجود: fast, balanced, small. مقادیر مجاز (کلیک برای کپی): |
num_interpolated_frames | integer | تعداد فریمهایی که بین فریمهای اصلی درونیابی میشوند. |
temporal_downsample_factor | integer | ضریب نمونهبرداری زمانی برای ویدیو. |
enable_auto_downsample | boolean | حداقل فریم در ثانیه برای کاهش نمونه ویدیو. |
auto_downsample_min_fps | number | حداقل فریم در ثانیه برای کاهش نمونه ویدیو. |
interpolator_model | string | مدل مورد استفاده برای درونیابی. مقادیر موجود: rife, 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-depth",
"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")
print("Status:", status)
if status == "waiting" or status == "active" or status == "queued" or status == "generating":
print("Waiting for video generation...")
time.sleep(10)
elif status == "completed":
video_url = response_data.get("video", {}).get("url")
print("Video URL:", video_url)
break
elif status == "failed":
error = response_data.get("error")
print("Error:", error)
break
else:
print("Unexpected status:", status)
break
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
}
}
}