# -*- coding: utf-8 -*- import json, ssl, pathlib, urllib.request, urllib.error BASE = "https://192.168.31.88:8042" CFG = pathlib.Path(r"C:\Users\admin\.zcode\cli\config.json") pat = json.loads(CFG.read_text(encoding="utf-8-sig"))["mcp"]["servers"]["sorb"]["env"]["SORB_PAT"] ctx = ssl._create_unverified_context() PROMPT = """【锁死赤兔】画面中的马必须100%就是参考图1的赤兔:红鬃、深枣红马身、黑色皮质马鞍+金色鞍饰+红色缨穗+完整鞍布,毛色与马具形制不得改动,不得换成其他马。 【解剖与方向锁死】必须是一匹解剖结构完全正确的马:四条腿清晰、关节方向正确、蹄子数量正好四个、脖颈与躯干比例自然;奔跑姿态为标准的侧后方三分之四角度疾驰,四蹄腾空或交替着地,禁止多余的腿、扭曲的躯干、过大的头部、任何透视畸变。马头朝向画面左前方的虎牢关城门,正在向城门方向奔跑,不是冲向镜头、不是向右跑、不是横穿画面。 【镜头】贴地低机位侧后跟拍,完整马身入画(中景,不是超大特写):赤兔自画面右侧向左前方的关隘城门疾驰,马蹄踏碎薄雪,雪块与尘土向马后飞溅;红鬃与马尾被晨光逆光穿透、边缘呈金红色;马背上的红披风一角在画面上缘翻飞(骑手不占主体、不露正脸)。背景:参考图2的关隘城门位于画面左前方,古道向城门延伸,冷青蓝晨雾与远山。电影级调色:冷青阴影+暖金高光,胶片颗粒,暗角,16:9。无文字无水印无旗帜。""" payload = { "client_namespace": "lubu_pv_board", "idempotency_key": "lubu_s1_locked_20261026_s12_v2_gate", "project_id": 30, "model_config_id": 62, "task_type": "image", "references": [ {"source_type": "media_asset", "id": 9047, "asset_type": "image", "role": "reference_image"}, {"source_type": "media_asset", "id": 9048, "asset_type": "image", "role": "reference_image"}, ], "parameters": {"prompt": PROMPT, "aspect_ratio": "16:9", "image_size": "2K", "output_format": "png", "watermark": False}, } data = json.dumps(payload, ensure_ascii=False).encode("utf-8") req = urllib.request.Request(BASE + "/api/external/v1/tasks", data=data, method="POST", headers={"Authorization": "Bearer " + pat, "Content-Type": "application/json"}) try: with urllib.request.urlopen(req, context=ctx, timeout=120) as r: o = json.loads(r.read().decode("utf-8")) print("task_id=", o.get("task", {}).get("id"), "status=", o.get("task", {}).get("status")) except urllib.error.HTTPError as e: print("HTTP", e.code, e.read().decode("utf-8")[:800])