素材中枢 · 多端同步

素材中心:网页端与桌面端,共用一套素材

素材中心是贯穿网页端和桌面端 Studio 的素材沉淀与同步枢纽。本地优先、原图不出本机;需要共享的过桥项做增量同步,每一条都写轨迹、可追溯。你只管创作,同步自己管好。

本地优先 增量同步 死信可追溯 密钥双端一致
素材中心
网页端素材库asset · scout · favorite · upload
桌面端素材库asset_lib(本地优先)
同步契约contract_version 治理
同步轨迹fy_sync_op_log(push/pull)
本地原图不过桥 · 投稿 / 术语 / 复用产物才过桥

素材中心是什么

服饰易的素材不止存在于一个地方:网页端有「我的训练模型」里的素材库、采集、收藏与上传;桌面端 Studio 有本地的 asset_lib 素材库,配合本地 OCR、矢量化和训练。素材中心把这两端连起来——它通过真实的同步通道,让该共享的共享、该留本地的留本地,既不重复劳动,也不泄露隐私。

两种形态,一套素材

网页端素材库

云端账户

在「我的训练模型」里沉淀素材:素材库(asset)、采集(scout)、收藏(favorite)、手工上传(upload)。它们统一进入训练样本表,构成弱监督飞轮——你只管收藏与归类,系统自动标记为入训正样本。

  • 四种来源:素材库 / 采集 / 收藏 / 手工上传
  • 弱监督闭环:收藏=正向信号,分类=弱监督标签
  • 样本落 fy_train_dataset,按 来源 / 域 / 模态 聚合
  • 合规红线:仅 owned / authorized 素材可入训

桌面端 Studio 素材库

本地优先

桌面端 Studio 的 asset_lib 模组是本地素材库:本地 OCR 批量数字化、本地矢量草稿、本地训练候选都留在本机。原图不出本机,归属清晰、隐私可控,适合批量与精细后期。

  • 本地 OCR 提取的纹样直接进本地素材库
  • 本地矢量草稿 / 重绘历史留本地
  • 本地素材库即训练候选,弱标签在本地整理
  • 仅「投稿 / 同步项」才过桥到云端

同步机制:三套真实通道

两端的同步不是一句口号,而是三套真实落地的端点。它们都自带鉴权(StudioToken / 会员令牌)、配置驱动(无写死地址),失败如实返回、不假成功。

网页端 素材库 / 收藏 / 上传 Studio 本地 asset_lib(原图不出本机) Studio 云端 可选增强通道 同步桥 studio_bridge desktop_assets credentials contract_version 治理 fa_terms 八维术语(可溯源) fa_content 复用产物 / 投稿 fy_sync_op_log 死信可追溯(§25.3) 本地优先:仅「投稿 / 术语 / 复用 / 资源 / 密钥」过桥,原图与草稿留本地

素材同步拓扑(占位线框,替换正式图不影响结构)

Studio 桥接端点

api/studio_bridge.php

对齐桌面端 PhpApi 的同步契约:八维术语 sync_terms(fa_terms 幂等 upsert,含 dynasty 朝代 / source 出处来源追溯)、复用产物 pull(fa_content,供本地 sled 镜像后离线零模型复用,§24 / §26.4)、训练投稿 push(桌面端投稿 → 审核流)。返回 contract_version 做版本治理。

  • sync_terms:八维术语批量 upsert
  • pull:拉取可离线复用产物
  • push:接收桌面端训练投稿

资源增量同步

api/desktop_assets.php

按会员档位 + 已购插件,下发桌面端「有权下载」的资源 / 插件清单。sync 只下载 hash 不符或缺失的文件(替换本地),与桌面端 file_content_hash 逐位一致(FNV-1a 64bit)。解决:按权限下载、企业版多什么、升级即更新、付费插件在线更新。

  • manifest:下发该档位允许文件清单
  • sync:hash 比对增量下发 + removed 清理
  • 按 plan + 已购插件鉴权,杜绝伪造 free

密钥双端同步

api/credentials.php

品牌 / 自定义密钥经同一后端写入 config/credentials.json(单一真相源),网页端后台与桌面端实时同步。密钥永不明文回显,hash_equals 比对校验,两端配置保持一致。

  • 写入 config/credentials.json
  • web 后台与桌面端实时同步
  • 密钥永不回显,比对校验

同步边界:本地优先,什么过桥、什么留本地

这是素材中心最核心的原则。本地优先意味着:你的本地素材库原图、矢量草稿、重绘历史始终留在桌面端本机;只有明确要两端共享的「配置 / 可复用资产 / 投稿」才过桥。

过桥同步(两端共享)

  • 八维术语 / 考据词表(sync_terms → fa_terms)
  • 可离线复用产物(pull → fa_content 本地镜像)
  • 桌面端训练投稿(push → fa_content + 审核流)
  • 资源 / 插件(desktop_assets 增量下发)
  • 品牌 / 自定义密钥(credentials 双端一致)

仅留本地(不过桥)

  • 本地素材库原图(原图不出本机)
  • 本地矢量草稿 / 重绘历史
  • 本地训练候选与弱标签整理
  • 本地批量 OCR 的中间产物

桌面端 Studio 素材库(界面示意)

下面是 Studio 素材库(asset_lib 模组)的界面线框稿:左侧是按来源整理的素材夹,中间是缩略图网格,右侧是选中项的元数据与弱监督标记,底部是批量同步栏。本地素材库原图、矢量草稿、重绘历史都沉淀在这里,只有你主动「同步到云端」才过桥。

素材库 · asset_lib 已同步 素材夹 本地 OCR 训练候选 纹样 / 款式 / 参考图(缩略图) 选中项 弱监督 入训开关 已选 3 项 同步到云端 留本地 原图不出本机

线框说明:左侧为素材夹(素材库 / 采集 / 收藏 / 本地 OCR / 训练候选),中间为缩略图网格,右侧为选中项元数据 + 弱监督标记 + 入训开关,底部为批量同步栏。本地原图、矢量草稿、重绘历史始终留本地;只有点「同步到云端」才过桥,并写 fy_sync_op_log 轨迹。

同步流向模拟器(实时接 fy_sync_op_log)

选一个素材场景,右侧实时显示它会不会过桥、落到哪里、写不写同步轨迹。规则由后端的 fy_asset_sync_resolve() 给出,与真实引擎(训练送审 / Studio 同步)是同一套判定。选「投稿 / 拉取复用 / 八维术语 / 资源插件」这类 push / pull 场景时,会经由端点真实写入 fy_sync_op_log 一条轨迹(msg=simulator),与真实同步共用同一个写入口。

点上方任一场景,查看它的同步结论与实时轨迹。
最近同步轨迹(来自 fy_sync_op_log · 仅演示行)
尚无演示轨迹,选择一个 push / pull 场景试试。

说明:结论由真实规则函数与端点返回;push / pull 场景会真实写入一条 fy_sync_op_log 轨迹(标记 simulator,可在运营审计查到),本地草稿 / 收藏 / 上传等场景不写轨迹。若服务端不可达,面板回退为离线演示数据。

每一步都留痕:死信可追溯

会改变服务端状态的同步(投稿 / 八维术语)一律写 fy_sync_op_log(direction=push,status=ok/fail);失败的进入死信区,自动重试或人工补救。拉取复用 / 资源增量这类只读同步仅在确有增量时记录 pull 轨迹——日常空轮询不落库,避免审计表被刷爆。运营审计里可据此查到每一条素材的来龙去脉。

directionpush(桌面端 → 云端)或 pull(云端 → 桌面端)
entity被同步的表名,如 fa_terms / fa_content
statuspending → ok / fail / dead(失败进死信区)
created_at同步发生的 unix 时间戳,供对账

合规红线

仅 owned(自有)/ authorized(已授权)素材可入训。配置项 allow_sources 拦截未授权来源;采集与投稿走审核流(gate0 命中即短路)。未授权来源绝不进训练集——这条红线,网页端与桌面端共用,无一例外。

典型应用场景

网页端整理,桌面端精制

在网页端收藏、归类素材,桌面端拉取八维术语与复用产物后,做本地批量 OCR、矢量化与精细后期。

弱监督飞轮不重复

收藏=正向信号、分类=弱监督标签,两端共享同一条样本飞轮,不必在每端各整理一遍。

团队与企业资产沉淀

投稿过桥进入审核流与全局池,合规素材被所有用户消费;本地原图与草稿仍归个人,权责清晰。

常见问题

网页端整理的素材,桌面端还要再上传一次吗?

不需要。素材库 / 收藏 / 投稿等过桥项通过增量同步共享;桌面端只下载 hash 不符或缺失的部分,不重复传输。本地草稿则始终留本地,不会被动上传。

我的本地素材会被偷偷上传到云端吗?

不会。本地优先是硬原则:本地素材库原图、矢量草稿、重绘历史只留桌面端本机。只有你主动「投稿 / 同步」的项才过桥,且每条都写同步轨迹,明明白白。

同步失败了怎么办?

会改变服务端状态的同步(投稿 / 八维术语)一律写 fy_sync_op_log(direction=push,status=pending/ok/fail);失败的进入死信区(§25.3)可追溯,系统自动重试或人工补救,不会无声丢失。拉取复用 / 资源增量这类只读同步仅在确有增量时记录 pull 轨迹。

素材能用来训练吗?有什么红线?

仅 owned(自有)/ authorized(已授权)素材可入训,allow_sources 配置拦截未授权来源;采集 / 投稿走审核流。未授权来源绝不进训练集,守合规红线。

两端用的版本不一致会出问题吗?

同步契约带 contract_version 做版本治理:破环才会升版,老端兼容降级,三端对账一致,避免两端因版本错配导致同步异常。

核心优势

素材中心把「本地创作」与「云端协同」的边界讲清楚:你专注创作,同步与合规由系统兜底。

本地优先,原图不出本机

桌面端 Studio 的本地素材库、OCR 提取与矢量草稿都留在本机,只有「投稿 / 同步项」才过桥到云端,隐私与归属可控。

两端同步,死信可追溯

八维术语、复用产物、训练投稿按真实通道增量同步,每条操作写 fy_sync_op_log(push/pull、pending/ok/fail/dead),异常可追。

本地素材即训练候选

桌面端本地整理的弱标签素材直接成为 LoRA 训练候选,过桥投稿即进入审核流,创作与训练闭环顺畅。