Ignore AIClient/Library and AIClient/HybridCLRData permanently; include HybridCLR/YooAsset project setup and UI tooling. Co-authored-by: Cursor <cursoragent@cursor.com>
126 lines
5.9 KiB
Markdown
126 lines
5.9 KiB
Markdown
# 各生成节点使用方法
|
||
|
||
## 文/图生图
|
||
- 默认模型:`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 / 人工均需遵守)
|
||
1. 输出边长 **≤1024**(含 `1024x1024` 及比例写法):用默认 `gpt-image-2.5`。
|
||
2. 输出任一边 **>1024**(如 `2048x2048` UI 图集):**必须**改用 VIP `gpt-image-2-vip`,并传像素写法(VIP **不支持** `"16:9"` 这类比例字符串)。
|
||
3. 脚本在 `--aspect-ratio` 为 `WxH` 且任一边 >1024 时:若当前模型不是 VIP 系列,会自动升为 `gpt-image-2-vip`;已是 `gpt-image-2-vip` / `gpt-image-2.5-flare` / `gpt-image-2.5-sunburst` 则保留。
|
||
4. VIP 像素约束:边长为 16 的倍数、最大边 ≤3840、总像素约 0.64M–8.3M、长短边比 ≤3:1。
|
||
5. 当前账号下 `gpt-image-2.5-flare` 对 >1K 不可用,**不要默认使用 flare**。
|
||
|
||
### AI / 命令行调用
|
||
```bash
|
||
# 文生图(默认 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)
|
||
```bash
|
||
pip install -r Tools/requirements-hunyuan.txt
|
||
playwright install msedge
|
||
```
|
||
- 会话目录:`Tools/data/hunyuan/`(`storage_state.json` 为登录凭证,已 gitignore)
|
||
- 环境变量:`HUNYUAN_SESSION_DIR`、`HUNYUAN_BROWSER_CHANNEL`(默认 `msedge`)
|
||
|
||
### 能力说明
|
||
1. 首期仅 **图生3D → GLB**。文生请先用上文「文/图生图」出图,再交给本脚本。
|
||
2. 未登录或凭证失效时,会 **弹出 Edge 微信扫码**(同步阻塞,最长 `--login-timeout` 秒),成功后自动续跑。
|
||
3. 面数:`--faces 50k|500k|1m`(默认 `50k`)。
|
||
4. 任务中间文件在 `Tools/data/hunyuan/jobs/<job_id>/`;最终 GLB 写到 `-o`。
|
||
5. 生成完成后须在 `Doc/ResDesc_Model.md` 登记资源(索引见 `Doc/ResDesc.md`)。
|
||
|
||
### AI / 命令行调用
|
||
```bash
|
||
# 查看登录状态
|
||
python Tools/hunyuan_3d_generate.py --status
|
||
|
||
# 预登录(弹出微信扫码)
|
||
python Tools/hunyuan_3d_generate.py --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`
|
||
|
||
## 高模减面与贴图烘焙
|
||
- 来源:复刻 `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` 覆盖)
|
||
|
||
### 流程
|
||
```text
|
||
高模(FBX / GLB / glTF)
|
||
-> 减面 + 重展 UV -> <名>_low.fbx
|
||
-> Cycles selected-to-active 烘焙
|
||
-> 低模 FBX + color / normal / ao / metallic / roughness PNG
|
||
```
|
||
|
||
### AI / 命令行调用
|
||
```bash
|
||
# 一键(推荐):减面 + 烘焙
|
||
python Tools/model_tools/model_lowpoly_bake.py Tools/output/prop.glb -o Tools/output/prop_game --tris 5000 --size 2048
|
||
|
||
# 分步
|
||
python Tools/model_tools/model_decimate.py prop.glb --tris 5000 -o Tools/output/prop_low
|
||
python Tools/model_tools/model_bake.py prop.glb Tools/output/prop_low/prop_low.fbx -o Tools/output/prop_bake --size 2048
|
||
|
||
# JSON / Agent
|
||
python Tools/model_tools/model_lowpoly_bake.py --json "{\"high\":\"prop.glb\",\"out\":\"Tools/output/prop_game\",\"tris\":5000,\"size\":2048}" --result-only
|
||
```
|
||
|
||
与混元衔接:先 `hunyuan_3d_generate.py` 出高模 GLB,再对本脚本做低模烘焙;完成后登记 `Doc/ResDesc_Model.md`。
|
||
|
||
## UI 自动生成(JSON → Prefab)
|
||
|
||
总览:`Doc/UI_AutoGen_Overview.md`
|
||
|
||
```text
|
||
需求 → 写 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`
|