尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

如何从零训练自己的Pixal3D?三阶段渐进分辨率微调完整教程(含finetune_ckpt链配置)

如何从零训练自己的Pixal3D?三阶段渐进分辨率微调完整教程(含finetune_ckpt链配置) 如何从零训练自己的Pixal3D三阶段渐进分辨率微调完整教程含finetune_ckpt链配置【免费下载链接】Pixal3D[SIGGRAPH 2026] Pixal3D: Pixel-Aligned 3D Generation from Images项目地址: https://gitcode.com/gh_mirrors/pi/Pixal3DPixal3D 是 SIGGRAPH 2026 的单图生成 3D 模型项目官方开源了完整训练代码与数据工具包。本文带你从零开始用三阶段渐进分辨率微调32→64、256→512→1024训出属于你自己的 Pixal3D 生成器并重点讲解最容易踩坑的finetune_ckpt检查点链配置。Pixal3D 三阶段训练流程总览Pixal3D 不是一把梭训练一个大模型而是像搭积木一样逐级提升分辨率每个阶段都用像素对齐投影条件pixel-aligned projection视角对齐潜变量默认 2 个视角阶段模型分辨率链配置前缀阶段 1稀疏结构Sparse Structure32 → 64ss_flow_img_dit_*_proj_finetune阶段 2形状Shape256 → 512 → 1024slat_flow_img2shape_*_proj_finetune阶段 3纹理Texture256 → 512 → 1024slat_flow_imgshape2tex_*_proj_finetune 核心规则每一步升分辨率前都要把上一阶段的 checkpoint 路径填进新配置的finetune_ckpt字段。这条链断掉高分辨率训练就会退化成冷启动效果大打折扣。所有配置都在 configs/gen/ 目录例如 ss_flow_img_dit_1_3B_32_bf16_proj_finetune.json。训练环境与数据集准备先跑通 data_toolkit1️⃣ 克隆仓库并安装依赖git clone https://gitcode.com/gh_mirrors/pi/Pixal3D cd Pixal3D pip install -r requirements.txt # 按你的 CUDA 架构编译 natten NATTEN_CUDA_ARCH9.0 NATTEN_N_WORKERS8 pip install natten0.21.0 --no-build-isolation 建议先按 TRELLIS.2 的指南搭好基础环境再安装 Pixal3D 的额外依赖。2️⃣ 准备视角对齐的 O-Voxel 数据详细文档见 data_toolkit/README.md核心步骤 4 步走# 初始化环境 . ./data_toolkit/setup.sh # 元数据 → 下载资产 → 导出 Mesh/PBR → 渲染条件图 python data_toolkit/build_metadata.py ObjaverseXL --source sketchfab --root datasets/ObjaverseXL_sketchfab python data_toolkit/download.py ObjaverseXL --root datasets/ObjaverseXL_sketchfab python data_toolkit/dump_mesh.py ObjaverseXL --root datasets/ObjaverseXL_sketchfab python data_toolkit/dump_pbr.py ObjaverseXL --root datasets/ObjaverseXL_sketchfab # 渲染多视角条件图默认 2 个视角 python data_toolkit/render_cond.py ObjaverseXL --root datasets/ObjaverseXL_sketchfab下面这张就是渲染出的室内场景条件图训练时模型会学习看图对齐 3D3️⃣ 编码视角对齐潜变量# 形状 / PBR 潜变量256、512、1024 各跑一轮 python data_toolkit/encode_shape_latent_view.py --root datasets/ObjaverseXL_sketchfab --resolution 512 --view_indices 0-1 python data_toolkit/encode_pbr_latent_view.py --root datasets/ObjaverseXL_sketchfab --resolution 512 --view_indices 0-1 python data_toolkit/build_metadata.py ObjaverseXL --root datasets/ObjaverseXL_sketchfab # 稀疏结构潜变量阶段 1 专用 python data_toolkit/encode_ss_latent_view.py --root datasets/ObjaverseXL_sketchfab \ --shape_latent_name shape_enc_next_dc_f16c32_fp16_1024_view --resolution 64 --view_indices 0-1训练入口解析train.py 的三大关键参数统一入口是 train.py每次训练只认 3 个参数python train.py \ --config CONFIG_JSON \ --output_dir OUTPUT_DIR \ --data_dir DATA_DIR_JSON参数作用说明--config模型/训练器配置不同分辨率用不同的 JSON--output_dir输出目录checkpoint 存于其下ckpts/子目录--data_dir数据集布局 JSON 字符串不同阶段必填的 key 不同--data_dir各阶段必填 key 对照阶段必填 key稀疏结构base、ss_latent、render_cond形状base、shape_latent、render_cond纹理base、shape_latent、pbr_latent、render_cond✅ 小技巧第一次运行加--tryrun做干跑可以快速验证数据路径和模型能否构建成功不浪费 GPU 时间。finetune_ckpt 链配置详解高分辨率微调的关键打开任意升档配置比如 ss_flow_img_dit_1_3B_32_bf16_proj_finetune_ft64.json在trainer.args中会看到这样的字段finetune_ckpt: { denoiser: path_to_ss_flow_32_checkpoint }这就是链的接点使用规则如下每个阶段的第一个分辨率32 / 256 / 256的配置里没有finetune_ckpt属于冷启动升档配置必须替换占位符把path_to_xxx_checkpoint改成上一步--output_dir/ckpts/下的实际 checkpoint 文件路径完整的 8 步训练链对应 8 个配置文件5 个升档文件都内置了finetune_ckpt占位符升档配置需要填入的 ckptSS 32→64ss_flow_img_dit_1_3B_32_bf16_proj_finetune_ft64.json阶段 1 步 1 的产物形状 256→512slat_flow_img2shape_dit_1_3B_256_bf16_proj_finetune_ft512.jsonresults/shape_256的 ckpt形状 512→1024slat_flow_img2shape_dit_1_3B_512_bf16_proj_finetune_ft1024.jsonresults/shape_ft512的 ckpt纹理 256→512slat_flow_imgshape2tex_dit_1_3B_512_bf16_proj_finetune.jsonresults/tex_256的 ckpt纹理 512→1024slat_flow_imgshape2tex_dit_1_3B_512_bf16_proj_finetune_ft1024.jsonresults/tex_512的 ckpt⚠️ 注意区分两个概念finetune_ckpt是跨分辨率热启动只加载权重、不带优化器状态而同步中断后想断点续训靠的是--load_dir--ckpt latest默认值它会自动找ckpts/misc_*.pt里 step 最大的存档。阶段 1训练稀疏结构模型32→64以 ObjaverseXL 为例输入是一张简单的单图资产模型要学会先打草稿# 分辨率 32冷启动 python train.py \ --config configs/gen/ss_flow_img_dit_1_3B_32_bf16_proj_finetune.json \ --output_dir results/ss_32 \ --data_dir {ObjaverseXL_sketchfab: {base: datasets/ObjaverseXL_sketchfab, ss_latent: datasets/ObjaverseXL_sketchfab/ss_latents/ss_enc_conv3d_16l8_fp16_64_view, render_cond: datasets/ObjaverseXL_sketchfab/renders_cond}} # 分辨率 64先把 32 的 ckpt 填进 ft64 配置的 finetune_ckpt再运行 python train.py \ --config configs/gen/ss_flow_img_dit_1_3B_32_bf16_proj_finetune_ft64.json \ --output_dir results/ss_ft64 \ --data_dir {同上}阶段 2训练形状模型256→512→1024# 256冷启动注意 shape_latent 指向 256 目录 python train.py \ --config configs/gen/slat_flow_img2shape_dit_1_3B_256_bf16_proj_finetune.json \ --output_dir results/shape_256 \ --data_dir {ObjaverseXL_sketchfab: {base: datasets/ObjaverseXL_sketchfab, shape_latent: datasets/ObjaverseXL_sketchfab/shape_latents/shape_enc_next_dc_f16c32_fp16_256_view, render_cond: datasets/ObjaverseXL_sketchfab/renders_cond}} # 512finetune_ckpt ← results/shape_256 的 ckpt python train.py \ --config configs/gen/slat_flow_img2shape_dit_1_3B_256_bf16_proj_finetune_ft512.json \ --output_dir results/shape_ft512 \ --data_dir {... shape_latent 换成 _512_view 目录} # 1024finetune_ckpt ← results/shape_ft512 的 ckpt python train.py \ --config configs/gen/slat_flow_img2shape_dit_1_3B_512_bf16_proj_finetune_ft1024.json \ --output_dir results/shape_ft1024 \ --data_dir {... shape_latent 换成 _1024_view 目录} 512 与 1024 档内置了 NAF 特征上采样以输入图为指导把 DINOv3 的 32×32 特征升到更高分辨率配置注释中proj_in_channels2048 concat(lr 1024, hr 1024)这正是高分辨率几何保真的关键。阶段 3训练纹理模型256→512→1024纹理阶段的--data_dir比形状阶段多一个pbr_latentkey# 256冷启动 python train.py \ --config configs/gen/slat_flow_imgshape2tex_dit_1_3B_256_bf16_proj_finetune.json \ --output_dir results/tex_256 \ --data_dir {ObjaverseXL_sketchfab: {base: datasets/ObjaverseXL_sketchfab, shape_latent: .../shape_enc_next_dc_f16c32_fp16_256_view, pbr_latent: .../tex_enc_next_dc_f16c32_fp16_256_view, render_cond: datasets/ObjaverseXL_sketchfab/renders_cond}} # 512finetune_ckpt ← results/tex_256 的 ckpt python train.py \ --config configs/gen/slat_flow_imgshape2tex_dit_1_3B_512_bf16_proj_finetune.json \ --output_dir results/tex_512 \ --data_dir {... pbr_latent 换成 _512_viewshape_latent 同步 512} # 1024finetune_ckpt ← results/tex_512 的 ckpt python train.py \ --config configs/gen/slat_flow_imgshape2tex_dit_1_3B_512_bf16_proj_finetune_ft1024.json \ --output_dir results/tex_ft1024 \ --data_dir {... pbr_latent 与 shape_latent 均换成 _1024_view}进阶多卡、断点续训与常用参数多卡/多机--num_gpus 8 --num_nodes 1默认自动用满本机 GPU分布式训练走 pixal3d/utils/dist_utils.py断点续训重新运行同一命令即可默认--ckpt latest会恢复最近存档指定步数用--ckpt step训练监控加--use_wandb开启 WB 日志配置会自动上传为 artifact失败自动重试默认--auto_retry 3显存波动导致的偶发崩溃不用人工干预。小结回顾一下训练自己 Pixal3D 的完整路径用 data_toolkit/ 准备视角对齐的 O-Voxel 数据与三类潜变量按稀疏结构 → 形状 → 纹理的顺序跑 3 个阶段、共 8 个分辨率档位每次升档前把上一档 checkpoint 填进新配置的finetune_ckpt保持链条完整用--tryrun先干跑验证再上全量训练。坚持这条渐进式路线你就能在自己的数据集上复刻甚至超越官方的单图 3D 生成效果 。【免费下载链接】Pixal3D[SIGGRAPH 2026] Pixal3D: Pixel-Aligned 3D Generation from Images项目地址: https://gitcode.com/gh_mirrors/pi/Pixal3D创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表