# -*- 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 = """【锁死吕布与赤兔】吕布按参考图1:黑高束发、金色凤翅冠、双红翎、兽面吞金甲、红披风;赤兔按参考图2:红鬃、深枣红马身、金色鞍饰与完整鞍布。参考图只锁造型,构图原创。 【方向】吕布从右向左前方策马冲锋,城门在右后远处;左侧远方有一片玄色士兵剪影与长戟林立的军阵,军阵只在远景,不拍具体面孔。赤兔完整马身、四腿数量正确、关节自然,禁止畸变。 【镜头】大远景低机位:吕布单骑自画面右侧向左侧军阵疾驰,画戟前指,赤兔四蹄交替、雪尘拖出长尾;左侧远处军阵与长戟如林,右侧远处城门在后,清晨低角度侧逆光,冷青阴影+暖金高光,画面通透无死黑,浅景深、胶片颗粒、边缘暗角,16:9,无文字无水印无旗帜。""" payload = {"client_namespace":"lubu_pv_board","idempotency_key":"lubu_s3_charge_20261027_v2","project_id":30,"model_config_id":62,"task_type":"image","references":[{"source_type":"media_asset","id":9089,"asset_type":"image","role":"reference_image"},{"source_type":"media_asset","id":9047,"asset_type":"image","role":"reference_image"},{"source_type":"media_asset","id":9051,"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")[:700])