# -*- coding: utf-8 -*- """Regenerate sentence-1 shots with character (9089) + horse (9047) locked. Seedream 5.0 Pro.""" 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() CHAR = {"source_type": "media_asset", "id": 9089, "asset_type": "image", "role": "reference_image"} HORSE = {"source_type": "media_asset", "id": 9047, "asset_type": "image", "role": "reference_image"} HALBERD = {"source_type": "media_asset", "id": 9057, "asset_type": "image", "role": "reference_image"} SCENE = {"source_type": "media_asset", "id": 9048, "asset_type": "image", "role": "reference_image"} S11 = """【锁死人物与马】画面中的赤兔马必须100%按参考图2:红鬃、深枣红马身、黑色皮质马鞍+金色鞍饰+红色缨穗+完整鞍布,毛色与马具形制不得改动,不得换马。马背上的武将必须是参考图1的吕布:黑色高束发髻、双根鲜红超长翎羽、红色长披风、兽面吞金连环铠;远景中只需轮廓与配色一致,但绝不能换成别的骑手。 【镜头】好莱坞史诗大片开场大远景:贴地超广角,前景枯草与雪粒被风卷起扑向镜头;中景赤兔自画面右侧沿古道疾驰向关隘,马蹄踏碎薄雪,身后拖出被晨光逆光穿透的金色尘雾长尾;远景虎牢关关隘与雪山压天际线,冷青蓝大气透视。清晨低角度太阳在画面左上,逆光把马鬃、红披风、尘雾边缘点亮成金边,阴影冷青。电影级调色:冷青阴影+暖金高光,胶片颗粒,暗角,前虚后实深景深,16:9。无文字无水印无旗帜。""" S12 = """【锁死赤兔】画面中的马必须100%就是参考图1的赤兔:红鬃根根分明、深枣红马身、黑色皮质马鞍+金色鞍饰+红色缨穗+完整鞍布,毛色与马具形制不得改动,不得换成其他马。 【镜头】好莱坞史诗大片特写:贴地超低机位侧前仰拍,赤兔斜向冲向镜头,前蹄腾空踏碎薄雪、雪块与尘土向镜头飞溅;红鬃被低角度晨光逆光穿透、边缘燃成金红并带轻微运动模糊;鼻孔白气可见;马背上红披风一角甩入画面上缘(骑手不占主体)。背景长焦压缩虚化的雪山与关隘,冷青蓝。电影级调色:冷青阴影+暖金高光,胶片颗粒,暗角,强景深虚化,16:9。无人物正脸、无文字无水印无旗帜。""" S13 = """【锁死吕布】画面人物必须100%就是参考图1的吕布:黑色高束发髻、金色凤翅束发冠、两侧双根鲜红超长弯曲翎羽;面部与参考图1面部特写完全一致——剑眉浓黑上扬、眼窝深、眼神锐利、鼻梁高挺、下颌线清晰、年轻英武,不得成熟化/欧美化/换成其他角色;兽面吞头连环铠(双肩兽头吞甲、胸前双圆护胸铜片、黑色护腕、腰部干净高级灰皮毛裙边)、红色长披风。兵器方天画戟严格按参考图2:月牙双刃+中央枪尖+戟尾配重、红色戟缨缠绕杆身。 【镜头】超低角度仰拍英雄出场镜头:吕布位于画面右三分之一,画戟长杆自右下前景斜贯至左上、戟尖寒光;红披风被狂风卷向画面左侧占满空间、双翎向后猎猎。清晨低角度侧逆光自左后方勾出铠甲/双翎/披风金边,面部半明半暗、眼神在阴影中发亮;前景虚化雪尘;背景参考图3关隘古道虚化为冷青蓝剪影晨雾。电影级调色:冷青阴影+暖金高光,胶片颗粒,暗角,浅景深,16:9。无文字无水印无旗帜。""" def submit(key, prompt, refs): payload = { "client_namespace": "lubu_pv_board", "idempotency_key": key, "project_id": 30, "model_config_id": 62, "task_type": "image", "references": refs, "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(key, "task_id=", o.get("task", {}).get("id"), "status=", o.get("task", {}).get("status")) except urllib.error.HTTPError as e: print(key, "HTTP", e.code, e.read().decode("utf-8")[:500]) submit("lubu_s1_locked_20261026_s11", S11, [CHAR, HORSE, SCENE]) submit("lubu_s1_locked_20261026_s12", S12, [HORSE, SCENE]) submit("lubu_s1_locked_20261026_s13", S13, [CHAR, HALBERD, SCENE])