Spaces:
Runtime error
Runtime error
File size: 5,805 Bytes
1efaa80 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
import requests
import json
import argparse
import uuid
def create_video_reference(jwt_token, prompt_text, image_id, enhance, x, y, model):
url = "https://api.vidu.studio/vidu/v1/tasks"
headers = {
"Connection": "keep-alive",
"sec-ch-ua": '"Chromium";v="128", "Not;A=Brand";v="24", "Google Chrome";v="128"',
"Accept-Language": "en",
"sec-ch-ua-mobile": "?0",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/128.0.0.0 Safari/537.36",
"content-type": "application/json",
"X-Request-Id": str(uuid.uuid4()),
"sec-ch-ua-platform": '"Windows"',
"Accept": "*/*",
"Origin": "https://www.vidu.studio",
"Sec-Fetch-Site": "same-site",
"Sec-Fetch-Mode": "cors",
"Sec-Fetch-Dest": "empty",
"Referer": "https://www.vidu.studio/",
"Cookie": f"sajssdk_2015_cross_new_user=1; _ga=GA1.1.77204265.1725572952; amp_af43d4=61603120ab0445398cd1cb92fd88aef0...1i727srs7.1i727ujms.6.1.7; JWT={jwt_token}; Shunt=; sensorsdata2015jssdkcross=dfm-enc-%7B%22Va28a6y8_aV%22%3A%22sSEGIEItsRRRsHGE%22%2C%22gae28_aV%22%3A%22EGEySsGigsIHGA-AsSSHnIgEEySVVs-snAAEEHE-EsGnAAA-EGEySsGigsSisH%22%2C%22OemO2%22%3A%7B%22%24ki8r28_8eiggay_2mbeyr_8cOr%22%3A%22%E7%9B%B4%E6%8E%A5%E6%B5%81%E9%87%8F%22%2C%22%24ki8r28_2rieyz_lrcMmeV%22%3A%22%E6%9C%AA%E5%8F%96%E5%88%B0%E5%80%BC_%E7%9B%B4%E6%8E%A5%E6%89%93%E5%BC%80%22%2C%22%24ki8r28_ergreere%22%3A%22%22%7D%2C%22aVr68a8ar2%22%3A%22rc3liZ7ku67OV5kgPsGCiskkDskl3qmawFlJPhNcpZTowqwEpF08wX3AQXKswsPJwZwAW9NcBF3swX0JwFKJBF1cpFPMwX08wFlJPhNcpZTowq7zwqKaBv3liZ7ku67OV5kgu9G6iZHgiZNapa3cQX1Hwh1hpX3IQhycQFlJ36A%3D%22%2C%22za28mec_kmfa6_aV%22%3A%7B%226ior%22%3A%22%24aVr68a8c_kmfa6_aV%22%2C%22Cikbr%22%3A%22sSEGIEItsRRRsHGE%22%7D%7D; _ga_ZJBV7VYP55=GS1.1.1725576214.2.1.1725578996.0.0.0",
"Accept-Encoding": "gzip, deflate"
}
payload = {
"input": {
"prompts": [
{
"type": "text",
"content": (f"{prompt_text}")
},
{
"type": "image",
"content": f"ssupload:?id={image_id}",
"src_img": f"ssupload:?id={image_id}",
"selected_region": {
"top_left": {"x": 0, "y": 0},
"bottom_right": {"x": x, "y": y}
}
}
],
"enhance": enhance
},
"type": "character2video",
"settings": {
"duration": 4,
"model": f"{model}"
}
}
data = json.dumps(payload)
response = requests.post(url, headers=headers, data=data)
response_json = response.json()
task_id = response_json.get('id', 'ID no encontrado')
return task_id
def read_file_info(file_path):
try:
with open(file_path, "r") as file:
lines = file.readlines()
if len(lines) >= 1:
file_id = lines[0].strip().split(': ')[1]
return file_id
else:
print("File does not contain enough lines.")
except FileNotFoundError:
print(f"File not found: {file_path}")
except IOError as e:
print(f"Error reading file: {e}")
def read_jwt_token(file_path):
try:
with open(file_path, "r") as file:
token = file.readline().strip()
return token
except FileNotFoundError:
print(f"File not found: {file_path}")
except IOError as e:
print(f"Error reading file: {e}")
def read_coordinates(file_path):
try:
with open(file_path, "r") as file:
lines = file.readlines()
x = y = 512 # Default values
for line in lines:
if line.startswith("X: "):
x = int(line.strip().split(": ")[1])
elif line.startswith("Y: "):
y = int(line.strip().split(": ")[1])
return x, y
except FileNotFoundError:
print(f"File not found: {file_path}")
except IOError as e:
print(f"Error reading file: {e}")
def save_task_id(file_path, task_id):
try:
with open(file_path, "w") as file:
file.write(f"task_id: {task_id}")
except IOError as e:
print(f"Error writing file: {e}")
def main():
parser = argparse.ArgumentParser(description='Script para crear una tarea con un prompt dado.')
parser.add_argument('--prompt', type=str, required=True, help='Prompt a utilizar')
parser.add_argument('--enhance', type=bool, default=True, help='Habilitar mejora (True o False)')
parser.add_argument('--model', type=str, required=True, help='vidu-1')
args = parser.parse_args()
file_info_path = "/tmp/file_info.txt" # Ruta al archivo que contiene file_id
jwt_token_path = "/tmp/jwt_token.txt" # Ruta al archivo que contiene el jwt_token
task_id_path = "/tmp/task_id.txt" # Ruta al archivo donde se guardará el task_id
coordinates_path = "/tmp/coordinates.txt" # Ruta al archivo que contiene las coordenadas
file_id = read_file_info(file_info_path)
jwt_token = read_jwt_token(jwt_token_path)
x, y = read_coordinates(coordinates_path)
if file_id and jwt_token:
try:
task_id = create_video_reference(jwt_token, args.prompt, file_id, enhance=args.enhance, x=x, y=y, model=args.model)
#print(f"El ID de la tarea es: {task_id}")
save_task_id(task_id_path, task_id)
except Exception as e:
print(e)
if __name__ == "__main__":
main()
|