Video Modelsalibaba-cloud
معرفی و مستندات مدل هوش مصنوعی wan2.2-vace-fun-a14b-outpainting-image-to-video
مستندات مدل تولید ویدیو از تصویر و ماسک wan2.2-vace-fun-a14b-outpainting-image-to-video از ای آی کار (AI-KAR)
معرفی و بررسی فنی
⚡ وضعیت پشتیبانی از زبان فارسی
این مدل از زبان فارسی به صورت ضعیف پشتیبانی میکند. برای دریافت بهترین نتیجه، استفاده از prompt های انگلیسی توصیه میشود.
مدل wan2.2-vace-fun-a14b-outpainting-image-to-video یک مدل تولید ویدیو است که توسط Alibaba Cloud توسعه داده شده است. این مدل به کاربران امکان میدهد تا با ترکیب یک تصویر منبع، یک ماسک و یک ویدیوی مرجع، ویدیوهای درخواستی را با کنترل دقیق بر روی منبع تولید کنند. به عبارت دیگر، شما میتوانید یک تصویر ثابت را به عنوان نقطه شروع قرار دهید، سپس با استفاده از یک ماسک، مشخص کنید که کدام قسمتهای تصویر باید تغییر کنند و در نهایت با ارائه یک ویدیوی مرجع، به مدل بگویید که چگونه این تغییرات را اعمال کند تا یک ویدیوی جدید و جذاب تولید شود.
این مدل برای کاربردهای مختلفی مناسب است. به عنوان مثال، میتوانید از آن برای ایجاد جلوههای ویژه در ویدیوها، تغییر پسزمینه تصاویر، متحرکسازی تصاویر ثابت، و یا حتی تولید ویدیوهای تبلیغاتی خلاقانه استفاده کنید. یکی از ویژگیهای برجسته این مدل، توانایی آن در حفظ جزئیات و کیفیت تصویر اصلی است. به این معنی که حتی پس از اعمال تغییرات و تولید ویدیو، تصویر نهایی همچنان واضح و با کیفیت خواهد بود.
برای استفاده از این مدل، شما باید یک تصویر منبع، یک ماسک و یک ویدیوی مرجع را به عنوان ورودی به مدل ارائه دهید. تصویر منبع، تصویری است که میخواهید آن را به ویدیو تبدیل کنید. ماسک، تصویری است که مشخص میکند کدام قسمتهای تصویر منبع باید تغییر کنند. ویدیوی مرجع، ویدیویی است که به مدل نشان میدهد چگونه این تغییرات را اعمال کند. همچنین، شما میتوانید یک متن توصیفی (prompt) را به مدل ارائه دهید تا به آن کمک کند تا ویدیوی مورد نظر شما را بهتر درک کند و تولید کند.
این مدل از پارامترهای مختلفی برای کنترل فرآیند تولید ویدیو پشتیبانی میکند. به عنوان مثال، شما میتوانید تعداد فریمهای ویدیو، نرخ فریم در ثانیه، وضوح تصویر، نسبت تصویر و سایر تنظیمات را تغییر دهید. همچنین، میتوانید از پارامترهای پیشرفتهتری مانند مقیاس هدایت (guidance scale) و تعداد مراحل استنتاج (num_inference_steps) برای بهبود کیفیت ویدیو استفاده کنید.
در نهایت، مدل wan2.2-vace-fun-a14b-outpainting-image-to-video یک ابزار قدرتمند و انعطافپذیر برای تولید ویدیوهای خلاقانه و جذاب است. با استفاده از این مدل، شما میتوانید تصاویر ثابت خود را به ویدیوهای پویا و چشمنواز تبدیل کنید و ایدههای خلاقانه خود را به واقعیت تبدیل کنید. این مدل به ویژه برای تولیدکنندگان محتوا، هنرمندان دیجیتال و بازاریابان که به دنبال راههای جدیدی برای جذب مخاطب هستند، بسیار مفید است.
مشخصات فنی (API References)
| پارامتر | نوع | توضیحات و مقادیر |
|---|---|---|
model | stringRequired | نام مدل. مقدار ثابت: alibaba/wan2.2-vace-fun-a14b-outpainting مقادیر مجاز (کلیک برای کپی): |
video_url | stringRequired | آدرس URL فایل ویدیویی منبع. برای outpainting مورد نیاز است. |
expand_left | boolean | آیا ویدیو به سمت چپ گسترش یابد؟ |
expand_right | boolean | آیا ویدیو به سمت راست گسترش یابد؟ |
expand_top | boolean | آیا ویدیو به سمت بالا گسترش یابد؟ |
expand_bottom | boolean | آیا ویدیو به سمت پایین گسترش یابد؟ |
expand_ratio | number | مقدار گسترش. این یک مقدار اعشاری بین 0 و 1 است، جایی که 0.25 مقدار 25٪ را به اندازه ویدیوی اصلی در طرف های مشخص شده اضافه می کند. |
prompt | stringRequired | توضیحات متنی صحنه، موضوع یا عملی که باید در ویدیو ایجاد شود. |
negative_prompt | string | توضیحات عناصری که باید در ویدیوی تولید شده از آنها اجتناب شود. |
match_input_num_frames | boolean | تعداد فریم ها |
num_frames | integer | تعداد فریم هایی که باید تولید شوند. |
match_input_frames_per_second | boolean | آیا فریم در ثانیه (FPS) ویدیوی ورودی مطابقت داده شود؟ |
frames_per_second | integer | فریم در ثانیه ویدیوی تولید شده. |
seed | integer | تغییر عدد seed راهی برای به دست آوردن نتایج مختلف برای سایر پارامترهای درخواست است. استفاده از مقدار یکسان برای یک درخواست مشابه نتایج مشابهی را تولید می کند. اگر مشخص نشده باشد، یک عدد تصادفی انتخاب می شود. |
resolution | string | شمارشی که در آن ضلع کوتاه فریم ویدیو، وضوح را تعیین می کند. مقادیر مجاز (کلیک برای کپی): |
aspect_ratio | string | نسبت تصویر ویدیوی تولید شده. مقادیر مجاز (کلیک برای کپی): |
num_inference_steps | integer | تعداد مراحل استنتاج برای نمونه برداری. مقادیر بالاتر کیفیت بهتری می دهند اما زمان بیشتری می برند. |
guidance_scale | number | مقیاس هدایت بدون طبقه بندی. میزان پایبندی به prompt / خلاقیت را کنترل می کند. |
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 | شتاب برای استفاده برای استنتاج. مقادیر مجاز (کلیک برای کپی): |
video_quality | string | کیفیت ویدیوی تولید شده. مقادیر مجاز (کلیک برای کپی): |
video_write_mode | string | روش مورد استفاده برای نوشتن ویدیو. مقادیر مجاز (کلیک برای کپی): |
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-outpainting",
"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()
# Main function to generate and retrieve the video
def main():
# Generate the video
generation_data = generate_video()
if generation_data and "id" in generation_data:
generation_id = generation_data["id"]
print(f"Generation ID: {generation_id}")
# Poll for the video until it's complete
while True:
video_data = get_video(generation_id)
status = video_data.get("status")
if status == "completed":
video_url = video_data.get("video", {}).get("url")
print(f"Video URL: {video_url}")
break
elif status == "failed":
print("Video generation failed.")
break
else:
print("Video is still being generated...")
time.sleep(10) # Wait for 10 seconds before polling again
else:
print("Failed to start video generation.")
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
}
}
}