# -*- coding: utf-8 -*- """Sentence-6: 连环计/怒斩董卓/下邳雨夜 4 镜; Sentence-7: 阵前宣言 4 镜.""" 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"} HALBERD = {"source_type": "media_asset", "id": 9057, "asset_type": "image", "role": "reference_image"} FENGTING = {"source_type": "media_asset", "id": 9052, "asset_type": "image", "role": "reference_image"} DONGZHUO = {"source_type": "media_asset", "id": 9049, "asset_type": "image", "role": "reference_image"} XIAPI = {"source_type": "media_asset", "id": 9056, "asset_type": "image", "role": "reference_image"} DIAOCHAN = {"source_type": "media_asset", "id": 2571, "asset_type": "image", "role": "reference_image"} GUANDAO = {"source_type": "media_asset", "id": 9050, "asset_type": "image", "role": "reference_image"} NIGHT = "3D超写实三国历史正剧CG,UE5.2全局光线追踪,3D动画CG质感非真人实拍,夜帐烛火暖光为主光源、冷蓝月光为辅,暗红氛围,画面通透无死黑,浅景深、胶片颗粒、边缘暗角,16:9,无文字无水印无旗帜。" RAIN = "3D超写实三国历史正剧CG,UE5.2全局光线追踪,3D动画CG质感非真人实拍,雨夜冷青灰主调+远处残红火光,画面通透无死黑,浅景深、胶片颗粒、边缘暗角,16:9,无文字无水印无旗帜。" DAY = "3D超写实三国历史正剧CG,UE5.2全局光线追踪,3D动画CG质感非真人实拍,日间硬光,冷青阴影+暖金高光,画面通透无死黑,浅景深、胶片颗粒、边缘暗角,16:9,无文字无水印无旗帜。" # ---- 句6 ---- # S6-1 中景长镜:夜帐烛火,貂蝉背影红袖轻抬,吕布按戟立于阴影 S6_1 = """【锁死吕布】吕布按参考图1:黑高束发、金色凤翅冠、双红翎、兽面吞金甲、红披风;方天画戟按参考图2。参考图只锁造型,构图全新。 【画面】凤仪亭夜帐中景长镜:帷幕层叠,烛火摇曳;画面左侧貂蝉仅给背影——红袖轻抬、身姿婉约(造型气质参考图3,不露正脸);画面右侧阴影中吕布按戟而立,半张脸沉在暗处,目光落在烛火与背影之间,眼神复杂克制;两人之间隔着烛案与摇曳的光影。缓推镜头。""" + NIGHT # S6-2 特写:戟影掠过画面,烛火骤灭(遮蔽转场,不拍血) S6_2 = """【锁死兵器】方天画戟按参考图1:月牙双刃+中央枪尖+戟尾配重、红色戟缨。参考图只锁兵器形制,构图全新。 【画面】董卓营帐内微距特写:一缕戟刃寒光自画面右下快速掠过,只留残影;桌案上烛台的烛火被戟风扫灭,青烟一缕升起,火光骤然熄灭瞬间画面沉入半黑,仅余青烟与帐幔轮廓。不拍任何人、不拍血、只拍戟影与烛灭。急促一瞬。""" + NIGHT # S6-3 大远景:雨夜画戟倒插泥水,红翎被雨打落,远处赤兔嘶鸣剪影 S6_3 = """【锁死兵器】方天画戟按参考图1:月牙双刃+中央枪尖+戟尾配重、红色戟缨。参考图只锁兵器形制,构图全新。 【画面】下邳雨夜大远景:雨丝如帘,画戟倒插在前景泥水中,戟上红翎被雨水打落、垂贴戟杆;中景城墙压顶、城门洞深黑,远处一匹马的剪影(红鬃深枣红马身按参考图2气质,只见轮廓)昂首立于雨幕中;闪电偶尔照亮城墙轮廓。缓慢拉远,宏大、绝望、收束。""" + RAIN # S6-4 特写:泥水中红翎漂浮,涟漪散开 S6_4 = """【画面】俯拍固定微距特写:雨夜泥水洼中,一支鲜红色长翎羽漂浮在水面上,雨滴落下,涟漪一圈圈散开,红翎随水波轻晃;倒映的水面上是模糊的城墙与冷青夜空,一点远处火光的残红倒影。极静,只有雨。""" + RAIN # ---- 句7 ---- # S7-1 中景:吕布戟指联军,张口怒吼(现场声) S7_1 = """【锁死吕布】吕布按参考图1:黑高束发、金色凤翅冠、双红翎、兽面吞金甲、红披风、腰部干净高级灰皮毛裙边;方天画戟按参考图2。参考图只锁造型,构图全新。 【画面】关前战场中景:吕布立马阵前,画戟长臂前伸直指画面左侧的联军军阵,张口怒吼、青筋隐现、双翎怒张,红披风被风横甩;背景左侧军阵玄色无字旗与兵戈如林虚化。低角度略仰拍,固定机位轻微震感。""" + DAY # S7-2 远景正反打:联军军阵齐齐后退半步、旗幡摇动 S7_2 = """【画面】远景正反打(从吕布阵营方向望向联军):联军军阵大特写到中远景,前排玄色盾墙与长戟如林,整排士兵与旗幡在怒吼声中齐齐后退半步,旗幡剧烈摇动、烟尘从阵脚腾起;不拍任何具体面部,只见密集军阵的群体反应与压迫感。手持轻微晃动感。""" + DAY # S7-3 面部特写:眼神锁定,红披风被风卷过前景 S7_3 = """【锁死吕布】吕布面部按参考图1:剑眉浓黑上扬、眼窝深、眼神锐利、鼻梁高挺、下颌线清晰,黑高束发与金色凤翅冠、双红翎入画。参考图只锁造型,构图全新。 【画面】面部特写极缓推:吕布怒吼之后眼神锁定、眼神凛冽如寒星,下颌绷紧;一缕红披风被狂风卷起掠过前景、虚化为红色流光;眼中映出远处军阵的虚像。皮肤与铠甲为细腻CG材质质感,眨眼+呼吸。""" + DAY # S7-4 大远景:单骑对万军,孤影压住整幅画面 S7_4 = """【锁死吕布与赤兔】吕布按参考图1:黑高束发、金色凤翅冠、双红翎、兽面吞金甲、红披风,画戟按参考图2;赤兔按参考图3:红鬃、深枣红马身、金色鞍饰与完整鞍布,完整马身、四腿正确。参考图只锁造型,构图全新。 【画面】高机位大远景:吕布单骑立马于画面下方中央,孤影压住整幅构图;他面前是从画面中部一直铺到地平线的万军军阵——玄色无字旗海与兵戈如林,烟尘弥漫;孤影与万军的体量对比极致悬殊,红披风是全画面唯一一点红。高机位缓拉。""" + DAY 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_s6_fengting_20261028_v1", S6_1, [CHAR, HALBERD, FENGTING, DIAOCHAN]) submit("lubu_s6_candlekill_20261028_v1", S6_2, [HALBERD, DONGZHUO]) submit("lubu_s6_rainhalberd_20261028_v1", S6_3, [HALBERD, XIAPI, {"source_type": "media_asset", "id": 9047, "asset_type": "image", "role": "reference_image"}]) submit("lubu_s6_redplume_20261028_v1", S6_4, [XIAPI]) submit("lubu_s7_roar_20261028_v1", S7_1, [CHAR, HALBERD, GUANDAO]) submit("lubu_s7_army_20261028_v1", S7_2, [GUANDAO]) submit("lubu_s7_eyes_20261028_v1", S7_3, [CHAR]) submit("lubu_s7_lonevsmass_20261028_v1", S7_4, [CHAR, HALBERD, {"source_type": "media_asset", "id": 9047, "asset_type": "image", "role": "reference_image"}, GUANDAO])