
See-through代码架构参考手册推理管线、模型模块与训练框架逐模块API详解【免费下载链接】see-throughSingle-image Layer Decomposition for Anime Characters (SIGGRAPH 2026 Conference Paper)项目地址: https://gitcode.com/gh_mirrors/se/see-throughSee-through 是 SIGGRAPH 2026 论文开源项目可将单张动漫立绘自动拆解为最多 23 个语义图层并导出 PSD。本文作为 See-through 代码架构参考手册带你逐模块读懂它的推理管线、模型模块与训练框架 API即使你是新手也能快速定位每个目录的作用。1️⃣ 项目全景一张图看懂 See-through 代码架构See-through 的核心思路是扩散模型生成透明图层 伪深度模型推断绘制顺序LayerDiff 3D 负责把角色拆成带 Alpha 通道的语义图层Marigold 负责给每个图层估算深度最后按深度排序合成 PSD。围绕这两个核心整个仓库分成五大板块顶层目录定位关键入口inference/推理管线脚本inference_psd.pycommon/modules/可复用模型实现layerdiffuse/、marigold/annotators/标注/分割插件包animeinsseg/、lang_sam/training/训练框架与配置train/、configs/ui/Qt6 桌面标注界面launch.py2️⃣ 推理管线从一张图到 23 层 PSD 的三步走主入口 inference_psd.py 只做了三件事是理解 See-through 代码架构的最佳起点第 1 步LayerDiff 3D 图层生成—— 调用apply_layerdiff()见 inference_utils.py。它加载透明 VAETransparentVAE与 3D UNetUNetFrameConditionModelV3 模型分两个阶段推理先整图分离发型、服装等 13 个身体部件再裁剪头部区域二次分离脸部、眼睛等 11 个细部件。第 2 步Marigold 伪深度估计——apply_marigold()把各部件图层含眼睛四件套合并、前后发合并批量送入 MarigoldDepthPipeline为每个部件输出{tag}_depth.png深度图。第 3 步细粒度拆分与 PSD 导出——further_extr()完成左右拆分part_lr_split、前后发聚类cluster_inpaint_part、眼部四分眉毛/眼睛拆为 l/r最后由dump_parts_psd()按depth_median从深到浅排序输出{name}.psd与{name}_depth.psd双文件。 低显存用户有三条路径均在 inference/scripts/ 下--group_offload12GB 卡、inference_psd_quantized.pyNF4 4bit 量化8GB 卡、inference_psd_blockswap.py块交换。拿到 PSD 后还可用 heuristic_partseg.py 按深度或左右进一步切分图层。3️⃣ 模型模块详解common/modules 四大核心这是整个推理管线的发动机舱全部为 PyTorch 实现layerdiffuse/SDXL 规模的透明图层扩散。layerdiff3d.py 定义了支持num_frames与group_embedding的UNetFrameConditionModelvae.py 提供TransparentVAEEncoder/Decoder把 RGBA 图层编码进 3D 潜空间diffusers_kdiffusion_sdxl.py 的KDiffusionStableDiffusionXLPipeline用 DPM-2M 采样器驱动推理。marigold/SD 1.5 规模的深度估计管线支持多分辨率噪声multi_res_noise.py与多帧列表输入img_list参数正是 See-through 逐部件估深的来源。sam/完整移植的 SAM 模型与 predictor.py 预测器配合 extend_sam.py 做部件级分割。depth_anything_v2/Depth Anything V2 的 DINOv2 主干 DPT 解码器作为辅助深度适配器。4️⃣ annotators 标注插件系统annotators/ 是独立 pip 包为训练数据标注服务按需安装 extras模块功能核心 APIanimeinsseg/动漫实例分割mmdet3 ISNet 细化AnimeInstanceSegmenter.infer()、apply_instance_segmentation()lang_sam/GroundingDINO SAM2 语言引导分割predict_multi_prompts()lama_inpainter/LaMa 大掩码修复FFT 卷积实现见 ffc.pyapply_inpaint(img, mask)bizarre_tagger/人体姿态估计 背景分割apply_pos_estimator()wdv3_tagger.pyWD-v3 动漫标签识别apply_wdv3_tagger()anime_face_detector/动漫人脸关键点独立环境LandmarkDetector.__call__()5️⃣ 训练框架三阶段 2D→3D 升级路线training/ 产出 V3 模型23 部件标签两大模型族都遵循2D 训练 → UNet 权重转换 → 3D 微调流水线train_layerdiff.py → cvt_layerdiff2d_to_3d.py → train_layerdiff3d.py train_marigold_depth.py → cvt_marigold2d_to_3d.py → train_marigold3d.py数据集dataset_layerdiff.py、dataset_depth.py、dataset_seg.py 均支持翻转/裁剪/HSV 增强与多分辨率缩放。损失函数loss_vae.pyLPIPS ConvNeXt 感知损失 判别器、loss_depth.py仿射不变深度损失 梯度匹配、loss_mask_samhq.pyDice 不确定性采样 CE。配置training/configs/ 提供各模型 YAML 与 4/8 卡 DeepSpeed ZeRO 加速配置LayerDiff 系需accelerate launch多卡训练论文在 8×H200 上训练。数据管线data_pipeline.py 渲染增强样本benchmark.py 跑 FID/LPIPS/PSNR。6️⃣ UI 桌面标注界面ui/ 是基于 Qt6 的 Live2D 模型标注与管理工具在仓库根目录执行python ui/ui/launch.py启动。主窗口、画布、标签树分别由 mainwindow.py、canvas.py、tag_tree.py 实现推理任务跑在 run_thread.py 的独立线程中。7️⃣ 常见路径速查表我想……去看这里跑通完整推理inference/scripts/inference_psd.py改图层拆分逻辑common/utils/inference_utils.py换自己的 VAE / UNetcommon/modules/layerdiffuse/vae.py、layerdiff3d.py训练新模型training/README.md training/configs/给数据打标签ui/ui/launch.py、annotators/README.md查看 23 部件标签定义common/utils/inference_utils.py 中的VALID_BODY_PARTS_V2 提示运行任何脚本前请先在仓库根目录建立assets软链接ln -sf common/assets assets并始终以仓库根目录为工作目录——这是 See-through 代码架构中最容易被忽略的环境要求。掌握以上五大板块的职责与入口 API你已具备在 See-through 仓库中独立定位、阅读与二次开发所需的全部地图。【免费下载链接】see-throughSingle-image Layer Decomposition for Anime Characters (SIGGRAPH 2026 Conference Paper)项目地址: https://gitcode.com/gh_mirrors/se/see-through创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考