Video Modelsalibaba-cloud
معرفی و مستندات مدل هوش مصنوعی wan-2.1-plus-text-to-video
مستندات مدل تولید ویدیو از متن wan-2.1-plus-text-to-video از alibaba-cloud، ارائه شده توسط ای آی کار (AI-KAR).
معرفی و بررسی فنی
⚡ وضعیت پشتیبانی از زبان فارسی
این مدل از زبان فارسی به صورت متوسط پشتیبانی میکند. درک مفاهیم پیچیده و ظریف فارسی ممکن است با چالش مواجه شود.
مدل wan-2.1-plus-text-to-video یک مدل تبدیل متن به ویدیو (T2V) است که توسط Alibaba Cloud توسعه داده شده است. این مدل قادر است ویدیوهای صامت با کیفیت 720p و نرخ فریم تقریبی 30 فریم بر ثانیه تولید کند. این مدل با دریافت یک توضیح متنی، صحنه، موضوع یا عملی را که باید در ویدیو تولید شود، درک کرده و ویدیویی مطابق با آن تولید میکند. کاربران میتوانند با استفاده از این مدل، ایدهها و تصورات خود را به ویدیوهای کوتاه تبدیل کنند. این مدل میتواند در زمینههای مختلفی مانند تولید محتوای تبلیغاتی، آموزشی، هنری و سرگرمی مورد استفاده قرار گیرد. به عنوان مثال، میتوان از آن برای ساخت ویدیوهای کوتاه تبلیغاتی برای محصولات، ویدیوهای آموزشی برای توضیح مفاهیم پیچیده، ویدیوهای هنری برای بیان ایدههای خلاقانه و ویدیوهای سرگرمکننده برای شبکههای اجتماعی استفاده کرد. یکی از ویژگیهای مهم این مدل، امکان تعیین جنبههای مختلف ویدیو مانند رزولوشن و نسبت تصویر است. کاربران میتوانند رزولوشن ویدیو را بر اساس نیاز خود تنظیم کنند. همچنین، امکان تعیین نسبت تصویر ویدیو نیز وجود دارد که به کاربران اجازه میدهد ویدیوهایی با نسبتهای مختلف مانند 16:9، 9:16، 1:1، 4:3 و 3:4 تولید کنند. علاوه بر این، کاربران میتوانند با استفاده از پارامتر `negative_prompt`، عناصری را که میخواهند در ویدیو از آنها اجتناب شود، مشخص کنند. این ویژگی به کاربران کمک میکند تا کنترل بیشتری بر روی محتوای تولید شده داشته باشند و ویدیوهایی دقیقتر و مطابق با نیاز خود تولید کنند. همچنین، پارامتر `seed` به کاربران امکان میدهد تا با تغییر مقدار آن، نتایج متفاوتی برای یک درخواست یکسان دریافت کنند. استفاده از یک مقدار یکسان برای یک درخواست یکسان، نتایج مشابهی را تولید میکند. اگر این پارامتر مشخص نشود، یک عدد تصادفی انتخاب میشود. پارامتر `enable_prompt_expansion` نیز به کاربران امکان میدهد تا با فعال کردن آن، از گسترش متن ورودی استفاده کنند. این ویژگی به مدل کمک میکند تا متن ورودی را بهتر درک کند و ویدیوهایی با کیفیتتر تولید کند. این مدل از طریق API قابل دسترسی است و کاربران میتوانند با استفاده از کلید API خود، به آن دسترسی پیدا کنند. برای استفاده از این مدل، ابتدا باید یک کلید API دریافت کنید. سپس، میتوانید با ارسال درخواستهای HTTP به API، ویدیوهای مورد نظر خود را تولید کنید.
مشخصات فنی (API References)
| پارامتر | نوع | توضیحات و مقادیر |
|---|---|---|
model | stringRequired | مدلی که برای تولید ویدیو استفاده میشود. مقادیر مجاز (کلیک برای کپی): |
prompt | stringRequired | توضیح متنی صحنه، موضوع یا عملی که باید در ویدیو تولید شود. |
resolution | string | یک شمارش که در آن ضلع کوتاه فریم ویدیو، رزولوشن را تعیین میکند. مقدار پیشفرض 720P است. مقادیر مجاز (کلیک برای کپی): |
aspect_ratio | string | نسبت تصویر ویدیوی تولید شده. مقدار پیشفرض 16:9 است. مقادیر مجاز (کلیک برای کپی): |
negative_prompt | string | توضیح عناصری که باید در ویدیوی تولید شده از آنها اجتناب شود. |
watermark | boolean | مشخص میکند که آیا ویدیو حاوی واترمارک باشد یا خیر. مقدار پیشفرض false است. |
seed | integer | تغییر عدد seed راهی برای دریافت نتایج مختلف برای سایر پارامترهای درخواست یکسان است. استفاده از مقدار یکسان برای یک درخواست یکسان، نتایج مشابهی را تولید میکند. اگر مشخص نشود، یک عدد تصادفی انتخاب میشود. |
enable_prompt_expansion | boolean | مشخص میکند که آیا گسترش متن ورودی فعال شود یا خیر. مقدار پیشفرض true است. |
نمونه کدهای درخواست
نکته مهم برای توسعهدهندگان:
برای احراز هویت، حتما کلید API خود را جایگزین YOUR_API_KEY کنید. هدر Authorization الزامی است.
import requests
import time
# Insert your AI-KAR API Key instead of <YOUR_AI-KARAPI_KEY>:
AI-KARapi_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}/generate/video/alibaba/generation"
headers = {
"Authorization": f"Bearer {AI-KARapi_key}",
}
data = {
"model": "alibaba/wan2.1-t2v-plus",
"prompt": '''
A menacing evil dragon appears in a distance above the tallest mountain, then rushes toward the camera with its jaws open, revealing massive fangs. We see it's coming.
'''
}
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()
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}/generate/video/alibaba/generation"
params = {
"generation_id": gen_id,
}
headers = {
"Authorization": f"Bearer {AI-KARapi_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 = 1000
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
}
}
}