auto-snapshot 2026-07-16 03:00:33

This commit is contained in:
小唯 A06 2026-07-16 03:00:33 +08:00
parent 7b3e2040ee
commit 216fc45457
20 changed files with 686 additions and 221 deletions

View File

@ -1,5 +1,5 @@
{
"updated_at": "2026-07-15T02:56:27.858790",
"updated_at": "2026-07-16T02:56:30.491025",
"platforms": {
"telegram": [],
"discord": [],

View File

@ -10,9 +10,9 @@ providers:
cost_factor: 0.0
default_model: minimaxai/minimax-m3
models:
- mistralai/mistral-medium-3.5-128b
- minimaxai/minimax-m2.7
- minimaxai/minimax-m3
- mistralai/mistral-medium-3.5-128b
- minimaxai/minimax-m2.7
- minimaxai/minimax-m3
rate_limit: 1000
timeout: 30
deepseek:
@ -21,8 +21,8 @@ providers:
cost_factor: 0.0
default_model: deepseek-v4-flash
models:
- deepseek-v4-flash
- deepseek-v4-pro
- deepseek-v4-flash
- deepseek-v4-pro
rate_limit: 1000
timeout: 30
fallback_providers: '["deepseek"]'
@ -31,12 +31,12 @@ moa:
presets:
expert-panel:
reference_models:
- provider: newapi-local
model: qwen/qwen3.5-122b-a10b
- provider: newapi-local
model: minimaxai/minimax-m2.7
- provider: newapi-local
model: mistralai/mistral-large-3-675b-instruct-2512
- provider: newapi-local
model: qwen/qwen3.5-122b-a10b
- provider: newapi-local
model: minimaxai/minimax-m2.7
- provider: newapi-local
model: mistralai/mistral-large-3-675b-instruct-2512
aggregator:
provider: newapi-local
model: qwen/qwen3.5-122b-a10b
@ -46,8 +46,8 @@ moa:
default_preset: expert-panel
save_traces: false
toolsets:
- hermes-cli
- web
- hermes-cli
- web
agent:
max_turns: 90
gateway_timeout: 1800
@ -166,7 +166,7 @@ bedrock:
auxiliary:
vision:
provider: newapi-local
model: meta/llama-3.2-90b-vision-instruct
model: meta/llama-3.2-11b-vision-instruct
base_url: http://127.0.0.1:3000/v1
api_key: 0ExNiLblJvIWBDpkS50fwOBw4MmqLyKdHJK5iQtlw9dOMWBP
timeout: 120
@ -279,9 +279,9 @@ display:
ephemeral_system_ttl: 0
runtime_footer:
fields:
- model
- context_pct
- cwd
- model
- context_pct
- cwd
copy_shortcut: auto
resume_exchanges: 10
resume_max_user_chars: 300
@ -428,35 +428,35 @@ approvals:
mcp_reload_confirm: true
destructive_slash_confirm: false
command_allowlist:
- stop/restart hermes gateway (kills running agents)
- sudo with combined-flag privilege escalation
- copy/move file into /etc/
- shell command via -c/-lc flag
- script execution via heredoc
- overwrite project env/config via redirection
- in-place edit of system config
- script execution via -e/-c flag
- force kill processes
- world/other-writable permissions
- sudo with privilege flag (stdin/askpass/shell/list)
- hermes update (restarts gateway, kills running agents)
- stop/restart system service
- start gateway outside systemd (use 'systemctl --user restart hermes-gateway')
- find -delete
- recursive delete
- copy/move file into system config path
- git force push (rewrites remote history)
- overwrite system file via redirection
- disk copy
- SQL TRUNCATE
- kill process via pgrep expansion (self-termination)
- force kill processes (killall -KILL)
- overwrite system config
- overwrite system file via tee
- git force push short flag (rewrites remote history)
- kill hermes/gateway process (self-termination)
- delete in root path
- pipe remote content to shell
- stop/restart hermes gateway (kills running agents)
- sudo with combined-flag privilege escalation
- copy/move file into /etc/
- shell command via -c/-lc flag
- script execution via heredoc
- overwrite project env/config via redirection
- in-place edit of system config
- script execution via -e/-c flag
- force kill processes
- world/other-writable permissions
- sudo with privilege flag (stdin/askpass/shell/list)
- hermes update (restarts gateway, kills running agents)
- stop/restart system service
- start gateway outside systemd (use 'systemctl --user restart hermes-gateway')
- find -delete
- recursive delete
- copy/move file into system config path
- git force push (rewrites remote history)
- overwrite system file via redirection
- disk copy
- SQL TRUNCATE
- kill process via pgrep expansion (self-termination)
- force kill processes (killall -KILL)
- overwrite system config
- overwrite system file via tee
- git force push short flag (rewrites remote history)
- kill hermes/gateway process (self-termination)
- delete in root path
- pipe remote content to shell
quick_commands: {}
hooks: {}
hooks_auto_accept: false
@ -479,6 +479,7 @@ cron:
max_parallel_jobs: null
provider: auto
gateway_required: true
default_deliver: origin,feishu:oc_81f6df701c872a1122f32080e366543f
kanban:
dispatch_in_gateway: true
dispatch_interval_seconds: 60
@ -559,16 +560,16 @@ paste_collapse_char_threshold: 2000
mcp_servers:
codegraph:
args:
- serve
- --mcp
- serve
- --mcp
command: codegraph
connect_timeout: 60
enabled: true
timeout: 120
github:
args:
- -y
- '@modelcontextprotocol/server-github'
- -y
- '@modelcontextprotocol/server-github'
command: npx
enabled: true
env:
@ -577,30 +578,30 @@ mcp_servers:
openclaw:
command: openclaw
args:
- mcp
- serve
- mcp
- serve
connect_timeout: 60
timeout: 300
platform_toolsets:
cli:
- browser
- clarify
- code_execution
- computer_use
- cronjob
- delegation
- file
- image_gen
- mcp-codegraph
- memory
- messaging
- session_search
- skills
- terminal
- todo
- tts
- vision
- web
- browser
- clarify
- code_execution
- computer_use
- cronjob
- delegation
- file
- image_gen
- mcp-codegraph
- memory
- messaging
- session_search
- skills
- terminal
- todo
- tts
- vision
- web
platforms:
webhook:
enabled: true
@ -614,9 +615,9 @@ platforms:
plugins:
disabled: []
enabled:
- agentic-sms-gateway
- cronalytics
- rtk-rewrite
- agentic-sms-gateway
- cronalytics
- rtk-rewrite
weixin:
enabled: true
extra:
@ -625,4 +626,4 @@ weixin:
session_reset: {}
known_plugin_toolsets:
cli:
- spotify
- spotify

View File

@ -20,15 +20,15 @@
"schedule_display": "every 1m",
"repeat": {
"times": null,
"completed": 18994
"completed": 19714
},
"enabled": true,
"state": "scheduled",
"paused_at": null,
"paused_reason": null,
"created_at": "2026-06-21T18:52:36.548110+08:00",
"next_run_at": "2026-07-15T03:00:14.922575+08:00",
"last_run_at": "2026-07-15T02:59:14.922575+08:00",
"next_run_at": "2026-07-16T03:00:34.188544+08:00",
"last_run_at": "2026-07-16T02:59:34.188544+08:00",
"last_status": "ok",
"last_error": null,
"last_delivery_error": null,
@ -77,7 +77,7 @@
"last_status": "ok",
"last_error": null,
"last_delivery_error": null,
"deliver": "feishu:oc_cd14ec7518926e57d26c5e339ebba3b3",
"deliver": "feishu:oc_81f6df701c872a1122f32080e366543f",
"origin": {
"platform": "feishu",
"chat_id": "oc_cd14ec7518926e57d26c5e339ebba3b3",
@ -116,15 +116,15 @@
"schedule_display": "every 360m",
"repeat": {
"times": null,
"completed": 24
"completed": 28
},
"enabled": true,
"state": "scheduled",
"paused_at": null,
"paused_reason": null,
"created_at": "2026-07-09T01:30:54.618246+08:00",
"next_run_at": "2026-07-15T08:34:15.566575+08:00",
"last_run_at": "2026-07-15T02:34:15.566575+08:00",
"next_run_at": "2026-07-16T08:44:04.126613+08:00",
"last_run_at": "2026-07-16T02:44:04.126613+08:00",
"last_status": "ok",
"last_error": null,
"last_delivery_error": null,
@ -162,15 +162,15 @@
"schedule_display": "every 30m",
"repeat": {
"times": null,
"completed": 284
"completed": 332
},
"enabled": true,
"state": "scheduled",
"paused_at": null,
"paused_reason": null,
"created_at": "2026-07-09T01:42:21.503720+08:00",
"next_run_at": "2026-07-15T03:30:14.527392+08:00",
"last_run_at": "2026-07-15T02:30:14.239241+08:00",
"next_run_at": "2026-07-16T03:15:33.632562+08:00",
"last_run_at": "2026-07-16T02:45:33.632562+08:00",
"last_status": "ok",
"last_error": null,
"last_delivery_error": null,
@ -208,19 +208,19 @@
"schedule_display": "0 22 * * *",
"repeat": {
"times": null,
"completed": 5
"completed": 6
},
"enabled": true,
"state": "scheduled",
"paused_at": null,
"paused_reason": null,
"created_at": "2026-07-09T01:43:11.921492+08:00",
"next_run_at": "2026-07-15T22:00:00+08:00",
"last_run_at": "2026-07-14T22:00:54.968202+08:00",
"next_run_at": "2026-07-16T22:00:00+08:00",
"last_run_at": "2026-07-15T22:02:17.846872+08:00",
"last_status": "ok",
"last_error": null,
"last_delivery_error": null,
"deliver": "feishu:oc_cd14ec7518926e57d26c5e339ebba3b3",
"deliver": "feishu:oc_81f6df701c872a1122f32080e366543f",
"origin": {
"platform": "feishu",
"chat_id": "oc_cd14ec7518926e57d26c5e339ebba3b3",
@ -258,15 +258,15 @@
"schedule_display": "0 3 * * *",
"repeat": {
"times": null,
"completed": 7
"completed": 8
},
"enabled": true,
"state": "scheduled",
"paused_at": null,
"paused_reason": null,
"created_at": "2026-07-09T02:10:36.846128+08:00",
"next_run_at": "2026-07-16T03:00:00+08:00",
"last_run_at": "2026-07-14T03:00:50.560400+08:00",
"next_run_at": "2026-07-17T03:00:00+08:00",
"last_run_at": "2026-07-15T03:00:14.726843+08:00",
"last_status": "ok",
"last_error": null,
"last_delivery_error": null,
@ -304,19 +304,19 @@
"schedule_display": "0 3 * * *",
"repeat": {
"times": null,
"completed": 6
"completed": 7
},
"enabled": true,
"state": "scheduled",
"paused_at": null,
"paused_reason": null,
"created_at": "2026-07-09T02:11:00.385573+08:00",
"next_run_at": "2026-07-16T03:00:00+08:00",
"last_run_at": "2026-07-14T03:00:51.123556+08:00",
"next_run_at": "2026-07-17T03:00:00+08:00",
"last_run_at": "2026-07-15T03:00:15.293737+08:00",
"last_status": "ok",
"last_error": null,
"last_delivery_error": null,
"deliver": "feishu:oc_cd14ec7518926e57d26c5e339ebba3b3",
"deliver": "feishu:oc_81f6df701c872a1122f32080e366543f",
"origin": {
"platform": "feishu",
"chat_id": "oc_cd14ec7518926e57d26c5e339ebba3b3",
@ -362,7 +362,7 @@
"last_status": "error",
"last_error": "Script not found: /home/muc/.hermes/scripts/skill-manager.py scan",
"last_delivery_error": null,
"deliver": "feishu:oc_cd14ec7518926e57d26c5e339ebba3b3",
"deliver": "feishu:oc_81f6df701c872a1122f32080e366543f",
"origin": {
"platform": "feishu",
"chat_id": "oc_cd14ec7518926e57d26c5e339ebba3b3",
@ -408,7 +408,7 @@
"last_status": "error",
"last_error": "Script not found: /home/muc/.hermes/scripts/optimizer.py report",
"last_delivery_error": null,
"deliver": "feishu:oc_cd14ec7518926e57d26c5e339ebba3b3",
"deliver": "feishu:oc_81f6df701c872a1122f32080e366543f",
"origin": {
"platform": "feishu",
"chat_id": "oc_cd14ec7518926e57d26c5e339ebba3b3",
@ -442,19 +442,19 @@
"schedule_display": "0 5 * * *",
"repeat": {
"times": null,
"completed": 7
"completed": 8
},
"enabled": true,
"state": "scheduled",
"paused_at": null,
"paused_reason": null,
"created_at": "2026-07-09T02:46:29.345663+08:00",
"next_run_at": "2026-07-15T05:00:00+08:00",
"last_run_at": "2026-07-14T05:00:53.443005+08:00",
"next_run_at": "2026-07-16T05:00:00+08:00",
"last_run_at": "2026-07-15T05:00:16.839834+08:00",
"last_status": "ok",
"last_error": null,
"last_delivery_error": null,
"deliver": "feishu:oc_cd14ec7518926e57d26c5e339ebba3b3",
"deliver": "feishu:oc_81f6df701c872a1122f32080e366543f",
"origin": {
"platform": "feishu",
"chat_id": "oc_cd14ec7518926e57d26c5e339ebba3b3",
@ -488,15 +488,15 @@
"schedule_display": "0 */6 * * *",
"repeat": {
"times": null,
"completed": 30
"completed": 34
},
"enabled": true,
"state": "scheduled",
"paused_at": null,
"paused_reason": null,
"created_at": "2026-07-09T02:51:48.935042+08:00",
"next_run_at": "2026-07-15T06:00:00+08:00",
"last_run_at": "2026-07-15T00:00:38.798182+08:00",
"next_run_at": "2026-07-16T06:00:00+08:00",
"last_run_at": "2026-07-16T00:00:53.731281+08:00",
"last_status": "ok",
"last_error": null,
"last_delivery_error": null,
@ -534,15 +534,15 @@
"schedule_display": "0 9 * * *",
"repeat": {
"times": null,
"completed": 5
"completed": 6
},
"enabled": true,
"state": "scheduled",
"paused_at": null,
"paused_reason": null,
"created_at": "2026-07-09T21:31:29.417518+08:00",
"next_run_at": "2026-07-15T09:00:00+08:00",
"last_run_at": "2026-07-14T09:00:57.709568+08:00",
"next_run_at": "2026-07-16T09:00:00+08:00",
"last_run_at": "2026-07-15T09:00:20.351519+08:00",
"last_status": "ok",
"last_error": null,
"last_delivery_error": null,
@ -580,15 +580,15 @@
"schedule_display": "0 21 * * *",
"repeat": {
"times": null,
"completed": 5
"completed": 6
},
"enabled": true,
"state": "scheduled",
"paused_at": null,
"paused_reason": null,
"created_at": "2026-07-09T21:31:33.068978+08:00",
"next_run_at": "2026-07-15T21:00:00+08:00",
"last_run_at": "2026-07-14T21:00:12.146442+08:00",
"next_run_at": "2026-07-16T21:00:00+08:00",
"last_run_at": "2026-07-15T21:00:30.523974+08:00",
"last_status": "ok",
"last_error": null,
"last_delivery_error": null,
@ -638,7 +638,7 @@
"last_status": "error",
"last_error": "Script not found: /home/muc/.hermes/scripts/proactive_learning.py report",
"last_delivery_error": null,
"deliver": "feishu:oc_cd14ec7518926e57d26c5e339ebba3b3",
"deliver": "feishu:oc_81f6df701c872a1122f32080e366543f",
"origin": {
"platform": "feishu",
"chat_id": "oc_cd14ec7518926e57d26c5e339ebba3b3",
@ -684,7 +684,7 @@
"last_status": "error",
"last_error": "Script not found: /home/muc/.hermes/scripts/stock_learning.py report",
"last_delivery_error": null,
"deliver": "feishu:oc_cd14ec7518926e57d26c5e339ebba3b3",
"deliver": "feishu:oc_81f6df701c872a1122f32080e366543f",
"origin": {
"platform": "feishu",
"chat_id": "oc_cd14ec7518926e57d26c5e339ebba3b3",
@ -718,19 +718,19 @@
"schedule_display": "0 16 * * 1,2,3,4,5",
"repeat": {
"times": null,
"completed": 2
"completed": 3
},
"enabled": true,
"state": "scheduled",
"paused_at": null,
"paused_reason": null,
"created_at": "2026-07-12T01:32:01.773389+08:00",
"next_run_at": "2026-07-15T16:00:00+08:00",
"last_run_at": "2026-07-14T16:00:18.161559+08:00",
"next_run_at": "2026-07-16T16:00:00+08:00",
"last_run_at": "2026-07-15T16:00:37.741584+08:00",
"last_status": "ok",
"last_error": null,
"last_delivery_error": null,
"deliver": "feishu:oc_cd14ec7518926e57d26c5e339ebba3b3",
"deliver": "feishu:oc_81f6df701c872a1122f32080e366543f",
"origin": {
"platform": "feishu",
"chat_id": "oc_cd14ec7518926e57d26c5e339ebba3b3",
@ -764,19 +764,19 @@
"schedule_display": "0 8 * * 1,2,3,4,5",
"repeat": {
"times": null,
"completed": 2
"completed": 3
},
"enabled": true,
"state": "scheduled",
"paused_at": null,
"paused_reason": null,
"created_at": "2026-07-12T02:01:32.403228+08:00",
"next_run_at": "2026-07-15T08:00:00+08:00",
"last_run_at": "2026-07-14T08:00:57.980237+08:00",
"next_run_at": "2026-07-16T08:00:00+08:00",
"last_run_at": "2026-07-15T08:00:20.752389+08:00",
"last_status": "ok",
"last_error": null,
"last_delivery_error": null,
"deliver": "feishu:oc_cd14ec7518926e57d26c5e339ebba3b3",
"deliver": "feishu:oc_81f6df701c872a1122f32080e366543f",
"origin": {
"platform": "feishu",
"chat_id": "oc_cd14ec7518926e57d26c5e339ebba3b3",
@ -810,19 +810,19 @@
"schedule_display": "0 9 * * 1,2,3,4,5",
"repeat": {
"times": null,
"completed": 2
"completed": 3
},
"enabled": true,
"state": "scheduled",
"paused_at": null,
"paused_reason": null,
"created_at": "2026-07-12T02:33:28.322158+08:00",
"next_run_at": "2026-07-15T09:00:00+08:00",
"last_run_at": "2026-07-14T09:01:00.693621+08:00",
"next_run_at": "2026-07-16T09:00:00+08:00",
"last_run_at": "2026-07-15T09:00:23.137217+08:00",
"last_status": "ok",
"last_error": null,
"last_delivery_error": null,
"deliver": "feishu:oc_cd14ec7518926e57d26c5e339ebba3b3",
"deliver": "feishu:oc_81f6df701c872a1122f32080e366543f",
"origin": {
"platform": "feishu",
"chat_id": "oc_cd14ec7518926e57d26c5e339ebba3b3",
@ -856,15 +856,15 @@
"schedule_display": "0 * * * *",
"repeat": {
"times": null,
"completed": 38
"completed": 62
},
"enabled": true,
"state": "scheduled",
"paused_at": null,
"paused_reason": null,
"created_at": "2026-07-13T12:03:22.805682+08:00",
"next_run_at": "2026-07-15T04:00:00+08:00",
"last_run_at": "2026-07-15T02:00:14.685901+08:00",
"next_run_at": "2026-07-16T04:00:00+08:00",
"last_run_at": "2026-07-16T02:00:34.357244+08:00",
"last_status": "ok",
"last_error": null,
"last_delivery_error": null,
@ -902,15 +902,15 @@
"schedule_display": "0 4 * * *",
"repeat": {
"times": null,
"completed": 1
"completed": 2
},
"enabled": true,
"state": "scheduled",
"paused_at": null,
"paused_reason": null,
"created_at": "2026-07-13T12:06:19.941605+08:00",
"next_run_at": "2026-07-15T04:00:00+08:00",
"last_run_at": "2026-07-14T04:00:53.026104+08:00",
"next_run_at": "2026-07-16T04:00:00+08:00",
"last_run_at": "2026-07-15T04:00:16.947727+08:00",
"last_status": "ok",
"last_error": null,
"last_delivery_error": null,
@ -948,15 +948,15 @@
"schedule_display": "every 10m",
"repeat": {
"times": null,
"completed": 203
"completed": 347
},
"enabled": true,
"state": "scheduled",
"paused_at": null,
"paused_reason": null,
"created_at": "2026-07-13T17:02:13.585342+08:00",
"next_run_at": "2026-07-15T03:03:14.488925+08:00",
"last_run_at": "2026-07-15T02:53:14.488925+08:00",
"next_run_at": "2026-07-16T03:03:33.695467+08:00",
"last_run_at": "2026-07-16T02:53:33.695467+08:00",
"last_status": "ok",
"last_error": null,
"last_delivery_error": null,
@ -973,5 +973,5 @@
"fire_claim": null
}
],
"updated_at": "2026-07-15T03:00:14.535666+08:00"
"updated_at": "2026-07-16T03:00:33.741024+08:00"
}

View File

@ -1 +1 @@
1784055614.5396233
1784142033.7443318

View File

@ -1 +1 @@
1784055614.5435557
1784142033.7474978

View File

@ -1,10 +1,10 @@
{
"started_at": "2026-07-08T18:23:30.315261+00:00",
"last_deep_tick": "2026-07-14T18:58:00.402787+00:00",
"last_light_tick": "2026-07-14T19:00:03.843872+00:00",
"last_deep_tick": "2026-07-15T18:58:32.915518+00:00",
"last_light_tick": "2026-07-15T19:00:18.415747+00:00",
"last_state": {
"disk_pct": 43,
"mem_pct": 81,
"disk_pct": 44,
"mem_pct": 82,
"processes": {
"zhiyid": true,
"bge": true,
@ -12,17 +12,17 @@
"hermes": true
}
},
"tick_count": 16863,
"deep_tick_count": 1700,
"tick_count": 19662,
"deep_tick_count": 1980,
"solved_count": 1,
"learned_count": 0,
"uptime_seconds": 137613,
"uptime_seconds": 224028,
"last_reflection": {
"evaluation_previous_goal": "",
"memory": "",
"next_goal": ""
"evaluation_previous_goal": "LLM\u8c03\u7528\u5931\u8d25",
"memory": "\u4e0a\u6b21\u8c03\u7528\u5931\u8d25",
"next_goal": "\u91cd\u8bd5"
},
"last_profile_update": 1784050006.8128788,
"last_profile_update": 1784138792.4839747,
"soulful": {
"recent_moments": [
{

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"pid":10982,"kind":"hermes-gateway","argv":["/home/muc/.hermes/hermes-agent/.venv/lib/python3.11/site-packages/hermes_cli/main.py","gateway","run"],"start_time":213011,"gateway_state":"running","exit_reason":null,"restart_requested":false,"active_agents":0,"platforms":{"webhook":{"state":"connected","error_code":null,"error_message":null,"updated_at":"2026-07-09T15:12:06.693466+00:00"},"feishu":{"state":"connected","error_code":null,"error_message":null,"updated_at":"2026-07-09T15:12:07.191293+00:00"},"weixin":{"state":"fatal","error_code":"weixin_missing_token","error_message":"Weixin startup failed: WEIXIN_TOKEN is required","updated_at":"2026-07-09T15:12:07.200539+00:00"}},"updated_at":"2026-07-14T18:05:46.552069+00:00"}
{"pid":10982,"kind":"hermes-gateway","argv":["/home/muc/.hermes/hermes-agent/.venv/lib/python3.11/site-packages/hermes_cli/main.py","gateway","run"],"start_time":213011,"gateway_state":"running","exit_reason":null,"restart_requested":false,"active_agents":0,"platforms":{"webhook":{"state":"connected","error_code":null,"error_message":null,"updated_at":"2026-07-09T15:12:06.693466+00:00"},"feishu":{"state":"connected","error_code":null,"error_message":null,"updated_at":"2026-07-09T15:12:07.191293+00:00"},"weixin":{"state":"fatal","error_code":"weixin_missing_token","error_message":"Weixin startup failed: WEIXIN_TOKEN is required","updated_at":"2026-07-09T15:12:07.200539+00:00"}},"updated_at":"2026-07-15T17:30:43.124347+00:00"}

View File

@ -1,6 +1,6 @@
{
"updated_at": "2026-07-14T19:00:03.887697+00:00",
"uptime_minutes": 2293,
"updated_at": "2026-07-15T19:00:18.462768+00:00",
"uptime_minutes": 3733,
"cares": [
{
"id": "69396b42",

View File

@ -26,4 +26,6 @@ daemon.py 修改铁律2026-07-13禁止write_file覆盖用patch+精
§
2026-07-13bge_embed_server ONNX arena内存泄漏5.8GB→1.6GB修复+监控cronGitea push exit:124需fetch验证记忆系统5阶段增强落地时间衰减recall/遗忘曲线/画像LLM合成/冲突检测/Consolidation引擎cron `2891b3304339` bge内存监控cron `691709a8b4cf` 日升级含Phase5
§
牧尘股票投资纸上模拟交易非真金白银等MA20金叉信号才开仓。四维评分体系宏观/基本面/技术面/消息面各1分总分4分。当前五粮液空头排列尚未触发金叉。投资决策务实不追高。
牧尘股票投资纸上模拟交易非真金白银等MA20金叉信号才开仓。四维评分体系宏观/基本面/技术面/消息面各1分总分4分。当前五粮液空头排列尚未触发金叉。投资决策务实不追高。
§
飞书群通知oc_81f6df701c872a1122f32080e366543f定时任务通知发飞书群cron.default_deliver="origin,feishu:oc_81f6df701c872a1122f32080e366543f")。小唯 DMou_da2e9d4029c7165c211a2553dc375f80。

View File

@ -60,13 +60,13 @@
"watch_patterns": []
},
{
"session_id": "proc_4ff437999f59",
"session_id": "proc_3f3976a476cc",
"command": "cd /home/muc/ComfyUI && ~/ComfyUI/venv/bin/python3 main.py --lowvram --listen 127.0.0.1 --port 8188",
"pid": 1463453,
"pid": 1622938,
"pid_scope": "host",
"host_start_time": 44419947,
"host_start_time": 47527673,
"cwd": "/home/muc/ComfyUI",
"started_at": 1784051980.3974617,
"started_at": 1784083057.6594045,
"task_id": "default",
"session_key": "agent:main:feishu:dm:oc_cd14ec7518926e57d26c5e339ebba3b3",
"watcher_platform": "",

View File

@ -42,14 +42,14 @@
"archived_at": null,
"created_at": "2026-05-15T03:43:07.033255+00:00",
"created_by": "agent",
"last_patched_at": "2026-05-20T09:31:40.584570+00:00",
"last_used_at": "2026-06-23T10:36:34.568571+00:00",
"last_viewed_at": "2026-06-23T10:36:34.558588+00:00",
"patch_count": 172,
"last_patched_at": "2026-07-15T17:35:31.064780+00:00",
"last_used_at": "2026-07-15T17:33:21.449623+00:00",
"last_viewed_at": "2026-07-15T17:33:21.446053+00:00",
"patch_count": 176,
"pinned": false,
"state": "active",
"use_count": 73,
"view_count": 73
"use_count": 75,
"view_count": 75
},
"airtable": {
"archived_at": null,
@ -368,26 +368,39 @@
"created_at": "2026-06-30T11:24:39.469562+00:00",
"created_by": null,
"last_patched_at": "2026-07-09T04:20:48.590971+00:00",
"last_used_at": "2026-07-14T17:52:28.974663+00:00",
"last_viewed_at": "2026-07-14T17:52:28.971447+00:00",
"last_used_at": "2026-07-15T17:31:41.178532+00:00",
"last_viewed_at": "2026-07-15T17:31:41.175077+00:00",
"patch_count": 1,
"pinned": false,
"state": "active",
"use_count": 2,
"view_count": 2
"use_count": 10,
"view_count": 10
},
"comfyui-portrait-optimization": {
"archived_at": null,
"created_at": "2026-05-14T14:44:11.705354+00:00",
"created_by": null,
"last_patched_at": "2026-05-20T01:48:01.061219+00:00",
"last_used_at": "2026-06-28T02:54:46.376663+00:00",
"last_viewed_at": "2026-06-28T02:54:46.366530+00:00",
"patch_count": 36,
"last_patched_at": "2026-07-15T10:02:30.921843+00:00",
"last_used_at": "2026-07-15T10:01:42.365411+00:00",
"last_viewed_at": "2026-07-15T10:01:42.361917+00:00",
"patch_count": 39,
"pinned": false,
"state": "active",
"use_count": 24,
"view_count": 24
"use_count": 26,
"view_count": 26
},
"comfyui-rtx3050": {
"archived_at": null,
"created_at": "2026-07-15T02:35:19.971805+00:00",
"created_by": "agent",
"last_patched_at": "2026-07-15T04:00:38.547331+00:00",
"last_used_at": "2026-07-15T03:59:55.403320+00:00",
"last_viewed_at": "2026-07-15T03:59:55.398162+00:00",
"patch_count": 6,
"pinned": false,
"state": "active",
"use_count": 4,
"view_count": 4
},
"community-ops-automation": {
"archived_at": null,

71
skills/creative/ai-portrait-workflow/SKILL.md Executable file → Normal file
View File

@ -553,33 +553,60 @@ standing full body, indoor simple background, soft natural lighting, professiona
```yaml
auxiliary:
vision:
provider: custom
model: meta/llama-3.2-90b-vision-instruct # 或 meta/llama-3.2-11b-vision-instruct
base_url: http://127.0.0.1:3000/v1
api_key: < ~/.hermes/.env VLLM_API_KEY 填写完整值>
timeout: 120
```
### 4. 自评vision 模型(⚠️ 必须执行,禁止裸发)
获取完整 api_key`cat ~/.hermes/.env | grep VLLM_API_KEY`
**2026-07-15 教训:生成后必须先用 vision 自检,再发给用户。用户反馈"生成出来的图片,你不能自己先检查一下么?"——这是明确的流程要求。**
验证可用模型:`curl -s http://127.0.0.1:3000/v1/models -H "Authorization: Bearer <KEY>" | python3 -c "import sys,json; [print(m['id']) for m in json.load(sys.stdin).get('data',[]) if 'vision' in m['id']]"`
**标准流程**
1. 生成完成后,立即调用 vision_analyze 检查
2. vision 发现畸形/多人/肢体异常 → 换 seed 重出(不要调参数)
3. vision 通过 → 发给用户最终确认
⚠️ **API 调用格式**(踩坑记录):
```bash
# 正确:必须加 Content-Type header
curl -X POST http://localhost:8188/prompt \
-H "Content-Type: application/json" \
-d '{"prompt": {...}}'
**牧尘的质量标准(比 vision 更严格)**
- 脸部/五官无畸形(鼻头尖/歪/脸变形)
- 肢体正常(腿部完整不断裂/关节扭曲)
- 多人图一男一女比例正确
- vision 可能给 8/10 但用户仍不满意(审美标准差异)
# 错误:不加 header 会报 "No prompt provided"
curl -X POST http://localhost:8188/prompt -d '{"prompt": {...}}'
```
**批量自检脚本**
```python
# /tmp/batch_vision_check.py — 批量检查多张图片
import base64, requests
from PIL import Image
**ComfyUI API 返回格式**:成功返回 `{"prompt_id": "...", "number": N}`,排队中返回 `{"queue_running": [], "prompt_id": ""}`
API = 'http://127.0.0.1:3000/v1/chat/completions'
TOKEN = '<VLLM_API_KEY>'
MODEL = 'meta/llama-3.2-11b-vision-instruct'
配置后用 `vision_analyze` 检查生成图质量。
def analyze_image(path):
img = Image.open(path).convert('RGB')
img.thumbnail((512, 512), Image.LANCZOS)
tmp = '/tmp/vision_check_tmp.png'
img.save(tmp, quality=85)
with open(tmp, 'rb') as f:
b64 = base64.b64encode(f.read()).decode()
resp = requests.post(API, headers={'Authorization': f'Bearer {TOKEN}', 'Content-Type': 'application/json'}, json={
'model': MODEL,
'messages': [{'role': 'user', 'content': [
{'type': 'image_url', 'image_url': {'url': f'data:image/png;base64,{b64}'}},
{'type': 'text', 'text': '简要描述这张图1有几个人2脸部/五官/肢体是否正常3适合做情侣头像吗41-10分质量评分'}
]}], 'max_tokens': 300
}, timeout=90)
return resp.json()['choices'][0]['message']['content']
### 5. 迭代:根据反馈调整
for path in ['/home/muc/ComfyUI/output/av1_00001_.png', ...]:
print(analyze_image(path))
```
**情侣头像专项自检问题**
```
1. 有几个人?是情侣吗(一男一女)?
2. 脸部/五官/肢体是否正常(无畸形/扭曲/多余)?
3. 适合做情侣头像吗?
4. 1-10分质量评分
```
### 5. 迭代:根据反馈调整
| 用户反馈 | 原因 | 解决 |
|----------|------|------|
@ -1062,7 +1089,9 @@ ln -sf ip-adapter-plus-face_sd15.safetensors plus.face.sd15.safetensors
*小唯 A06 专用 | v1.20.0 — 2026-05-19新增账号发帖"不同脸比同脸更好"策略img2img denoise=0.45 无法改背景改用纯txt2img确认MajicMIX>RealisticVision确认咖啡馆最优场景清理条纹衫/紧身/成熟配色更新ComfyUI API标准工作流结构KSampler必填字段说明。*
*v1.21.0 — 2026-05-20今日写实照片转动漫风格——人种变黑人/变老/下巴拉长。Animagine XL 3.1 生成动漫人像Counterfeit-V3.0 备用。提示词必须明确 East Asian Chinese + 负面加 African/black/old man + 正面加 short chin/V-shape。5504x5504 原图必须先 resize 到 1024x1024 再处理。*
*v1.21.0 — 2026-05-20今日写实照片转动漫风格——人种变黑人/变老/下巴拉长。Animagine XL 3.1 生成动漫人像Counterfeit-V3.0 备用。提示词必须明确 East Asian Chinese + 负面加 African/black/old man + 正面加 short chin/V-shape。5504x5504 原图必须先 resize 到 1024x1024 再处理。
*v1.22.0 — 2026-07-15vision 模型从 90B 改为 11B90B 超时),新增生成后自检必检流程,禁止裸发"诡异"图。*
- `references/face-swap-deep-2026-05-16.md` — **今日新增:双头/鬼头问题根因、底模选择、脸部不对称解决、牧尘反馈记录**
- `references/face-swap-deep-2026-05-16.md` — **今日新增:双头/鬼头问题根因、底模选择、脸部不对称解决、牧尘反馈记录**

View File

@ -0,0 +1,73 @@
# 批量 vision 自检脚本
# 用法: ~/ComfyUI/venv/bin/python3 batch_vision_check.py [图片路径列表]
# 或修改下方的 images 列表
import base64, requests, os
from PIL import Image
import sys
API = 'http://127.0.0.1:3000/v1/chat/completions'
TOKEN = '0ExNiLblJvIWBDpkS50fwOBw4MmqLyKdHJK5iQtlw9dOMWBP'
MODEL = 'meta/llama-3.2-11b-vision-instruct'
OUT_FILE = '/tmp/vision_check_results.txt'
QUESTION = '你是图片质量检查员。请检查这张图1有几个人是一男一女吗2脸部/五官/肢体是否正常(无畸形/扭曲/多余3适合做情侣头像吗41-10分质量评分。只回复这4点。'
def analyze_image(image_path):
if not os.path.exists(image_path):
return f'[SKIP] {image_path} - 文件不存在'
# Resize to reduce base64 size (512px max)
img = Image.open(image_path).convert('RGB')
img.thumbnail((512, 512), Image.LANCZOS)
tmp = '/tmp/vision_check_tmp.png'
img.save(tmp, quality=85)
with open(tmp, 'rb') as f:
b64 = base64.b64encode(f.read()).decode()
try:
resp = requests.post(API, headers={
'Authorization': f'Bearer {TOKEN}',
'Content-Type': 'application/json'
}, json={
'model': MODEL,
'messages': [{
'role': 'user',
'content': [
{'type': 'image_url', 'image_url': {'url': f'data:image/png;base64,{b64}'}},
{'type': 'text', 'text': QUESTION}
]
}],
'max_tokens': 300
}, timeout=90)
d = resp.json()
return d.get('choices', [{}])[0].get('message', {}).get('content', '空')
except requests.exceptions.Timeout:
return 'TIMEOUT - vision 模型响应超时'
except Exception as e:
return f'ERROR: {e}'
# 从命令行参数读取图片路径,或使用默认列表
if len(sys.argv) > 1:
images = [(p, os.path.basename(p)) for p in sys.argv[1:]]
else:
# 默认:检查 ComfyUI output 目录下的情侣头像
out_dir = '/home/muc/ComfyUI/output'
images = [
(os.path.join(out_dir, f), f)
for f in sorted(os.listdir(out_dir))
if f.endswith('.png') and ('couple' in f or 'av' in f or 'moon' in f)
]
results = []
for path, desc in images:
print(f'[检查中] {desc} ...', flush=True)
result = analyze_image(path)
results.append(f'=== {desc} ===\n{result}\n')
print(result[:200])
print('---', flush=True)
with open(OUT_FILE, 'w') as f:
f.write('\n'.join(results))
print(f'结果已保存到 {OUT_FILE}')

98
skills/creative/comfyui-portrait-optimization/SKILL.md Executable file → Normal file
View File

@ -11,22 +11,25 @@ readiness_status: available
> 版本v1.2 | 2026-05-19
> 来自牧尘反馈:真实照片风不够自然、手部错位、脸诡异
## SD 1.5 vs SDXL vs MajicMIX 模型选择决策2026-05-19 实测
## SD 1.5 vs SDXL vs Realistic Vision 模型选择2026-07-15 重大更新
| 类型 | 推荐模型 | 原因 |
|------|---------|------|
| **动漫头像/情侣款** | **SDXL (Animagine XL 3.1)** | 脸部稳定、色彩好、4GB 勉强能跑 |
| **动漫头像/情侣款** | **Animagine XL 3.1 (SDXL)** | 脸部稳定、色彩好、4GB 勉强能跑 |
| **写实亚洲美女写真** | MajicMIX Realistic v4 | 亚洲优化 |
| **写实真人头像(首选)** | **Realistic Vision v5.1 fp16** | ✅ 画真人脸最稳五官不扭曲2026-07-15 验证) |
| **写实美女 + 身材/服装** | Realistic Vision v5.1 | SD 1.5 写实都会脸部变形Realistic Vision 明显更好 |
| **动漫风景/建筑/夜景** | SD 1.5 (v1-5-full) | 稳定、不出错 |
| **写实亚洲美女写真** | MajicMIX Realistic v4 | 亚洲优化cafe 场景脸部稳定 |
| **写实美女 + 身材/服装** | ❌ SD 1.5 写实都会脸部变形 | 模型固有缺陷 |
| **美食/产品/花卉** | SD 1.5 | 稳定,商业感强 |
| **海景/水下/自然** | SD 1.5 | 纹理光影稳定 |
**规则**
- 头像账号动漫风 → **SDXL (Animagine XL 3.1)**
- 头像账号写实风 → **MajicMIX Realistic v4**
- SD 1.5 官方版 → 只做**风景/建筑/美食/夜景**(不出错)
- 强调身材/服装的写实图 → 脸部必变形,不要做
**2026-07-15 核心发现**SD 1.5 画真人脸五官/脸型变形是**模型本身的硬伤**,提示词无法完全解决。换 Realistic Vision v5.1 fp16 即可解决此问题。
> ⚠️ **Realistic Vision v5.1 下载注意**
> - 下载:`https://hf-mirror.com/SG161222/Realistic_Vision_V5.1_noVAE/resolve/main/Realistic_Vision_V5.1_fp16-no-ema.safetensors`
> - 文件名:`Realistic_Vision_V5.1_fp16.safetensors`(需重命名去掉 `-no-ema`
> - 大小:约 2GB
> - 验证1831 tensors = 可能是 unpruned1131 tensors = fp16 正确版
> - 路径:`~/ComfyUI/models/checkpoints/`
## 经验总结(实测结论)
@ -736,31 +739,48 @@ readiness_status: available
## 看图分析vision_analyze
> **2026-05-15 更新**vision 模型已切换为本地 `meta/llama-3.2-90b-vision-instruct`new-api 服务)
> **2026-07-15 重大更新**vision 配置必须用小模型90b 会超时
### 配置(~/.hermes/config.yaml
### 正确配置(~/.hermes/config.yaml
```yaml
auxiliary:
vision:
provider: custom
model: meta/llama-3.2-90b-vision-instruct
provider: newapi-local
model: meta/llama-3.2-11b-vision-instruct # ✅ 可用11B 小而快
# model: meta/llama-3.2-90b-vision-instruct # ❌ 超时(图片稍大就挂)
base_url: http://127.0.0.1:3000/v1
api_key: <~/.hermes/.env VLLM_API_KEY 获取>
api_key: <VLLM_API_KEY>
timeout: 120
```
**注意**
- 本地 new-api 服务(端口 3000需要 Bearer token 认证
- Token 在 `~/.hermes/.env` 中:`VLLM_API_KEY=0ExNiL...`
- 也支持 11B 版本(更快):`meta/llama-3.2-11b-vision-instruct`
### 使用方式
```python
vision_analyze(image_url="/path/to/image.png", question="这张人脸和目标特征对比,相似度多少?")
**验证可用模型**
```bash
curl -s http://127.0.0.1:3000/v1/models \
-H "Authorization: Bearer <VLLM_API_KEY>" \
| python3 -c "import sys,json; [print(m['id']) for m in json.load(sys.stdin).get('data',[]) if 'vision' in m['id'].lower()]"
```
### ⚠️ 铁律生成后必须自检再发送2026-07-15 牧尘原话)
**错误流程(被批评)**
```
生成 → 直接发 → 用户说"脸歪/腿畸形" → 重出
```
**正确流程**
```
生成 → vision 自检 → 只发合格的 → 用户选 → 重出有问题的
```
**自检标准(情侣头像必须全部通过)**
1. 有几个人?是**一男一女**两人吗?(不是单人/三人/多人)
2. 脸部/五官/肢体是否正常(无畸形/扭曲/多余手指/腿部异常)?
3. 构图是情侣头像风格吗(两人同框而非远景单人)?
4. 1-10分质量评分
**不通过→重出,不要发给用户。**
---
readiness_status: available
@ -770,9 +790,35 @@ readiness_status: available
>
> **2026-05-15 再次更新(关键)** PLUS FACE preset + weight=0.9 + denoise=0.65 是当前最优方案。STANDARD preset 效果不如 PLUS FACE。
### ✅ 当前最优工作流PLUS FACE preset8/10 相似度
### ✅ Realistic Vision 写实情侣头像2026-07-15 实测,脸型正常
> **核心修复**:之前用 STANDARD preset 是错的PLUS FACE (portraits) 才是人像专用模型。
> 替换 SD 1.5 的首选方案,解决脸变形问题。
```python
import requests, time
API = "http://127.0.0.1:8188/api/prompt"
CKPT = "Realistic_Vision_V5.1_fp16.safetensors" # 约2GB路径 ~/ComfyUI/models/checkpoints/
def gen(name, pos, neg, seed):
workflow = {
"3": {"inputs": {"ckpt_name": CKPT}, "class_type": "CheckpointLoaderSimple"},
"4": {"inputs": {"text": pos, "clip": ["3", 1]}, "class_type": "CLIPTextEncode"},
"5": {"inputs": {"text": neg, "clip": ["3", 1]}, "class_type": "CLIPTextEncode"},
"6": {"inputs": {"width": 512, "height": 768, "batch_size": 1}, "class_type": "EmptyLatentImage"},
"7": {"inputs": {"model": ["3", 0], "positive": ["4", 0], "negative": ["5", 0],
"latent_image": ["6", 0], "seed": seed, "steps": 30, "cfg": 7.5,
"sampler_name": "euler", "scheduler": "normal", "denoise": 1.0},
"class_type": "KSampler"},
"8": {"inputs": {"samples": ["7", 0], "vae": ["3", 2]}, "class_type": "VAEDecode"},
"9": {"inputs": {"filename_prefix": name, "images": ["8", 0]}, "class_type": "SaveImage"}
}
r = requests.post(API, json={"prompt": workflow})
return r.json().get("prompt_id")
# 脚本路径:/tmp/gen_rv.py写完后用 ~/ComfyUI/venv/bin/python3 执行)
```
**防多人铁律**`solo female/male` + `1girl/1boy` + 互斥负面三标签同时用。SD 1.5 和 Realistic Vision 都适用。
**前置条件**:确保 `ip-adapter-plus-face_sd15.safetensors`94MB`/home/muc/ComfyUI-master/models/ipadapter/`

View File

@ -0,0 +1,174 @@
---
name: comfyui-rtx3050
description: ComfyUI RTX 3050 Laptop (4GB VRAM) 调通指南 — 从零搭建到出图,含模型选型和常见坑
version: 2026-07-15
tags: [comfyui, rtx3050, image-generation, local-ai]
---
# ComfyUI RTX 3050 调通指南
RTX 3050 Laptop 4GB VRAM 实测经验汇总。
## 现状确认
| 项目 | 状态 |
|------|------|
| ComfyUI | ✅ v0.27.0 |
| PyTorch | ✅ 2.13.0+cu130 |
| venv | ✅ ~/ComfyUI/venv |
| 模型目录 | ~/ComfyUI/models/checkpoints/ |
| 服务器 | http://127.0.0.1:8188 |
| 进程管理 | background=true 启动process() 管理 |
## 快速启动
```bash
# 启动(已在运行则跳过)
cd ~/ComfyUI && ~/ComfyUI/venv/bin/python3 main.py --lowvram --listen 127.0.0.1 --port 8188
# 验证
curl -s http://127.0.0.1:8188/system_stats | python3 -c "
import sys,json; d=json.load(sys.stdin)
print(d['devices'][0]['name'], '| VRAM free:', round(d['devices'][0]['vram_free']/1024**3,1), 'GB')
"
# 检查模型
ls ~/ComfyUI/models/checkpoints/*.safetensors
```
## 从零搭建venv 空的时候)
```bash
# 1. 安装 torch先装 torch 再装 requirements否则依赖顺序不对
cd ~/ComfyUI
~/ComfyUI/venv/bin/pip install torch torchvision torchaudio \
--index-url https://download.pytorch.org/whl/cu121 \
-i https://pypi.tuna.tsinghua.edu.cn/simple/
# 2. 安装其他依赖
~/ComfyUI/venv/bin/pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
# 3. 验证 torch GPU
~/ComfyUI/venv/bin/python3 -c "import torch; print('CUDA:', torch.cuda.is_available(), torch.cuda.get_device_name(0))"
# 4. 下载模型
curl -L --max-time 900 --retry 3 -C - \
"https://hf-mirror.com/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned.safetensors" \
-o ~/ComfyUI/models/checkpoints/v1-5-pruned.safetensors
# 5. 启动
~/ComfyUI/venv/bin/python3 main.py --lowvram --listen 127.0.0.1 --port 8188
```
## 模型选型
| 场景 | 推荐模型 | 大小 | 下载 |
|------|---------|------|------|
| **写实真人头像** | Realistic Vision v5.1 fp16 | ~2GB | `https://hf-mirror.com/SG161222/Realistic_Vision_V5.1_noVAE/resolve/main/Realistic_Vision_V5.1_fp16-no-ema.safetensors` |
| **亚洲写实美女** | MajicMIX Realistic v4 | ~2GB | `https://hf-mirror.com/Fictionalzone/MajicMIX_Realistic_v4/resolve/main/MajicMIX_Realistic_v4.safetensors` |
| **动漫头像/情侣** | Counterfeit-V3.0_fp16 | ~4GB | `https://hf-mirror.com/gsdf/Counterfeit-V3.0/resolve/main/Counterfeit-V3.0_fp16.safetensors` |
| **通用 SD 1.5** | v1-5-pruned | ~3.5GB | `https://hf-mirror.com/runwayml/stable-diffusion-v1-5/resolve/main/v1-5-pruned.safetensors` |
> ⚠️ **SD 1.5 画真人脸是硬伤**:五官扭曲、脸型变形、手部错位。画真人脸必须用 Realistic Vision 或 MajicMIX。
## 生成情侣头像(动漫版)
```python
# 写 /tmp/gen_couple.py用 venv python 运行
~/ComfyUI/venv/bin/python3 /tmp/gen_couple.py
```
提示词要点:
- **单人约束**:正向往加 `solo male, 1boy`,负向加 `female, woman, girl`(男图)
- **采样器**`euler`steps 30cfg 7.5
- **分辨率**512×768 竖图比 768×512 横图更稳
- **背景**:月光海边/城市夜景,统一色调 `cool blue and teal tones`
- **禁止**`monochrome, grayscale`(压制色彩),`warm colors, orange, yellow, sunset`(色调混乱)
## 生成写实头像(用 Realistic Vision
```bash
# ckpt_name 换成 Realistic_Vision_V5.1_fp16.safetensors
# 提示词模板:
text: "portrait photo of a young East Asian woman, oval-round face, almond eyes,
naturally pretty, warm lighting, professional photography, high quality"
negative: "ugly, deformed, bad anatomy, bad hands, extra fingers,
blurry, low quality, cartoon, anime style, illustration"
> ⚠️ **SD 1.5 画真人脸是硬伤**:五官扭曲、脸型变形、手部错位。画真人脸必须用 Realistic Vision 或 MajicMIX。
> ⚠️ **v1-5-pruned 下载注意**6.4GB 的是 unpruned 全量版(损坏),真实的 pruned 版约 3.5GB。下载后必须用 safetensors 库验证:`ValueError: incomplete metadata` 即损坏,删掉重下。
## 模型验证(下载后必做)
```python
~/ComfyUI/venv/bin/python3 -c "
from safetensors import safe_open
path = '~/ComfyUI/models/checkpoints/xxx.safetensors'
try:
with safe_open(path, framework='pt') as f:
print('OK,', len(list(f.keys())), 'tensors')
except Exception as e:
print('INVALID:', e)
"
```
## 常见报错
| 错误 | 原因 | 修复 |
|------|------|------|
| `buffer length must be multiple of element size 4` | 模型文件不完整/损坏 | 删掉重新下载,用 safetensors 库验证 |
| `incomplete metadata, file not fully covered` | 模型损坏(常见于中断的下载) | 删掉,`curl -L -C -` 断点续传重下 |
| `MajicMIX_Realistic_v4.safetensors: ASCII text` | HF 链接返回 HTML 错误页,文件是文字 | 用 `https://hf-mirror.com` 且路径含 `/resolve/main/` |
| VRAM OOM | 模型太大或没加 `--lowvram` | 加 `--lowvram`,或换 fp16 版本的模型 |
| `clientId` 相关报错 | ComfyUI 版本兼容 | v0.27.0 已修复,直接忽略 |
**写实情侣头像提示词模板(一张图一对情侣,同框生成)**
- **正向**`realistic photography, young couple on beach at sunset, one young man and one young woman, back view, walking hand in hand, golden hour warm orange sky, romantic beach scene, waves, cinematic lighting, high quality photograph, natural skin tones, balanced faces`
- **负向**`worst quality, low quality, lowres, blurry, bokeh, error, watermark, signature, bad anatomy, bad hands, bad face, deformed face, distorted face, asymmetric face, extra person, two people, crowd, group, three people, four people, more than two people, two men, two women, double, twin, duplicate, naked, nude, without clothes`
**⚠️ 写实情侣头像核心铁律2026-07-15 重大修正)**
- **Realistic Vision 画"单人"极不稳定**(经常出 2人/3人/裸体),绝对不能分开出男女单人图然后拼图
- **一张图只出一对情侣1男+1女两人同框**,不要试图画"单独的男/女"
- 每张图 prompt 里同时描述男女:`one young man and one young woman, couple`
- **强化版负面词**(必须全加):
```
extra person, second person, two people, double, duplicate, twin, crowd,
group, three people, four people, more than two people,
two men, two women, two boys, two girls, naked, nude, without clothes,
deformed legs, missing legs, extra legs, broken legs, twisted legs,
asymmetric body, disproportionate body, malformed body, bad proportions
```
- 同时保留正面的数量约束:`one man, one woman, couple`
- 竖图(512×768)比横图更稳,人物比例更小,背景更简单
**⚠️ 面部变形是模型固有问题批量测是唯一临时解2026-07-15**
- Realistic Vision 即使提示词完全正确,仍可能随机出畸形脸/畸形腿
- 根本解决需要安装 AfterDetailer 面部修复节点custom_nodes但 GitHub 被墙无法安装
- **当前 workaround**:一次出 4 张不同 seed如 seed=101/202/303/404让用户挑一张正常的
```python
for i, seed in enumerate([101, 202, 303, 404]):
# 同一 prompt只有 seed 不同
submit({"seed": seed, ...})
time.sleep(3)
```
- 每次迭代后等结果 + 用户反馈,最多 2-3 轮可以找到可用的图
- 若 4 张都不满意 → 换场景描述(换个场景/光线/角度),不要在同一个 prompt 上死磕
**错误示范**(会出多人和裸体):
```
# ❌ 分开出男图和女图Realistic Vision 做不到严格单人
prompt_m: "solo male, 1boy, ...couple..." → 出2男或3人
prompt_f: "solo female, 1girl, ...couple..." → 出2女或裸体
```
**正确做法**
```
# ✅ 一对情侣在同一张图里
prompt: "realistic photography, young couple on beach at sunset,
one young man and one young woman, back view, walking hand in hand,
golden hour, romantic, cinematic, high quality photograph"
neg: "extra person, two people, double, crowd, group, three people,
two men, two women, naked, nude, without clothes, ...
deformed legs, asymmetric body, malformed body"
```

View File

@ -0,0 +1,57 @@
#!/usr/bin/env python3
"""情侣头像生成 — 用 ComfyUI venv 的 python 运行
~/ComfyUI/venv/bin/python3 gen_couple.py
"""
import requests, time, sys
API = "http://127.0.0.1:8188/api/prompt"
def submit(prompt_nodes):
r = requests.post(API, json={"prompt": prompt_nodes})
return r.json().get("prompt_id")
def make_workflow(ckpt_name, prompt_text, neg_text, seed, prefix):
return {
"3": {"inputs": {"ckpt_name": ckpt_name}, "class_type": "CheckpointLoaderSimple"},
"4": {"inputs": {"text": prompt_text, "clip": ["3", 1]}, "class_type": "CLIPTextEncode"},
"5": {"inputs": {"text": neg_text, "clip": ["3", 1]}, "class_type": "CLIPTextEncode"},
"6": {"inputs": {"width": 512, "height": 768, "batch_size": 1}, "class_type": "EmptyLatentImage"},
"7": {"inputs": {"model": ["3", 0], "positive": ["4", 0], "negative": ["5", 0],
"latent_image": ["6", 0], "seed": seed, "steps": 30, "cfg": 7.5,
"sampler_name": "euler", "scheduler": "normal", "denoise": 1.0}, "class_type": "KSampler"},
"8": {"inputs": {"samples": ["7", 0], "vae": ["3", 2]}, "class_type": "VAEDecode"},
"9": {"inputs": {"filename_prefix": prefix, "images": ["8", 0]}, "class_type": "SaveImage"}
}
if __name__ == "__main__":
ckpt = sys.argv[1] if len(sys.argv) > 1 else "v1-5-pruned.safetensors"
prompt_m = make_workflow(
ckpt,
"solo male, 1boy, anime style, young couple walking on beach, back view, "
"hand in hand with girlfriend, moonlight beach background, cool blue and teal tones, "
"romantic night seaside, gentle waves under soft light, dreamy ethereal atmosphere, "
"soft silver lighting, highres, masterpiece, best quality",
"worst quality, low quality, lowres, blurry, bokeh, depth of field, error, "
"text, watermark, signature, artist name, bad anatomy, bad hands, deformed, "
"extra fingers, two girls, 2girls, multiple girls, female, girl, warm colors, "
"orange, yellow, sunset, golden hour, monochrome, grayscale",
123, "couple_m"
)
prompt_f = make_workflow(
ckpt,
"solo female, 1girl, anime style, young couple walking on beach, back view, "
"hand in hand with boyfriend, moonlight beach background, cool blue and teal tones, "
"romantic night seaside, gentle waves under soft light, dreamy ethereal atmosphere, "
"soft silver lighting, highres, masterpiece, best quality",
"worst quality, low quality, lowres, blurry, bokeh, depth of field, error, "
"text, watermark, signature, artist name, bad anatomy, bad hands, deformed, "
"extra fingers, two boys, 2boys, multiple boys, male, boy, warm colors, "
"orange, yellow, sunset, golden hour, monochrome, grayscale",
456, "couple_f"
)
pid_m = submit(prompt_m)
print(f"男图提交: {pid_m}")
time.sleep(3)
pid_f = submit(prompt_f)
print(f"女图提交: {pid_f}")
print(f"输出目录: ~/ComfyUI/output/")

View File

@ -0,0 +1,50 @@
"""生成写实情侣头像(一张图一对情侣,同框)
用法~/ComfyUI/venv/bin/python3 gen_realistic_couple.py
输出~/ComfyUI/output/couple_*.png
"""
import requests, time
API = "http://127.0.0.1:8188/api/prompt"
CKPT = "Realistic_Vision_V5.1_fp16.safetensors"
POS = (
"realistic photography, young couple on beach at sunset, "
"one young man and one young woman, back view, walking hand in hand, "
"golden hour warm orange sky, romantic beach scene, waves on shore, "
"cinematic lighting, high quality photograph, natural skin tones, "
"balanced faces, symmetrical"
)
NEG = (
"worst quality, low quality, lowres, blurry, bokeh, error, watermark, signature, "
"bad anatomy, bad hands, bad face, deformed face, distorted face, asymmetric face, "
"extra person, second person, two people, double, duplicate, twin, crowd, group, "
"three people, four people, more than two people, "
"two men, two women, two boys, two girls, "
"naked, nude, without clothes"
)
def gen(prefix, seed, width=512, height=512):
workflow = {
"3": {"inputs": {"ckpt_name": CKPT}, "class_type": "CheckpointLoaderSimple"},
"4": {"inputs": {"text": POS, "clip": ["3", 1]}, "class_type": "CLIPTextEncode"},
"5": {"inputs": {"text": NEG, "clip": ["3", 1]}, "class_type": "CLIPTextEncode"},
"6": {"inputs": {"width": width, "height": height, "batch_size": 1}, "class_type": "EmptyLatentImage"},
"7": {"inputs": {"model": ["3", 0], "positive": ["4", 0], "negative": ["5", 0],
"latent_image": ["6", 0], "seed": seed, "steps": 35, "cfg": 8.0,
"sampler_name": "euler", "scheduler": "normal", "denoise": 1.0},
"class_type": "KSampler"},
"8": {"inputs": {"samples": ["7", 0], "vae": ["3", 2]}, "class_type": "VAEDecode"},
"9": {"inputs": {"filename_prefix": prefix, "images": ["8", 0]}, "class_type": "SaveImage"}
}
r = requests.post(API, json={"prompt": workflow})
return r.json().get("prompt_id")
if __name__ == "__main__":
scenes = [
("couple_a", 123), # 海滩日落
("couple_b", 456), # 海滩月光
]
for name, seed in scenes:
pid = gen(name, seed, width=768, height=512)
print(f"提交 {name}: {pid}")
time.sleep(5)

View File

@ -1,6 +1,6 @@
{
"version": 2,
"updated_at": "2026-07-14T14:00:09.790437+00:00",
"updated_at": "2026-07-15T14:00:30.026740+00:00",
"behavior_rules": {
"answer_format": "结论先行 → 数据支撑 → 行动建议。不废话、不科普、不加补丁式回答。",
"code_quality": "修复后必须自测不等用户测。遇到stderr先试3种方法不行再报告障碍。",

View File

@ -0,0 +1,20 @@
📰 每日宏观+持仓摘要
【大盘】2026-07-15 08:00
📈 上证: 3967.13 (+1.36%)
📈 沪深300: 4.84 (+1.96%)
📈 五粮液: 73.40 (+0.80%)
【五粮液持仓信号】⭐ 关注
📈 布伦特原油: 85.14 (+0.41)
【宏观风险提示】
• 大盘若跌破关键均线 → 空仓信号加强
• 白酒消费数据持续低迷 → 基本面承压
• 人民币贬值预期 → 外资流出白酒板块压力
【五粮液状态】
价格: 73.4 (+0.80%)
MA20下方 → 空仓信号,等待金叉
小唯股票投研 · 每日新闻