万象-素材批量上传

SKILL效率
效率 未标注权限 许可证不明确
安装这个技能

把方案文本脱敏、打包并自动提交到知末网创作者中心,含合规检查与状态追踪。

一句话选型结论

按资料字段整理

万象-素材批量上传是效率类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类效率 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_de2353f3/omni-asset-upload
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

效率
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_de2353f3仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791671825
正文体量44.1 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
整理待办与日程

把零散任务收进清单,排出优先级。

批量处理重复任务

把固定动作做成模板,重复执行。

把流程写成清单

把口头流程整理成可复用的步骤。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在效率场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
万象-素材批量上传当前 未标注权限 未标注 未标注 未标注 有
Nano PDF 文档 联网访问 ClawHub 市场 424.9 万 OpenClaw 有
自动更新程序 浏览器控制 ClawHub 市场 296.4 万 OpenClaw 有
Gemini 助手 联网访问 ClawHub 市场 254.7 万 OpenClaw 有
word DOCX 文档 联网访问 ClawHub 市场 239.6 万 OpenClaw 有
Excel XLSX 前端 联网访问 ClawHub 市场 227.0 万 OpenClaw 有

SKILL.md 全文

44.1 KB
模型实际读到的说明书原文,来自技能仓库

> 作者 @zzzzzzzp(立意 · 判据 · 取舍) · 协作 多多 · AI 助手(检索 · 编码 · 核查)
> 版权 著作权归 @zzzzzzzp 所有(All Rights Reserved) · 版本 v1.3.0

✨ 两个不一样的地方

📈 它会成长 —— 带位次(三阶九位:百工 · 良工 · 营国)。升级不靠买,靠用:
每次真实使用与反馈都折算成经验,推动它升位。

🔁 经验回流 —— 默认不联网:只用一条最小事实(技能名/版本/时间)记在你本机,
不含任何对话内容、不含文件与身份。想让它回传,你在本机配一个收件地址即可;不配就一个字节都不发出。
「他山之石,可以攻玉」——《诗经·小雅·鹤鸣》。


万象-上传流水(L0 未习) —— 把方案文本脱敏、打包并自动提交到知末网创作者中心,含合规检查与状态追踪。


知末网(znzmo.com)方案文本批量上传 · 业务级技能手册

> 用途:让另一个 AI 看一遍即可独立完成「方案文本」类作品的批量上传。
> 所有带「实测」「官网」「seq=1 真实提交」标注的为已核实事实;带「需站内确认」「未公开」的为未核实项。


0. 快速上手(给任意 AI 模型 · 5 分钟接手)

> 本章专为「换一个模型来干这活」设计。本流水线零第三方依赖(Python 标准库 + CDP over WebSocket),
> 不绑定任何大模型、不需要任何 API key。任何模型读完本章 + 跑下面命令即可独立完成,不必重新踩坑。

最小可执行路径(单件上传)

$PY     = ~/.workbuddy/binaries/python/envs/default/Scripts/python.exe
$SCRIPTS = ~/.workbuddy/skills/omni-asset-upload/scripts

# ① 只读确认环境(浏览器调试端口 9333 + 登录态),并记下当前作品计数
$PY $SCRIPTS/verify_uploads.py

# ② 跑单件 —— 必须用后台运行,单件实测 15~20 分钟
#    不带 --yes:保留二次确认,提交前会停下等你确认(见步骤 5 检查点)
cd $SCRIPTS && $PY auto_fill.py --seq N --submit

# ③ 复核是否真的进系统(关键:别信脚本自己报的「提交成功」)
$PY $SCRIPTS/verify_uploads.py

必知坑(不知道必失败,详见第 5、11 节)

# 坑 一句话规避
1 后台窗口 → visibilityState='hidden' → 下拉/图片全部静默失效 用 Emulation.setFocusEmulationEnabled({enabled:true}),不是 Page.bringToFront
2 DOM.setFileInputFiles 把文件写进了 input,但 React 收不到 → 不上传 之后补派 change + input(bubbles:true)
3 复用上一件的残留表单;成功判定误含常驻导航词「作品管理」 每次强制重新导航拿干净表单;success_kw 只留回执词
4 提交按钮「禁用」只是 CSS class 带 Disabled(样式),DOM 属性 disabled=False 其实可点;旧逻辑误判为永久禁用、放弃点击 按钮可用判定以 DOM disabled 属性为准,超时后仍做强制点击兜底
5 toast「提交成功」是诱饵:AI 识别未完成时点提交就会冒,实际没提交;原脚本看到就 break 只点 1 次 → 没进系统 严禁以 toast 判成功;最多点 5 次、间隔 5s、只认「表单清空/按钮消失」;5 次后还表单在再等 30s 复核
6 单张配图上传偶发失败(同图某次 FAIL 另次 OK)→ 凑不满 6 张 → 提交按钮永久 disabled upload_text_images 已是「待传队列 + 多轮补传」(最多 4 轮、单张 12 次尝试);固定不稳页用 EXCLUDE_PAGES 剔除

完成判定(唯一可信标准)

  • ✅ verify_uploads.py 的「全部」计数 +1、「待审核」+1,且新增条目的品类标签与 manifest 吻合。
  • ❌ 绝不只看脚本日志 / 页面 toast 的「提交成功」——历史上多次误报(残留表单 / 常驻导航词 / toast 诱饵),必须复核平台计数。
  • ⚠ 「待审核」徽标计数偶尔与列表条数不一致 → 以逐卡片标签核对为准(upload-prep/probe_cards.py)。
  • ⚠ verify_uploads.py 的「待审核条目」列表有 bug(会把未通过条目也列进去),以顶部「全部/待审核/未通过」计数 + 新增待审核 ID 为准。

换模型 / 改脚本时的纪律

  1. 改完脚本先 py_compile 校验语法。
  2. 用只读探针验证修复生效(如 probe_dropdown.py 验下拉、probe_set_file.py 验图片上传),
    不要直接跑完整流程——一次全量要 20 分钟,失败成本太高。
  3. 探针里 connect_cdp() 返回的是 tuple (s, c),要写 s, c = connect_cdp()。

1. 适用场景 / 触发条件

何时调用本技能
- 一次性把一批「方案文本 PDF」上传到知末网创作者中心售卖(多为甲方委托景观方案、扩初、建议书)。
- 需要主动「脱敏」(真实甲方/项目名/事务所水印 → 虚拟名),降低公开传播第三方权益风险。
- 项目目录下已存在 upload-prep/ 与 manifest.json,且每件作品已具备:封面图 1 张 + 辅图 5~8 张(不与封面重复)+ 标签 + 分类 + 价格 + 协议。

触发词(任意一条即进入本技能)
- 「按计划上传第 N 件」「再传 X 件」「上传到知末」「重跑 seq N」
- 「上传 E:\整理上传文件夹\02 方案文本\ 里的方案」
- 用户给出某目录并要求「脱敏 + 打包 + 上传」

硬门槛:单账号须已完成「实名认证」,否则平台弹窗拦截、无法提交(平台硬规则,不可代码绕过)。


2. 前提确认清单

# 检查项 工具 / 命令 通过条件
1 浏览器已起 start_debug_edge.bat :9333 可连、tab 含 znzmo.com
2 登录态有效 scripts/probe_state.py(看页面状态)+ 浏览器控制台看 localStorage /creatorCenter/workManage 可进、无登录弹窗;精查时 localStorage.userInfo 含 accountId
3 账号已实名 访问 /creatorCenter/workManage 看「实名认证」标签 无「去认证」红字提示
4 Manifest 就绪 upload-prep/manifest.json 长度 ≥ N,含 seq/title/archive_path/source_pdf
5 配图已生成 upload-prep/fill_imgs/0N_p*.jpg 每个 seq 至少 6 张互不重复的真实页
6 源 PDF 存在 用户指定目录 文件可读、非纯扫描图(文本层可检索)

任一不通过的修复路径
- 浏览器未起 → 跑 start_debug_edge.bat
- 登录态空/被毒化 → skills/omni-web/scripts_qa/restore_session.py
- 账号未认证 → 告知用户手动去 znzmo.com 创作者中心实名,不可自动绕过
- Manifest 空 → 跑 scripts/prepare_upload.py
- 配图重复/不足 → 跑 scripts/extract_doc_images.py

环境常量(已验证)
- Python:~/.workbuddy/binaries/python/envs/default/Scripts/python.exe(记为 $PY)
- CDP 调试端口:9333;独立用户目录:~\.workbuddy\zhimo_browser_profile
- 项目工作根:<工作区>(脚本内 BASE_DIR,按需改)


3. 全业务流程(每步给可执行命令/操作)

步骤 0 · 账号认证

  • 手动:用户到 znzmo.com 创作者中心完成「身份证 + 银行卡」实名认证。
  • 验证:只能人工 —— 到 /creatorCenter/workManage 看「实名认证」标签,或控制台确认 localStorage.userInfo 含 accountId。(2026-09-22 更正:本库没有 probe_current_state.py,原「脚本代查」的说法不成立;现用 scripts/probe_state.py 看页面状态。)
  • ⚠ 此项只能人工,脚本检测到未认证会停机并报「请用户提供认证后账号」。

步骤 1 · 素材准备(脱敏 + 打包 + 配图抽取)

# ① 脱敏整批(真实标识→虚拟名,写入 desensitized/)
$PY scripts/desensitize.py
# 或单文件:$PY scripts/desensitize.py --src "E:\...\xxx.pdf"

# ② 一条龙:脱敏 → 打包 zip → 生成封面 → 写 manifest.json
$PY scripts/prepare_upload.py

# ③ 按 PDF 不同真实页抽 6 张互不重复图(4:3 / 1200x900 / JPEG)
$PY scripts/extract_doc_images.py --src <脱敏后PDF> --seq N --want 6
  • 脱敏仅改文本层,不处理位图内嵌入字(位图残留是已知边界,靠步骤 5 目视必查)。
  • 标题用显式虚拟名(不自动拼接,避免「云泽云澜云溪项目」怪名)。

> 🔴 检查点 · 打包完先自查一遍再往下走:后面上传的是 desensitized/ 里那一份,不是原件。
> 传之前做两件事:① 确认 zip 来自脱敏目录;② 打开抽 1~2 页目视看项目名/甲方名/设计公司名
> 是否已变成虚拟名。脱敏脚本只改文本层,印在位图上的字它管不到 —— 这一步漏了,后面全白做,
> 而且发出去就收不回来。

步骤 2 · 作品信息填写(脚本自动)

# 单件填表 + 提交(默认有二次确认)
$PY scripts/auto_fill.py --seq N --submit
# 跳过二次确认(慎用):加 --yes
# 仅填表不提交:去掉 --submit
# 不重填只点提交(当前页已是该 seq 表单):--submit-only

脚本自动完成:导航 /creatorCenter/upload → 选「方案文本」(radio value=20)/「原创文本」(value=0) → 上传 zip → 等表单 → 填领域/文本类型/设计阶段/分类/标签/价格/协议 → 上传 6 张配图 → 等 AI 识别 → 点提交 → 读提交信号。

已实测固定三选(来自 seq=1 真实提交):领域=景观 / 文本类型=设计方案 / 设计阶段=方案阶段。

步骤 3 · 分类与标签选择

  • 分类:三级级联 景观 / 居住区景观 / 示范区景观(或小区景观 / 商业综合体景观)。
  • 脚本用自研组件 .ClassifyInfo__classifyItemText___* 的 JS click;面板常驻一级网格,JS/真实鼠标均无法下钻激活二级时,失败不阻断——交平台 AI 按 zip 内容自动识别。
  • 标签:3~5 个中性词(景观方案/方案文本/居住区/示范区/商业景观/度假酒店/城市广场)。受控 antd Tag,必须用 keyDown+char(\n)+keyUp 完整序列才提交为 chip。

步骤 4 · 封面与预览图制作

  • 封面:脱敏后 PDF 首页渲染(prepare_upload.py 的 make_cover,PNG 1600 内缩略)。
  • 预览图(文本图片区):从 PDF 不同真实页取 6 张,4:3、长边 ≥1200px、JPEG quality=90。
  • 取图优先级:封面(第1页) → 总平面图(关键词:总平面/平面图/MasterPlan) → 效果图(关键词:效果图/鸟瞰/透视/人视/夜景/Rendering) → 兜底(图多字少页)。

步骤 5 · 提交

> 🔴 检查点 · 提交前必须停下(对外不可逆):提交是把作品发到公网平台的动作,撤下成本高。
> 点提交前逐条确认这三样,缺一条就不许提交:
> ① 脱敏已过(含位图内嵌字 —— 脚本只改文本层,位图残留必须目视查一遍);
> ② 网络可达已实测(站点能打开、登录态有效,不要假定);
> ③ 用户已明确确认本批要提交 —— "等用户回复"这一步不能跳。
> 顺带一条纪律:不要用 --yes(它跳过二次确认,等于把上面三条一起跳过)。

# 默认即带二次确认,直接用即可
$PY scripts/auto_fill.py --seq N --submit

提交前必做(脚本内置):
- wait_for_ai_complete(timeout=120):等「AI 智能识别」toast 消失 + 提交按钮解除 Disabled(识别中按钮点击无效)。
- close_blocking_modals(max_rounds=4):关「创作者通知/分成调整」公告 modal(遮挡提交按钮会把点击吞掉)。
- ensure_agreement_checked():协议须知 checkbox 多种手段轮番点,直到 checked===true(提交解禁前提)。
- 提交按钮非 <button>,是 div[class*=footerWrapperBtn],滚动后重取坐标、重试 3 次。

步骤 6 · 审核跟踪

  • 提交成功信号:workManage「待审核」+1;页面跳「我的作品」;toast 含「提交成功/审核中」。
  • 平台审核周期未公开,经验帖口径,站内观察为 1~3 个工作日(需站内确认)。
  • 失败处理:HR 结果回显校验错误 → 按 常见错误 表修复 → auto_fill.py --submit-only 重提。

步骤 7 · 上架后数据查看

  • 路径:创作者中心 → 作品管理 → 单件详情,看浏览/下载/收藏。
  • 排序入口(站内观察,已确认存在):首页/分类页有「最新」「热门」「精品」基础排序;「编推/推荐」流量位无任何公开出处,勿臆造。

步骤 8 · 收益结算

  • 结算逻辑、提现门槛、知币兑现金比例、分成比例官网未公开,需站内确认。
  • 操作:作品管理 → 收益/钱包 → 提现(具体入口以站内当前版本为准,不臆造)。
  • 每次成功提交后回填:accountId / 作品ID / 单价 / 提交时间 / 状态 写入 workbench.db 的 submissions 表(旧手动记录在 data/audit_log)。

4. 平台规则速查表

4.1 已核实规则(逐条标来源)

规则 内容 来源
资质 单账号须实名认证(身份证+银行卡),未认证无法提交 平台弹窗「去认证」实测
品类 方案文本 → 原创文本 路径(radio 20 / 0) auto_fill.py 实测
三选字段 领域=景观 / 文本类型=设计方案 / 设计阶段=方案阶段 seq=1 真实提交
主文件 zip 主文件,≤800MB(实测可传) auto_fill.py 实测
配图 3+ 张,实测 6 张;1200x900、4:3 JPEG extract_doc_images.py 实测
配图去重 不得重复(同图裁剪会报「请勿上传相同的图片」) 错误表实测
协议 协议须知须勾选,否则提交按钮 Disabled ensure_agreement_checked 实测
描述字段 当前表单「作品描述」字段已移除 auto_fill.py 2026-09-06 改版
权属 上传者保证权属、侵权自担;平台获全球范围免费/永久/非独占使用权及代为维权 协议 agreement.html 第 22-26 条
下架 违规/灌水/重复/广告/影响浏览,平台可删 协议 agreement.html 第 32 条

4.1.1 审核驳回口径(2026-09-09 实测,5/5 全驳回)

昨天提交的 5 件全部未通过。驳回原因是悬停 tooltip(不是弹窗)——
在「未通过」列表里 hover 卡片上的「查看未通过原因」才会显示:

.hant-tooltip →  未通过原因:
                 1:文件内容三分之二是设计说明或平面规划施工图,无参考意义

抓法:必须先 Emulation.setFocusEmulationEnabled,再用
Input.dispatchMouseEvent{type:"mouseMoved"} 悬停(click 无效),
且元素要先 scrollIntoView,否则视口外的卡片 hover 不到。

实测到的三类驳回理由与对策:

驳回理由 含义 对策
文件内容三分之二是设计说明或平面规划施工图,无参考意义 平台看整份 PDF 构成,非配图 选品阶段就要筛:先跑 analyze_content_mix.py,(说明+平面+施工)/总页数 ≥60% 直接换素材
图片与内容不符,请勿上传非文本类素材! 配图选到了非方案文本页 配图只取效果图/形象图版,排除设计说明、施工图、大样、剖面等页(extract_doc_images.KW_AVOID)
展示内容请勿上传相同图片 配图重复或高度相似 6 张必须来自不同真实页,不可从同一页裁剪

选品优先级(经验值):效果图占比越高越安全。
实测「杭州良渚展示区」84 页中 62 页效果图 → 风险占比 5%;
而「重庆水土示范区」47 页中 25 页施工类 → 风险占比 72%,必驳。

4.2 未核实 / 需站内确认

  • 创作者分成比例——未公开,需站内确认。
  • 提现门槛——未公开,需站内确认。
  • 知币兑现金比例——未公开,需站内确认。
  • 独家 / 首发激励政策——未公开,需站内确认。
  • 推荐/曝光机制——未公开;仅观察到「最新/热门/精品」排序入口,「编推」流量位无公开出处。
  • 是否仍有「金标 / 独家」勾选按钮——未实测,需站内确认。
  • 是否还有「作品描述」字段——当前表单已无,旧版本可能有,需站内确认。

4.3 旧文档(下载券体系)可能已废

  • 来源:css.znzmo.com/html/helpme.html(旧帮助页)。
  • 旧规则:模型 4 张图(1 主 3 附)、定价 0~5 券、券不可兑现金。
  • 状态:与现行「知币 / 现金」体系并存或更替关系不明——具体哪些旧规则仍有效、哪些已废,需站内确认,勿直接套用。
  • 本手册采用的现行口径(知币定价、6 张配图)以实测表单为准;若用户账号仍处于旧券体系,按站内实际表单字段执行。

5. 图片上传技术核心(五步法 · 2026-09-08 修订,不可省略)

知末文本图片槽位用原生 <input type=file>。直塞 DOM.setFileInputFiles、DataTransfer、拖拽、React fiber 调用全部失败。实测可行路径(旧版「三步法」漏了 ⓪ 和 ④,正是 2026-09-08 反复失败的根因):

⓪ Emulation.setFocusEmulationEnabled({enabled:true})        ← 前置,最易漏
   → 后台标签 / 后台窗口下 visibilityState='hidden',rAF 暂停、antd 不渲染,
     所有点击与下拉静默失效。
     ⚠ Page.bringToFront 不够:它只把标签在浏览器内提到最前,管不了
       **操作系统层面的窗口焦点**。必须靠焦点模拟才能真正回到 visible。
① Page.setInterceptFileChooserDialog({enabled:True})
   → 拦截原生文件选择框,避免点击挂起原生对话框
② JS 点击该槽位的可视上传盒 .modelImageUploadContent
   → 激活内部 input(不点击则 input 处于未激活态,槽位永远空)
③ DOM.setFileInputFiles({objectId: 该槽位 input 句柄, files:[path]})
   → 对该槽位「自己的」input 写文件(不是全局 file input)
④ Runtime.callFunctionOn 手动派发 change + input(bubbles:true)   ← 关键
   → ③ 只改了 files 集合,**React 合成事件收不到,平台不发起上传**。
     确诊手法:对同一 objectId 回读 this.files.length === 1(文件确实写入),
     但已传图数不变 —— 写进去了,React 不知道。补派事件后立刻上传。
  • ⓪②④ 缺一不可。
  • 槽位定位:不要用 content.children[idx] 固定下标(React 重渲染会重排/替换子节点,
    导致后段槽位「取不到 input 句柄 / FAIL」)。改用 _mark_next_empty():
    清旧标记 → 扫 modelImageContent.children 找第一个「无 img 且有 file input」的槽位 →
    打 data-af-target / data-af-box 标记 → 按标记点击与取句柄。
    也不要依赖脚本赋的 id(React 重渲染会丢 id,属性标记同理需在每次操作前重打)。
  • 槽位标签依次 封面 / 辅图1 / 辅图2 …(最多 11 个辅图位);
    上传后 slot innerText 被清空,不能用 startsWith(sel_label) 匹配。
  • 完成信号:文本图片区 .ModelImage__modelImageItemUploaded__* ≥ IMG_COUNT(=6,不是 3),
    且每张 <img> 有真实 https:// CDN src(不要看 antd message toast 文字——历史 toast 池化累积、永久命中)。
  • 单件全流程实测 15~20 分钟(19MB zip + 6 图 + AI 识别 5~10 分钟),
    wait_for_ai_complete 默认 240s;注意它会被调用两次(submit_step 内部还有一次),总时长可能翻倍。

6. 质量验收标准

硬验收(任一不达标 → 重跑或跳过该 seq)

  1. workManage「待审核」+1
  2. 作品标题 = manifest.json 的 title(虚拟名,非源 PDF 文件名)
  3. 配图 6 张互不重复(MD5 全不同)
  4. 标签 / 分类 / 价格均已填
  5. 协议已勾选
  6. zip ≤ 800 MB;单图 ≥ 1200x900(裁剪不足放大保底)
  7. 文本层无真名残留(pymupdf 全文搜索检查)
  8. 封面渲染图无真名 / 事务所水印(目视必查——最易栽跟头)

软验收

  • 单件全程 ≤ 4 分钟(zip 大 + AI 识别久时可达 6 分钟)
  • 提交按钮坐标自动重定位(随 antd 版本微调,不写死)
  • 遮挡 modal 自动关闭 ≤ 4 轮

7. 脱敏红线与决策记录机制

7.1 脱敏红线(2026-09-06 升级)

以下一律视为违规,即使不在文本层、不在文件名:
- 真人照片(含甲方/业主/施工方人员肖像)
- 真实姓名(自然人姓名、签字)
- 事务所 / 设计院水印、logo、图框署名
- 真实甲方企业名、真实项目地名(须走虚拟名映射)

> 位图内嵌字、水印无法自动处理,属已知边界——事前目视封面渲染图筛除,不靠自动脱敏兜底。

7.2 决策记录机制(强制)

  • 凡涉及「是否上传」「是否放宽脱敏」「是否改价/改分类」等关键决策,须 ≥3 次主动确认(脚本二次确认 + 用户明确回 yes + 决策时间戳落盘)。
  • 每次决策写入 upload-prep/decision_log.jsonl,字段:timestamp(ISO8601) | seq | decision | confirmed_by | evidence。
  • 未落盘、未达 3 次确认的,视为未完成,禁止进入提交。
  • 脱敏命中统计写入 desensitized.json / desensitize_report.json(源词→虚拟名→命中页数),可追溯。

8. 曝光与收益优化实操建议

> 以下为创作者经验共识,不臆造平台机制;未公开项标注来源,供用户自行验证。

  • 标题关键词:品类+地域虚拟名+阶段,如「云泽江畔示范区景观方案」「云港星汇商业广场景观方案」;避免堆砌,1~2 个核心词。
  • 标签组合:3~5 个,「景观方案 + 方案文本 + 细分品类(示范区/居住区/商业景观/度假酒店/城市广场)」;中性、可被检索。
  • 分类归属:选最细三级节点(示范区景观 / 小区景观 / 商业综合体景观),利于进对应频道。
  • 封面与效果图排版:封面用最有表现力的鸟瞰/人视效果图;预览图按「封面→总平→效果图序列」排列,首图决定点击率。
  • 定价:新号默认 20 知币(≈2 元)低档快速过审;经验帖口径后续可随下载量调价(具体调价策略需站内确认)。
  • 更新频率:经验帖口径建议保持稳定节奏(如每周 2~3 件),避免灌水(协议第 32 条可删)。
  • 系列化上传:同项目多阶段(方案/扩初/施工图)成系列,利于「精品」频道沉淀与复购。
  • 推荐机制:仅「最新/热门/精品」排序可见;「编推」无公开入口,不投入精力揣测。

9. 发布前检查清单

  • [ ] 账号已实名认证(无「去认证」提示)
  • [ ] 浏览器 9333 已连、tab 在 znzmo.com
  • [ ] manifest.json 含该 seq 的 title/category/tags/archive_path/cover_path
  • [ ] zip ≤ 800 MB,主文件为脱敏后 PDF
  • [ ] 6 张配图互不重复(MD5 不同)、≥1200x900、4:3 JPEG
  • [ ] 文本层 pypdf 检索无真名残留
  • [ ] 封面渲染图目视无真人照片/真实姓名/事务所水印
  • [ ] 决策记录已落盘(≥3 次确认、带时间戳)
  • [ ] 分类三级路径与品类匹配
  • [ ] 协议须知将勾选(脚本自动,提交前复核)
  • [ ] 提交前无遮挡 modal(脚本自动关)
  • [ ] 提交后 workManage「待审核」+1,回填 submissions 表

10. 标题 / 标签 / 封面模板(按品类)

品类 标题模板 标签(3~5) 封面建议
住宅示范区 {虚拟地}示范区景观方案 景观方案 / 方案文本 / 示范区 示范区入口/样板区人视效果图
居住大区 {虚拟地}居住区景观方案 景观方案 / 方案文本 / 居住区 大区中心花园鸟瞰
商业广场 {虚拟地}商业广场景观方案 景观方案 / 方案文本 / 商业景观 商业街/中庭人视
市政公园 {虚拟地}市政公园景观方案 景观方案 / 方案文本 / 市政公园 公园大场景鸟瞰
度假酒店 {虚拟地}度假酒店景观方案 景观方案 / 方案文本 / 度假酒店 泳池/客房区度假氛围图
  • 虚拟地取自 desensitize.py 的 PLACE 映射(上海→云泽、重庆→云岭…),不拼怪名。
  • 封面统一 PNG 1600 内缩略;预览图取 6 张不同真实页。

11. 常见错误与规避

症状 根因 规避
「提交按钮 disabled」无反应 图未上传完 / zip 未传完 / AI 识别中 强制重跑;先看 dbg_images5.py 查 slots=0 还是 >0;wait_for_ai_complete
「请勿上传相同的图片~」 多张图来自同一张封面裁剪 改用 extract_doc_images.py 按 PDF 不同真实页取值
「尊敬的用户,请实名认证」 账号未认证 让用户手动去创作者中心实名,不可代码绕过
「localStorage.userInfo=undefined」SPA 静默 abort 旧 session 被清空/反序列化失败 restore_session.py 把 cookie 反写回 localStorage 三键 + Page.reload
标签 chip 始终 0 受控 antd Tag,CDP 注入 Enter 不入 React 监听 用 keyDown+char(\n)+keyUp 完整序列;失败不强求,平台默认空也能提交
分类面板点了没反应 自研常驻一级网格,JS/鼠标难下钻 set_category_cascader 失败不阻断,交平台 AI 按 zip 识别
端口改了页面不刷新 SO_REUSEADDR 让 bind 测试失效 用 connect() 探测;同端口重复启动直接报错退出
cdp_min arguments 传参返回 None 标准库 WebSocket 不支持 large args 大 payload 内联进表达式字符串(f-string 花括号转义)
PDF 文本层零命中(图片型 PDF) 名称在位图里 看封面渲染图判断;这类不传
Edge --dump-dom 截 PDF 空白 Edge 无头不渲染 PDF PDF→图走 pymupdf,别截
rm -rf 类操作破坏资料 触发个人文件安全红线 任何写盘只走 shutil / Write 工具;绝不直接删
券 / 知币混用陷阱(新增) 旧帮助页是「下载券」体系(0~5 券、不可兑现金),与现行「知币/现金」并存或更替关系不明 不套用旧券规则;以实测表单字段(知币定价、6 张配图)为准;若账号落在旧体系,按站内实际字段执行,并标注「需站内确认」
2026-09-08 新增 · 下拉/图片全部静默失效 后台标签 + 后台窗口,visibilityState='hidden',rAF 暂停、antd 不渲染 Page.bringToFront 不够;用 Emulation.setFocusEmulationEnabled({enabled:true}),并按 visibilityState 校验;每次导航后要重新施加
2026-09-08 新增 · setFileInputFiles 成功但图数不变 文件写进了 input,但 React 合成事件没收到,平台不发起上传 补派 change + input(bubbles:true)。判定依据:对同一 objectId 回读 this.files.length===1 但图数不变
2026-09-08 新增 · 后段槽位「取不到 input 句柄 / FAIL」 content.children[idx] 固定下标错位;脚本赋的 id 被 React 重渲染丢弃 用 _mark_next_empty():data 属性标记「下一个空槽位」,每次操作前重打标记
2026-09-08 新增 · 报「提交成功」但作品没进系统 ① 复用了上一件的残留表单 ② 成功判定含常驻导航词「作品管理/我的作品」(任何页面都有) ① 每次强制重新导航拿干净表单 ② success_kw 只留回执词 + URL 跳 workManage 信号
2026-09-08 新增 · 待审核计数与列表条数不一致 平台徽标计数滞后 / 列表混入非待审核项 以逐卡片标签核对为准(脚本 probe_cards.py),别只看计数
2026-09-08 新增 · 分类被平台 AI 改掉 平台 AI auto-classification 优先于脚本下拉选择 已知现象(seq2→其他旅游度假、seq3→小区景观、seq5→商业广场景观);纠偏需创作者中心编辑权限
2026-09-08 新增 · 文本层残留 Aedas / SOM 等英文名 脱敏器词表只有中文本土房企/地名,对英文事务所名失明 desensitize.py 已加 FIRM 词表;上传前仍须正则全量扫 PDF 文本层确认
2026-09-08 新增 · 探针 c.call() 抛 AttributeError: 'tuple' object ... connect_cdp() 返回的是 tuple (s, c),不是单个 CDP 对象 写 s, c = connect_cdp()。注意 bring_to_front 内部 try/except 会吞掉该异常,表现像「焦点模拟失败」,极易误判方向
2026-09-09 新增 · 日志报 submit_btn_disabled 但平台计数已 +1 提交按钮「禁用」只是 CSS class 带 Disabled(样式标记),DOM 属性 disabled=False 实际可点;脚本曾用 !!el.disabled \|\| /Disabled/.test(cls) 误判为永久禁用、直接放弃点击 wait_for_ai_complete 与提交循环改为以 DOM disabled 属性为准(domDisabled);超时后仍做「强制坐标点击 + 判定表单是否清空」兜底。带水印图 AI 识别常需 >480s,按钮等待已加长到 720s
2026-09-09 新增 · 报「提交成功」但平台计数没 +1(假成功) 价格下拉偶发打不开 → 价格缺失 → 后端拒收;但页面 toast 仍显示「提交成功」,脚本误判为成功 ① set_price_if_available 改为 5 次重试 + ArrowDown 方向键兜底,价格必选上;② 价格选不上直接 [FATAL] 中断提交,不再白跑;③ 成功判定收紧:必须跳转到 workManage(作品管理页)才算真成功,仅 toast「提交成功」但仍是上传页判为「不确定/疑似假成功」,强制靠平台计数复核
2026-09-09 新增 · 价格下拉偶发打不开 antd Select 对点击时机敏感,单次点击常漏开,导致价格缺失连锁失败 set_price_if_available 重试 5 次 + ArrowDown 兜底;选不上则中断提交
2026-09-09 新增 · toast「提交成功」是诱饵,点 1 次就停 → 没进系统 在 AI 识别未完成时点提交,平台会冒「提交成功」toast,但实际未提交;原脚本看到该 toast 就 break 只点 1 次。对照:toast 为「AI智能识别图片中」时不 break、Retry 3 次反而进了系统 提交点击循环严禁以 toast 含「成功」为成功信号;只认「表单清空 / 提交按钮消失」。改为最多点 5 次、每次间隔 5s、全程不 break;5 次后若表单仍在,再等 30s 复核(平台常在识别完成后才真正收下提交,前几次点击被排队)。seq15 即因 1 次点击被此诱饵坑掉,改后重跑
2026-09-09 新增 · 单张图上传偶发失败 → 凑不满 6 张 → 提交按钮永久 disabled 配图上传是随机失败(同一张图某次 FAIL、另次 OK,如 seq12 p016、seq15 p017),原逻辑每张只重试 3 次就放弃,导致槽位永远空、按钮禁灰 upload_text_images 改为「待传队列 + 多轮补传」:最多 4 轮,每轮把失败图滚入下一轮,单张最多 12 次尝试;同时:某张图上传失败且槽位卡死时直接 [FATAL] 快速失败(不再硬等 30 分钟)。固定不稳页用 EXCLUDE_PAGES(如 seq12 剔除 p16),随机失败用多轮补传
2026-09-09 铁律 · 日志信号不可信,平台计数 +1 才是唯一真相 seq12/seq14 日志报「失败/不确定」但计数都 +1 进了待审核;seq15 日志报「提交成功」但计数没 +1 没进系统。脚本/页面 toast 都不可靠 每次上传结束必跑 verify_uploads.py 只读探针:以「全部计数 +1 且出现新待审核条目(ID)」为成功判据。脚本内部 success/uncertain/fail 仅供调试,不作为结论
2026-09-09 根因 · 平台在 AI 识别完成前彻底忽略提交点击 连 live CDP 探针实测:表单就绪、按钮 disabled=False、JS 直点 + 坐标点 5 次,60s 内表单纹丝不动(URL 不变、hasForm 不变)。判定「可点」的 DOM disabled=False 只是必要非充分条件——真正闸门是 AI 识别完成(busy==0)。识别没完就点 = 纯浪费(seq14 蒙进、seq15 连点 5 次都没进,全看运气) submit_step 开头先清陈旧 toast(ant-message-notice 多次失败会堆积「AI智能识别图片中」旧 toast,让 busy 虚高),再 wait_for_ai_complete(timeout=900) 以 busy==0(无「AI智能识别」类 toast)为闸门,没完不点。带水印/大图识别常需 >480s,最长等 900s。该修复后重跑 seq15
2026-09-09 已知非阻塞 · 价格下拉选了不生效(默认 4 元) 脚本点 20知币(2元) 但平台表单显示 40知币(4元),下拉选择未真正写入;seq11/12/14 待审核全是 4 元印证 暂不影响入审(只是定价偏低/默认),待后续修 set_price_if_available 的写入方式
2026-09-09 终验 · uncertain/click_no_effect 连续两次证实为误报 知末上传页提交成功后表单原地保留(不跳 workManage、提交按钮也不消失),脚本「表单仍在=失败」判定彻底失效。seq15(第4次重跑)、seq16(第3次重跑)均在此报错下实际已进系统(计数 34→35、35→36,各出现新待审核 ID) 铁律:脚本返回 uncertain / click_no_effect 时,一律以 verify_uploads.py 复核为准,绝不据此重跑。当日 seq16 因此白跑了 2 次完整 17 分钟重传。后续流程改为:每 seq 跑一次 → 立即跑 verify_uploads.py → 计数 +1 即收工,不再看脚本结论
2026-09-09 抓「未通过原因」tooltip 串味坑 驳回原因在卡片 hover 的 .ant-tooltip 里(非弹窗,须 mouseMoved 悬停+scrollIntoView)。旧 tooltip 不消失,若读 querySelectorAll(&#x27;.ant-tooltip&#x27;)[last] 或 [first] 会读到上一条残留原因,导致 5 件原因被误判为「全相同 / 错配」 用 get_reasons_strict.py:逐条先 scrollIntoView 滚入视口→取该按钮最新坐标→悬停→只取中心距按钮 <260px 的 tooltip(按位置去串味)。已抓到 5 件真实各不相同的原因:内容构成 / 图文不符 / 重复图×2 / 图片质量差。复盘脚本 read_reject_tooltips.py 用 [last] 是 bug 源,勿复用
2026-09-09 驳回原因归两类,红线(版权/水印)本次非主因 5 件驳回 = ①主文件内容构成(文字/图纸页占比高,无参考意义)②配图质量/合规(质量差、重复、图文不符)。无一条因位图真实标识/水印/版权 调整聚焦:选品优先「效果图密集」项目 + 上传前 analyze_content_mix.py 估占比 + 配图门禁(md5 去重、宽≥1200px、禁照片);版权红线仍是上传前硬约束但非本次被驳点
2026-09-10 修正 · 封面问题是系统性硬伤(被驳主因之一) 隔夜全驳(10 件全未通过)证实:seq15/16 被驳因「展示图封面含乱码」(封面渲染选错页/脱敏占位符「??」变乱码);其余封面含位图级真实标识(JTL/Aedas/丰景/Weimar logo、重庆龙湖/中海海曙/天津/杭州良渚/郑州 等地名、真人肖像)。用户 3 次确认「按现状继续、不处理封面」,但事实证明其后果 = 直接被驳 不修复封面,只调内容/配图必定再驳。封面必须用「无文字/无真实标识的纯效果图页」重新生成;封面含真实项目名/公司logo/人像 = 红线硬伤,上传前必修
2026-09-10 修正 · "本网站已经存在此模型" 是硬驳回,调图无效 seq11/12/14 被驳原因全是「本网站已经存在此模型,模型ID:xxx」——平台已有同模型,与配图/内容无关。调图、裁 PDF、重传全无效 这类作品须:①放弃重传;或 ②换「平台无重复、内容合规」的新素材;或 ③改名+改内容让平台判为新模型。切勿在重复模型上反复重试
2026-09-10 确诊 · 已存在「未通过」作品会静默拦截重传 seq1 重传(已调整配图)与 seq15 原图重传均报 uncertain/click_no_effect,verify_uploads.py 复核计数 36→36 未变。表现高度一致:表单/配图/AI 识别全 OK、提交按钮可见且 disabled=False、点击 8 次 + 3 波补点均无报错 toast,但表单始终在 确诊:平台对已有「未通过」记录的同名作品做了重传拦截。必须先删除/下架原未通过作品,再重新上传。单纯换图/换 PDF 无法绕过;uncertain/click_no_effect 时须用 verify_uploads.py 复核计数

12. 隐含约定

命名

  • 文件名前缀 0N_,N = manifest seq(02d 格式)。
  • 配图:{seq:02d}_p{pno:03d}.jpg(pno = 1-based PDF 页号)。
  • zip:用 manifest.title 经文件名清洗(去掉 \/:*?&quot;&lt;&gt;|)。
  • 脱敏后 PDF 与 zip 同名(仅扩展名不同),分置 desensitized/ 与 zips/。

目录组织

upload-prep/
├── manifest.json          # 每件:seq/title/category/tags/archive_path/cover_path/source_pdf/desensitized_pdf
├── desensitized/          # 脱敏后 PDF
├── zips/                  # 同名压缩包(&lt;800MB)
├── fill_imgs/             # 配图 6 张/件(互不重复,1200x900)
├── screenshots/           # 填表完成截图(debug)
├── shots/                 # 临时 debug 截图(可清)
├── sigs/                  # 自动填写/提交 flag
├── desensitize_report.json# 脱敏命中统计
└── decision_log.jsonl     # 关键决策时间戳落盘

输出格式

  • manifest.json:JSON list,ensure_ascii=False,UTF-8,indent=2。
  • 配图:JPEG,quality=90,optimize=True;≥1200x900;4:3。
  • 脱敏 PDF:保留矢量图,仅 add_redact_annot + apply_redactions 改文本(images=PDF_REDACT_IMAGE_NONE)。

详略默认值

  • 领域=景观 / 文本类型=设计方案 / 设计阶段=方案阶段(固定三选)。
  • 标签:3~5 个中性词(见 §10)。
  • 分类:固定三段式 景观/居住区景观/示范区景观、景观/居住区景观/小区景观、景观/商业景观/商业综合体景观。
  • 价格:默认 20 知币(≈2 元)最低档过审;用户认可后人工调价。
  • 描述:空(平台字段已无;不写)。

13. 复用触发与待人工确认项

默认调用方式

当用户说「上传知末 / 继续传 / 再传 N 件 / 按计划跑」时,直接进入标准步骤:
1. 跑 §2 前提确认 → 不通过就修,不问用户
2. 默认 auto_fill.py --seq N --submit(有二次确认);批量 for s in ...; do $PY auto_fill.py --seq $s --submit; done
3. 完成报告:①seq ②workManage 验证结果 ③耗时

会主动询问的只有:账号未实名(必须人工);源文件夹不存在 / 选件清单变更;用户主动指定价格、标题、标签。

需用户确认的策略(5 项)

  1. 配图规则:当前固定 6 张。是否改「封面 1 + 总平 1 + 效果图 4~6」按需生成?
  2. 价格档:当前固定 20 知币。是否按品类分档(住宅/商业/度假)?
  3. 批量上限:单账号每日上传上限未测,是否做节流/排队?
  4. 跨账号:当前绑定单一 accountId=20171803132129;切账号改 manifest 字段还是运行时注入?
  5. 金标/独家勾选:当前未点;是否加?(该功能是否存在需站内确认)

默认按 §12 详略默认值执行;仅用户主动提及上述任一项才调整。


常见误用与常见问题(FAQ)

常见误用(反模式)

误用 后果 正解
直接跑完整流程 一次全量要 20 分钟,失败成本太高 不要直接跑完整流程 —— 分步跑、逐步验证
只看脚本日志或页面 toast 的「提交成功」 历史上多次误报(残留表单/常驻导航词/toast 诱饵) 必须复核平台计数,不能只信提示
用 content.children[idx] 固定下标定位槽位 React 重渲染会重排/替换子节点 不要用固定下标
依赖脚本赋的 id React 重渲染会丢 id 属性标记需在每次操作前重打
未落盘、未达 3 次确认就进入提交 视为未完成 未落盘、未达 3 次确认的,视为未完成,禁止进入提交

常见问题

  • Q:提交失败怎么办? A:HR 结果回显校验错误 → 按「常见错误」表修复 → auto_fill.py --submit-only 重提。
  • Q:图片上传有坑吗? A:有,见「5. 图片上传技术核心(五步法)」。
  • Q:怎么算达标? A:见「6. 质量验收标准」—— 硬验收任一不达标 → 重跑或跳过该 seq;另有软验收。
  • Q:素材要先做什么? A:步骤 1 素材准备(脱敏 + 打包 + 配图抽取);红线见「7.1 脱敏红线」,留痕见「7.2 决策记录机制」。
  • Q:平台规则以哪份为准? A:以「4.1 已核实规则(逐条标来源)」为准;「4.2 未核实/需站内确认」与「4.3 旧文档(下载券体系)可能已废」不得当依据。
  • Q:上架后怎么看收益? A:步骤 7 上架后数据查看 → 步骤 8 收益结算。

附录 A · 脚本命令速查

脚本 命令 作用
desensitize.py $PY scripts/desensitize.py [--src 路径] 文本层真实标识→虚拟名,输出 desensitize_report.json
prepare_upload.py $PY scripts/prepare_upload.py 脱敏→打包 zip→生成封面→写 manifest.json(按内置 PLAN 清单)
extract_doc_images.py $PY scripts/extract_doc_images.py --src &lt;PDF&gt; --seq N --want 6 按不同真实页抽 6 张 4:3/1200x900 JPEG
auto_fill.py $PY scripts/auto_fill.py --seq N [--submit] [--yes] [--submit-only] [--no-upload] CDP 自动填表 + 配图 + 提交

auto_fill.py 参数
- --seq N:指定作品序号(必填)。
- --submit:填完表点「提交审核」(默认不点)。
- --yes:跳过提交二次确认(慎用)。
- --submit-only:不重填,只点提交(当前页已是该 seq 表单)。
- --no-upload:不上传 zip,仅填表(假设已在发布页)。

关键类/函数(脚本内,勿随意改)
- upload_text_images():图片三步法实现(§5)。
- wait_for_ai_complete() / close_blocking_modals() / ensure_agreement_checked():提交前置三关。
- set_category_cascader() / set_tags() / set_price_if_available():分类/标签/价格填写。
- category_for(item):按 subdir 映射三级分类路径。

常见问题

5 问
答案由本站依据条目字段整理
万象-素材批量上传怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_de2353f3/omni-asset-upload。安装方式为未标注。装完刷新技能列表或重开客户端。

万象-素材批量上传支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

万象-素材批量上传权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

万象-素材批量上传收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

万象-素材批量上传用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。