@ai-welopc/opc-content-factory 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -0
- package/bin/opc-content-factory.js +74 -0
- package/package-manifest.json +39 -0
- package/package.json +37 -0
- package/skill/SKILL.md +106 -0
- package/skill/agents/openai.yaml +7 -0
- package/skill/assets/scene-package/article_preview_template.html +30 -0
- package/skill/assets/scene-package/package_manifest.json +25 -0
- package/skill/assets/scene-package/wechat_draft.env.example +6 -0
- package/skill/assets/scene-package/wechat_draft_template.html +49 -0
- package/skill/references/image-deconstruction.md +85 -0
- package/skill/references/methodology.md +77 -0
- package/skill/references/mp-extraction-and-draft.md +92 -0
- package/skill/references/output-spec.md +102 -0
- package/skill/references/wechat-content-tone.md +89 -0
- package/skill/scripts/create_article_workspace.py +110 -0
- package/skill/scripts/extract_mp_article.py +207 -0
- package/skill/scripts/push_wechat_draft.py +240 -0
package/README.md
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# OPC 内容工厂
|
|
2
|
+
|
|
3
|
+
这是 WelOPC 的 `opc-content-factory` 场景包,用于把公众号链接、文章截图、商品图、工作流 demo 或 AI 视频案例拆解成可发布的中文图文内容包。
|
|
4
|
+
|
|
5
|
+
默认输出 HTML 审稿页、公众号草稿箱导入文件、配图脚本、提示词模板、图片/媒体资源目录和草稿箱 API dry-run payload。
|
|
6
|
+
|
|
7
|
+
## 安装
|
|
8
|
+
|
|
9
|
+
平台安装口径:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
npx @ai-welopc/cli add opc-content-factory
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
独立 npx 入口:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npx @ai-welopc/opc-content-factory init "女装带货 OPC 文章" --root ./articles
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## 命令
|
|
22
|
+
|
|
23
|
+
创建标准文章工作区:
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
opc-content-factory init "女装带货 OPC 文章" --root ./articles
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
提取公众号文章:
|
|
30
|
+
|
|
31
|
+
```bash
|
|
32
|
+
opc-content-factory extract "https://mp.weixin.qq.com/s/..." --out ./articles/demo/source
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
生成公众号草稿箱 dry-run payload:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
opc-content-factory push-draft --title "标题" --digest "摘要" --html-file ./wechat_draft.html --cover-image ./cover.png --out ./draft/wechat_draft_payload.json
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
查看打包后的 Skill 路径:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
opc-content-factory skill-path
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## 包含内容
|
|
48
|
+
|
|
49
|
+
- `skill/SKILL.md`:内容工厂工作流说明。
|
|
50
|
+
- `skill/references/`:公众号提取、图片反推、输出规范、内容方法论。
|
|
51
|
+
- `skill/scripts/`:工作区创建、公众号提取、草稿箱导入脚本。
|
|
52
|
+
- `skill/assets/scene-package/`:HTML 模板、草稿箱 env 示例、场景包清单。
|
|
53
|
+
- `package-manifest.json`:官网和安装器可读取的场景包元数据。
|
|
54
|
+
|
|
55
|
+
## 边界
|
|
56
|
+
|
|
57
|
+
这个包只负责内容生产、审稿和草稿箱准备;不自动发布、不群发、不输出密钥、Cookie、token 或后台敏感数据。
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
import { spawnSync } from "node:child_process";
|
|
4
|
+
import { fileURLToPath } from "node:url";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
|
|
7
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
8
|
+
const packageRoot = path.resolve(__dirname, "..");
|
|
9
|
+
const skillRoot = path.join(packageRoot, "skill");
|
|
10
|
+
|
|
11
|
+
const HELP = `OPC 内容工厂
|
|
12
|
+
|
|
13
|
+
用法:
|
|
14
|
+
opc-content-factory init "文章标题" --root ./articles
|
|
15
|
+
opc-content-factory extract "https://mp.weixin.qq.com/s/..." --out ./articles/demo/source
|
|
16
|
+
opc-content-factory push-draft --title "标题" --digest "摘要" --html-file ./wechat_draft.html --cover-image ./cover.png --out ./draft/wechat_draft_payload.json
|
|
17
|
+
opc-content-factory skill-path
|
|
18
|
+
|
|
19
|
+
推荐平台安装:
|
|
20
|
+
npx @ai-welopc/cli add opc-content-factory
|
|
21
|
+
|
|
22
|
+
独立运行:
|
|
23
|
+
npx @ai-welopc/opc-content-factory init "女装带货 OPC 文章" --root ./articles
|
|
24
|
+
`;
|
|
25
|
+
|
|
26
|
+
function runPython(scriptName, args) {
|
|
27
|
+
const scriptPath = path.join(skillRoot, "scripts", scriptName);
|
|
28
|
+
const candidates = process.platform === "win32" ? ["python", "py"] : ["python3", "python"];
|
|
29
|
+
let lastError = "";
|
|
30
|
+
|
|
31
|
+
for (const executable of candidates) {
|
|
32
|
+
const result = spawnSync(executable, [scriptPath, ...args], {
|
|
33
|
+
stdio: "inherit",
|
|
34
|
+
shell: false,
|
|
35
|
+
});
|
|
36
|
+
if (result.error) {
|
|
37
|
+
lastError = result.error.message;
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
process.exit(result.status ?? 0);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
console.error(`未找到可用 Python 运行时,无法执行 ${scriptName}。${lastError}`);
|
|
44
|
+
process.exit(1);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const argv = process.argv.slice(2);
|
|
48
|
+
const command = argv[0];
|
|
49
|
+
|
|
50
|
+
if (!command || command === "--help" || command === "-h" || command === "help") {
|
|
51
|
+
console.log(HELP);
|
|
52
|
+
process.exit(0);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
if (command === "skill-path") {
|
|
56
|
+
console.log(skillRoot);
|
|
57
|
+
process.exit(0);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
if (command === "init") {
|
|
61
|
+
runPython("create_article_workspace.py", argv.slice(1));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
if (command === "extract") {
|
|
65
|
+
runPython("extract_mp_article.py", argv.slice(1));
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (command === "push-draft") {
|
|
69
|
+
runPython("push_wechat_draft.py", argv.slice(1));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
console.error(`未知命令:${command}`);
|
|
73
|
+
console.error(HELP);
|
|
74
|
+
process.exit(1);
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "opc-content-factory",
|
|
3
|
+
"name": "OPC 内容工厂",
|
|
4
|
+
"packageName": "@ai-welopc/opc-content-factory",
|
|
5
|
+
"version": "0.1.0",
|
|
6
|
+
"listedAt": "2026-05-20",
|
|
7
|
+
"category": "公众号内容",
|
|
8
|
+
"installCommand": "npx @ai-welopc/cli add opc-content-factory",
|
|
9
|
+
"directNpxCommand": "npx @ai-welopc/opc-content-factory init \"女装带货 OPC 文章\" --root ./articles",
|
|
10
|
+
"summary": "从公众号链接、商品图、工作流 demo 或文章截图出发,拆解内容与图片,反推提示词,生成配图脚本、HTML 审稿页和公众号草稿箱导入准备文件。",
|
|
11
|
+
"bundle": {
|
|
12
|
+
"skill": "skill/SKILL.md",
|
|
13
|
+
"references": "skill/references/",
|
|
14
|
+
"scripts": "skill/scripts/",
|
|
15
|
+
"assets": "skill/assets/",
|
|
16
|
+
"agentConfig": "skill/agents/openai.yaml"
|
|
17
|
+
},
|
|
18
|
+
"outputs": [
|
|
19
|
+
"article_preview.html",
|
|
20
|
+
"wechat_draft.html",
|
|
21
|
+
"draft/wechat_draft_payload.json",
|
|
22
|
+
"prompts/article_image_prompts.md",
|
|
23
|
+
"images/",
|
|
24
|
+
"media/"
|
|
25
|
+
],
|
|
26
|
+
"capabilities": [
|
|
27
|
+
"公众号链接自动提取",
|
|
28
|
+
"图片理解与提示词反推",
|
|
29
|
+
"公众号格式与内容框架",
|
|
30
|
+
"文章配图脚本",
|
|
31
|
+
"HTML 主交付",
|
|
32
|
+
"公众号草稿箱 dry-run"
|
|
33
|
+
],
|
|
34
|
+
"safetyBoundary": [
|
|
35
|
+
"只预留或创建公众号草稿箱,不自动发布、不群发",
|
|
36
|
+
"不输出密钥、Cookie、token 或后台敏感数据",
|
|
37
|
+
"公开内容避免旧平台品牌名、水印和真实第三方 logo"
|
|
38
|
+
]
|
|
39
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ai-welopc/opc-content-factory",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "WelOPC OPC content factory scene pack for WeChat article production, image deconstruction, prompt reverse engineering, and draft import preparation.",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"bin": {
|
|
7
|
+
"opc-content-factory": "bin/opc-content-factory.js"
|
|
8
|
+
},
|
|
9
|
+
"files": [
|
|
10
|
+
"bin/",
|
|
11
|
+
"skill/",
|
|
12
|
+
"package-manifest.json",
|
|
13
|
+
"README.md"
|
|
14
|
+
],
|
|
15
|
+
"keywords": [
|
|
16
|
+
"welopc",
|
|
17
|
+
"opc",
|
|
18
|
+
"scene-pack",
|
|
19
|
+
"wechat",
|
|
20
|
+
"content-factory",
|
|
21
|
+
"prompt-engineering"
|
|
22
|
+
],
|
|
23
|
+
"author": "WelOPC",
|
|
24
|
+
"license": "MIT",
|
|
25
|
+
"publishConfig": {
|
|
26
|
+
"access": "public",
|
|
27
|
+
"registry": "https://registry.npmjs.org/"
|
|
28
|
+
},
|
|
29
|
+
"engines": {
|
|
30
|
+
"node": ">=18"
|
|
31
|
+
},
|
|
32
|
+
"scripts": {
|
|
33
|
+
"smoke": "node ./bin/opc-content-factory.js --help",
|
|
34
|
+
"pack:dry": "npm pack --dry-run",
|
|
35
|
+
"publish:dry": "npm publish --access public --dry-run"
|
|
36
|
+
}
|
|
37
|
+
}
|
package/skill/SKILL.md
ADDED
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: opc-content-factory
|
|
3
|
+
description: 用于中文 OPC 内容生产:用户给出公众号链接、公众号截图、文章图片、商品图、工作流 demo、AI 视频案例,或要求拆解内容图片、反推提示词、生成公众号 HTML 审稿页、配图脚本、沉淀方法论、打包场景资源、预留或调用公众号草稿箱 API 时使用。尤其适用于女装带货、商品图到试穿视频、AI 视频、一人公司内容生产。
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# OPC 内容工厂
|
|
7
|
+
|
|
8
|
+
## 概览
|
|
9
|
+
|
|
10
|
+
这个 Skill 用来把原始公众号链接、文章截图、图片素材、项目产物,转成一篇可发布的中文公众号长文,并配套生成图片提示词、文章配图、可复用提示词模板、本地 HTML 审稿页和公众号草稿箱导入准备文件。
|
|
11
|
+
|
|
12
|
+
默认立场是实战型 OPC:解释一个人如何把混乱素材变成可重复的内容生产系统。用户要求公开流程时,不只写故事,要把工作流、失败点、提示词、脚本和复盘逻辑都摊开。
|
|
13
|
+
|
|
14
|
+
## 默认交付物
|
|
15
|
+
|
|
16
|
+
不要只交付 Markdown。HTML 始终作为主交付,Markdown 只作为辅助源文件或归档:
|
|
17
|
+
|
|
18
|
+
- `article_preview.html`:图文并茂的本地审稿页。
|
|
19
|
+
- `wechat_draft.html`:公众号草稿箱版本,使用公众号编辑器友好的简单结构和行内样式。
|
|
20
|
+
- `draft/wechat_draft_payload.json`:草稿箱 API dry-run 请求预览或执行结果。
|
|
21
|
+
- `images/`:文章配图、生图结果、案例截图。
|
|
22
|
+
- `media/`:文章中使用的视频、音频样例或剪辑。
|
|
23
|
+
- `prompts/article_image_prompts.md`:配图插入位置、配图脚本、原生生图提示词。
|
|
24
|
+
- 可选 `.md`:只在需要二次编辑时作为辅助版本。
|
|
25
|
+
|
|
26
|
+
## 工作流
|
|
27
|
+
|
|
28
|
+
1. **读取起点素材**
|
|
29
|
+
- 对公众号链接,默认必须先自动提取。优先运行 `scripts/extract_mp_article.py`,抓取标题、作者、正文 HTML、正文纯文本、封面、正文图片 URL 和元数据。
|
|
30
|
+
- 提取逻辑:直连 `mp.weixin.qq.com`,解析 `#js_content`、`msg_title`、`msg_desc`、`msg_cdn_url`、`ct` 等字段,把图片的 `data-src` / `src` 统一收集到 `source/images.json`。
|
|
31
|
+
- 如果直接请求异常,不要写“页面无法提取”。要记录 HTTP 状态、错误信息、页面片段和下一步方案,再考虑浏览器截图、Cookie 或用户补图。
|
|
32
|
+
- 用户语音转文字有错词时,按上下文纠正后再写。
|
|
33
|
+
|
|
34
|
+
2. **拆解内容和图片**
|
|
35
|
+
- 提取标题钩子、目标读者、论点链路、章节节奏、行动引导、截图和视觉母题。
|
|
36
|
+
- 对每张图片记录:文章功能、主体、构图、色彩、文字、信息密度、可能的提示词结构。
|
|
37
|
+
- 图片反推是核心任务时,读取 `references/image-deconstruction.md`。
|
|
38
|
+
- 需要复刻公众号调性、解释为什么文章被推荐/转发时,读取 `references/wechat-content-tone.md`。
|
|
39
|
+
|
|
40
|
+
3. **映射成 OPC 方法论**
|
|
41
|
+
- 把案例改写成可复用的一人公司生产系统。
|
|
42
|
+
- 优先使用具体链路:原始素材 -> 提示词 -> 生成资产 -> 复盘 -> 修订 -> 模板。
|
|
43
|
+
- 女装带货或 AI 视频任务,使用 `references/methodology.md` 里的 7 层资产链路。
|
|
44
|
+
- 写公众号长文时,先读取 `references/wechat-content-tone.md`,把文章格式、公众号调性、内容结构和可复用方法框架定下来。
|
|
45
|
+
|
|
46
|
+
4. **写公众号文章**
|
|
47
|
+
- 标题要有张力和明确收益,不写空泛口号。
|
|
48
|
+
- 正文要写清楚:做成了什么、哪里失败、如何解决、读者可以复用什么。
|
|
49
|
+
- 用户要求公开流程时,把提示词和工作流细节放进正文;长提示词放到 HTML 折叠区。
|
|
50
|
+
- 除非用户明确要求,否则不要出现旧平台品牌名、第三方平台水印或来源品牌名。
|
|
51
|
+
|
|
52
|
+
5. **规划配图**
|
|
53
|
+
- 默认生成 4-5 张文章配图:封面图、流程图、避坑清单、提示词模板卡、案例证据图。
|
|
54
|
+
- 实际生图使用当前可用的图片生成能力,优先内置 `image_gen` / `imagegen` Skill。
|
|
55
|
+
- 按任务选择生图模式:
|
|
56
|
+
- 原生生图:只用文字提示词生成封面、流程图、清单卡。
|
|
57
|
+
- 参考生图:用公众号原图、商品图或已有案例图作为风格/构图参考。
|
|
58
|
+
- 融合生图:把公众号图片风格、商品图、人物参考、工作流节点融合成新的文章配图。
|
|
59
|
+
- 用户要求生成图片时,不要用 SVG、HTML、Canvas 冒充最终配图。
|
|
60
|
+
|
|
61
|
+
6. **打包审稿页**
|
|
62
|
+
- 默认生成两个 HTML:`article_preview.html` 用于本地审稿,`wechat_draft.html` 用于公众号草稿箱导入。
|
|
63
|
+
- `article_preview.html` 可以包含清晰排版、图片、视频/音频控件、图注和可折叠提示词/脚本。
|
|
64
|
+
- `wechat_draft.html` 按公众号编辑器友好结构输出:简单标签、行内样式、无外链脚本、无外链 CSS,本地图片在导入前替换为公众号图文图片 URL。
|
|
65
|
+
- 把所有引用的图片和媒体复制到文章目录。
|
|
66
|
+
- 同时预留草稿 payload:图片导入公众号草稿前必须先上传到公众号图文图片接口并替换成本平台图片 URL。
|
|
67
|
+
- 需要浏览器预览时,启动本地静态服务并返回审稿 URL。
|
|
68
|
+
|
|
69
|
+
7. **公众号草稿箱接口**
|
|
70
|
+
- 需要导入草稿箱时,使用 `scripts/push_wechat_draft.py`。
|
|
71
|
+
- 默认只 dry-run,生成请求预览;用户把 `WECHAT_APPID`、`WECHAT_SECRET`、`WECHAT_AUTHOR` 填进环境变量或 `draft/wechat_draft.env` 后,再加 `--execute` 创建草稿。
|
|
72
|
+
- 脚本支持 `--env-file` 读取密钥文件;不要在文章、日志或最终回复中打印 `WECHAT_SECRET`。
|
|
73
|
+
- 接口边界只到“草稿箱”,不自动群发、不发布、不定时发布。
|
|
74
|
+
|
|
75
|
+
8. **完成前复核**
|
|
76
|
+
- 检查所有本地 `src` / `href` 路径是否存在。
|
|
77
|
+
- 搜索用户要求避免的品牌残留和平台名。
|
|
78
|
+
- 文章包含视频或音频时,用 `ffprobe` 检查媒体文件。
|
|
79
|
+
- 可用 Browser / Playwright 时,打开审稿页并截图检查。
|
|
80
|
+
|
|
81
|
+
## 文风和定位
|
|
82
|
+
|
|
83
|
+
面向内容运营、电商团队、一人公司创业者写作。表达要清楚、直接、有业务判断,用具体素材和工作流证据支撑观点。不要写成纯工具教程,也不要用居高临下的语气教育读者。
|
|
84
|
+
|
|
85
|
+
OPC 内容的核心判断通常是:
|
|
86
|
+
|
|
87
|
+
> AI 的价值不是制造一次好运气,而是压缩一条可重复生产的链路。
|
|
88
|
+
|
|
89
|
+
## 安全和平台边界
|
|
90
|
+
|
|
91
|
+
- 不承诺绕过审核或风控。
|
|
92
|
+
- 短视频和电商案例中,优先使用正常商品展示动作,不把舞蹈动作参考作为主链路。
|
|
93
|
+
- 避免性感化、幼态化或高平台风险的女装描述。
|
|
94
|
+
- 生成公开文章和配图时,避免水印、真实第三方 logo、可读品牌字和用户要求避开的旧平台品牌名。
|
|
95
|
+
|
|
96
|
+
## 资源文件
|
|
97
|
+
|
|
98
|
+
- `references/methodology.md`:OPC 内容生产方法论,包含女装带货 AI 视频 7 层资产链路。
|
|
99
|
+
- `references/image-deconstruction.md`:公众号图片拆解和图片提示词反推方法。
|
|
100
|
+
- `references/mp-extraction-and-draft.md`:公众号链接提取逻辑和草稿箱接口说明。
|
|
101
|
+
- `references/output-spec.md`:文章包结构、HTML 审稿规则和 QA 清单。
|
|
102
|
+
- `references/wechat-content-tone.md`:公众号格式、文章结构、调性、推荐/分享/关注数据复盘方法。
|
|
103
|
+
- `scripts/create_article_workspace.py`:创建标准文章工作区,包括 `images/`、`media/`、`prompts/` 和起始文件。
|
|
104
|
+
- `scripts/extract_mp_article.py`:从公众号链接提取正文、图片和元数据。
|
|
105
|
+
- `scripts/push_wechat_draft.py`:把完成后的 HTML 文章导入公众号草稿箱,默认 dry-run,执行时需要公众号密钥。
|
|
106
|
+
- `assets/scene-package/`:通用内容场景包模板,包括本地审稿 HTML、公众号草稿 HTML、环境变量示例和包清单。
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="zh-CN">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
6
|
+
<title>{{TITLE}}</title>
|
|
7
|
+
<style>
|
|
8
|
+
body{margin:0;background:#f6f7fb;color:#172033;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",Arial,sans-serif;line-height:1.82}
|
|
9
|
+
main{max-width:860px;margin:0 auto;padding:24px 18px 56px}
|
|
10
|
+
article{background:#fff;border:1px solid #e7eaf0;border-radius:18px;padding:34px;box-shadow:0 18px 50px rgba(17,24,39,.06)}
|
|
11
|
+
h1{font-size:clamp(28px,5vw,42px);line-height:1.18;margin:0 0 14px}
|
|
12
|
+
h2{margin:40px 0 12px;font-size:24px;line-height:1.35;border-left:5px solid #f0644b;padding-left:12px}
|
|
13
|
+
p{font-size:16px;margin:12px 0}
|
|
14
|
+
figure{margin:28px 0}
|
|
15
|
+
img,video{display:block;width:100%;border-radius:12px;border:1px solid #e7eaf0;background:#f3f4f6}
|
|
16
|
+
figcaption{color:#667085;font-size:14px;text-align:center;margin-top:10px}
|
|
17
|
+
details{border:1px solid #e7eaf0;border-radius:12px;margin:16px 0;background:#fbfcff;overflow:hidden}
|
|
18
|
+
summary{cursor:pointer;padding:14px 16px;font-weight:700;background:#f8fafc}
|
|
19
|
+
pre{margin:12px 16px 16px;padding:16px;overflow-x:auto;color:#e5e7eb;background:#111827;border-radius:10px;font-size:13px;line-height:1.7;white-space:pre-wrap}
|
|
20
|
+
</style>
|
|
21
|
+
</head>
|
|
22
|
+
<body>
|
|
23
|
+
<main>
|
|
24
|
+
<article>
|
|
25
|
+
<h1>{{TITLE}}</h1>
|
|
26
|
+
{{BODY}}
|
|
27
|
+
</article>
|
|
28
|
+
</main>
|
|
29
|
+
</body>
|
|
30
|
+
</html>
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "OPC 内容工厂场景包",
|
|
3
|
+
"purpose": "从公众号链接、文章截图、商品素材或 AI 视频案例出发,拆解内容与图片,生成公众号图文、配图提示词、本地审稿 HTML、公众号草稿 HTML,并预留公众号草稿箱导入接口。",
|
|
4
|
+
"folders": {
|
|
5
|
+
"source": "公众号原文、正文文本、图片 URL 和元数据",
|
|
6
|
+
"images": "文章配图、生图结果、案例截图",
|
|
7
|
+
"media": "视频、音频、剪辑样例",
|
|
8
|
+
"prompts": "配图提示词、文章提示词、视频提示词、复盘模板",
|
|
9
|
+
"draft": "公众号草稿箱 dry-run payload 和导入结果"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"extract_mp_article.py": "提取公众号链接内容",
|
|
13
|
+
"create_article_workspace.py": "创建标准文章工作区",
|
|
14
|
+
"push_wechat_draft.py": "将完成 HTML 导入公众号草稿箱"
|
|
15
|
+
},
|
|
16
|
+
"templates": {
|
|
17
|
+
"article_preview_template.html": "本地审稿页模板,可展示图片、音频、视频和折叠提示词",
|
|
18
|
+
"wechat_draft_template.html": "公众号草稿箱正文模板,使用简单结构和行内样式"
|
|
19
|
+
},
|
|
20
|
+
"draft_env": [
|
|
21
|
+
"WECHAT_APPID",
|
|
22
|
+
"WECHAT_SECRET",
|
|
23
|
+
"WECHAT_AUTHOR"
|
|
24
|
+
]
|
|
25
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
<section style="font-size:16px;line-height:1.8;color:#1f1f1f;margin:0;padding:0;">
|
|
2
|
+
<p style="margin:0 0 18px;color:#57606a;font-size:15px;">
|
|
3
|
+
{{摘要:用一句话说明这篇文章解决什么问题,不写空泛口号。}}
|
|
4
|
+
</p>
|
|
5
|
+
|
|
6
|
+
<section style="margin:24px 0 20px;padding:14px 16px;border-left:4px solid #e5533d;background:#fff7f4;">
|
|
7
|
+
<p style="margin:0;font-weight:700;color:#1f1f1f;">核心判断</p>
|
|
8
|
+
<p style="margin:8px 0 0;">{{把文章最有价值的观点放在这里。}}</p>
|
|
9
|
+
</section>
|
|
10
|
+
|
|
11
|
+
<h2 style="font-size:20px;line-height:1.45;margin:30px 0 14px;font-weight:700;color:#111827;">
|
|
12
|
+
一、{{章节标题}}
|
|
13
|
+
</h2>
|
|
14
|
+
<p style="margin:0 0 16px;">
|
|
15
|
+
{{正文段落。每段只讲一个判断,避免大段堆砌。}}
|
|
16
|
+
</p>
|
|
17
|
+
|
|
18
|
+
<section style="margin:22px 0;">
|
|
19
|
+
<img src="images/cover.png" alt="{{图片说明}}" style="display:block;width:100%;height:auto;border-radius:8px;" />
|
|
20
|
+
<p style="margin:8px 0 0;color:#6b7280;font-size:13px;text-align:center;">
|
|
21
|
+
{{图注:说明这张图在文章里的作用。}}
|
|
22
|
+
</p>
|
|
23
|
+
</section>
|
|
24
|
+
|
|
25
|
+
<h2 style="font-size:20px;line-height:1.45;margin:30px 0 14px;font-weight:700;color:#111827;">
|
|
26
|
+
二、{{流程拆解}}
|
|
27
|
+
</h2>
|
|
28
|
+
<section style="margin:0 0 18px;padding:14px 16px;background:#f6f8fa;border-radius:8px;">
|
|
29
|
+
<p style="margin:0 0 8px;font-weight:700;">可复用流程</p>
|
|
30
|
+
<p style="margin:0;">原始素材 -> 内容拆解 -> 提示词反推 -> 生图/视频 -> 复盘修订 -> 模板沉淀</p>
|
|
31
|
+
</section>
|
|
32
|
+
|
|
33
|
+
<h2 style="font-size:20px;line-height:1.45;margin:30px 0 14px;font-weight:700;color:#111827;">
|
|
34
|
+
三、{{提示词模板}}
|
|
35
|
+
</h2>
|
|
36
|
+
<section style="margin:0 0 18px;padding:14px 16px;background:#111827;color:#f9fafb;border-radius:8px;">
|
|
37
|
+
<p style="margin:0 0 8px;font-weight:700;">提示词结构</p>
|
|
38
|
+
<p style="margin:0;color:#d1d5db;">
|
|
39
|
+
任务目标 + 主体特征 + 场景/背景 + 镜头语言 + 光线质感 + 细节约束 + 负面约束 + 输出比例
|
|
40
|
+
</p>
|
|
41
|
+
</section>
|
|
42
|
+
|
|
43
|
+
<h2 style="font-size:20px;line-height:1.45;margin:30px 0 14px;font-weight:700;color:#111827;">
|
|
44
|
+
四、{{避坑复盘}}
|
|
45
|
+
</h2>
|
|
46
|
+
<p style="margin:0 0 16px;">
|
|
47
|
+
{{写清楚失败点、解决方式、下次如何复用。}}
|
|
48
|
+
</p>
|
|
49
|
+
</section>
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# 图片与公众号内容拆解
|
|
2
|
+
|
|
3
|
+
## 文章拆解
|
|
4
|
+
|
|
5
|
+
对原始公众号文章或截图,提取:
|
|
6
|
+
|
|
7
|
+
- 标题钩子和读者承诺。
|
|
8
|
+
- 目标读者和隐含痛点。
|
|
9
|
+
- 开头场景。
|
|
10
|
+
- 章节顺序。
|
|
11
|
+
- 证据类型:截图、生图结果、表格、demo、代码、日志。
|
|
12
|
+
- 视觉节奏:封面、流程图、清单卡、提示词卡、案例证据图。
|
|
13
|
+
- 行动引导或隐含下一步。
|
|
14
|
+
|
|
15
|
+
## 图片拆解
|
|
16
|
+
|
|
17
|
+
每张图片按这个结构记录:
|
|
18
|
+
|
|
19
|
+
```text
|
|
20
|
+
图片角色:
|
|
21
|
+
插入位置:
|
|
22
|
+
读者任务:
|
|
23
|
+
主体:
|
|
24
|
+
场景:
|
|
25
|
+
构图:
|
|
26
|
+
色彩:
|
|
27
|
+
文字:
|
|
28
|
+
业务物件:
|
|
29
|
+
视觉隐喻:
|
|
30
|
+
可能的提示词结构:
|
|
31
|
+
质量风险:
|
|
32
|
+
如何迁移:
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## 图片反推提示词结构
|
|
36
|
+
|
|
37
|
+
反推公众号配图时使用这个结构:
|
|
38
|
+
|
|
39
|
+
```text
|
|
40
|
+
资产类型:公众号文章插图 / 封面图 / 清单卡 / 流程图
|
|
41
|
+
文章功能:这张图解释什么
|
|
42
|
+
场景:具体工作台、商品桌、时间轴、看板或摄影棚
|
|
43
|
+
主体:运营者、商品、AI 面板、模特预览、文章卡片
|
|
44
|
+
信息布局:卡片、节点、箭头、时间轴、清单
|
|
45
|
+
文字规则:只保留少量大号中文标签,避免密集小字
|
|
46
|
+
风格:干净的中文公众号编辑插图,不要泛泛的科技壁纸
|
|
47
|
+
避免:真实 logo、水印、不可读乱字、性感化模特主体、画面拥挤
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## OPC 文章默认视觉组
|
|
51
|
+
|
|
52
|
+
默认 4 张图:
|
|
53
|
+
|
|
54
|
+
1. **封面图**:核心冲突和工作流承诺。
|
|
55
|
+
2. **流程图**:可重复资产链路。
|
|
56
|
+
3. **避坑清单**:适合截图保存的问题和解法。
|
|
57
|
+
4. **提示词 / 模板卡**:读者可以复制的框架。
|
|
58
|
+
|
|
59
|
+
如果项目里有真实案例证据,可额外加入:原始商品图、人物参考图、换装关键帧、分镜图、视频抽帧图。
|
|
60
|
+
|
|
61
|
+
## 生图模式
|
|
62
|
+
|
|
63
|
+
根据工作流选择三种模式:
|
|
64
|
+
|
|
65
|
+
1. **原生生图**
|
|
66
|
+
- 只根据文章逻辑和提示词生成。
|
|
67
|
+
- 适合封面图、流程图、方法论卡片、避坑清单。
|
|
68
|
+
|
|
69
|
+
2. **参考生图**
|
|
70
|
+
- 把公众号原图、商品图、截图或已有案例图作为参考。
|
|
71
|
+
- 明确说明参考图的作用:风格参考、构图参考、商品细节参考或人物氛围参考。
|
|
72
|
+
|
|
73
|
+
3. **融合生图**
|
|
74
|
+
- 把多个输入融合成新的文章配图。
|
|
75
|
+
- 典型组合:公众号视觉风格 + 商品图细节 + 人物参考 + 工作流节点。
|
|
76
|
+
- 必须写清哪些元素要保留,哪些只作为风格参考,避免模型误把参考图原样复制。
|
|
77
|
+
|
|
78
|
+
提示词里要显式标注:
|
|
79
|
+
|
|
80
|
+
```text
|
|
81
|
+
输入图 1:公众号参考图,用于版式和信息密度参考。
|
|
82
|
+
输入图 2:商品图,用于服装结构和材质参考。
|
|
83
|
+
输入图 3:人物图,用于人像氛围参考。
|
|
84
|
+
生成目标:新的公众号文章配图,不复刻原图,不出现真实 logo 和水印。
|
|
85
|
+
```
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
# OPC 内容生产方法论
|
|
2
|
+
|
|
3
|
+
## 核心框架
|
|
4
|
+
|
|
5
|
+
把每个内容案例都当成一条资产流水线:
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
原始素材 -> 拆解 -> 可复用提示词 -> 生成资产 -> 复盘 -> 修订资产 -> 打包文章
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
文章不要隐藏流水线。读者看完后,应该能带走一套可以复用的方法,而不是只看一个案例故事。
|
|
12
|
+
|
|
13
|
+
## 女装带货 AI 视频:7 层资产链路
|
|
14
|
+
|
|
15
|
+
当主题涉及电商女装、商品试穿、人物参考、AI 视频或 SKU 内容生产时,使用这条链路:
|
|
16
|
+
|
|
17
|
+
1. **商品图反推**
|
|
18
|
+
提取服装颜色、材质、版型、领口、袖口、图案、装饰、包装、背景和负向约束。
|
|
19
|
+
|
|
20
|
+
2. **人物参考**
|
|
21
|
+
提取成年模特风格、发型、妆容、姿势、身材比例、光线和场景氛围。除非工具明确支持,否则不要承诺完全复刻身份。
|
|
22
|
+
|
|
23
|
+
3. **换装关键帧**
|
|
24
|
+
先生成或描述“商品穿到人物身上”的关键帧。视频前先稳定人物脸、服装结构、背景和电商构图。
|
|
25
|
+
|
|
26
|
+
4. **分镜图**
|
|
27
|
+
把商品卖点拆成镜头:正面开场、领口细节、袖口/纹理细节、侧身版型、正面收尾。
|
|
28
|
+
|
|
29
|
+
5. **视频生成**
|
|
30
|
+
避免用一张首帧硬撑 15 秒并承载 5 个镜头。优先拆成多条 2-4 秒短镜头,每条只做一个动作,再剪辑合成。
|
|
31
|
+
|
|
32
|
+
6. **音频包装**
|
|
33
|
+
把口播、BGM、SFX 分轨处理。普通 TTS 只适合 demo;商业交付建议使用情绪 TTS 或声音克隆。
|
|
34
|
+
|
|
35
|
+
7. **复盘迭代**
|
|
36
|
+
用抽帧图和文件证据复盘:脸是否稳定、服装是否漂移、动作是否拖沓、镜头是否清楚、音频是否自然、平台风险是否可控。
|
|
37
|
+
|
|
38
|
+
## 文章论证节奏
|
|
39
|
+
|
|
40
|
+
推荐使用这条论证链:
|
|
41
|
+
|
|
42
|
+
```text
|
|
43
|
+
痛点:一键成片不稳定
|
|
44
|
+
原因:素材、镜头、音频、审核和复用没有拆开
|
|
45
|
+
案例:展示实际素材和中间产物
|
|
46
|
+
方法:拆成资产链路
|
|
47
|
+
坑点:动作慢、服装漂、TTS 人机、单帧硬撑
|
|
48
|
+
方案:多镜头、结构化提示词、音频升级、复盘检查
|
|
49
|
+
观点:OPC 的价值是把内容生产变成可复制系统
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## 女装试穿提示词模板
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
【主体】
|
|
56
|
+
成年女性时装模特,正常电商试穿,不幼态,不性感化。
|
|
57
|
+
|
|
58
|
+
【人设】
|
|
59
|
+
发型、妆容、表情、气质、身材比例、拍摄氛围。
|
|
60
|
+
|
|
61
|
+
【服装】
|
|
62
|
+
颜色、材质、版型、领口、袖口、图案、装饰、搭配。
|
|
63
|
+
|
|
64
|
+
【镜头】
|
|
65
|
+
画幅、景别、机位、动作、时长、节奏。
|
|
66
|
+
|
|
67
|
+
【限制】
|
|
68
|
+
不要跳舞,不要扭胯,不要擦边,不要未成年感,不要品牌字,不要水印,不要换脸,不要服装变形,不要多手指。
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## 必须解释的常见坑
|
|
72
|
+
|
|
73
|
+
- 单张首帧生成 15 秒,容易出现慢变形,而不是清楚的镜头切换。
|
|
74
|
+
- 帧率更高不能解决动作信息密度低的问题;应拆短镜头并用硬切。
|
|
75
|
+
- 图片提示词必须锁定可见服装部件,不能只堆“高级、精致、氛围感”。
|
|
76
|
+
- Demo 级 TTS 可以说话,但真人种草感需要情绪 TTS 或声音克隆。
|
|
77
|
+
- 电商内容不应把高风险动作参考或舞蹈参考作为主工作流。
|