Add png_compress to the model pipeline and update TownSquare lighting plus MaleExplorer/plaza textures. Co-authored-by: Cursor <cursoragent@cursor.com>
7.2 KiB
7.2 KiB
各生成节点使用方法
文/图生图
- 默认模型:
gpt-image-2.5(≤1K,如1024x1024或比例"1:1"/"16:9") - VIP 模型:
gpt-image-2-vip(>1K 像素,如2048x2048、2048x1152) - API key:sk-b69877bd82c6412ca4872351f428d580
- 接口文档:Doc\gpt-image_doc.md
- 脚本:Tools\gpt_image_generate.py
模型选择规则(Agent / 人工均需遵守)
- 输出边长 ≤1024(含
1024x1024及比例写法):用默认gpt-image-2.5。 - 输出任一边 >1024(如
2048x2048UI 图集):必须改用 VIPgpt-image-2-vip,并传像素写法(VIP 不支持"16:9"这类比例字符串)。 - 脚本在
--aspect-ratio为WxH且任一边 >1024 时:若当前模型不是 VIP 系列,会自动升为gpt-image-2-vip;已是gpt-image-2-vip/gpt-image-2.5-flare/gpt-image-2.5-sunburst则保留。 - VIP 像素约束:边长为 16 的倍数、最大边 ≤3840、总像素约 0.64M–8.3M、长短边比 ≤3:1。
- 当前账号下
gpt-image-2.5-flare对 >1K 不可用,不要默认使用 flare。
AI / 命令行调用
# 文生图(默认 1K / gpt-image-2.5)
python Tools/gpt_image_generate.py -p "一只边牧在草地上奔跑" -o AIClient/Assets/Generated/dog.png
# 大于 1K(如 2048):用 VIP,传像素尺寸
python Tools/gpt_image_generate.py -p "UI sprite atlas" -o Tools/output/ui_atlas.png --aspect-ratio 2048x2048 --model gpt-image-2-vip
# 图生图(可多次传 --image)
python Tools/gpt_image_generate.py -p "保持构图,换成赛博朋克风格" -i ref.png -o out.png
# JSON 参数(适合 Agent / 流程编排)
python Tools/gpt_image_generate.py --json "{\"prompt\":\"城市夜景\",\"output\":\"out/city.png\"}" --result-only
python Tools/gpt_image_generate.py --json "{\"prompt\":\"UI图集\",\"output\":\"out/atlas.png\",\"aspectRatio\":\"2048x2048\",\"model\":\"gpt-image-2-vip\"}" --result-only
流程回调
--callback-url:每个进度/结果事件 POST JSON--callback-file:覆盖写入{latest, history}状态文件- 默认 stdout 输出 NDJSON 事件流,最后一行为最终结果
环境变量可选覆盖:GRSAI_API_KEY、GPT_IMAGE_API_KEY
腾讯混元3D(图生3D → GLB)
- 网站:
https://3d.hunyuan.tencent.com/ - 脚本:
Tools/hunyuan_3d_generate.py - 模块:
Tools/hunyuan_3d/(auth.py微信登录 /client.py图生自动化) - 依赖:
Tools/requirements-hunyuan.txt(playwright+ 本机 Microsoft Edge)pip install -r Tools/requirements-hunyuan.txt playwright install msedge - 会话目录:
Tools/data/hunyuan/(storage_state.json为登录凭证,已 gitignore) - 环境变量:
HUNYUAN_SESSION_DIR、HUNYUAN_BROWSER_CHANNEL(默认msedge)
能力说明
- 首期仅 图生3D → GLB。文生请先用上文「文/图生图」出图,再交给本脚本。
- 未登录、凭证失效或当前账号额度/次数用尽时,会 弹出 Edge 微信扫码页(同步阻塞,最长
--login-timeout秒);额度满时提示换号登录,成功后自动续跑。 - 面数:
--faces 50k|500k|1m(默认50k)。 - 任务中间文件在
Tools/data/hunyuan/jobs/<job_id>/;最终 GLB 写到-o。 - 生成完成后须在
Doc/ResDesc_Model.md登记资源(索引见Doc/ResDesc.md)。
AI / 命令行调用
# 查看登录状态
python Tools/hunyuan_3d_generate.py --status
# 预登录(弹出微信扫码)
python Tools/hunyuan_3d_generate.py --login
# 强制换号登录(忽略本地凭证 / 额度满换号)
python Tools/hunyuan_3d_generate.py --login --force-login
# 图生3D(未登录或额度满则中途自动弹登录页)
python Tools/hunyuan_3d_generate.py -i ref.png -o Tools/output/prop.glb --faces 50k
# JSON / Agent
python Tools/hunyuan_3d_generate.py --json "{\"image\":\"ref.png\",\"output\":\"out/a.glb\",\"faces\":\"50k\"}" --result-only
# CI:禁止弹窗,未登录直接失败
python Tools/hunyuan_3d_generate.py -i ref.png -o out.glb --no-interactive-login
流程回调 / 事件
--callback-url/--callback-file/ NDJSON 与文生图脚本同模式- 典型事件:
login_required→login_waiting→login_ok→stage→succeeded/failed login_required.reason:auth(未登录/失效)或quota(额度满需换号)
高模减面与贴图烘焙
- 来源:复刻
ClientTrunk/Tools/ModelTools(model_decimate+model_bake) - 目录:
Tools/model_tools/(说明见Tools/model_tools/README.md) - 依赖:本机 Blender(推荐 5.0);可选 Pillow(UV 观察图);可选 UVPackmaster 4
- 默认路径:
D:\tools\Blender\blender-5.0.0-windows-x64\blender.exe(可用BLENDER_EXE/BLENDER_PATH/--blender覆盖)
流程
高模(FBX / GLB / glTF)
-> 减面 + 重展 UV -> <名>_low.fbx
-> Cycles selected-to-active 烘焙
-> 五通道 PNG + 低模 FBX
-> model_translator(默认)-> XPbr 两张图 + .mat/.meta
<名>_base.png RGB=Albedo A=AO/透明
<名>_mix.png RG=球面法线 B=Metallic A=Roughness
写出 PNG 时无损压缩(Blender compression=100 + zlib 9 / Pillow optimize)
AI / 命令行调用
# 一键:减面 + 烘焙 + XPbr 打包(默认)
python Tools/model_tools/model_lowpoly_bake.py Tools/output/prop.glb -o Tools/output/prop_game --tris 5000 --size 2048
# 仅五通道、跳过 XPbr
python Tools/model_tools/model_lowpoly_bake.py prop.glb -o Tools/output/prop_game --no-xpbr
# 单独 XPbr 转换(输入为烘焙后的 FBX 目录旁贴图)
python Tools/model_tools/model_translator.py Tools/output/prop_game/prop/prop.fbx -o Tools/output/prop_xpbr
与混元衔接:
python Tools/hunyuan_3d_generate.py -i ref.png -o Tools/output/{actor}_3d/{actor}.glb --faces 50k
python Tools/model_tools/model_lowpoly_bake.py Tools/output/{actor}_3d/{actor}.glb -o Tools/output/{actor}_game --tris 5000 --size 2048
python Tools/install_character_bundles.py -a {ActorName} -b Tools/output/{actor}_game/{actor}_xpbr -c ref.png
# Unity: AIGame/M3/Setup Character Prefab + Art Collector(挂 Test/XPbr 生成预设)
与 AIC#Project ModelTranslator 对比(减面/烘焙)
- 更优(AIC#):默认 Quad Remesher 四边拓扑、更深 seam 扫描;本仓库未捆绑 QR 引擎。
- 已对齐:自适应烘焙射线、UV 最大单岛门限、XPbr base/mix 打包与
Test/XPbr材质。 - 本仓库优势:高模直接吃 GLB/glTF(混元产物),一键流水线含 XPbr。
游戏目录:AIClient/Assets/Bundles/Characters/{ActorName}/;高模中间件留在 Tools/output/。完成后登记 Doc/ResDesc_Model.md。
UI 自动生成(JSON → Prefab)
总览:Doc/UI_AutoGen_Overview.md
需求 → 写 Doc/UIPrefabCreater/{UI}.json
→ Unity Tools/UI 或获焦自动转换
→ Assets/Bundles/UI/Prefab/{UI}.prefab
→ HotUpdate C# 接管
- 契约提示词:
Doc/Rule/UIGenerationPrompt.md - 切图规范:
Doc/UI_Normal_Set.md/Doc/UI_Pic_Set.md - 风格:
Doc/Design/UI_Design_Principles.md - 缺切图时用上文「文/图生图」,>1K 用
gpt-image-2-vip;导入Assets/Bundles/UI/Texture/Common - 完成后登记
Doc/ResDesc_Picture.md