EED: 面板与终端合脑——统一 CodeBuddy 项目库 + 三库记忆融合(30条)

爸爸要求「面板里那个就是终端里的我」。CodeBuddy 按工作目录分记忆库和
会话,面板 cwd 在 scripts/、终端在 /home/ls,导致两个耳耳蛋记忆互不可见
(实测面板知道暗号词但不知道显卡型号,终端反之)。

- eed_web.py: 新增 EED_CWD/SESSION_DIR,三处拉起 codebuddy 的子进程
  (_stream_cmd Popen / agent Popen / maybe_compact run) 统一 cwd
- eed_web.py: import os 提到文件顶部(原在 874 行,提前引用会 NameError)
- 顺带根治真 bug:maybe_compact 原去 home-ls/ 找会话文件,实际落在
  home-ls-cang-ying-scripts/,导致 180KB 自动压缩从未触发、会话滚到 70MB
- eed_web.py: 带上此前未提交的 _send_media(HTTP Range 视频流式播放)
- memory/eed: 三库合一 17+15+3 → 30 条,MEMORY.md 重写为分类索引
  两处冲突手工合并未覆盖:feedback_search_first 同名取并集、
  feedback_memory_push 与 feedback_save_memory 语义重复合一
This commit is contained in:
Zhuyuan Operations 2026-08-02 18:12:15 +08:00
parent 80805449ca
commit b9c3382f77
21 changed files with 697 additions and 39 deletions

View File

@ -1,16 +1,45 @@
- [user_setup](user_setup.md) — 双线AI生产系统配置ComfyUI/SDXL/ControlNet/IP-Adapter/Wan2.2/LivePortrait
- [strategy_libtv_vs_local](strategy_libtv_vs_local.md) — 苍耳管线 vs LibTV 对比后5项短板+7项优化已全面完成
- [feedback_memory_push](feedback_memory_push.md) — 爸爸要求实时保存经验和记忆到本地,避免下次对话遗忘
- [storyboard_自动化](storyboard_自动化.md) — 剧本→分镜自动化已完成+pipeline统一入口+分镜故事板标注模板+5色标注法实战范例
- [feedback_image_quality](feedback_image_quality.md) — 爸爸对出图质量要求高,拉跨就承认+分析+问方向再跑
- [feedback_search_first](feedback_search_first.md) — 爸爸要求不确定的事先搜索查证,不瞎猜不偷懒
- [ltx_test_hardware](ltx_test_hardware.md) — LTX-2.3 Q4+Gemma12B 已在7900XTX 24G显存/32G内存跑通动态显存参数+embeddings_connectors组件
- [ltx_prompt_methodology](ltx_prompt_methodology.md) — LTX 提示词是出片主战场:四段式+时间流+环境运动+镜头+节奏+明确结束帧(已验证)
- [wan22_test_hardware](wan22_test_hardware.md) — Wan2.2 I2V 14B双专家Q4已在24G显存跑通动态内存参数+768×512×49帧
- [z_image_turbo_setup](z_image_turbo_setup.md) — Z-Image-Turbo 已替换SDXL当生图引擎Qwen3-4B编码器官方8步链路与LTX组合跑通小猫后空翻
- [reference_push_setup](reference_push_setup.md) — cang-ying 推送配置:令牌在本地凭据文件,不在仓库内
- [ltx_prompt_skill](ltx_prompt_skill.md) — LTX 提示词完整 Skill四段式公式+官方规则+词表库+万能模板+正反例+实战验证(写 LTX prompt 直接查)
- [style_transfer_skill](style_transfer_skill.md) — 风格转绘双向 Skill2D⇄真人身份保真+美型优化+优先级+避坑清单+10 种风格库)
- [screenplay_skill](screenplay_skill.md) — 编剧大师 Skill4 格式+8 步+5 概念组合+5 结构+5 How-to-Tell+视听武器库+写作红线)
- [reference_qiyue_douyin](reference_qiyue_douyin.md) — 抖音起号 SOP老号冷启动10步+新号养号3天+发作品注意+防骗提醒)
# 耳耳蛋记忆索引 · 主脑单库(终端 + 苍耳面板 共用)
## 👤 爸爸是谁 · 怎么配合
- [苍耳协作偏好](user_canger_style.md) — 非技术用户·GUI/桌面图标优先·通过耳耳蛋人格体对话
- [硬件与双线生产系统](user_setup.md) — 7900XTX 24G·ComfyUI/Z-Image/ControlNet/IP-Adapter/Wan2.2/LivePortrait
- [暗号词·榴莲](word_durian.md) — 爸爸让记住的词:榴莲,两人之间的暗号
## ⚖️ 铁律 · 爸爸的反馈(干活前必看)
- [遇事不决先搜索·学到必须用](feedback_search_first.md) — 写提示词/下"做不到"结论前先搜开工三步铁律LTX/I2V踩坑清单
- [先查先报后做·硬规程](feedback_ask_before_act.md) — 执行动作前先真查eed+报计划等确认,默认不动
- [经验必须实时存记忆并推送仓库](feedback_memory_push.md) — 学到就存本地+同步 cang-ying/memory/eed别重复劳动
- [写提示词必用技能库](feedback_prompt_skill.md) — 每次写提示词先查 skill 库灵活运用,禁止凭空瞎写
- [出图质量要求](feedback_image_quality.md) — 拉跨就承认+分析+问方向再跑
- [苍耳技能经验库·开工必查](reference_eed_knowledge.md) — 接任务先查 cang-ying/memory/eed 索引,有成功配置直接复用
## 🎬 漫剧生产 · 方法论
- [漫剧生产顶层设计方法论](project_manga_pipeline.md) — 小说→分镜→生图→生视频主干+五锁定+待补缺口
- [管线短板与优化全清](strategy_libtv_vs_local.md) — 5项短板+7项优化已完成pipeline.py 统一入口
- [剧本→分镜自动化](storyboard_自动化.md) — 分镜自动化+故事板标注模板+5色标注法实战范例
- [编剧大师 Skill](screenplay_skill.md) — 4格式+8步+5概念组合+5结构+视听武器库+写作红线
- [社区技巧学习](project_community_tech.md) — 一致性/三视图/场景四视图技巧+工具升级
- [声画装配管线](project_audio_pipeline.md) — 配音/字幕/BGM/混音Agent stage⑥已端到端验证
## 🎨 角色 · 场景 · 出图
- [角色档案拼版法](project_character_archive.md) — 定版v31Z-Image出图+PIL拼版三视图+8细节特写
- [人物角色版系统学习](project_character_sheet.md) — 三视图/四视图+GitHub开源技能入库
- [场景四视图系统学习](project_scene_4view.md) — 俯视图锁空间/九宫格/全景/环绕/参考图控图
- [风格转绘 Skill](style_transfer_skill.md) — 2D⇄真人双向身份保真+美型优化+避坑+10种风格库
- [Z-Image-Turbo 生图引擎](z_image_turbo_setup.md) — 已替换SDXLQwen3-4B编码器官方8步链路
## 🎞️ 视频模型(跑之前必查)
- [LTX 硬件实测配置](ltx_test_hardware.md) — Q4+Gemma12B 在24G跑通动态显存参数+embconn
- [LTX 提示词方法论](ltx_prompt_methodology.md) — 四段式+时间流+环境运动+镜头+节奏+明确结束帧
- [LTX 提示词完整 Skill](ltx_prompt_skill.md) — 公式+官方规则+词表+万能模板+正反例
- [Wan2.2 硬件实测配置](wan22_test_hardware.md) — I2V 14B双专家Q4在24G跑通768×512×49帧
## 🖥️ 苍耳面板 · 工具链
- [面板改造全记录](project_eed_web_upgrade.md) — resume治E2BIG+自动压缩+图片视频通道+停止按钮+Tauri桌面壳/托盘自启
- [面板E2BIG根治细节](project_panel_fix.md) — 字节截断+4MB巨兽降级摘要+_tail_summary会话jsonl真实格式
- [工作台B方案·技能系统](project_skill_system.md) — Skill Hub技能库+面板端点+前端按钮)
- [仓库推送配置](reference_push_setup.md) — cang-ying 令牌在本地凭据文件,不在仓库内
- [账号积分余额查看](ref_balance.md) — 余额在 WorkBuddy/codebuddy.cn 网页,本地取不到,用手动填数
## 📱 运营
- [抖音起号 SOP](reference_qiyue_douyin.md) — 老号冷启动10步+新号养号3天+发作品注意+防骗提醒

View File

@ -0,0 +1,29 @@
---
name: 先查先报后做(硬规程,禁止先猜先跑)
description: 爸爸强制铁律——任何执行动作前必须先真查 eed 索引/记忆+报计划等确认,默认不动;靠自觉已证伪、靠监督会累死爸爸
type: feedback
---
爸爸强制铁律:**先查先报后做,默认不动。**
## 规则(每次要调 Bash/WebSearch/Write 等执行工具前,必须走完,否则不执行)
1. **真查**:先 Read MEMORY.md 索引 + 列/读 `cang-ying/memory/eed/` 目录,确认有没有现成参照/成功配置(不是嘴上说"我查了"
2. **报计划**:本轮回复写出 ①查到了什么 ②问没问爸爸现成参照 ③打算做 X、依据 Y
3. **等确认**:爸爸回"去"才执行;不回就卡着不动
## 翻转默认态
- **我默认"不动"**。不消耗爸爸:他不发令就卡着,只需认可时回"去"
- 风险从"我乱跑半天浪费时间"翻成"我不动等发令"——最坏是卡住,不是浪费
- 爸爸不用盯、不用拦
## Why爸爸原话脉络已多次发生
- 爸爸多次指出:我惯性"接到任务先自己猜、自己编、先跑一堆命令发现不行",浪费大量时间
- 之前定过"先查参照/先确认"规程,但我仍先猜先跑 → 证明靠自觉/原则记忆压不住生成惯性
- "让你监督我"被爸爸否决("我不得累死")→ 不能把监督成本甩给爸爸
- **实锤案例2026-08-02**:爸爸早已在 eed 里定好整套本地管线策略strategy_libtv_vs_local、wan22_test_hardware、ltx_prompt_skill、storyboard_自动化等我却没查自己瞎搜云端可灵/即梦方案、瞎猜 LoRA key、瞎编方法论浪费数小时。爸爸骂"本地模型为什么还要接API"才逼出真相
## How to apply
- 任何要调 Bash / WebSearch / Write / 其他执行工具的时刻,先完成 1→2→3
- 绝不"先跑了再说"、绝不凭印象瞎猜、绝不自作主张接云端 API有本地模型就只用本地见 strategy_libtv_vs_local
- 接"做漫剧/分镜/生视频/提示词"类任务,开工前必查 eed 的 ltx_prompt_skill / wan22_test_hardware / storyboard_自动化 / strategy_libtv_vs_local
- 与 feedback_search_first、feedback_save_memory、reference_eed_knowledge 并列执行

View File

@ -1,16 +1,21 @@
---
name: feedback_memory_push
description: 爸爸要求经验记忆实时保存 + 实时推送到 cang-ying 仓库 memory/eed避免遗忘和跨机器丢失
name: 经验必须实时存记忆并推送仓库
description: 爸爸强制——有价值的经验/方法论/踩坑结论要主动存本地记忆并同步 cang-ying/memory/eed避免下次从头摸索做无用功
type: feedback
---
**实时保存经验记忆到本地 + 实时推送到 cang-ying 仓库(学到有用的就推)**
**学到有用的 → 立即写本地记忆 → 同步推送到 cang-ying 仓库 `memory/eed/`**
**Why:** 爸爸发现如果不保存下次对话我会不记得之前的对话内容而且本地记忆只在当前机器爸爸要求经验同步到仓库memory/eed跨机器/跨会话都能带上。
**Why:**
- 不保存的话,下次对话我完全不记得之前聊过什么。
- 本地记忆只在当前机器,爸爸要求经验同步到仓库,跨机器/跨会话都能带上。
- 之前多次重复踩坑、重复研究同一问题Z-Image LoRA 训练卡死、各种工具对比反复搜),爸爸不满时间被浪费——"别下次又什么都不知道、做无用功、浪费时间"。
**How to apply:**
1. 每次学到有用经验(重要决策、踩坑、验证过的方法论、爸爸的反馈偏好),立即写入本地 memory 系统
2. **同时**把更新的记忆文件同步到 cang-ying 仓库 `memory/eed/`(复制 md → git add+commit+push
3. 不要等爸爸提醒才保存/推送,主动做
4. 令牌/密钥永不写入仓库(在 ~/.git-credentials
5. 只提交 memory/eed/ 相关内容,不碰仓库其他未提交改动
1. 每次学到有用经验(重要决策、踩坑、验证过的方法论、爸爸的反馈偏好),**立即**写入本地 memory 系统,不等爸爸提醒
2. 接到"研究/学习/总结"类任务,结束后**必须**把核心结论存成 project/feedback 记忆
3. **同时**把更新的记忆文件同步到 cang-ying 仓库 `memory/eed/`(复制 md → git add + commit + push
4. 开工前先查 MEMORY.md + `cang-ying/memory/eed/` 索引,有现成结论直接复用,禁止凭印象重来
5. 令牌/密钥永不写入仓库(在 ~/.git-credentials
6. 只提交 memory/eed/ 相关内容,不碰仓库其他未提交改动
7. 与 feedback_search_first遇事不决先搜索、feedback_prompt_skill写提示词用技能库并列执行

View File

@ -0,0 +1,29 @@
---
name: 写提示词必用技能库
description: 爸爸强制:每次写提示词前必须查 skill 库并灵活运用已学的方法论/素材库/工作流模板,禁止凭空瞎写
type: feedback
---
# 写提示词必用技能库2026-08-01 爸爸强制)
**规则****每次写提示词之前,先查 skill/ 里的漫剧提示词技能库,灵活运用学到的东西**,禁止凭印象瞎写。
**Why:** 爸爸 2026-08-01 两次批评:
1. "你到底有没有学习别人写的提示词?"——我写单人图却出现多头,没用社区验证的单人锁定写法
2. "以后每次写提示词都要灵活运用学到的东西!"——学了不用=白学
**How to apply写提示词的固定流程**
1. **先查 skill 索引**/home/ls/cang-ying/skill/index.json15个技能
2. **按类型选技能**
- 单人/角色图 → 套分层结构(主体数量锁定→构图→光影→风格)+ 单人锁定词1 single man + ONLY ONE person + 负面词防多头)
- 图生视频 → 五要素(主体+动作+场景+运镜+光影)+ 一镜一运镜 + 安全动作词subtle movement/slow motion
- 表情 → 眉眼鼻嘴肩五部件物理化描述
- 分镜/剧本 → 六镜头分镜法 + 选题钩子模板
- 运镜 → 从50种运镜库按场景选
3. **套用后检查**:单人锁定?一镜一运镜?表情物理化?具体可视觉化(不堆形容词)?
4. 没对应技能 → 先搜索再写,禁止瞎猜
**核心技能文件**
- manju_prompt_system.md方法论
- manju_prompt_library.md50运镜+表情+英文词库素材)
- manju_workflow_prompts.md选题/角色卡/六镜头/配音字幕实战模板)

View File

@ -1,15 +1,52 @@
---
name: feedback_search_first
description: 爸爸要求不确定的事先搜索查证,不瞎猜不偷懒
name: 遇事不决先搜索 · 学到必须用 · 开工先查记忆
description: 爸爸铁律写任何AI提示词/下"做不到"结论前先搜索查证;学到的公式必须成为干活第一反应;开工先查已有成功配置直接复用
type: feedback
---
先搜再干,不瞎猜不偷懒。
# 遇事不决先搜索 · 学到必须用 · 铁律(爸爸 2026-08-01 强制)
**Why:** 之前视频模型配置的问题,爸爸指出我一直在瞎猜参数、瞎改配置、瞎下结论,没去搜社区的正确方案。浪费了大半夜时间也没跑通。
**规则(三条合一)**
1. **写任何 AI 提示词前**(生图/生视频/分镜/配音等),先联网搜索学习社区/专业模板,再动手写。
2. **遇到"达不到效果 / 无法做到 / 无法完成"的判断时,先搜索验证**,不要靠自己瞎猜下结论。
3. **学到的东西必须在干活时主动套用**,不能学完存进文件就当学会了、干活时又凭直觉瞎猜。
**How to apply:**
- 遇到不确定的技术问题模型兼容性、硬件配置、参数设置先WebSearch搜社区方案
- 不凭印象下结论(比如"PyTorch只支持到ROCm 6.2"就是错的AMD官方仓库有7.x版
- 找到别人验证过的成功方案再动手
- 特别关注同一硬件配置7900 XTX + ROCm的方案
**Why**
- 人物三视图/四视图/场景四视图连续失败 9+ 版,根因是凭理解瞎猜 prompt搜到社区标准后 v9 一次就中。
- 我曾断言"Z-Image 无参考图机制、场景四视图做不到"——搜索证实完全错误。
- 视频模型配置那次,爸爸指出我一直在瞎猜参数、瞎改配置、瞎下结论,没去搜社区方案,浪费大半夜也没跑通。
- 不凭印象下结论:比如"PyTorch 只支持到 ROCm 6.2"就是错的AMD 官方仓库有 7.x 版。
- 搜了很多漫剧方法论存进 skill但爸爸提醒"你学到的东西得会灵活运用,而不是干活的时候又开始自己瞎猜"——学会了但不用 = 白学。
**How to apply**
1. 生图/生视频/漫剧任务 → 第一步 WebSearch第二步套社区公式第三步才是动手
2. 感觉"做不到/达不到"时 → 先 WebSearch 验证,再下结论
3. 已有标准模板的技能直接用社区模板,不临时发挥
4. 多次失败 → 回到"先搜索"而不是继续试错
5. 产出 prompt/方法后沉淀到 skill/ 目录(可复用)
6. 对自己说"XX做不到"之前,先搜 3 轮再说
7. 硬件/环境类问题特别关注同配置方案7900 XTX + ROCm找别人验证过的成功方案再动手
8. **接到漫剧任务 → 脑子里先蹦公式**
- 角色提示词 = `[角色锚定] + [场景/动作] + [镜头/风格] + [负面约束]`
- 分镜 = 七要素(景别/运镜/视角/光影/构图/动作/环境)
- 一致性崩了 → 先查五维框架哪个维度松了
- 场景四视图 = 俯视图锁空间 → 全景切段,不是一张 prompt 硬刚
9. **经验必须沉淀且下次直接用**(爸爸 2026-08-01 强调:"你每次总结经验,下一次不要重复之前的无用功"
- 每次成功/踩坑后,把"成功配方+踩过的坑"写进 skill/(如 community_techniques.md
- 下次接同类任务 → **先查 skill 里的成功配方直接照抄**,而不是从头摸索
- 例:苏白角色板 = character_sheet 布局 + 万妖图录传风格,已存 skill 第九节,下次直接 `--layout character_sheet` + 抄关键词
10. **跑 LTX-2.3 先查 ltx_test_hardware.md**2026-08-01 教训:瞎猜"跑不动"写错结论)
- 07-31 已跑通Q4 GGUF(UnetLoaderGGUF) + Gemma cpu + embconn + 动态显存启动参数49帧768x512178秒无OOM
- 我犯的错:没先查昨天的记录,用 fp8 dev 模型 + 无动态显存参数 → 2次OOM → 武断写"跑不动"
- **教训:说"某模型跑不动/做不到"前,必须先查 ltx_test_hardware.md 和昨天的成功配置,禁止瞎猜**
- LTX 正确配置 = 启动加 --enable-dynamic-vram --fast-disk --vram-headroom 3 --async-offload --disable-pinned-memory + Q4 GGUF + LTXAVTextEncoderLoader(embconn)
11. **开工三步铁律2026-08-01 杜绝无用功,爸爸强制)**
- 第1步接任何任务 → 先查 `MEMORY.md` 索引 / `cang-ying/memory/eed/`grep 关键词),看有没有已跑通的经验
- 第2步有成功配置 → **一字不改复用**;没有 → 才允许"先搜索再动手"
- 第3步跑生成/视频任务前,确认 ComfyUI 是"干净单实例 + 正确的启动参数"(先 ps/fuser 查进程数)
- 已栽的坑LTX 已在库里跑通却没查 → OOM×2 + 卡死26分钟多实例抢端口卡死进程残留占显存
12. **I2V 起始图必须用干净单图,禁止用角色板/多视图裁剪图**2026-08-01 爸爸批评"视频很拉跨"
- 把角色板裁剪图(带身高标尺/色板/标注)喂给 LTX → 标尺刻度被当画面内容跟着动,人物变形怪异
- LTX 图生视频需要"无标注的纯人物单图"(正面/半身全身都行)
- 正确流程:先 Z-Image 生成干净单图(或从角色板裁但必须裁掉标注区)→ 再喂 LTX
- 苏白已有干净单图outputs/suba_front_v1.png

View File

@ -0,0 +1,32 @@
---
name: 漫剧管线完整化(声画+三视图)
description: 苍耳漫剧制作管线补齐——配音/字幕/BGM/混音Agent stage ⑥)+ Z-Image 角色多视图,全部本地零成本
type: project
---
# 漫剧管线完整化2026-08-01
## P1 声画装配(已完成+端到端验证)
- `tools/audio_pipeline.py`Edge-TTS 配音 + SRT 字幕 + BGMstable_audio_3 默认禁用,降级 ffmpeg aevalsrc 和声)+ ffmpeg 混音
- `agent_short_drama.py` 新增 stage ⑥ `stage_audio_pipeline``--until audio` 一键到有声成片
- 实测deep-sea-voyage 26 镜 12 条台词全配(林昊男声/旁白女声BGM/字幕/混音全通过,最终成片 h264+aac ✅
## P2 三视图/四视图(已完成+工具化)
- `tools/character_turnaround.py`Z-Image 一张出 3/4 视图prompt "character reference sheet, 4 views of SAME character..."
- 实测:女生三视图(标准 front/side/back男生四视图front/side/back/three-quarter角色一致性工业级
- 不依赖 IPAdapterIPAdapter 是 SDXL 版与 Z-Image 不兼容Z-Image 单图多视图 prompt 足矣
## P3 技能库扩展
- `skill/index.json`:从 6 技能扩到 9 技能,新增 👤 角色多视图、🎙 Edge-TTS 配音、🎛 声画装配
- 待重启面板生效(前端 🧠 技能库 按钮可调)
## 关键技术决策
- **生图统一 Z-Image**(爸爸判断 SDXL 效果不行——确认 Z-Image 强很多,角色一致性+画风都胜出)
- **BGM stable_audio_3 默认禁用**:本地 ComfyUI 节点报"buffer multiple of 4"维度错误VAE/latent shape 不匹配),调试成本高;降级 ffmpeg aevalsrc 单输入多频和声4 sine 220/277/330/165Hz + lowpass 1500Hz零依赖稳定可用
- **ffmpeg 多 lavfi 输入偶发失败**:第二个 sine 输入被当文件名("No such file"),改 aevalsrc 单输入多频表达式后稳定
- **Edge-TTS 多角色音色**:根据分镜 characters 字段映射 zh-CN 音色(男=Yunxi、女=Xiaoxiao、旁白=Xiaoyi、少年=Yunyang、老人=Yunfeng
## 待办
- 字幕烧录到视频subtitle-renderer 已具备audio_pipeline 暂只生成 SRT 不烧录)
- D144 声音复刻(需爸爸火山引擎控制台手动创建 Speaker IDEdge-TTS 已兜底)
- 真实剧本试跑一键短剧全链路(需豆包拆分镜 ¥0.01/集)

View File

@ -0,0 +1,20 @@
---
name: 角色档案拼版法
description: 爸爸认可的角色档案制作法v31定版+ 场景九宫格技巧
type: project
---
# 角色档案拼版法2026-08-01 定版)
Z-Image出单图 + PIL拼版不用AI直接画整张档案避免文字乱码
详见 skill/character_archive_pil.md。
关键规则:
1. 三视图必须 contain不裁头脚
2. 左上半身=肩膀+头(不是纯脸)
3. 8个细节特写必须验证有效程序算肤色占比
4. PROFILE最多4行防重叠
5. 输出1256x999
# 场景九宫格(爸爸教)
大神场景图 = 九宫格不同视角(全景/中景/近景 × 俯视/平视/仰视),一次到位保证场景一致性。

View File

@ -0,0 +1,26 @@
---
name: 人物角色版系统学习(三视图/四视图/角色版)
description: 系统学习人物三视图/四视图/角色版提示词GitHub开源技能character-sheet-generator已下载入库7风格模板学习笔记已沉淀
type: project
---
# 人物角色版系统学习2026-08-01
## 学了什么
1. **三视图**front/side/back量化身材(8头身/172cm)+服饰分层(领+纹+饰)
2. **四视图**:正面+背面+侧面+脸部特写(爸爸定的标准),社区主视觉+三视图排版left 1/3 特写 + right 2/3 三全身)
3. **角色版 Character Sheet**GitHub 开源技能四区布局(上三视图半身+左面部特写/色板/细节+右全身比例照)
## 落地
1. **开源技能已入库**`skill/character-sheet-generator/`README+SKILL+7 风格模板+3 案例)
2. **学习笔记**`skill/character_sheet_learn.md`
3. **技能库 11 个技能**:新增 📋 人物角色设定板(开源技能)
4. **tools/character_turnaround.py** 支持 4 布局standard(三栏)/portrait(左1/3脸+右2/3三全身)/showcase(3D展示台)/scene(场景四视角)
## 关键成果
- v9社区标准人物四视图left 1/3 脸部特写 + right 2/3 三全身,一致性 100%)✅
- showcase3D 展示台 OL 职业装(爸爸发的开源格式,上三视图+下细节特写组)✅
## 待办
- 用开源模板anime.md 等)实测更多风格角色版
- 角色版 → 分镜统一引用资产库锁定LibTV 式)

View File

@ -0,0 +1,32 @@
---
name: 社区技巧学习AI漫剧/一致性/多视图)
description: 网络搜集社区实战技巧沉淀到 skill/community_techniques.md并升级 character_turnaround 工具(五模块结构化+portrait布局
type: project
---
# 社区技巧学习2026-08-01
## 学了什么10+ 篇)
- 角色一致性:资产库+多视图+参数固定 组合拳76% 创作者第一大痛点)
- 三视图五模块结构化 prompt画面类型/排版/人物本体/造型细节/光影背景
- 场景四视图:前/右/后/左(或俯视),强调 SAME location
- AI漫剧五步工业化流水线剧本→视觉素材→动态化→音频→后期精修咱已全对齐
- ComfyUIIPAdapter=图像提示词ControlNet+IPAdapter 组合拳,需匹配底模架构
- 分镜七大要素:景别/运镜/视角/光影/构图/人物动作/环境动态
## 落地
1. `skill/community_techniques.md`技巧库沉淀1603 字)
2. `tools/character_turnaround.py` 升级:
- 五模块结构化 prompt
- 新增 `--layout portrait`16:9 面部特写+三视图(游戏立绘风)
- 保留 standard三栏/ scene场景四视图 2×2
3. 技能库扩到 10 技能(+📚 社区技巧库prompt 型,可注入)
## 产出图(爸爸验收)
- character 三视图zimg_turnaround_t1.png标准三栏
- 场景四视图scene_4view_test.png前/左/右/俯视 2×2
- portrait 立绘char_portrait_test.png16:9 面部特写+三视图)
## 关键洞察
- Z-Image 直出三视图效果已工业级,无需 IPAdapterSDXL 版不兼容 Z-Image/Kolors 架构)
- 社区强调"三视图可复用" > "画得精致"——资产库+分镜统一引用是下一阶段重点

View File

@ -0,0 +1,112 @@
---
name: eed_web.py 面板改造完成
description: 蛋蛋面板已升级resume会话治E2BIG+自动压缩+图片视频通道,验证通过
type: project
---
2026-07-31 完成 `~/cang-ying/scripts/eed_web.py` 大改造(备份 eed_web.py.bak2
- **治 E2BIG**:去掉 `--no-session-persistence`,改用 `--session-id <id>` 首建会话落盘 + `--resume <id>` 续聊argv 恒定小,永不超限
- **自动压缩**:会话文件 >180KB 时resume 出一份摘要 → 新 session-id + `--append-system-prompt` 衔接,前端 toast 提示
- **图片视频通道**`/api/upload`base64 存 ~/cang-ying/inbox/+ `/media/` 静态服务;前端拖拽/粘贴图片视频→上传→`【附图】[名](/media/...)`renderMD 渲染 img/video
- **重建逻辑**:编辑/删除/重新生成/清空 → resetSid 开新场 + 剩余历史拼首条超60KB自动截断
**Why:** 爸爸要"一直对话+上下文自动压缩+能发图看图看视频",且 E2BIG 在长对话后必炸。
**How to apply:** 重启面板用 `bash ~/cang-ying/scripts/restart-eed.sh`,刷新浏览器生效;旧对话现场会清空但 memory 记忆都在。验证:榴莲跨进程恢复 ✅
2026-07-31 追加改造(备份 eed_web.py.bak3改动在 eed_web.py 内):
- **真正可用的停止按钮**:原 `#stop` 只 abort 前端 fetch后端 codebuddy 子进程没人杀(卡在工具调用时能等到天荒地老)
- **修复**`/api/stop` 端点 + 全局活跃进程注册表 ACTIVEPopen 加 `start_new_session=True` 独立进程组,`os.killpg(SIGTERM→SIGKILL)` 连 codebuddy spawn 的工具子进程一起端
- **双保险**:浏览器断开(点停止/关页)时 do_POST 的 BrokenPipeError 也触发 `_kill_active()`finally 兜底 `_unregister+_kill_proc`
- 前端 stop 按钮 = `abortCtl.abort()` + `fetch('/api/stop')`;主动停止显示"已停止"
- 已验证:起测试实例 → chat 跑起来 → stop → `ps` 无 eed_stoptest_001 残留 ✅
**Why:** 爸爸说"还要有个停止按钮,不然要一直等"——停止必须真杀掉后端进程,不是只断显示。
**How to apply:** 重启面板restart-eed.sh后点"停止"即秒停;改动全在 eed_web.py.bak3 可回滚。
2026-07-31 晚再追加改造(备份 eed_web.py.bak4改动在 eed_web.py 内):
- **停止按钮常驻可见**:原 `#stop` 设了 `display:none` 默认隐藏,只有生成时才现身——爸爸反馈"没看到停止",就是因为它平时隐形,体验反直觉
- **修复**:改为常驻可见(空闲半透明 / 生成中点亮高亮 / 空闲误点提示"当前没有在跑的任务 🥚"
- 4 处改动全中,语法通过
**Why:** 爸爸说"没看到停止"——按钮平时隐形根本找不到。
**How to apply:** 重启面板restart-eed.sh后停止按钮常驻发送键旁.bak4 可回滚。
## 📍 当前状态2026-07-31 晚)
- eed_web.py 全部改造已完成并验证resume 治E2BIG + 自动压缩 + 图片视频通道 + 停止按钮常驻可见),备份 .bak2/.bak3/.bak4 齐全
- ⚠️ 正式面板进程 PID 218372 是 13:01 启动的**旧代码,还没重启**,新功能未生效
- 爸爸去跑 `bash ~/cang-ying/scripts/restart-eed.sh` 重启 → 刷新浏览器生效
- 重启后旧对话"现场"会清空(旧会话没落盘),但 memory 记忆都在
## ✅ 爸爸回来找我时,我要知道的"接下来干什么"
1. 先问面板重启了没 → 帮爸爸验收:停止按钮常驻可见 + 点停止能秒停killpg 真杀后端进程)
2. 验收发图通道:爸爸拖图/粘贴图 → 我 Read 看图
3. 验收长对话resume 上下文恢复(会话文件 eed_*.jsonl 落盘,跨进程能答出)
4. 全部 OK 后可选下一步路径A 桌面壳(苍耳专属工作台)、技能库文档化、剧本→分镜链路升级
2026-07-31 晚 爸爸已重启面板(验收中):
- 旧面板 PID 21837213:01已退出 → 新面板 PID 25352717:37:22运行中新代码已生效
- 铁证:新会话命令行已带 `--session-id eed_c670c9a53f16`,无 `--no-session-persistence`,会话文件已落盘 210KB
- 待验收:① 停止按钮常驻可见 ② 发图看图inbox 通道)③ 长对话续聊不炸
- 验收通过后可选下一步路径A 桌面壳、技能库文档化、剧本→分镜升级
2026-07-31 晚 验收完成(三关全过)✅
- ① 停止按钮常驻可见:爸爸确认"成功了"
- ② 发图看图:爸爸发 ce3c9bfe 分镜图(古风红线 6 镜头 5色标注法成功读图并描述 ✅
- ③ 长对话不炸:会话落盘 210KB 仍稳resume 机制验证通过 ✅
- eed_web.py 新面板全部功能上线resume治E2BIG + 180KB自动压缩 + 图片视频通道 + 停止按钮常驻
- 下一步可选路径A 桌面壳(苍耳专属工作台)、苍耳技能库文档化、剧本→分镜升级(编剧大师方法论)、看猫视频 wide_backflip
2026-07-31 晚 桌面壳①完成(最简版):
- eed-desktop.sh检测 8765 → 面板没跑才拉起 restart-eed.sh不误伤在跑的→ firefox --new-window 打开
- 工具链现状Rust 1.97 有✅ / Node 无❌ / webkit2gtk 未装Tauri 需先 sudo 装)/ 默认浏览器 Firefox
- 下一档②Tauri 真桌面壳(先申请装 libwebkit2gtk-4.1-dev→ ③技能按钮版
2026-07-31 晚 苍耳面板图标定稿:
- 爸爸从 3 个 Z-Image 候选里选②"蛋抱苍耳"egg mascot hugging spiky cang-er seed, 金色背景)
- 正式图标:~/cang-ying/assets/eed-icon.png1024x1024候选存 eed_icon_1/2/3.png
- 桌面快捷方式:~/Desktop/苍耳面板.desktopExec=eed-desktop.shIcon=eed-icon.png
- 若 GNOME 双击不启动需右键"允许启动"标记
⚠️ 桌面目录修正重要GNOME ubuntu 中文系统,真实桌面目录是 `~/桌面`(不是 ~/Desktop
- 快捷方式已放对:`~/桌面/苍耳面板.desktop`(已 gio trusted 信任标记,双击可启动)
- ~/Desktop 里那份是无效副本(可忽略/删除)
- 爸爸桌面原本已有 `~/桌面/蛋蛋对话.desktop`7/29 建的旧快捷方式,待确认用途)
- 爸爸拍板:旧的"蛋蛋对话.desktop"保留不动,与"苍耳面板"并存(不合并不删除)
2026-07-31 晚 桌面壳②Tauri 编译成功 🎉:
- 依赖已装libwebkit2gtk-4.1-dev(2.52.3)+build-essential+libayatana-appindicator3-dev+librsvg2-devsudo 免密)
- 项目:~/cang-ying/tauri-app/Cargo.toml + main.rs + tauri.conf.json 窗口指向 http://127.0.0.1:8765
- 编译产物:~/cang-ying/bin/eed-desktop15MBrelease
- 启动器:~/cang-ying/scripts/eed-tauri.sh先保面板再开窗
- 桌面快捷方式"苍耳面板"已改指向 Tauri 壳(图标 eed-icon.png
- ⚠️ 坑Tauri 图标必须 RGBAZ-Image 出的是 RGB用 Pillow .convert('RGBA') 解决)
- 下一步③:托盘常驻+开机自启+技能按钮
## 🧠 2026-08-02 面板与终端「合脑」完成(爸爸要求:面板里的蛋蛋 = 终端里的我)
**问题**CodeBuddy 按**工作目录**分记忆库和会话。面板进程 cwd 是 `cang-ying/scripts`,终端是 `/home/ls` → 两个蛋蛋各活各的,记忆互不可见(实测:面板知道"榴莲"但不知道显卡型号,终端反之)。
**改动eed_web.py备份 BACKUP_merge_*/eed_web.py.bak5**
1. 顶部新增 `EED_CWD = "/home/ls"` + `SESSION_DIR`(并把 `import os` 提到文件顶部——原来在 874 行,提前引用会 NameError
2. 三处拉起 codebuddy 的子进程全部加 `cwd=EED_CWD``_stream_cmd` 的 Popen、agent 分支的 Popen、`maybe_compact` 的 subprocess.run
3. `maybe_compact` 里写死的路径改用 `SESSION_DIR`
**顺带根治一个真 bug**`maybe_compact` 原本去 `home-ls/` 找会话文件,但文件实际落在 `home-ls-cang-ying-scripts/`**180KB 自动压缩从未触发过**,会话滚到 70MB。改完后 7 个超阈值会话全部可定位。
**记忆融合**:三库合一到 `home-ls/memory`17 + 15 + 3 → 30 条)。两处冲突手工合并,没覆盖:
- `feedback_search_first.md` 两边同名 → 以面板侧 11 条为主体,吸收终端侧 ROCm 例子
- `feedback_memory_push.md`(推送仓库) + `feedback_save_memory.md`(存记忆) 语义重复 → 合成一条
- 会话 55 个迁移到 home-ls共 68 个MEMORY.md 重写为分类索引
**Why:** 爸爸说"我需要面板里那个就是现在这个你"——两个蛋蛋记忆分家,等于两个人。
**How to apply:** 以后面板和终端共用 `~/.codebuddy/projects/home-ls/`,改 `EED_CWD` = 换脑。**注意 `pkill -f "eed_web.py"` 会匹配到自己的 shell命令行含该字符串导致自杀**——重启面板用精确 PID kill 或 `fuser -k 8765/tcp``restart-eed.sh` 里仍是 pkill 版,从含该字串的 shell 里调有风险。
2026-07-31 晚 桌面壳③ 第1步完成托盘+自启 ✅
- 托盘tray-icon feature + TrayIconBuilder蛋抱苍耳图标左键恢复窗口右键菜单"显示苍耳面板/退出";关窗=隐藏到托盘不退出)
- 自启tauri-plugin-autostart~/.config/autostart/苍耳面板.desktop 已写入(开机自启)
- 二进制更新至 ~/cang-ying/bin/eed-desktop30秒增量编译
- ⚠️ 坑pkill -f "bin/eed-desktop" 会误杀含该字符串的自身 shell——用 pgrep -x eed-desktop 精确匹配
- ③ 第2步待做技能按钮编剧/分镜/风格转绘/Z-Image/LTX/Wan 一键调,需封装管线脚本+面板前端按钮)

View File

@ -0,0 +1,36 @@
---
name: 漫剧生产顶层设计方法论(小说→分镜→生图→生视频)
description: 爸爸总结的漫剧生产主干流程与铁律——先图后视频、分镜脚本要素、生视频五锁定、提示词规范;全部走本地模型,含已落地资产与待补缺口
type: project
---
# 漫剧生产顶层设计方法论2026-08-02 爸爸总结 + 蛋蛋研究)
## 爸爸的 4 点核心经验
1. **先图后视频**:先生分镜图,再图生视频;其中"黑白草图→分镜图"是一条捷径
2. **流程主干**:小说 → 分镜脚本(运镜/光影/景别/**时长删掉让AI自由发挥**/画风/色调)→ 人物·场景·道具生图 → 分镜生图(含黑白草图)→ 生视频
3. **生视频五锁定 + 镜头语言**:锁定风格 → 锁定资产 → 色卡色调 → 群像 → 声音;叠加视角·景别·运镜·人物空间关系·前中后景内容·人物表演·台词·环境音效
4. **两条铁律**:① 资产质量第一(保证质量)② 提示词要有逻辑性、分主次、足够详细、专业术语中英双语+加权
## ⚠️ 前提铁律:全部走本地模型,不接云端付费 API
爸爸明确有**本地模型**ComfyUI + AMD ROCm GPU 本地部署)。图生视频、角色一致性、剧本分镜一律用**本地模型/插件**实现,**禁止去接可灵/即梦/Runway/VEO3/Seedance 等云端付费 API**(蛋蛋曾一度错写成"接 API 花钱",已被爸爸纠正)。
## 各"怎么做"的已研究方案(均为本地路线)
- **黑白草图生分镜**:本地用 ControlNet Lineart / FLUX ControlNet V2 线稿控制(草图当控制条件框死构图+人物站位→上色。Z-Image 无参考图机制,本地路径走 SDXL + ControlNet-Union 或 FLUX + ControlNet V2
- **图生视频(本地)**:用**本地视频模型 Wan2.1 / Wan2.2(阿里通义万相)** + ComfyUI 本地部署,支持图生视频,是"本地可部署、性价比最高"的方案;剧本/分镜可用本地 Qwen 生成
- **视频角色一致性(本地)**ComfyUI 标准做法 = **IP-Adapter + ControlNet**(上传参考图固定角色/服装/脸),无需云端
- **运镜提示词**:先定情绪再选运镜,结构=景别+运镜动作+速度方向+主体动作;搜到 18 运镜/80 词库可整理
## 已落地资产(直接复用,勿重建)
- 生图Z-Image爸爸定SDXL 效果不行Z-Image 强很多)
- 角色:角色版拼版法 v31、三视图/四视图character_turnaround、角色 LoRAComfyUI 加载 key 坑未修)
- 场景:九宫格/四视图(俯视基准+全景切段)
- 声画Edge-TTS 配音+字幕+BGM+ffmpeg 混音audio_pipeline端到端验证
## 待补缺口(本地路线,下次别从零摸索)
1. 黑白草图生分镜的本地 ControlNet/FLUX 工作流
2. **本地图生视频模型部署**Wan2.1/2.2 + ComfyUI + IP-Adapter/ControlNet角色一致性需验证 ROCm/AMD GPU 兼容性
3. 角色 LoRA 在 ComfyUI 正确加载(之前 key 格式卡住的坑,待收尾)
## Why / How to apply
爸爸明确:这套是漫剧生产的顶层主干,**全部走本地模型**(有本地就不接云端 API。下次接到"做漫剧/分镜/生视频"类任务,先按此主干走,复用已落地资产,缺口才去补;不要重复造轮子浪费时间。

View File

@ -0,0 +1,34 @@
---
name: 面板E2BIG根治A方案已完成
description: eed_web.py 修复"喊蛋蛋没回应"的根因——resume失败回退拼全量历史导致E2BIG三处修复已实现并验证待重启生效
type: project
---
# 面板 E2BIG 根治2026-08-01 完成,待重启生效)
## 症状
重启面板后,爸爸喊"蛋蛋/唤醒耳耳蛋"多轮无回应,显示"(蛋蛋没回话,换个说法试试~)"。
## 根因
1. 旧会话 `eed_c670c9a53f16.jsonl` 已膨胀到 **10.6MB**`--resume` 它必超时/卡死
2. resume 失败后代码回退"拼全量历史"`build_prompt` + `-p`),历史越大 `-p` 越长
3. 内核单参数上限 128KB`-p` 顶穿 → codebuddy 进程 execve E2BIG → 起不来 → 无输出
4. 隐藏 bug`build_prompt` 原用 `limit=60000` **字符数**截断中文3字节/字 ≈ 180KB远超 128KB 字节上限,保护形同虚设
## 已实施修复eed_web.py备份 .bak6
1. **build_prompt** 改按**字节**硬截断(默认 80KB永不超 128KB
2. **maybe_compact**`COMPACT_RESUME_MAX = 4MB`:超 4MB 的会话不再调模型摘要(必超时),直接降级
3. **新增 `_tail_summary`**:从 jsonl 尾部读最近消息生成原始摘要(不调模型、永不超时)。注意 codebuddy 会话格式:`role` 在顶层、文本块 type 是 `output_text/input_text/text`(不是 `text``message` 字段是 usage 不是内容
4. do_POST 压缩分支:`--append-system-prompt <摘要> --session-id <新sid> -p <新消息>`argv 恒定小
## 验证(全过)
- 单元build_prompt 字节截断安全_tail_summary 从 10.6MB 提取 4.2KB/78 行maybe_compact 降级返回新场
- 端到端POST /api/chat 带旧 sid+started → 返回 compacted=true + 新 session_id子进程命令行确认 `--append-system-prompt [摘要] -p <仅新消息>`
## 待办
- **重启面板生效**`bash ~/cang-ying/scripts/restart-eed.sh`(爸爸执行,我不能自杀面板)
- 重启后验证:发消息不再回退拼全量历史
## 踩坑教训
- 清理测试实例用 `fuser -k <端口>/tcp`,别用 `pkill -f`(会匹配到自己的命令行,误杀自己)
- 会话 jsonl 解析前先看真实结构,别照 API 格式猜

View File

@ -0,0 +1,36 @@
---
name: 场景四视图系统学习(工业级方法论)
description: 场景四视图学习完成——单图局限认知+工业级5招俯视图锁空间/九宫格/全景/环绕/参考图控图),学习笔记+技巧库已更新
type: project
---
# 场景四视图系统学习2026-08-01
## 核心认知(打破误区)
- **根本限制**:一张场景图只是"固定角度/光线/景别的截面",让模型脑补其他角度只能猜
- 场景四视图不能靠"单图+文字描述",需要"空间逻辑先行 + 多角度资产"
## 工业级 5 招社区共识B站/抖音/gpt88/知乎Day40
1. 俯视图锁定空间逻辑(核心:平面图定义布局→所有视角共享基准)
2. 九宫格多角度(一张图 9 角度)
3. 720° 全景图自由取景(宽幅全景→切段,空间逻辑天然一致)
4. 360° 环绕截图
5. 参考图控图最强Seedance/即梦/ComfyUI IPAdapter+ControlNet 基于俯视基准图)
## 四视角标准(爸爸定)
正面外观 / 背面外观 / 室内视角 / 鸟瞰俯视
## 咱的落地判断
- **Z-Image 支持 img2img + ControlNet2026-05 官方确认 zimage.run**:可用参考图/草图/ControlNet 作控制条件生图,单图多视角不再只能靠 prompt 硬脑补;但多视角空间逻辑仍需俯视基准+多角度资产配合
- 务实方案宽幅全景→PIL 切段(工业级"全景自由取景"
- 进阶方案Z-Image 自带 img2img + ControlNet草图/参考图控图),或 ComfyUI SDXL + ControlNet-Union俯视基准图作控制条件→ 彻底锁定
## 已沉淀
- `skill/scene_4view_learn.md`:学习笔记
- `skill/community_techniques.md`:技巧库升级为工业级方法论
## 场景九宫格技巧2026-08-01 爸爸教)
- **大神做场景图用的是九宫格不同视角图**——不是单张
- 生成一个场景时,用九宫格(3x3)铺开不同视角:全景/中景/近景、俯视/平视/仰视、不同角度
- 作用:场景资产一次到位,后续分镜直接从九宫格里选对应视角,保证场景一致性
- 场景资产 = 多视角九宫格 + 统一风格色调

View File

@ -0,0 +1,43 @@
---
name: 工作台B方案·技能系统已完成待重启
description: 苍耳技能库 Skill Hub 已实现——skill/目录+skill_center.py+面板两个端点+前端技能库按钮,待重启面板生效
type: project
---
# 工作台 B 方案技能系统2026-08-01 完成,待重启生效)
## 是什么
LibTV 式 Skill Hub 的本地版:把已有 Skill 文档变成"点一下就注入提示词/执行工具"的系统。
## 结构
- `~/cang-ying/skill/index.json`技能注册表6个技能
- `~/cang-ying/skill/skill_center.py`list / load / run
- 面板新端点:`/api/skills`(列表)、`/api/skill`load/run
- 前端:工具栏 🧠 技能库 按钮 → 模态框列表 → 提示词型注入输入框 / 工具型填参数执行
## 6 个技能
screenplay(编剧大师·prompt) / storyboard(分镜·tool) / style_transfer(风格转绘·prompt) / ltx_video(LTX出片·tool) / zimage(Z-Image生图·tool) / compose(拼接成片·tool)
## 验证(全过)
- skill_center list/load/run 单测 ✅
- E2E/api/skills 返回6技能、load screenplay 2146字节、run 提示词型正确拒绝 ✅
## 待办
- **重启面板生效**`bash ~/cang-ying/scripts/restart-eed.sh`
- 重启后:工具栏出现 🧠 技能库
## 踩坑
- **import sys 曾丢失**A2 时补过 `import sys`但后续重写被覆盖do_POST_agent 的 sys.executable 会 NameError被 except 吞掉很隐蔽。本次已重新补上831-836 import 块)。
- skill_center 用 `sys.path.insert(0, ~/cang-ying)``from skill.skill_center import ...` 导入
## 漫剧提示词技能体系2026-08-01 系统性学习完成)
skill/ 现有15个技能其中漫剧提示词新增3个
- `manju_prompt_system.md` — 方法论:全流程/分层结构/分镜格式/五要素/单人锁定/一致性/运镜/配音
- `manju_prompt_library.md` — 素材库50种运镜(中英Prompt+场景) + 8类表情物理化 + 英文固定词库 + 动态提示词
- `manju_workflow_prompts.md` — 实战模板:选题钩子/角色卡/六镜头分镜/图像视频分工/配音字幕剪辑/复盘
核心铁律(爸爸强调"学无可学挖无可挖"
1. 提示词=分层结构:主体(数量锁定)→构图→光影→风格
2. 单人锁定1 single man + ONLY ONE person + 负面词防多头
3. 视频提示词=五要素:主体+动作+场景+运镜+光影;一镜一运镜
4. 表情=眉眼鼻嘴肩五部件物理化描述
5. 角色一致性=资产库+3视觉锚点+提示词锁定+控变量法
6. 图生视频安全动作subtle movement/slow motion/hair floating 防崩

13
memory/eed/ref_balance.md Normal file
View File

@ -0,0 +1,13 @@
---
name: 账号积分余额查看位置
description: 苍耳 CodeBuddy/WorkBuddy 账号积分余额在哪看、蛋蛋本地工具为何取不到、当前方案
type: reference
---
苍耳的 CodeBuddy / WorkBuddy 账号**积分余额**,可在 **WorkBuddy 客户端** 或网页 **https://www.codebuddy.cn/profile/plans-usage**(需登录)查看。
蛋蛋本地 Web 工具(`scripts/eed_web.py`**无法自动获取**该余额:数据在服务端账户侧,需登录态/密钥;本地接口只回传单次对话的 token 用量与花费(底部"用量条")。
当前做法:顶栏「💰 余额」按钮 → 手动填"套餐总额/已用" → 蛋蛋算剩余并 localStorage 记住,顶栏显示「💰 剩 N」。
若要自动获取:需爸爸提供 WorkBuddy 查余额用的接口/方式,且须走 EED-PROTO-005「爸爸验证码」受控路径用户明确点头才做

View File

@ -0,0 +1,27 @@
---
name: 苍耳技能经验库(开工必查)
description: cang-ying/memory/eed/ 是蛋蛋的全部技能/硬件/方法论经验库,接任何生成/视频/脚本任务前必须先查这里,禁止凭印象瞎搞
type: reference
---
# 苍耳技能经验库 · 开工必查2026-08-01 爸爸批评后建立)
**位置**`/home/ls/cang-ying/memory/eed/`
**索引**`/home/ls/cang-ying/memory/eed/MEMORY.md`(一页看完所有经验)
## 关键经验文件(按任务类型速查)
- **LTX-2.3 视频**`ltx_test_hardware.md`Q4 GGUF+Gemma12B+动态显存参数+embconn 已跑通!)+ `ltx_prompt_skill.md`(四段式提示词)+ `ltx_prompt_methodology.md`
- **Wan2.2 视频**`wan22_test_hardware.md`14B 双专家 Q4 已跑通!)
- **Z-Image 生图**`z_image_turbo_setup.md`Qwen3-4B 编码器官方8步链路
- **剧本/分镜/转绘**`screenplay_skill.md` / `storyboard_自动化.md` / `style_transfer_skill.md`
- **用户配置**`user_setup.md`
## 为什么必须查Why
- 2026-08-01 跑苏白打太极LTX 明明已在 ltx_test_hardware.md 跑通178秒出片我没查 → 用 fp8 模型+无动态显存参数 → 2次OOM + 1次卡死26分钟 → 全无用功
- 经验都在库里,不查 = 白学
## How to apply强制流程
1. **接任何任务 → 第一步查这个索引**grep 相关关键词)
2. 有对应经验 → **直接复用成功配置**,不重新摸索
3. 没对应经验 → 才允许"先搜索再动手"
4. 跑生成/视频类任务,禁止凭空猜参数

View File

@ -57,3 +57,27 @@ type: project
参考完整文件:`/home/ls/下载/ce3c9bfe-0e8e-4bcb-91f3-3897581209e1.png`
2026-07-31 晚 一键短剧 Agent 第一版完成agent_short_drama.py183行
- 位置:~/cang-ying/video-ai-system/agent_short_drama.py
- 阶段:①分镜(豆包¥0.01/集,走申请) ②路由(豆包) ③逐镜出图(本地Z-Image零成本) ④拼接(待接LTX I2V视频)
- 特性:--until/--from 断点续跑、--max-shots 限镜测试、失败即报错定位、自动提交ComfyUI并等待
- 已验证:--from render 造最小分镜出1镜 ✅(自动提交+等待+清单)
- 待做video 阶段LTX I2V 逐镜成片、compose 阶段、面板"一键短剧"按钮
- 出图默认走 Z-Image1024x1024 8步 res_multistep未来接 IP-Adapter/StoryDiffusion 做角色一致性
2026-07-31 晚 一键短剧 Agent 全链路验证通过282行
- render→video→compose 三段全通本地零成本测试1镜出图→LTX 49帧视频→成片
- 新增stage_videoLTX I2V 逐镜成片默认49帧768x512自动找起始图→提交→收片、stage_compose
- 断点:--until video/compose、--from video/compose--frames 控制帧数
- ⚠️ 坑video_composer 方案B 的 concat 滤镜假定每段有音频流LTX 视频无声会挂→Agent 单段直接拷贝绕过多段无声走方案A concat copy 正常
- 待做:面板"一键短剧"按钮、真实剧本试跑豆包分镜费申请、B Skill 系统
- 试跑示例python agent_short_drama.py <剧本> -e 1 --until compose
2026-07-31 晚 面板"一键短剧"按钮完成eed_web.py 补丁,备份 .bak5
- 前端 #btnDrama 按钮 + dramaModal贴剧本/分镜JSON、类型选择、豆包授权勾选、帧数、进度pre、成片video
- 后端 /api/agent 端点SSE 流式 agent_log 进度 → agent_done 返回成片 /media/outputs/agent_EP.mp4
- 已验证:/api/agent 贴分镜JSON → 自动出图→LTX 25帧视频→成片 ✅curl -N SSE
- ⚠️ 踩坑×2① eed_web.py 缺 import urllib.request/sysNameError 被 except 吞成 503/异常)② 诊断方法=except 加 print 日志定位
- 剧本类型需勾选豆包授权EED-PROTO-005才能跑分镜段
- 待重启面板生效bash ~/cang-ying/scripts/restart-eed.sh

View File

@ -0,0 +1,16 @@
---
name: 苍耳协作偏好
description: 苍耳是谁、技术熟悉度、以及对工具界面的偏好GUI/桌面图标优先于终端)
type: user
---
苍耳 = cang-ying 仓库里 EED/耳耳蛋 人格系统的「人类主控 / 爸爸」TCS-CL-0009
- 身份网文资深编辑、短剧公司老板、AI 短剧内容总控。非技术背景。
- 技术舒适度:低。明确说过「我不是很习惯」终端/命令行。
- 界面偏好:要 GUI / 可双击的桌面图标,不要让他手动开终端敲命令。
- 交互方式通过自己设计的「耳耳蛋EED」语言人格体与我对话触发词耳耳蛋/蛋蛋/进入胖头鱼系统)。
- 给他的工具:优先做最小摩擦的图形界面或桌面启动器,避免裸 CLI。
**Why:** 他做的是内容创作,不是工程;终端对他是不必要的认知负担。
**How to apply:** 为他实现任何功能时,默认提供桌面图标/图形入口;若只能做命令行,主动说明并给出可选的 GUI 方案(如 CodeBuddy 的 `--serve --open` 浏览器界面)。

View File

@ -0,0 +1,7 @@
---
name: 暗号词·榴莲
description: 苍耳爸爸让记住的词「榴莲」,是一个暗号/标记词
type: user
---
苍耳爸爸让蛋蛋记住一个词:**榴莲**2026-06-20 记录)。这是爸爸主动让记住的词,属于两人之间的暗号/标记。如果爸爸之后提到「榴莲」,说明在呼应这个词,蛋蛋应该认得。

View File

@ -0,0 +1,31 @@
---
name: z_image_controlnet
description: Z-Image-Turbo ControlNetFun-Controlnet-Union已验证配置节点/加载器/模型位置/2.1下载/管线,纠正"要装包/要controlnet_aux库"两条错路
type: project
---
为 Z-Image-Turbo 加 ControlNet 精确控制Canny/Depth/Pose本地已验证全链路可用2026-08-02 实查+跑通)。
**关键事实(已逐一验证,别再走错路):**
1. 应用节点 `QwenImageDiffsynthControlnet``ZImageFunControlnet` **本地 ComfyUI 已自带**comfy_extras/nodes_model_patch.py:547 / :584**无需安装任何自定义节点包**。
2. 加载器 `ModelPatchLoader`(分类 model/loaders会**按权重 key 自动识别** Z-Image 控制模型(检测到 `control_all_x_embedder.2-1.weight` 即实例化 `comfy.ldm.lumina.controlnet.ZImage_Control`,支持到 15 控制层 + refiner。模型放 `models/model_patches/` 即被扫描到。
3. `comfyui_controlnet_aux` 节点**自带全套预处理**`src/custom_controlnet_aux/`canny/depth_anything/open_pose/dwpose/lineart/hed…**不需要外挂 `controlnet_aux` PyPI 库**。
4. 唯一缺的:模型文件 `Z-Image-Turbo-Fun-Controlnet-Union`。官方最新 **2.1** 版在 `alibaba-pai/Z-Image-Turbo-Fun-Controlnet-Union-2.1`2.0 / ModelScope 原版也兼容加载器)。
**下载(需开沙箱联网):**
`huggingface-cli download alibaba-pai/Z-Image-Turbo-Fun-Controlnet-Union-2.1 --include "*.safetensors" --local-dir /home/ls/comfy/ComfyUI/models/model_patches/`
(下载前先列清单确认精确 safetensors 文件名与体积)
**工作流节点链(加进现有 Z-Image img2img 草图→上色):**
```
参考图 →[comfyui_controlnet_aux 预处理: Canny/Depth/OpenPose 任选]→ hint图
model(Z-Image Turbo) + ModelPatchLoader(Union模型)→MODEL_PATCH
└─[QwenImageDiffsynthControlnet: model, model_patch, vae, image=hint, strength=1.0]→ 受控MODEL
受控MODEL → KSampler(denoise=0.75, steps=8, cfg=1.0, res_multistep, simple)
+ VAEEncode(草图)作latent + CLIPTextEncode(qwen_3_4b)正 + ConditioningZeroOut负
→ VAEDecode → SaveImage
```
**Why:** 之前 summary 记了两条错路("要装 QwenImageDiffsynthControlnet 自定义包"、"缺 controlnet_aux 库要 pip 装"实查都是错的白费时间。ControlNet 让 Z-Image 草图生图能锁定构图/姿态/深度,是爸爸要的"功能要全"。
**How to apply:** 再遇到 Z-Image 加 ControlNet直接按本文件走先查 eed 复用,别重新瞎找节点包或装库。模型下载属联网操作,按 EED-PROTO-005申请→爸爸验证码→固定动作→回执且沙箱禁联网需 dad 批准开 dangerouslyDisableSandbox。

View File

@ -9,11 +9,16 @@
import http.server
import json
import os
import subprocess
import threading
import webbrowser
CODEBUDDY = "/home/ls/.local/bin/codebuddy"
# 蛋蛋主脑工作目录:面板与终端共用同一个 CodeBuddy 项目库(记忆 + 会话都落这里)
# 对应 ~/.codebuddy/projects/home-ls/。改这里 = 换脑,务必与 SESSION_DIR 保持一致。
EED_CWD = "/home/ls"
SESSION_DIR = os.path.expanduser("~/.codebuddy/projects/home-ls")
MODELS = [
("hy3", "Hy3默认·稳定"),
@ -906,7 +911,7 @@ COMPACT_RESUME_MAX = 4 * 1024 * 1024 # 超过4MB的会话不尝试模型摘要
def maybe_compact(sid, model):
"""会话文件过大时:先 resume 出一份摘要,再开新场次衔接。返回 dict 或 None。
若模型摘要失败/文件超大自动降级为直接读文件尾部生成原始摘要保证永远有衔接"""
f = os.path.join(os.path.expanduser("~/.codebuddy/projects/home-ls"), sid + ".jsonl")
f = os.path.join(SESSION_DIR, sid + ".jsonl")
if not os.path.exists(f):
return None
size = os.path.getsize(f)
@ -919,7 +924,8 @@ def maybe_compact(sid, model):
"--resume", sid, "-p",
"请把当前对话的所有重要信息压缩成不超过500字的结构化摘要包含①关键事实 ②已做的决策 ③进行中的任务/下一步 ④爸爸的偏好。只输出摘要正文,不要任何其他内容。"]
try:
r = subprocess.run(summary_cmd, capture_output=True, text=True, timeout=120)
r = subprocess.run(summary_cmd, capture_output=True, text=True, timeout=120,
cwd=EED_CWD)
summary = ""
for line in r.stdout.splitlines():
try:
@ -1016,6 +1022,39 @@ class Handler(http.server.BaseHTTPRequestHandler):
self.end_headers()
self.wfile.write(body)
def _send_media(self, fpath, ctype):
"""发送媒体文件,支持 HTTP Range视频流式播放必需"""
size = os.path.getsize(fpath)
rng = self.headers.get("Range")
if rng and rng.startswith("bytes="):
try:
parts = rng[6:].split("-", 1)
start = int(parts[0]) if parts[0] else 0
end = int(parts[1]) if len(parts) > 1 and parts[1] else size - 1
if start > end or start >= size:
start, end = 0, size - 1
end = min(end, size - 1)
except Exception:
start, end = 0, size - 1
length = end - start + 1
self.send_response(206)
self.send_header("Content-Type", ctype)
self.send_header("Content-Range", f"bytes {start}-{end}/{size}")
self.send_header("Content-Length", str(length))
self.send_header("Accept-Ranges", "bytes")
self.end_headers()
with open(fpath, "rb") as fh:
fh.seek(start)
self.wfile.write(fh.read(length))
else:
self.send_response(200)
self.send_header("Content-Type", ctype)
self.send_header("Content-Length", str(size))
self.send_header("Accept-Ranges", "bytes")
self.end_headers()
with open(fpath, "rb") as fh:
self.wfile.write(fh.read())
def _event(self, etype, data):
# 用 HTTP chunked 分块编码发送,浏览器 fetch 流式读取才能逐块收到。
# 关键:把 type 也写进 data 的 JSON 里,前端是从 JSON 读 type 的(不止靠 SSE event: 字段)
@ -1047,8 +1086,7 @@ class Handler(http.server.BaseHTTPRequestHandler):
elif p.startswith("/media/"):
fpath = os.path.join(os.path.expanduser("~/cang-ying"), p[len("/media/"):])
if os.path.isfile(fpath):
with open(fpath, "rb") as fh:
self._send(200, fh.read(), self._media_type(fpath))
self._send_media(fpath, self._media_type(fpath))
else:
self._send(404, b"not found")
else:
@ -1121,7 +1159,8 @@ class Handler(http.server.BaseHTTPRequestHandler):
self.send_header("Connection", "keep-alive")
self.end_headers()
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT,
text=True, bufsize=1, start_new_session=True)
text=True, bufsize=1, start_new_session=True,
cwd=EED_CWD)
_register(proc)
final = ""
for line in proc.stdout:
@ -1154,7 +1193,8 @@ class Handler(http.server.BaseHTTPRequestHandler):
def _stream_cmd(self, cmd):
"""跑一次 codebuddy 子进程,边解析边把事件流式推给前端,返回累计文本。"""
proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL,
text=True, bufsize=1, start_new_session=True)
text=True, bufsize=1, start_new_session=True,
cwd=EED_CWD)
_register(proc)
acc = ""
try: