
See-through训练完全教程从Live2D数据管线到DeepSpeed多卡训练复现8×H200全流程【免费下载链接】see-throughSingle-image Layer Decomposition for Anime Characters (SIGGRAPH 2026 Conference Paper)项目地址: https://gitcode.com/gh_mirrors/se/see-throughSee-throughSingle-image Layer Decomposition for Anime CharactersSIGGRAPH 2026 会议论文能把一张静态动漫插画自动拆分为最多 23 个语义分层头发、面部、眼睛、服装、配饰等并导出带透明通道的 PSD 文件。本文带你完整走通它的训练全流程Live2D 数据管线三阶段、数据渲染增强以及基于 DeepSpeed 的 accelerate 多卡训练最终对齐作者 8×H200 的实验配置。一、先认识训练体系两大模型族 三阶段管线 See-through 的训练代码集中在 training/ 目录覆盖LayerDiffSDXL 规模的透明分层扩散模型、Marigold depthSD 1.5 规模的伪深度估计、透明 VAE 和身体部位分割四个模型。两条主线都遵循先训 2D → 转换 UNet 权重为 3D → 微调 3D 模型的三阶段管线模型族阶段 12D阶段 2权重转换阶段 33D 微调LayerDifftrain_layerdiff.pycvt_layerdiff2d_to_3d.pytrain_layerdiff3d.pyMarigold depthtrain_marigold_depth.pycvt_marigold2d_to_3d.pytrain_marigold3d.py辅助模型则只需单卡单阶段训练train_vae.py透明 VAE、train_partseg.pySAM-HQ 身体部位分割、train_depth.pyDepth Anything V2 adapter。下图是 See-through 的代表性成果一张立绘被拆解为语义分层后的 2.5D 效果也是你训练完模型后可以跑通的目标产出。二、环境配置统一 conda 环境 DeepSpeed 一键安装 ⚙️训练与推理共用同一个see_throughconda 环境Python 3.12 PyTorch CUDA 12.8。先克隆仓库并建立环境git clone https://gitcode.com/gh_mirrors/se/see-through cd see-through conda create -n see_through python3.12 -y conda activate see_through pip install torch2.8.0cu128 torchvision0.23.0cu128 torchaudio2.8.0cu128 \ --index-url https://download.pytorch.org/whl/cu128 pip install -r requirements.txt ln -sf common/assets assets再安装训练专属依赖。DeepSpeed ZeRO 是 LayerDiff 多卡训练的必需项它要求机器上有 C 编译器和 CUDA toolkitpip install -r requirements-training-deepspeed.txt # 安装 deepspeed0.15.4 pip install wandb # 实验跟踪可选 pip install bitsandbytes # 8-bit Adam 优化器可选 pip install torchmetrics # FID/LPIPS/PSNR 评测可选⚠️ 官方提醒所有脚本都要在仓库根目录作为工作目录运行包括训练和数据管线脚本。三、Live2D 数据管线第一阶段提取模型图层 训练数据来自 Live2D 模型。使用 CubismPartExtr 工具将.moc3模型文件转换为逐 drawable 的 RGBA 图层图并把输出目录放在workspace/datasets/partextr_output。随后运行 parse_live2d.py 的三个子命令完成解析与伪标签完整说明见 README_datapipeline.md# 1. 建立抽取目录清单 python inference/scripts/parse_live2d.py build_live2d_exec_list \ --srcd workspace/datasets/partextr_output # 2. 对抽取结果跑 SAM 分割 python inference/scripts/parse_live2d.py sam_infer_l2d \ --exec_list workspace/datasets/partextr_output/exec_list.txt # 3. 用 SAM 分割结果生成身体部位标签 python inference/scripts/parse_live2d.py label_l2d_wsamsegs \ --exec_list workspace/datasets/partextr_output/exec_list.txt --extr_more四、Live2D 数据管线第二阶段标注修正与 23 类部位标签 ️伪标签只是起点。V3 模型使用23 个身体部位标签front hair、back hair、face、irides、eyebrow、eyewhite、eyelash、headwear、earwear、topwear、handwear、bottomwear 等完整定义见 scrap_model.py训练配置中的tag_list字段则直接列在 test_layerdiff.yaml 里。接下来打开标注 UI 人工修正标签运行界面会读取workspace/datasets/partextr_output/exec_list.txt你可以逐张核对图层与标签的对应关系。UI 启动方式参考 ui/README.md建议先安装 mmdet 依赖档位requirements-inference-mmdet.txt以保证界面正常启动。五、Live2D 数据管线第三阶段渲染合成训练样本 标注完成后把带标签的图层合成到随机背景上生成训练样本。先准备背景图数据集放到workspace/datasets/再运行 syn_data.pypython inference/scripts/syn_data.py render_body_samples \ --exec_list workspace/datasets/partextr_output/exec_list.txt \ --bg_list workspace/datasets/anime_segmentation_bg/exec_list.txt \ --save_dir workspace/datasets/test_bodysamples python inference/scripts/syn_data.py get_tgt_list \ --src_dir workspace/datasets/partextr_bodysamplesget_tgt_list会生成形如workspace/datasets/l2d_bodysamples_v3.txt的样本清单每行一个样本路径这正是各训练 YAML 配置里dataset_args.src_list指向的文件。更复杂的渲染与增强逻辑在 data_pipeline.py 中。六、DeepSpeed 多卡训练从 4 卡到 8×H200 的最快配置方法 训练统一用accelerate launch DeepSpeed 启动仓库自带两套 accelerate 配置配置文件卡数DeepSpeed ZeRO 级别混合精度test_ddp_4gpu.json4ZeRO-2bf16ddp_bf16.json8ZeRO-1bf16两者核心字段都是distributed_type: DEEPSPEED、mixed_precision: bf16区别在num_processes进程数等于卡数和zero_stage。卡数不符时直接改num_processes即可例如# 8 卡复现作者配置的 LayerDiff 2D 训练 accelerate launch --config_file training/configs/ddp_bf16.json \ training/train/train_layerdiff.py \ --config training/configs/test_layerdiff.yaml再看 YAML 侧的关键超参以 test_layerdiff.yaml 为例底模pretrained_model_name_or_path指向 animagine-xl-4.0动漫风格 SDXL学习率3e-5constant_with_warmup调度warmup 500 步数据增强random_flip: 0.5、random_pad_prob: 0.5、target_size: 1024训练节奏max_train_steps: 200000每 500 步可视化、每 2000 步验证、每 4000 步存 checkpoint最多保留 10 个显存技巧enable_xformers_memory_efficient_attention: true3D 阶段还会打开gradient_checkpointing并用gradient_accumulation_steps: 8补偿小 batch见 test_layerdiff3d.yaml。Marigold 深度模型的 test_marigold_depth.yaml 则以 Depth Anything V2 Large 为底模target_size: 768配合multi_res_noise多分辨率噪声训练。七、复现 8×H200 全流程清单 ✅作者官方 testbed 就是8×NVIDIA H200。按下面顺序执行即可完整复现准备数据完成第三至第五节确保workspace/datasets/l2d_bodysamples_v3.txt就绪该目录被 gitignore需自行准备训练 2D 主模型train_layerdiff.py8 卡 DeepSpeedtrain_marigold_depth.py转换 3D 权重cvt_layerdiff2d_to_3d.py/cvt_marigold2d_to_3d.py把 2D UNet 转成 3D微调 3D 模型train_layerdiff3d.py注意 YAML 首行pretrained_unet指向转换后的 UNet 目录train_marigold3d.py辅助模型可单卡穿插训练train_vae.py、train_partseg.py、train_depth.py评测与存档用 benchmark.py 跑 FID / LPIPS / PSNR用 save_ckpt.py 转换 checkpoint 格式再用 hf.py 上传发布。 小提示想复现论文原始结果请使用 v0.0.1 模型当前仓库代码产出的是支持 23 部位标签的V3 模型多层数据混合微调可参考 finetune_layerdiff_iter2.yaml其中sample_rate用于控制各数据集采样比例。八、常见问题速查 ️问题解决办法DeepSpeed 安装失败确认系统装有 C 编译器与 CUDA toolkit再安装 requirements-training-deepspeed.txt训练脚本报路径错误切到仓库根目录再运行不要在其他子目录执行单卡想跑 LayerDiff不建议——LayerDiff / LayerDiff 3D 需要多卡 DeepSpeed ZeRO其他模型可以单卡训练卡数不是 4 或 8复制一份 accelerate JSON改num_processes为你实际的卡数想用 8-bit Adam 省显存安装 bitsandbytes 后把配置里use_8bit_adam改为true从零跑完数据管线到三阶段训练你就拥有了自己的 See-through V3 分层模型——配合 inference_psd.py 即可把任意一张动漫立绘变成可编辑的 23 层 PSD。祝训练顺利【免费下载链接】see-throughSingle-image Layer Decomposition for Anime Characters (SIGGRAPH 2026 Conference Paper)项目地址: https://gitcode.com/gh_mirrors/se/see-through创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考