【SenseNova U1.5 Lite实战】从残俑到彩绘复原:我用 8B 单卡多模态大模型,为兵马俑做了一次「数字修复」

📅 发布时间:2026/9/5 0:28:29
【SenseNova U1.5 Lite实战】从残俑到彩绘复原:我用 8B 单卡多模态大模型,为兵马俑做了一次「数字修复」
【SenseNova U1.5 Lite实战】从残俑到彩绘复原我用 8B 单卡多模态大模型为兵马俑做了一次「数字修复」本文涉及官方资料地址汇总SenseNova-U1 官方仓库https://github.com/OpenSenseNova/SenseNova-U1SenseNova U1.5 模型权重https://huggingface.co/sensenova/SenseNova-U1.5-8B-MoT魔搭社区国内镜像https://modelscope.cn/models/SenseNova/SenseNova-U1.5-8B-MoTatomgit 国内源码镜像https://atomgit.com/SenseNova/SenseNova-U1作者背景西北工业大学硕士研究生研究方向为秦始皇兵马俑的数字化保护与修复。本文所有生成结果均在课题组内部评议中获得指导教授的认可——模型对秦俑形制、彩绘工艺的还原程度达到了「可作为修复方案预演参考」的水平。这也是我决定把这次实验完整写下来的原因。一句话结论SenseNova U1.5 Lite8B在单卡上以约 62s/张的成本完成了「残俑结构补全 → 出土彩绘复原」的完整视觉交付链路其招牌的 3-4k 字符超长指令遵循在我埋入的 12 项考古级可核验指令点上命中 11/12。本文实验数据与资料开源地址https://atomgit.com/weixin_52908342/SenseNova_TerracottaArmy实战视频演示兵马俑「数字修复」实战视频TL;DR先给结论能不能跑起来能。33GB 权重、8B 参数在单卡 A800 上占用峰值仅20.08 GiBbf16 layer offload。出图成本50 步单图约62 秒8 步快出图约 12 秒可作为草稿档。步数消融结论采样期显存与步数无关8/20/30/50 步采样期 alloc 完全一致 19.72 GiB步数只买「时间」和「质量」不买「显存」。用户可放心用步数做质量/速度档位切换。长指令遵循结论这是 U1.5 Lite 最打动我的能力。同一张灰陶俑短指令40字符只命中 3/12 个彩绘约束而 3000 字符的考古级长指令命中11/12——它是真的「读懂」了每一条部位施色规则而不是套模板。对我的课题意义秦俑出土时彩绘极易氧化脱落真实修复不可逆、试错成本极高。用多模态模型先做「彩绘复原预演」让文物、考古、修复三方在动手前就能看到多套复原假设的可视化结果——这正是我课题组认可这次实验的核心价值。效果图先行工作量1兵马俑「结构补全 → 彩绘复原」两级流水线AB 链路工作量2长指令压测3000 字的考古指令模型效果生成工作量3消融实验步数消融num_steps。一、为什么是兵马俑 为什么是 U1.5 Lite我的研究方向是兵马俑的数字化保护。做这行的人都清楚一个残酷的事实秦俑本来是彩色的。刚出土时陶俑表面覆盖着朱红、粉绿、天青、赭石等矿物颜料但这些颜料附着在一层两千年前的生漆底上——一旦见光脱水漆层在几分钟到几小时内就会卷曲、剥落彩绘随之灰飞烟灭。今天我们在博物馆看到的「灰陶色」秦俑其实是「褪尽铅华」之后的样子。所以「彩绘复原」在我们这行是刚需但传统手段代价高昂物理试色不可逆真俑上不可能反复试。手绘复原图慢一张考古级复原插画专业画师要画数天到数周。假设难以并行验证面对一处残缺往往有多种复原假设逐一手绘成本极高。这就是我盯上 SenseNova U1.5 Lite 的原因。它有三个特性精准命中我的痛点原生图像编辑我可以喂一张残俑照片让它「只在表面上色、不改形态」这正是文物复原最看重的「最小干预」原则。3-4k 字符超长指令遵循考古复原的约束极其琐碎——双唇朱红、须发纯黑、甲片褐色朱红勾边、行縢粉绿……普通生图模型给三五个词就到顶了而 U1.5 Lite 号称能吃下 3000 字符的部位级施色规则。单卡可跑 全球开源8B 参数、单卡流畅、GitHub/HF/魔搭全开源意味着这套流程实验室能自己私有化部署文物数据不出内网。下面是我这次实战的完整记录。二、实验环境严格按赛制要求做完整环境声明全部为本次实测值项目值GPUNVIDIA A800 80GB PCIeVRAM 81152 MB内存122880 MB120 GBPyTorch2.8.0 cu128CUDA12.8driver 590.48.01兼容 CUDA 13.1Python3.12.3AnacondaComfyUI0.34.0comfy-aimdo 0.4.15 前端transformers5.16.1模型SenseNova-U1.5-8B-MoT本地权重约 33GB / 8 分片 safetensors精度 / 设备bfloat16 / cudaOffload 策略auto attention fast输出分辨率2400 × 1792Auto·4MP 档约 4.3MP说明我用的是云端 A800但从后面的显存实测你会看到——真正吃掉的显存只有 20GB 出头所以这套流程在消费级卡如 RTX 4090上完全可复现A800 的 80G 显存在这个任务里是「用不满」的。第 0 步 · 环境预检一行命令确认 CUDA / bf16 / 卡型都 OKnvidia-smi python--versionpython-cimport torch; print(torch.__version__, torch.version.cuda); \ print(avail:, torch.cuda.is_available()); \ print(bf16:, torch.cuda.is_bf16_supported()); \ print(torch.cuda.get_device_name(0))# 输出# NVIDIA A800 80GB PCIe / CUDA 13.1# Python 3.12.3# 2.8.0cu128 12.8# avail: True / bf16: True三、本地部署全过程可复现复制即用3.1 云主机选型与磁盘扩容模型权重 33GB加上 ComfyUI、依赖、输出图系统盘很容易被撑爆。我第一步就是把数据根目录挂到数据盘并做磁盘扩容。3.2 建目录 统一环境变量复制即用把所有缓存、模型、结果统一定位到数据盘/root/autodl-tmp/sensenova并用 hf-mirror 镜像加速exportSENSENOVA_DATA_ROOT/root/autodl-tmp/sensenovamkdir-p$SENSENOVA_DATA_ROOT/{huggingface,pip-cache,uv-cache,models,results}exportHF_HOME$SENSENOVA_DATA_ROOT/huggingfaceexportHUGGINGFACE_HUB_CACHE$HF_HOME/hubexportPIP_CACHE_DIR$SENSENOVA_DATA_ROOT/pip-cacheexportUV_CACHE_DIR$SENSENOVA_DATA_ROOT/uv-cacheexportHF_ENDPOINThttps://hf-mirror.comechoOK:$SENSENOVA_DATA_ROOT3.3 下载 33GB 权重国内走魔搭最快国内网络环境我强烈建议用魔搭社区ModelScope直连拉取比 HF 稳定得多python-mpipinstallmodelscope-qmodelscope download--modelSenseNova/SenseNova-U1.5-8B-MoT\--local_dir$SENSENOVA_DATA_ROOT/models/SenseNova-U1.5-8B-MoT实测19 个文件、约 16 分钟下载完成51s/file 均速下载完做完整性校验确认 33G、config.json 存在du-sh$SENSENOVA_DATA_ROOT/models/SenseNova-U1.5-8B-MoT# 33Gls$SENSENOVA_DATA_ROOT/models/SenseNova-U1.5-8B-MoT|headtest-f$SENSENOVA_DATA_ROOT/models/SenseNova-U1.5-8B-MoT/config.jsonechoconfig.json: OK3.4 装推理包 ComfyUI 主体与依赖先装官方推理包sensenova-u1构建工具下载并 build wheel装完先验证推理包能否 import顺带再确认一次 torch/bf16/卡型这一步能提前暴露 90% 的环境问题python-cimport sensenova_u1; import torch, transformers; \ print(sensenova_u1 OK); \ print(torch, torch.__version__, cuda, torch.cuda.is_available()); \ print(bf16, torch.cuda.is_bf16_supported()); \ print(torch.cuda.get_device_name(0))# sensenova_u1 OK / torch 2.8.0cu128 cuda True / bf16 True / A800再装 ComfyUI 主体用 gitcode 镜像国内 clone 快与依赖cd$SENSENOVA_DATA_ROOTgitclone https://gitcode.com/gh_mirrors/co/ComfyUI.git3.5 启动 ComfyUIscreen-Ssensenova# 用 screen 挂后台SSH 断了也不掉cd$SENSENOVA_DATA_ROOT/ComfyUIpython main.py--listen0.0.0.0--port6006启动日志里能看到 SenseNova 自定义节点ComfyUI-SenseNova-U1被正确加载、数据库完成 6 次 migration、服务起在0.0.0.0:6006浏览器进入 ComfyUIAutoDL 走端口映射部署踩坑记录启动时会出现[WARNING] Unable to load SenseNova models from the API (RuntimeError); using built-in options.——这是因为我走的是本地权重而非 API模型列表拉不到线上目录属正常降级不影响本地推理。No OpenGL_accelerate module loaded——纯 warning无 GPU 渲染需求可忽略。关键一步是要让节点读本地模型目录而不是去连 API见下一节。四、搭第一条工作流从「能出图」到「读本地模型」4.1 认识 SenseNova 自定义节点进入 ComfyUI 后右键搜索节点能看到ComfyUI-SenseNova-U1提供的一组节点核心是三个Model Loader加载 SenseNova U1.5 模型可指向本地目录Text to Image文生图Image EditSenseNovaU1LocalImageEdit原生图像编辑——这是我整条兵马俑复原链路的主力节点4.2 最小可用工作流Model Loader → Text to Image → Save Image先搭一条最简单的文生图链路验证模型真的能出图。建 Model Loader 节点建 Text to Image 节点并连线核对调整参数cfg、num_steps、seed、输出尺寸等接上 Save Image4.3 关键让节点读本地模型避免连 API默认 Model Loader 会尝试走 API 目录本地部署必须把它指到 3.3 步下载好的本地权重路径/root/autodl-tmp/sensenova/models/SenseNova-U1.5-8B-MoT。这一步做对了后面才不会报错第一次点 Queue 时我踩了个执行失败路径/参数没对齐修正后首图跑通——单图 50 步耗时 62.85s这张首测图ComfyUI_00001.png2048×2048我也从服务器拉了下来存档作为「环境确实跑通」的部署验证凭证到这里赛道一要求的「必须实际搭建模型并跑起来 运行效果演示」已经完成。下面进入真正的重头戏——兵马俑数字复原工作流。五、核心工作流兵马俑「结构补全 → 彩绘复原」两级流水线AB 链路这是本文的灵魂。我把文物复原拆成两个可独立评估的阶段对应工作流里的A 节点和B 节点A · 结构修复输入残俑补全缺失的头/臂/断裂部位但保持灰陶质感、不上色——先把「形」修对。B · 彩绘复原以 A 的完整灰陶俑为输入只在表面敷施矿物颜料还原出土时的彩绘——再把「色」还原。这种「先形后色、分步可控」的拆法恰好对应文物修复里的最小干预 可逆预演原则每一步都能单独评审、单独回退。5.1 输入一尊残缺的跪射俑我用的输入是一张典型的残俑照片——灰陶质感、局部残缺正是考古现场最常见的状态工作区内对应原始输入文件实验/实验数据/原始输入_canjun.png1.5MB模型的实际输入。5.2 A 节点 · 结构补全A 节点的 prompt 核心是「补全缺失结构、保持灰陶不上色、维持原有姿态与朝向」。跑完后残缺部位被合理补全且严格保持了秦俑的灰陶色和形制——没有擅自上色这点非常重要课题组评议时特别肯定了这一点模型补全的手臂姿态、甲片走向符合秦代步兵俑/跪射俑的形制规律没有出现「关公战秦琼」式的形制穿越。工作区产物实验/实验数据/兵马俑AB/A_structure_repair_00001_.png及 00002。5.3 B 节点 · 彩绘复原B 节点以 A 的完整灰陶俑为输入施加考古级彩绘长指令。出图后秦俑「活」了过来——面部粉红肉色、须发黑、铠甲褐色甲片配朱红勾边、战袍朱红、缘边粉绿且带出土氧化的哑光陈旧感完整的「兵马俑完整复原 彩绘」工作流全貌工作区产物兵马俑AB/B_polychrome_restore_00001_.png~00003_.png共 3 张彩绘复原结果对应 workflowworkflow_兵马俑修复_AB.json。5.4 AB 链路的耗时基准从运行日志逐条还原这条链路的性能基准非常稳定批次内容耗时首测单图50 步 / 4MP62.85 sAB 第 1 次完整跑A B 各 50 步151.13 sB 单图重跑50 步62.00 sAB 第 2 次完整跑A B 各 50 步127.79 s单图 50 步 ≈ 62s这个数字在多次运行中高度一致可以作为「A800、offloadauto、4MP 出图」的单图基准耗时来引用。六、实验三 · 步数消融num_steps 到底买到了什么工作流能跑通只是及格线。作为研究向作者我更想回答一个工程问题采样步数num_steps到底影响了什么是显存速度还是质量于是我设计了一个严格的单变量对照实验。6.1 实验设计单变量对照共享同一个 Model Loader、同一张输入图残俑canjun.png、同一个输出尺寸从共享节点扇出 4 条SenseNovaU1LocalImageEdit支路唯一变量num_steps 8 / 20 / 30 / 50其余全部锁死cfg4.0、seed42、prompt 完全相同一次 Queue 顺序跑完 4 张可直接横向对比。对应 workflow实验/workflow_实验三_步数消融.json。运行截图6.2 四联对比图8 / 20 / 30 / 50 步肉眼判读这也是我给出主观质量分的依据8 步能出大形但结构边缘发虚、细节糊甲片和面部容易「化」——质量分 2.5适合快速草稿预览。20 步结构稳定下来细节开始清晰——3.5。30 步细节丰富、边界干净性价比最高的一档——4.3。50 步细节与质感的上限甲片、须发、剥落纹理最扎实——4.7。6.3 耗时 / 质量双 Y 轴曲线6.4 实测一个反直觉但极有用的结论这是本实验最有价值的发现。从运行日志读到的显存数据指标实测值采样期 alloc8/20/30/50 步均为 19.72 GiB完全一致峰值 alloc20.08 GiBreserved20.56 GiB单次执行层传输总量46.00 GiBunderstanding 30.91 generation 15.09teardown 后 alloc归零至 0.03 GiB显存回收干净、无泄漏结论采样期显存与步数完全无关。8 步和 50 步吃掉的显存一模一样19.72 GiB步数只影响「时间」和「质量」不影响「显存峰值」。这个结论的工程价值极大显存预算可以按最高步数一次性规划不用担心「加步数会 OOM」步数可以纯粹当质量/速度档位来用——草稿用 8 步~12s、终稿用 50 步~62s显存零风险20GB 出头的占用意味着24G 的 4090 也能跑满 50 步A800 的 80G 在这个任务里确实用不满。6.5 Layer Offload 行为观察即便在 80GB 的 A800 上节点配置offloadauto时仍会启用层级卸载生成期 42 层常驻 GPU 共 15.09 GiB理解层30.91 GiB按需换入换出峰值 alloc 才被压到 20.08 GiB。这解释了为什么一个「33GB 权重 46GB 单次层传输」的模型最终只吃 20GB 显存——offload 把显存占用和模型体积解耦了这正是它敢喊「单卡可跑」的底气。七、实验四 · 长指令压测3000 字的考古指令它能听懂几条这是我最期待的实验直接对准 U1.5 Lite 的招牌能力——3-4k 字符超长指令遵循。对文物复原来说这个能力是决定性的复原不是「画得好看」而是「每一处颜色都要有据可依」。7.1 实验设计单变量仅指令长度递增输入固定 A 结构修复后的完整灰陶俑排除结构补全干扰专注测彩绘指令遵循唯一变量 prompt 长度三档P1 短指令~40 字符“为这尊灰陶兵马俑复原出土时的原始彩绘只在表面上色不改变形态。”P2 中指令~500 字符分部位施色的中等粒度描述。P3 超长指令3000 字符考古级复原规范刻意埋入 12 个可逐条核验的指令点。其余锁死cfg4.0、num_steps50、seed42、Auto·4MP。对应 workflow实验/workflow_实验四_长指令压测.json三档 prompt 全文见实验/实验四_长指令压测_prompts.md。运行截图7.2 P3 超长指令全文节选核心约束为了让读者感受「3000 字符指令」到底是什么密度摘录 P3 的部位施色规则完整版在 prompts 文件里请以秦始皇帝陵博物院文物保护研究的严谨标准……秦代工匠先在陶胎表面髹涂一至两层生漆作为底层再于漆层之上敷施矿物质颜料故所有色彩均应呈现「漆底托色」的温润质感……一、面部与肌肤面庞施粉红肉色铅丹调白双唇施朱红色指令点1两道剑眉与颌下须髯均为纯黑色指令点2……三、铠甲甲片为褐色每片边缘以朱红色描边指令点4……五、腿足小腿缠裹行縢行縢为粉绿色指令点8足穿方口齐头履履为赭石色指令点9……七、形态约束最重要严禁改变陶俑任何几何形态仅在原有表面敷色指令点12。这种密度的约束普通生图模型给到第 3 个词就开始「失忆」了。7.3 三档指令效果对比7.4 12 项指令点逐条核验命中率我按 prompts 文件里的核对表对 P1/P2/P3 三张图逐条打勾#指令点P1 短P2 中P3 长1双唇朱红区别于肉色☐✅✅2须发为黑色✅✅✅3发带朱红色☐☐✅4甲片褐色 朱红勾边☐✅✅5长襦战袍朱红色✅✅✅6领口/袖口粉绿缘边☐✅✅7下裤天青/石青色☐☐✅8行縢绑腿粉绿色☐✅✅9鞋履赭石色☐✅✅10整体哑光、无塑料反光✅✅✅11有自然剥落、露灰陶/漆底☐☐✅12形态/姿势/朝向不变✅✅☐命中数3 / 128 / 1211 / 12命中率25%67%92%7.5 判读长指令是真的「读懂」了命中率从25% → 67% → 92%的单调跃升说明短指令P1只抓住了最泛化的特征须发黑、战袍红、哑光细节部位几乎全丢——因为信息量根本不够。中指令P2补上了分部位施色命中过半但天青下裤、朱红发带、自然剥落这些「需要精确描述才会出现」的点仍缺失。长指令P3命中 11/12连「下裤天青而非朱红」「颜料层随机剥落露出灰陶胎」这种极细的约束都还原了——它是真的在逐条执行指令而不是套通用彩俑模板。唯一没命中的指令点 12形态完全不变P3 因为约束太多在敷色时对局部轮廓做了极轻微的重塑并非结构性改变但严格核验算「未完全守住」。这也给出一个实用经验——当长指令里「上色约束」和「形态锁定约束」同时高压时可适当调低img_cfg提高对原图的保真权重来更好地锁形这是我下一步要继续调的方向。对我的课题而言92% 的考古级指令命中率意味着我可以把一份文字化的复原方案直接翻译成可视化预演图且绝大多数施色约束会被忠实执行。这是把「文字复原假设」变成「可评审图像」的关键一跃——也是课题组认可这次实验的核心技术依据。八、成本与复现门槛这套链路到底贵不贵作为实验室用户我最关心「这套东西能不能长期用、要不要排队抢卡」。做一个诚实的成本分析。8.1 显存门槛前面实测过50 步满配峰值 alloc 仅20.08 GiB。这是关键数字——它落在消费级卡RTX 4090 / 4080的预算内。硬件显存能否跑满 50 步 / 4MPA800本次80 GB✅ 远未用满RTX 409024 GB✅ 可以RTX 4080 / 309024 GB✅ 接近预算边缘RTX 4090 出家装24 GB✅ 可offloadauto 量化8.2 时间成本场景耗时备注单图 50 步 / 4MP≈ 62 s多次运行高度一致8 步草稿档≈ 12 s快速预览实验三混合批5083020149.02 s一次跑完 4 组实验四3×50 步191.40 s一次跑完 3 档A800 时租按当前行情估算单张 4MP 复原图成本可压缩到几毛到一块人民币量级按周租折算相比人工手绘一张考古复原图专业画师数天到数周、报价可达数千元数字复原的边际成本几乎可以忽略。8.3 关键结论一次论证长期可用数据不出内网权重本地、推理本地文物图可以完全私有化部署——这对做文物保护的单位是硬需求文物影像通常有保密要求。单卡即可跑不用抢多卡、不用开集群实验室一张 4090 或临时租一张 A800 就能产出。边际成本≈0跑起来后每多生成一张复原方案图几乎不额外花钱。可逆预演传统修复不可逆数字复原可以无限次「试错」——这正是它相对物理试色的根本优势。九、踩坑与经验9.1 部署类本地模型要用本地目录加载Model Loader 默认走 API 目录本地部署必须手动指到/root/autodl-tmp/sensenova/models/SenseNova-U1.5-8B-MoT否则会连 API 报错或回退内置选项。启动日志里的Unable to load SenseNova models from API是正常降级本地权重场景下模型列表拉不到线上目录不影响推理别被吓到。用 screen/tmux 挂后台SSH 一断 ComfyUI 就没了50 步长任务跑一半断掉很亏。依赖要装全sensenova-u1官方包 transformers 5.16.1 accelerate pillow 版本都有硬要求建议严格按官方 requirements 装避免隐式版本冲突。国内网络用魔搭 gitcode 镜像HF 直连慢且易断魔搭下载 gitcode clone 全程稳定我实测 19 文件 16 分钟拉完 33GB。9.2 图像编辑类img_cfg对原图保真权重与cfg指令遵循力度要平衡想更严格保持原图形态就调低img_cfg、适当提高cfg想要更强的彩绘自由度反过来。我在实验四 P3 里发现「上色约束 锁形约束同时高强度」时形态偶尔会被轻微重塑调低img_cfg是锁形的最直接手段。超长指令建议用「编号分部位」的结构化写法像 P3 那样一、二、三、四……分面部/发髻/铠甲/战袍/腿足再在每个部位下埋具体颜色约束模型对「编号条目」的遵循远好于一大段散文。这是我的实测经验也建议写进官方 prompt 工程指南。9.3 数据/出图类ComfyUI 队列面板「只显示 2 个」是显示条数上限实际提交的 4 组、3 组都成功执行了别被历史记录面板误导。步数不影响显存可以放心把步数当质量档位用8 步草稿 / 50 步终稿无缝切换。输出分辨率会按输入宽高比自适应取整同样是 Auto·4MP不同输入的输出尺寸可能不同canjun 是 2400×1792实验四输入是 2368×1760组内一致即可不影响跨组对比。十、可复现性清单环节位置 / 命令模型权重魔搭SenseNova/SenseNova-U1.5-8B-MoT约 33GB源码仓库GitHubOpenSenseNova/SenseNova-U1ComfyUI官方 ComfyUI ComfyUI-SenseNova-U1自定义节点AB 工作流实验/workflow_兵马俑修复_AB.json实验三工作流实验/workflow_实验三_步数消融.json实验四工作流实验/workflow_实验四_长指令压测.json实验四三档 prompt实验/实验四_长指令压测_prompts.md图表脚本实验/make_charts.py可一键重生成 4 张图完整运行日志实验/实验数据/comfyui_运行日志.log82KBVRAM/步数/offload 全记录环境速查A800 80G / torch 2.8.0cu128 / Python 3.12.3 / ComfyUI 0.34.0 / bf16 / offloadauto / 输出 2400×1792。十一、结论与展望一次完整的、扎根于我研究方向的实战到此收官。回顾整个链路SenseNova U1.5 Lite 交出的答卷远超我的预期部署门槛被大幅降低。33GB 权重、8B 参数真实显存占用仅 20.08 GiB——一张家用卡就能跑满 50 步 4MP单图 62 秒。它没有停留在「能跑」而是达到了「有条件长期跑」。图像编辑是真能用不是 demo。从残俑到彩绘复原A/B 两级流水线完美兑现了「最小干预 可逆预演」补全的形制、复原的彩绘都经得起形制规律检验。3-4k 长指令遵循是它最硬的能力。12 项考古级可核验指令点从 25% → 67% → 92% 的命中率跃升证明指令越具体、越有结构它执行得越精准。这直接打开了「文字化复原方案 → 可视化预演图」的大门。对整个 AI 视觉生态的判断当 8B 模型能做到「稳定完成真实视觉交付」而非「能看」时像文物复原这种强约束、多部位、长指令的真实场景才开始真正被大模型触达。这正是活动标语「从能看走向稳定完成真实视觉交付」的含义。写在最后作为西工大兵马俑数字化方向的研究生我始终相信技术应当服务于一个个具体的、有公共价值的问题。当我把一尊两千年前褪尽铅华的残俑用 8B 单卡模型重新「画」回它出土时的斑斓模样——那种跨越时空的连接感是这个项目赠予我的、比任何指标都更真实的东西。本文为原创技术实战记录模型与数据均来自本人实测。欢迎交流也欢迎对文物数字化方向感兴趣的同行一起探讨。