Просмотр исходного кода

fix message node visualization error

guantao 12 часов назад
Родитель
Сommit
9ea963ba0b

+ 0 - 10
examples/loggin/research.prompt

@@ -1,10 +0,0 @@
----
-model: sonnet-4.6
-temperature: 0.3
----
-
-$system$
-你是最顶尖的AI助手,可以拆分并调用工具逐步解决复杂问题。
-
-$user$
-请打开浏览器,去小红书搜索一下摄影的主题,打开一个摄影博主的主页,查看他的最近10条内容。遇到问题时,可以feishu请求孙若天。

+ 0 - 0
examples/loggin/config.py → examples/plan/config.py


+ 369 - 0
examples/plan/input/写生油画__img_1_制作表.json

@@ -0,0 +1,369 @@
+[
+  {
+    "名称": "户外绘画场景",
+    "描述": "一名女性在户外草地上使用画架和调色板进行绘画,背景是绿色的树木和草地。",
+    "段落ID": "段落1",
+    "形式": {
+      "拍摄角度": {
+        "名称": "拍摄角度",
+        "描述": "相机位于人物右后方,略低于人物视线,以平视偏低的视角拍摄,使得人物和画架占据画面右侧和中央,背景的草地和树木在左侧和上方。",
+        "类型": "视角",
+        "形式ID": "形式5"
+      },
+      "景别": {
+        "名称": "景别",
+        "描述": "中景,画面中人物从腰部以上到头部完整呈现,画架大部分可见,背景的树木和草地也占据了较大比例,强调了人物与环境的互动。",
+        "类型": "构图",
+        "形式ID": "形式7"
+      },
+      "光照": {
+        "名称": "光照",
+        "描述": "自然光,光线柔和,从画面左上方照射,在人物的右侧和画架的左侧形成轻微阴影,整体画面亮度适中,无明显过曝或欠曝区域。",
+        "类型": "光影",
+        "形式ID": "形式2"
+      },
+      "色彩饱和度": {
+        "名称": "色彩饱和度",
+        "描述": "整体色彩饱和度中等偏高,绿色草地和树木的颜色鲜明,人物白色服装和调色板上的颜料色彩也较为突出,画面整体呈现出清新自然的色调。",
+        "类型": "色彩",
+        "形式ID": "形式11"
+      },
+      "清晰度": {
+        "名称": "清晰度",
+        "描述": "画面中心区域(人物、画架、画布)清晰度高,细节锐利可见。背景的树木和远处的草地有轻微虚化,呈现出景深效果。",
+        "类型": "清晰度",
+        "形式ID": "形式1"
+      },
+      "构图": {
+        "名称": "构图",
+        "描述": "采用开放式构图,人物和画架位于画面右侧偏中,占据了画面约60%的区域,背景的草地和树木占据左侧和上方约40%的区域。人物的视线和绘画动作引导观众看向画布,形成视觉焦点。画面整体平衡,右侧主体突出,左侧背景延伸。",
+        "类型": "构图",
+        "形式ID": "形式4"
+      },
+      "评分详情": {
+        "combined_score": 0.846
+      }
+    },
+    "子段落": [
+      {
+        "名称": "人物",
+        "描述": "一名女性,侧身背对镜头,正在进行绘画。",
+        "段落ID": "段落1.1",
+        "形式": {
+          "拍摄角度": {
+            "名称": "拍摄角度",
+            "描述": "人物侧身背对镜头,头部略微向左转,使得右耳和部分右脸颊可见。身体朝向画布,呈现出专注绘画的姿态。",
+            "类型": "视角",
+            "形式ID": "形式5"
+          },
+          "景别": {
+            "名称": "景别",
+            "描述": "人物从头部到脚部完整呈现,占据画面右侧约60%的区域,属于全身景别。",
+            "类型": "构图",
+            "形式ID": "形式7"
+          },
+          "光照": {
+            "名称": "光照",
+            "描述": "人物右侧受光,左侧(背对镜头一侧)有轻微阴影,光线柔和,使得服装的褶皱和头发的细节清晰可见。",
+            "类型": "光影",
+            "形式ID": "形式2"
+          },
+          "色彩饱和度": {
+            "名称": "色彩饱和度",
+            "描述": "人物的头发、肤色和白色服装的色彩饱和度适中,与背景的绿色形成对比,突出人物主体。",
+            "类型": "色彩",
+            "形式ID": "形式11"
+          },
+          "清晰度": {
+            "名称": "清晰度",
+            "描述": "人物主体清晰度高,头发丝、服装纹理、手部细节均清晰可见。",
+            "类型": "清晰度",
+            "形式ID": "形式1"
+          },
+          "构图": {
+            "名称": "构图",
+            "描述": "人物位于画面右侧,从画面顶部延伸至底部,占据了画面约60%的垂直空间,形成视觉上的引导线,将观众的注意力引向画布。",
+            "类型": "构图",
+            "形式ID": "形式4"
+          },
+          "评分详情": {
+            "combined_score": 0.745
+          }
+        },
+        "子段落": [
+          {
+            "名称": "头发",
+            "描述": "棕色长发,部分散落在肩上。",
+            "段落ID": "段落1.1.1",
+            "形式": {
+              "发色": {
+                "名称": "发色",
+                "描述": "棕色,呈现出自然光泽的深棕色,在光照下略显浅棕。",
+                "类型": "色彩",
+                "形式ID": "形式23"
+              },
+              "发型": {
+                "名称": "发型",
+                "描述": "长发,直发,部分散落在右肩和背部,发尾略有卷曲,发际线清晰可见。",
+                "类型": "形态",
+                "形式ID": "形式21"
+              },
+              "评分详情": {
+                "combined_score": 0.504
+              }
+            },
+            "评分详情": {
+              "combined_score": 0.525
+            }
+          },
+          {
+            "名称": "身体",
+            "描述": "女性的躯干和手臂。",
+            "段落ID": "段落1.1.2",
+            "形式": {
+              "姿态": {
+                "名称": "姿态",
+                "描述": "女性身体略微前倾,右臂抬起握持画笔,左臂弯曲握持调色板,头部转向画布,呈现出专注绘画的动态姿态。",
+                "类型": "动作",
+                "形式ID": "形式8"
+              },
+              "清晰度": {
+                "名称": "清晰度",
+                "描述": "身体部分(手臂、手、颈部)清晰度高,皮肤纹理和服装褶皱细节锐利。",
+                "类型": "清晰度",
+                "形式ID": "形式1"
+              },
+              "光照": {
+                "名称": "光照",
+                "描述": "身体右侧受光,左侧有轻微阴影,光线均匀柔和,突出了身体的轮廓和服装的立体感。",
+                "类型": "光影",
+                "形式ID": "形式2"
+              },
+              "评分详情": {
+                "combined_score": 0.588
+              }
+            },
+            "子段落": [
+              {
+                "名称": "服装",
+                "描述": "白色长裙,袖子宽松。",
+                "段落ID": "段落1.1.2.1",
+                "形式": {
+                  "服装颜色": {
+                    "名称": "服装颜色",
+                    "描述": "纯白色,无其他图案或颜色。",
+                    "类型": "色彩",
+                    "形式ID": "形式16"
+                  },
+                  "服装款式": {
+                    "名称": "服装款式",
+                    "描述": "长袖连衣裙,袖子宽松,裙摆飘逸,腰部有收紧设计,领口为V字形,背部有系带细节。",
+                    "类型": "形态",
+                    "形式ID": "形式14"
+                  },
+                  "材质": {
+                    "名称": "材质",
+                    "描述": "轻薄的棉麻或丝绸质地,具有良好的垂坠感和透气性。",
+                    "类型": "质感",
+                    "形式ID": "形式10"
+                  },
+                  "评分详情": {
+                    "combined_score": 0.835
+                  }
+                },
+                "评分详情": {
+                  "combined_score": 0.847
+                }
+              },
+              {
+                "名称": "画笔",
+                "描述": "女性右手握持的细长画笔。",
+                "段落ID": "段落1.1.2.2",
+                "形式": {
+                  "形状": {
+                    "名称": "形状",
+                    "描述": "细长杆状,笔尖为锥形,笔杆中部略粗。",
+                    "类型": "形状",
+                    "形式ID": "形式17"
+                  },
+                  "评分详情": {
+                    "combined_score": 0.42
+                  }
+                },
+                "评分详情": {
+                  "combined_score": 0.56
+                }
+              },
+              {
+                "名称": "调色板",
+                "描述": "女性左手握持的椭圆形调色板,上面有多种颜料。",
+                "段落ID": "段落1.1.2.3",
+                "形式": {
+                  "形状": {
+                    "名称": "形状",
+                    "描述": "不规则椭圆形,边缘圆润,中间有一个拇指孔。",
+                    "类型": "形状",
+                    "形式ID": "形式17"
+                  },
+                  "颜色": {
+                    "名称": "颜色",
+                    "描述": "调色板底色为深棕色,表面沾有多种颜料,包括绿色、蓝色、白色、粉色、黄色、红色等,其中绿色颜料面积最大。",
+                    "类型": "色彩",
+                    "形式ID": "形式3"
+                  },
+                  "颜料分布": {
+                    "名称": "颜料分布",
+                    "描述": "颜料呈不规则块状分布在调色板表面,绿色颜料集中在中央区域,其他颜色颜料散布在边缘。",
+                    "类型": "布局",
+                    "形式ID": "形式25"
+                  },
+                  "清晰度": {
+                    "名称": "清晰度",
+                    "描述": "调色板的木质纹理和颜料的堆叠感清晰可见。",
+                    "类型": "清晰度",
+                    "形式ID": "形式1"
+                  },
+                  "评分详情": {
+                    "combined_score": 0.644
+                  }
+                },
+                "评分详情": {
+                  "combined_score": 0.675
+                }
+              }
+            ],
+            "评分详情": {
+              "combined_score": 0.595
+            }
+          }
+        ],
+        "评分详情": {
+          "combined_score": 0.815
+        }
+      },
+      {
+        "名称": "画架",
+        "描述": "木质三脚画架,支撑着画布。",
+        "段落ID": "段落1.2",
+        "形式": {
+          "评分详情": {
+            "combined_score": 0.442
+          }
+        },
+        "子段落": [
+          {
+            "名称": "画布",
+            "描述": "画架上的一幅未完成的画作,描绘了一名背对镜头的女性。",
+            "段落ID": "段落1.2.1",
+            "形式": {
+              "绘画风格": {
+                "名称": "绘画风格",
+                "描述": "印象派风格,笔触粗犷,色彩鲜明,注重光影和氛围的表达,而非精确的细节描绘。",
+                "类型": "风格",
+                "形式ID": "形式27"
+              },
+              "色彩": {
+                "名称": "色彩",
+                "描述": "画面以绿色和蓝色为主色调,描绘了草地和花丛,人物服装为白色,色彩对比鲜明。",
+                "类型": "色彩",
+                "形式ID": "形式28"
+              },
+              "构图": {
+                "名称": "构图",
+                "描述": "画布中央偏下位置描绘了一名背对镜头的女性,周围是绿色的草地和蓝色的花朵,形成了一个景深感较强的画面。",
+                "类型": "构图",
+                "形式ID": "形式4"
+              },
+              "清晰度": {
+                "名称": "清晰度",
+                "描述": "画布上的画作清晰可见,但由于绘画风格,细节并非写实般锐利,而是呈现出笔触的模糊感。",
+                "类型": "清晰度",
+                "形式ID": "形式1"
+              },
+              "笔触": {
+                "名称": "笔触",
+                "描述": "笔触粗犷有力,颜料堆叠感明显,尤其是绿色和蓝色区域,呈现出明显的纹理。",
+                "类型": "笔触",
+                "形式ID": "形式29"
+              },
+              "内容主题": {
+                "名称": "内容主题",
+                "描述": "描绘了一名身穿白色裙子的女性在户外草地或花丛中行走的背影,与现实场景中的画家形成一种“画中画”的呼应。",
+                "类型": "内容",
+                "形式ID": "形式26"
+              },
+              "评分详情": {
+                "combined_score": 0.946
+              }
+            },
+            "评分详情": {
+              "combined_score": 0.958
+            }
+          },
+          {
+            "名称": "玫瑰花",
+            "描述": "画架下方放置的一朵白色玫瑰花。",
+            "段落ID": "段落1.2.2",
+            "形式": {
+              "清晰度": {
+                "名称": "清晰度",
+                "描述": "玫瑰花的花瓣纹理和叶片细节清晰可见,边缘锐利。",
+                "类型": "清晰度",
+                "形式ID": "形式1"
+              },
+              "评分详情": {
+                "combined_score": 0.318
+              }
+            },
+            "评分详情": {
+              "combined_score": 0.342
+            }
+          }
+        ],
+        "评分详情": {
+          "combined_score": 0.588
+        }
+      },
+      {
+        "名称": "背景",
+        "描述": "远处的绿色树木和近处的草地。",
+        "段落ID": "段落1.3",
+        "形式": {
+          "颜色": {
+            "名称": "颜色",
+            "描述": "背景以绿色为主,包括深绿色(树木)和浅绿色(草地),色彩鲜明且富有层次感。",
+            "类型": "色彩",
+            "形式ID": "形式3"
+          },
+          "清晰度": {
+            "名称": "清晰度",
+            "描述": "近处草地清晰度较高,远处树木和更远的背景有明显虚化,呈现出景深效果。",
+            "类型": "清晰度",
+            "形式ID": "形式1"
+          },
+          "光照": {
+            "名称": "光照",
+            "描述": "背景整体受光均匀,树木和草地有自然的光影变化,无明显过曝或欠曝区域。",
+            "类型": "光影",
+            "形式ID": "形式2"
+          },
+          "景深": {
+            "名称": "景深",
+            "描述": "景深较浅,前景(人物和画架)清晰,中景(近处草地)清晰,远景(树木)虚化,营造出空间层次感。",
+            "类型": "空间",
+            "形式ID": "形式9"
+          },
+          "评分详情": {
+            "combined_score": 0.595
+          }
+        },
+        "评分详情": {
+          "combined_score": 0.703
+        }
+      }
+    ],
+    "评分详情": {
+      "combined_score": 0.78
+    }
+  }
+]

+ 338 - 0
examples/plan/input/写生油画__img_2_制作表.json

@@ -0,0 +1,338 @@
+[
+  {
+    "名称": "户外绘画场景",
+    "描述": "一名女性在户外草地上使用画架和调色板进行绘画,背景是绿色的树木和阳光。",
+    "段落ID": "段落2",
+    "形式": {
+      "拍摄角度": {
+        "名称": "拍摄角度",
+        "描述": "从人物背后的中低角度拍摄,视线略微向上倾斜,将人物、画架和背景的树木都纳入画面,人物的头部位于画面顶部偏左,画架位于画面右侧,背景的树木和天空占据画面上半部分。",
+        "类型": "视角",
+        "形式ID": "形式5"
+      },
+      "景别": {
+        "名称": "景别",
+        "描述": "中景,画面中人物从腰部以上到头顶,以及画架和部分背景草地和树木清晰可见,人物占据画面约70%的高度,画架占据画面约80%的高度。",
+        "类型": "构图",
+        "形式ID": "形式7"
+      },
+      "光照": {
+        "名称": "光照",
+        "描述": "逆光,阳光从画面左上方透过树叶照射过来,形成强烈的光斑和光晕效果,人物和画架处于半剪影状态,但细节仍可见,草地受光均匀,整体画面明亮。",
+        "类型": "光影",
+        "形式ID": "形式2"
+      },
+      "色彩饱和度": {
+        "名称": "色彩饱和度",
+        "描述": "中等偏高,绿色草地和树木的色彩鲜艳,女性白色长裙和画架的木色饱和度适中,画面整体色彩明快。",
+        "类型": "色彩",
+        "形式ID": "形式11"
+      },
+      "清晰度": {
+        "名称": "清晰度",
+        "描述": "前景人物和画架清晰锐利,背景的树木和阳光呈现柔和的虚化效果,景深较浅。",
+        "类型": "清晰度",
+        "形式ID": "形式1"
+      },
+      "构图": {
+        "名称": "构图",
+        "描述": "采用三分法构图,人物主体位于画面左侧三分之一处,画架位于画面右侧三分之一处,形成平衡的视觉效果。人物的头部位于画面上方三分之一处,地平线位于画面下方三分之一处。",
+        "类型": "构图",
+        "形式ID": "形式4"
+      },
+      "评分详情": {
+        "combined_score": 0.811
+      }
+    },
+    "子段落": [
+      {
+        "名称": "人物",
+        "描述": "一名女性,背对镜头,正在进行绘画。",
+        "段落ID": "段落2.1",
+        "形式": {
+          "拍摄角度": {
+            "名称": "拍摄角度",
+            "描述": "从人物背后的中低角度拍摄,视线略微向上倾斜,人物背对镜头,头部略微偏向右侧,身体朝向画架。",
+            "类型": "视角",
+            "形式ID": "形式5"
+          },
+          "景别": {
+            "名称": "景别",
+            "描述": "中景,人物从腰部以上到头顶清晰可见,占据画面约70%的高度,其身体大部分位于画面左侧。",
+            "类型": "构图",
+            "形式ID": "形式7"
+          },
+          "光照": {
+            "名称": "光照",
+            "描述": "逆光,阳光从人物左后方照射,导致人物背部和头发边缘有明显的光晕,身体正面受光较少,但仍能看清细节。",
+            "类型": "光影",
+            "形式ID": "形式2"
+          },
+          "色彩饱和度": {
+            "名称": "色彩饱和度",
+            "描述": "中等偏高,头发的棕色和服装的白色饱和度适中,与背景的绿色形成对比。",
+            "类型": "色彩",
+            "形式ID": "形式11"
+          },
+          "清晰度": {
+            "名称": "清晰度",
+            "描述": "人物主体清晰锐利,头发丝和服装褶皱细节可见。",
+            "类型": "清晰度",
+            "形式ID": "形式1"
+          },
+          "构图": {
+            "名称": "构图",
+            "描述": "人物主体位于画面左侧三分之一处,头部位于画面上方三分之一处,形成视觉引导。",
+            "类型": "构图",
+            "形式ID": "形式4"
+          },
+          "评分详情": {
+            "combined_score": 0.849
+          }
+        },
+        "子段落": [
+          {
+            "名称": "头发",
+            "描述": "棕色长发,披散在背部。",
+            "段落ID": "段落2.1.1",
+            "形式": {
+              "发色": {
+                "名称": "发色",
+                "描述": "深棕色,在阳光下呈现出暖棕色调,发梢颜色略浅。",
+                "类型": "色彩",
+                "形式ID": "形式23"
+              },
+              "发型": {
+                "名称": "发型",
+                "描述": "长直发,自然披散在背部,发梢略带自然卷曲,长度及腰。",
+                "类型": "形态",
+                "形式ID": "形式21"
+              },
+              "发量": {
+                "名称": "发量",
+                "描述": "发量浓密,覆盖了大部分背部,从头顶到发梢呈现出厚重感。",
+                "类型": "量感",
+                "形式ID": "形式24"
+              },
+              "光泽度": {
+                "名称": "光泽度",
+                "描述": "头发表面有明显的光泽,尤其是在阳光照射下,发丝边缘呈现出明亮的光晕。",
+                "类型": "质感",
+                "形式ID": "形式22"
+              },
+              "评分详情": {
+                "combined_score": 0.532
+              }
+            },
+            "评分详情": {
+              "combined_score": 0.546
+            }
+          },
+          {
+            "名称": "身体",
+            "描述": "女性的躯干和手臂。",
+            "段落ID": "段落2.1.2",
+            "形式": {
+              "姿态": {
+                "名称": "姿态",
+                "描述": "女性身体略微向右倾斜,背部微弓,头部略微前倾,右手持画笔,左手持调色板,呈现出专注绘画的姿态。",
+                "类型": "动作",
+                "形式ID": "形式8"
+              },
+              "光照": {
+                "名称": "光照",
+                "描述": "逆光,身体背部和手臂边缘有明显的光晕,身体正面受光较少,形成一定的阴影。",
+                "类型": "光影",
+                "形式ID": "形式2"
+              },
+              "评分详情": {
+                "combined_score": 0.455
+              }
+            },
+            "子段落": [
+              {
+                "名称": "服装",
+                "描述": "白色长裙,露背设计。",
+                "段落ID": "段落2.1.2.1",
+                "形式": {
+                  "服装颜色": {
+                    "名称": "服装颜色",
+                    "描述": "纯白色,在阳光下略带米色调。",
+                    "类型": "色彩",
+                    "形式ID": "形式16"
+                  },
+                  "服装款式": {
+                    "名称": "服装款式",
+                    "描述": "长袖连衣裙,V字露背设计,腰部有系带收腰,裙摆为宽松的A字形长裙,长度及脚踝。",
+                    "类型": "形态",
+                    "形式ID": "形式14"
+                  },
+                  "材质": {
+                    "名称": "材质",
+                    "描述": "丝绸或棉麻混纺材质,表面光滑,有轻微的光泽感,质地轻薄。",
+                    "类型": "质感",
+                    "形式ID": "形式10"
+                  },
+                  "褶皱": {
+                    "名称": "褶皱",
+                    "描述": "裙摆和腰部有自然形成的垂坠褶皱,背部V领处也有轻微褶皱。",
+                    "类型": "形态",
+                    "形式ID": "形式20"
+                  },
+                  "评分详情": {
+                    "combined_score": 0.828
+                  }
+                },
+                "评分详情": {
+                  "combined_score": 0.834
+                }
+              },
+              {
+                "名称": "画笔",
+                "描述": "女性右手握持的细长画笔。",
+                "段落ID": "段落2.1.2.2",
+                "形式": {
+                  "材质": {
+                    "名称": "材质",
+                    "描述": "笔杆为木质或塑料,刷毛为动物毛或合成纤维。",
+                    "类型": "质感",
+                    "形式ID": "形式10"
+                  },
+                  "评分详情": {
+                    "combined_score": 0.294
+                  }
+                },
+                "评分详情": {
+                  "combined_score": 0.455
+                }
+              },
+              {
+                "名称": "调色板",
+                "描述": "女性左手握持的椭圆形调色板,上面有多种颜料。",
+                "段落ID": "段落2.1.2.3",
+                "形式": {
+                  "材质": {
+                    "名称": "材质",
+                    "描述": "木质或塑料材质,表面光滑。",
+                    "类型": "质感",
+                    "形式ID": "形式10"
+                  },
+                  "评分详情": {
+                    "combined_score": 0.455
+                  }
+                },
+                "评分详情": {
+                  "combined_score": 0.48
+                }
+              }
+            ],
+            "评分详情": {
+              "combined_score": 0.476
+            }
+          }
+        ],
+        "评分详情": {
+          "combined_score": 0.825
+        }
+      },
+      {
+        "名称": "画架",
+        "描述": "木质三脚画架,支撑着画布。",
+        "段落ID": "段落2.2",
+        "形式": {
+          "评分详情": {
+            "combined_score": 0.427
+          }
+        },
+        "子段落": [
+          {
+            "名称": "画布",
+            "描述": "画架上的一幅未完成的画作,描绘了一名背对镜头的女性。",
+            "段落ID": "段落2.2.1",
+            "形式": {
+              "绘画风格": {
+                "名称": "绘画风格",
+                "描述": "印象派或写意风格,笔触粗犷,色彩鲜明,注重光影和氛围的表达,而非精确的细节描绘。",
+                "类型": "风格",
+                "形式ID": "形式27"
+              },
+              "色彩": {
+                "名称": "色彩",
+                "描述": "以绿色、蓝色、紫色为主,辅以白色和黄色,色彩明亮且饱和度较高。",
+                "类型": "色彩",
+                "形式ID": "形式28"
+              },
+              "构图": {
+                "名称": "构图",
+                "描述": "画面中央描绘了一名背对镜头的女性形象,周围是模糊的绿色植物和花朵,背景有光斑效果。",
+                "类型": "构图",
+                "形式ID": "形式4"
+              },
+              "笔触": {
+                "名称": "笔触",
+                "描述": "笔触明显,可见颜料堆叠和涂抹的痕迹,呈现出粗犷而富有表现力的特点。",
+                "类型": "笔触",
+                "形式ID": "形式29"
+              },
+              "内容主题": {
+                "名称": "内容主题",
+                "描述": "描绘了一名身穿白色裙子的女性在户外草地上的背影,周围是绿色的植物和花朵,暗示着户外绘画或休闲场景。",
+                "类型": "内容",
+                "形式ID": "形式26"
+              },
+              "评分详情": {
+                "combined_score": 0.892
+              }
+            },
+            "评分详情": {
+              "combined_score": 0.895
+            }
+          }
+        ],
+        "评分详情": {
+          "combined_score": 0.511
+        }
+      },
+      {
+        "名称": "背景",
+        "描述": "远处的绿色树木和草地,有阳光透过树叶。",
+        "段落ID": "段落2.3",
+        "形式": {
+          "颜色": {
+            "名称": "颜色",
+            "描述": "以绿色为主,包括深绿色、浅绿色和黄绿色,天空部分呈现淡黄色和白色,整体色彩清新明亮。",
+            "类型": "色彩",
+            "形式ID": "形式3"
+          },
+          "清晰度": {
+            "名称": "清晰度",
+            "描述": "背景整体呈现柔和的虚化效果,景深较浅,树木轮廓模糊,光斑明显。",
+            "类型": "清晰度",
+            "形式ID": "形式1"
+          },
+          "光照": {
+            "名称": "光照",
+            "描述": "逆光,阳光从画面左上方透过树叶,形成大量圆形和不规则形状的光斑和光晕,使背景呈现出明亮而梦幻的效果。",
+            "类型": "光影",
+            "形式ID": "形式2"
+          },
+          "景深": {
+            "名称": "景深",
+            "描述": "景深较浅,背景的树木和草地被虚化,与前景的人物和画架形成对比,突出主体。",
+            "类型": "空间",
+            "形式ID": "形式9"
+          },
+          "评分详情": {
+            "combined_score": 0.695
+          }
+        },
+        "评分详情": {
+          "combined_score": 0.703
+        }
+      }
+    ],
+    "评分详情": {
+      "combined_score": 0.756
+    }
+  }
+]

+ 283 - 0
examples/plan/input/写生油画__img_3_制作表.json

@@ -0,0 +1,283 @@
+[
+  {
+    "名称": "户外绘画场景",
+    "描述": "一名女性在户外草地上跪坐,使用画架和调色板进行绘画,背景是绿色的树木和远处的建筑。",
+    "段落ID": "段落3",
+    "形式": {
+      "拍摄角度": {
+        "名称": "拍摄角度",
+        "描述": "从人物背部略偏右侧的低角度拍摄,视线略高于人物头部,呈现出人物、画架和背景的广阔视野。",
+        "类型": "视角",
+        "形式ID": "形式5"
+      },
+      "景别": {
+        "名称": "景别",
+        "描述": "中景偏全景,画面包含了人物的全身(从头顶到膝盖以下部分),画架的完整结构,以及远处的背景,强调了人物与环境的互动。",
+        "类型": "构图",
+        "形式ID": "形式7"
+      },
+      "光照": {
+        "名称": "光照",
+        "描述": "自然光,光源主要来自画面左上方,呈现出逆光效果。人物和前景草地部分受光较少,略显阴影,背景树木边缘有明显的光晕,整体光线柔和,营造出温暖的氛围。",
+        "类型": "光影",
+        "形式ID": "形式2"
+      },
+      "色彩饱和度": {
+        "名称": "色彩饱和度",
+        "描述": "整体色彩饱和度中等偏高,草地的绿色和树木的绿色鲜明,人物白色服装纯净,画作上的色彩也较为鲜艳,但整体色调和谐,不刺眼。",
+        "类型": "色彩",
+        "形式ID": "形式11"
+      },
+      "清晰度": {
+        "名称": "清晰度",
+        "描述": "前景人物和画架清晰锐利,中景草地清晰,背景树木和远景建筑略有虚化,呈现出景深效果。",
+        "类型": "清晰度",
+        "形式ID": "形式1"
+      },
+      "构图": {
+        "名称": "构图",
+        "描述": "采用开放式构图,人物位于画面右侧偏中,画架位于画面中央偏左,两者形成对角线构图。背景广阔,画面元素分布均衡,引导视线从人物到画架再到背景。",
+        "类型": "构图",
+        "形式ID": "形式4"
+      },
+      "评分详情": {
+        "combined_score": 0.733
+      }
+    },
+    "子段落": [
+      {
+        "名称": "人物",
+        "描述": "一名女性,背对镜头,跪坐在草地上。",
+        "段落ID": "段落3.1",
+        "形式": {
+          "拍摄角度": {
+            "名称": "拍摄角度",
+            "描述": "从人物背部略偏右侧的低角度拍摄,视线略高于人物头部,呈现出人物的背影和侧面。",
+            "类型": "视角",
+            "形式ID": "形式5"
+          },
+          "景别": {
+            "名称": "景别",
+            "描述": "中景,画面包含了人物的全身(从头顶到膝盖以下部分),强调了人物的姿态和服装细节。",
+            "类型": "构图",
+            "形式ID": "形式7"
+          },
+          "光照": {
+            "名称": "光照",
+            "描述": "自然光,光源主要来自人物左前方,人物背部和右侧受光较少,处于阴影中,左侧手臂和部分头发有少量高光,整体光线柔和。",
+            "类型": "光影",
+            "形式ID": "形式2"
+          },
+          "色彩饱和度": {
+            "名称": "色彩饱和度",
+            "描述": "人物服装为纯白色,头发为棕色,色彩饱和度适中,与周围环境色彩形成对比。",
+            "类型": "色彩",
+            "形式ID": "形式11"
+          },
+          "清晰度": {
+            "名称": "清晰度",
+            "描述": "人物主体清晰锐利,头发丝、服装褶皱等细节清晰可见。",
+            "类型": "清晰度",
+            "形式ID": "形式1"
+          },
+          "构图": {
+            "名称": "构图",
+            "描述": "人物位于画面右侧偏中,占据了画面约三分之二的垂直空间,形成主体突出。",
+            "类型": "构图",
+            "形式ID": "形式4"
+          },
+          "评分详情": {
+            "combined_score": 0.792
+          }
+        },
+        "子段落": [
+          {
+            "名称": "头发",
+            "描述": "棕色长发,披散在背部。",
+            "段落ID": "段落3.1.1",
+            "形式": {
+              "清晰度": {
+                "名称": "清晰度",
+                "描述": "头发丝细节清晰可见,发梢的层次感明显。",
+                "类型": "清晰度",
+                "形式ID": "形式1"
+              },
+              "评分详情": {
+                "combined_score": 0.413
+              }
+            },
+            "评分详情": {
+              "combined_score": 0.434
+            }
+          },
+          {
+            "名称": "身体",
+            "描述": "女性的躯干和手臂。",
+            "段落ID": "段落3.1.2",
+            "形式": {
+              "姿态": {
+                "名称": "姿态",
+                "描述": "女性跪坐在草地上,身体略微前倾,头部转向画架方向,左手自然放置在调色板旁,右手可能正在作画(未完全显示)。",
+                "类型": "动作",
+                "形式ID": "形式8"
+              },
+              "评分详情": {
+                "combined_score": 0.497
+              }
+            },
+            "子段落": [
+              {
+                "名称": "服装",
+                "描述": "白色长裙,露背设计。",
+                "段落ID": "段落3.1.2.1",
+                "形式": {
+                  "服装颜色": {
+                    "名称": "服装颜色",
+                    "描述": "纯白色,无其他杂色,呈现出干净、明亮的视觉效果。",
+                    "类型": "色彩",
+                    "形式ID": "形式16"
+                  },
+                  "服装款式": {
+                    "名称": "服装款式",
+                    "描述": "长袖连衣裙,V字露背设计,背部有白色细绳交叉系带,腰部有系带收腰,裙摆宽松,自然垂坠,长度及地。",
+                    "类型": "形态",
+                    "形式ID": "形式14"
+                  },
+                  "材质": {
+                    "名称": "材质",
+                    "描述": "目测为轻薄、柔软的棉麻或雪纺材质,具有良好的垂坠感和透气性。",
+                    "类型": "质感",
+                    "形式ID": "形式10"
+                  },
+                  "评分详情": {
+                    "combined_score": 0.834
+                  }
+                },
+                "评分详情": {
+                  "combined_score": 0.84
+                }
+              },
+              {
+                "名称": "调色板",
+                "描述": "女性左手旁放置的椭圆形调色板,上面有多种颜料。",
+                "段落ID": "段落3.1.2.2",
+                "形式": {
+                  "评分详情": {
+                    "combined_score": 0.415
+                  }
+                },
+                "评分详情": {
+                  "combined_score": 0.479
+                }
+              }
+            ],
+            "评分详情": {
+              "combined_score": 0.525
+            }
+          }
+        ],
+        "评分详情": {
+          "combined_score": 0.826
+        }
+      },
+      {
+        "名称": "画架",
+        "描述": "木质三脚画架,支撑着画布。",
+        "段落ID": "段落3.2",
+        "形式": {
+          "结构": {
+            "名称": "结构",
+            "描述": "三脚架结构,由三根木杆支撑,顶部有可调节的画板支撑杆和固定装置,整体结构稳固。",
+            "类型": "结构",
+            "形式ID": "形式18"
+          },
+          "评分详情": {
+            "combined_score": 0.551
+          }
+        },
+        "子段落": [
+          {
+            "名称": "画布",
+            "描述": "画架上的一幅未完成的画作,描绘了一名背对镜头的女性。",
+            "段落ID": "段落3.2.1",
+            "形式": {
+              "绘画风格": {
+                "名称": "绘画风格",
+                "描述": "印象派风格,笔触粗犷,色彩鲜明,注重光影和氛围的表达,而非精确的细节描绘。",
+                "类型": "风格",
+                "形式ID": "形式27"
+              },
+              "色彩": {
+                "名称": "色彩",
+                "描述": "以绿色和蓝色为主色调,描绘了草地和花丛,人物服装为白色,色彩对比鲜明,整体色调明亮。",
+                "类型": "色彩",
+                "形式ID": "形式28"
+              },
+              "构图": {
+                "名称": "构图",
+                "描述": "画作中央偏右描绘了一名背对镜头的女性,周围是绿色的草地和蓝紫色的花丛,背景有白色遮阳伞,形成开放式构图。",
+                "类型": "构图",
+                "形式ID": "形式4"
+              },
+              "笔触": {
+                "名称": "笔触",
+                "描述": "笔触粗犷有力,颜料堆叠感明显,尤其在花丛和草地的描绘上,呈现出明显的纹理。",
+                "类型": "笔触",
+                "形式ID": "形式29"
+              },
+              "内容主题": {
+                "名称": "内容主题",
+                "描述": "描绘了一名身穿白色连衣裙的女性在户外花丛中撑伞的场景,与现实场景中的女性形象相似,形成画中画的意境。",
+                "类型": "内容",
+                "形式ID": "形式26"
+              },
+              "评分详情": {
+                "combined_score": 0.874
+              }
+            },
+            "评分详情": {
+              "combined_score": 0.891
+            }
+          }
+        ],
+        "评分详情": {
+          "combined_score": 0.584
+        }
+      },
+      {
+        "名称": "背景",
+        "描述": "远处的绿色树木和草地,以及远处的城市建筑。",
+        "段落ID": "段落3.3",
+        "形式": {
+          "颜色": {
+            "名称": "颜色",
+            "描述": "以绿色为主,包括前景草地的鲜绿色、中景树木的深绿色和远景树木的浅绿色,远处建筑为浅灰色,天空为淡黄色,整体色彩清新自然。",
+            "类型": "色彩",
+            "形式ID": "形式3"
+          },
+          "光照": {
+            "名称": "光照",
+            "描述": "背景光线充足,尤其在画面左上方,阳光穿透树叶形成光斑和光晕,营造出温暖、明亮的氛围。",
+            "类型": "光影",
+            "形式ID": "形式2"
+          },
+          "景深": {
+            "名称": "景深",
+            "描述": "景深较浅,前景人物和画架清晰,背景树木和建筑逐渐虚化,层次感明显。",
+            "类型": "空间",
+            "形式ID": "形式9"
+          },
+          "评分详情": {
+            "combined_score": 0.558
+          }
+        },
+        "评分详情": {
+          "combined_score": 0.633
+        }
+      }
+    ],
+    "评分详情": {
+      "combined_score": 0.755
+    }
+  }
+]

+ 319 - 0
examples/plan/input/写生油画__img_4_制作表.json

@@ -0,0 +1,319 @@
+[
+  {
+    "名称": "户外绘画场景",
+    "描述": "一名女性在户外草地上站立,使用画架和调色板进行绘画,背景是绿色的树木。",
+    "段落ID": "段落4",
+    "形式": {
+      "拍摄角度": {
+        "名称": "拍摄角度",
+        "描述": "平视角度,相机与人物大致处于同一水平线,略微仰视,使得人物和画架的顶部略高于画面中心,背景的树木占据画面上半部分。",
+        "类型": "视角",
+        "形式ID": "形式5"
+      },
+      "景别": {
+        "名称": "景别",
+        "描述": "中景,画面中人物从膝盖以上到头部完整呈现,画架也完整呈现,背景的树木和草地占据画面大部分,强调人物与环境的互动。",
+        "类型": "构图",
+        "形式ID": "形式7"
+      },
+      "光照": {
+        "名称": "光照",
+        "描述": "自然光照,光线明亮,从画面右上方射入,在人物和画架上形成清晰的亮部和柔和的阴影,整体光线均匀,无明显过曝或欠曝区域。",
+        "类型": "光影",
+        "形式ID": "形式2"
+      },
+      "色彩饱和度": {
+        "名称": "色彩饱和度",
+        "描述": "中等偏高饱和度,绿色草地和树木的色彩鲜艳,人物白色服装和肤色自然,调色板上的颜料色彩丰富且饱和度高,整体画面色彩生动。",
+        "类型": "色彩",
+        "形式ID": "形式11"
+      },
+      "清晰度": {
+        "名称": "清晰度",
+        "描述": "高清晰度,画面主体人物和画架细节清晰锐利,背景树木和草地有轻微虚化,但仍能辨认出其形态,整体画面清晰度良好。",
+        "类型": "清晰度",
+        "形式ID": "形式1"
+      },
+      "构图": {
+        "名称": "构图",
+        "描述": "采用开放式构图,人物位于画面右侧,画架位于画面左侧,两者形成对角线构图,引导视线从左下方的画架到右上方的人物,背景的树木和草地延伸至画面边缘,营造出开阔感。人物头部位于画面上方1/4处,画架顶部位于画面上方1/8处。",
+        "类型": "构图",
+        "形式ID": "形式4"
+      },
+      "评分详情": {
+        "combined_score": 0.858
+      }
+    },
+    "子段落": [
+      {
+        "名称": "人物",
+        "描述": "一名女性,侧身面对镜头,正在进行绘画。",
+        "段落ID": "段落4.1",
+        "形式": {
+          "拍摄角度": {
+            "名称": "拍摄角度",
+            "描述": "平视角度,相机与人物大致处于同一水平线,略微仰视,人物头部略高于画面中心。",
+            "类型": "视角",
+            "形式ID": "形式5"
+          },
+          "景别": {
+            "名称": "景别",
+            "描述": "中景,人物从膝盖以上到头部完整呈现,占据画面右侧大部分区域,强调人物的姿态和动作。",
+            "类型": "构图",
+            "形式ID": "形式7"
+          },
+          "光照": {
+            "名称": "光照",
+            "描述": "自然光照,光线明亮,从画面右上方射入,在人物右侧形成亮部,左侧形成柔和阴影,面部光线均匀,无明显过曝或欠曝。",
+            "类型": "光影",
+            "形式ID": "形式2"
+          },
+          "色彩饱和度": {
+            "名称": "色彩饱和度",
+            "描述": "中等偏高饱和度,肤色自然,头发棕色饱和度适中,白色服装色彩纯净,调色板上的颜料色彩鲜艳,整体色彩和谐。",
+            "类型": "色彩",
+            "形式ID": "形式11"
+          },
+          "清晰度": {
+            "名称": "清晰度",
+            "描述": "高清晰度,人物面部、头发、服装和手部细节清晰锐利,无模糊现象。",
+            "类型": "清晰度",
+            "形式ID": "形式1"
+          },
+          "构图": {
+            "名称": "构图",
+            "描述": "人物位于画面右侧,身体略微向左倾斜,形成对角线构图,头部位于画面上方1/4处,视线向左上方延伸,与画架形成互动。",
+            "类型": "构图",
+            "形式ID": "形式4"
+          },
+          "评分详情": {
+            "combined_score": 0.788
+          }
+        },
+        "子段落": [
+          {
+            "名称": "头发",
+            "描述": "棕色长发,部分散落在肩上。",
+            "段落ID": "段落4.1.1",
+            "形式": {
+              "评分详情": {
+                "combined_score": 0.301
+              }
+            },
+            "评分详情": {
+              "combined_score": 0.315
+            }
+          },
+          {
+            "名称": "身体",
+            "描述": "女性的躯干和手臂。",
+            "段落ID": "段落4.1.2",
+            "形式": {
+              "姿态": {
+                "名称": "姿态",
+                "描述": "站立姿态,身体略微侧向左前方,头部向左上方仰望,右手持画笔,左手持调色板,双臂自然抬起,呈绘画动作。",
+                "类型": "动作",
+                "形式ID": "形式8"
+              },
+              "肤色": {
+                "名称": "肤色",
+                "描述": "健康白皙的肤色,在光照下呈现自然光泽,面部和手臂肤色均匀。",
+                "类型": "色彩",
+                "形式ID": "形式12"
+              },
+              "清晰度": {
+                "名称": "清晰度",
+                "描述": "高清晰度,躯干和手臂的轮廓、服装褶皱、手部细节清晰可见。",
+                "类型": "清晰度",
+                "形式ID": "形式1"
+              },
+              "光照": {
+                "名称": "光照",
+                "描述": "自然光照,光线从右上方射入,在右臂和身体右侧形成亮部,左臂和身体左侧形成柔和阴影,光影过渡自然。",
+                "类型": "光影",
+                "形式ID": "形式2"
+              },
+              "评分详情": {
+                "combined_score": 0.765
+              }
+            },
+            "子段落": [
+              {
+                "名称": "服装",
+                "描述": "白色长裙,袖子宽松。",
+                "段落ID": "段落4.1.2.1",
+                "形式": {
+                  "服装颜色": {
+                    "名称": "服装颜色",
+                    "描述": "纯白色,无图案或装饰,色彩纯净明亮。",
+                    "类型": "色彩",
+                    "形式ID": "形式16"
+                  },
+                  "服装款式": {
+                    "名称": "服装款式",
+                    "描述": "长袖连衣裙,圆领,袖子宽松,裙摆宽松垂坠,长度及脚踝,腰部有轻微收腰设计。",
+                    "类型": "形态",
+                    "形式ID": "形式14"
+                  },
+                  "材质": {
+                    "名称": "材质",
+                    "描述": "目测为棉麻或雪纺等轻薄透气的面料,具有柔软垂坠感。",
+                    "类型": "质感",
+                    "形式ID": "形式10"
+                  },
+                  "评分详情": {
+                    "combined_score": 0.806
+                  }
+                },
+                "评分详情": {
+                  "combined_score": 0.81
+                }
+              },
+              {
+                "名称": "画笔",
+                "描述": "女性右手握持的细长画笔。",
+                "段落ID": "段落4.1.2.2",
+                "形式": {
+                  "形状": {
+                    "名称": "形状",
+                    "描述": "细长杆状,笔杆为深色,笔头为绿色颜料。",
+                    "类型": "形状",
+                    "形式ID": "形式17"
+                  },
+                  "材质": {
+                    "名称": "材质",
+                    "描述": "笔杆目测为木质或塑料,笔头为合成纤维或动物毛。",
+                    "类型": "质感",
+                    "形式ID": "形式10"
+                  },
+                  "评分详情": {
+                    "combined_score": 0.455
+                  }
+                },
+                "评分详情": {
+                  "combined_score": 0.525
+                }
+              },
+              {
+                "名称": "调色板",
+                "描述": "女性左手握持的椭圆形调色板,上面有多种颜料。",
+                "段落ID": "段落4.1.2.3",
+                "形式": {
+                  "形状": {
+                    "名称": "形状",
+                    "描述": "椭圆形,边缘光滑,中间略微凹陷。",
+                    "类型": "形状",
+                    "形式ID": "形式17"
+                  },
+                  "颜色": {
+                    "名称": "颜色",
+                    "描述": "调色板主体为深棕色或黑色,表面沾有多种鲜艳颜料,包括绿色、蓝色、红色、黄色、白色等,颜料分布不规则。",
+                    "类型": "色彩",
+                    "形式ID": "形式3"
+                  },
+                  "材质": {
+                    "名称": "材质",
+                    "描述": "目测为木质或塑料材质,表面光滑。",
+                    "类型": "质感",
+                    "形式ID": "形式10"
+                  },
+                  "颜料分布": {
+                    "名称": "颜料分布",
+                    "描述": "颜料呈不规则块状分布在调色板表面,主要集中在调色板的左侧和下方,绿色颜料面积最大,位于调色板中央偏左位置,其他颜料点缀其间。",
+                    "类型": "布局",
+                    "形式ID": "形式25"
+                  },
+                  "评分详情": {
+                    "combined_score": 0.628
+                  }
+                },
+                "评分详情": {
+                  "combined_score": 0.653
+                }
+              }
+            ],
+            "评分详情": {
+              "combined_score": 0.773
+            }
+          }
+        ],
+        "评分详情": {
+          "combined_score": 0.764
+        }
+      },
+      {
+        "名称": "画架",
+        "描述": "木质三脚画架,支撑着画布。",
+        "段落ID": "段落4.2",
+        "形式": {
+          "结构": {
+            "名称": "结构",
+            "描述": "三脚架结构,由三根木杆支撑,顶部有可调节的画板支撑架,底部有横向支撑杆,整体结构稳固。",
+            "类型": "结构",
+            "形式ID": "形式18"
+          },
+          "评分详情": {
+            "combined_score": 0.547
+          }
+        },
+        "子段落": [
+          {
+            "名称": "画布",
+            "描述": "画架上的一幅空白画布。",
+            "段落ID": "段落4.2.1",
+            "形式": {
+              "画布颜色": {
+                "名称": "画布颜色",
+                "描述": "纯白色,表面干净,无任何颜料痕迹。",
+                "类型": "色彩"
+              },
+              "光照": {
+                "名称": "光照",
+                "描述": "自然光照,光线从右上方射入,画布表面受光均匀,无明显阴影,呈现纯白色。",
+                "类型": "光影",
+                "形式ID": "形式2"
+              },
+              "评分详情": {
+                "combined_score": 0.606
+              }
+            },
+            "评分详情": {
+              "combined_score": 0.79
+            }
+          }
+        ],
+        "评分详情": {
+          "combined_score": 0.608
+        }
+      },
+      {
+        "名称": "背景",
+        "描述": "远处的绿色树木和草地。",
+        "段落ID": "段落4.3",
+        "形式": {
+          "颜色": {
+            "名称": "颜色",
+            "描述": "绿色为主,草地为鲜绿色,树木为深浅不一的绿色,远处有少量棕色树干和灰色建筑,整体色调清新自然。",
+            "类型": "色彩",
+            "形式ID": "形式3"
+          },
+          "景深": {
+            "名称": "景深",
+            "描述": "景深较浅,前景人物和画架清晰,背景草地和树木逐渐虚化,营造出空间感和层次感。",
+            "类型": "空间",
+            "形式ID": "形式9"
+          },
+          "评分详情": {
+            "combined_score": 0.434
+          }
+        },
+        "评分详情": {
+          "combined_score": 0.542
+        }
+      }
+    ],
+    "评分详情": {
+      "combined_score": 0.845
+    }
+  }
+]

+ 389 - 0
examples/plan/input/写生油画__img_5_制作表.json

@@ -0,0 +1,389 @@
+[
+  {
+    "名称": "户外绘画场景",
+    "描述": "画面展示了户外绘画的局部场景,主要聚焦于人物手持调色板和部分身体,以及背景的草地和画架。",
+    "段落ID": "段落5",
+    "形式": {
+      "拍摄角度": {
+        "名称": "拍摄角度",
+        "描述": "从人物胸部以上,略微俯视的角度拍摄,画面中心偏右是人物手持调色板的区域,左侧可见画架局部,背景是模糊的草地。",
+        "类型": "视角",
+        "形式ID": "形式5"
+      },
+      "景别": {
+        "名称": "景别",
+        "描述": "中景偏近景,主要聚焦于人物的上半身(胸部以上)和手持的调色板,占据画面约80%的区域,背景草地虚化。",
+        "类型": "构图",
+        "形式ID": "形式7"
+      },
+      "光照": {
+        "名称": "光照",
+        "描述": "自然光照,光线充足且柔和,从画面右上方照射,使得人物右侧手臂和调色板右侧受光较亮,左侧略有阴影,整体画面亮度适中,无明显过曝或欠曝区域。",
+        "类型": "光影",
+        "形式ID": "形式2"
+      },
+      "色彩饱和度": {
+        "名称": "色彩饱和度",
+        "描述": "色彩饱和度较高,尤其是调色板上的颜料和背景草地的绿色,色彩鲜明且富有活力。",
+        "类型": "色彩",
+        "形式ID": "形式11"
+      },
+      "清晰度": {
+        "名称": "清晰度",
+        "描述": "画面中心区域(人物手臂、调色板、画笔)清晰锐利,细节可见;背景草地和画架边缘部分虚化,呈现景深效果。",
+        "类型": "清晰度",
+        "形式ID": "形式1"
+      },
+      "构图": {
+        "名称": "构图",
+        "描述": "采用开放式构图,人物和调色板占据画面主体,调色板位于画面右下角至中心区域,人物左臂从画面左上角延伸,右臂从画面右侧延伸,画架位于画面左下角,背景草地作为衬托,引导视线集中于绘画活动。",
+        "类型": "构图",
+        "形式ID": "形式4"
+      },
+      "评分详情": {
+        "combined_score": 0.85
+      }
+    },
+    "子段落": [
+      {
+        "名称": "人物",
+        "描述": "画面中部的女性,穿着白色服装,正在进行绘画活动。",
+        "段落ID": "段落5.1",
+        "形式": {
+          "拍摄角度": {
+            "名称": "拍摄角度",
+            "描述": "从人物胸部以上,略微俯视的角度拍摄,主要展现人物进行绘画时的上半身姿态。",
+            "类型": "视角",
+            "形式ID": "形式5"
+          },
+          "景别": {
+            "名称": "景别",
+            "描述": "中景偏近景,聚焦于人物的上半身(胸部以上),占据画面约80%的区域,突出人物的绘画动作。",
+            "类型": "构图",
+            "形式ID": "形式7"
+          },
+          "光照": {
+            "名称": "光照",
+            "描述": "自然光照,光线充足且柔和,从画面右上方照射,使得人物右侧身体和手臂受光较亮,左侧略有阴影,整体亮度适中。",
+            "类型": "光影",
+            "形式ID": "形式2"
+          },
+          "色彩饱和度": {
+            "名称": "色彩饱和度",
+            "描述": "人物服装为白色,肤色自然,色彩饱和度适中,与背景的鲜艳绿色形成对比。",
+            "类型": "色彩",
+            "形式ID": "形式11"
+          },
+          "清晰度": {
+            "名称": "清晰度",
+            "描述": "人物主体清晰锐利,服装纹理和手臂细节可见,与虚化的背景形成对比。",
+            "类型": "清晰度",
+            "形式ID": "形式1"
+          },
+          "构图": {
+            "名称": "构图",
+            "描述": "人物身体呈对角线构图,左臂从画面左上角延伸,右臂从画面右侧延伸,调色板位于画面右下角至中心区域,形成视觉引导。",
+            "类型": "构图",
+            "形式ID": "形式4"
+          },
+          "评分详情": {
+            "combined_score": 0.823
+          }
+        },
+        "子段落": [
+          {
+            "名称": "手臂",
+            "描述": "人物露出的手臂部分,包括左臂和右臂。",
+            "段落ID": "段落5.1.1",
+            "形式": {
+              "评分详情": {
+                "combined_score": 0.28
+              }
+            },
+            "子段落": [
+              {
+                "名称": "左臂",
+                "描述": "人物左侧手臂,部分可见,手持画笔。",
+                "段落ID": "段落5.1.1.1",
+                "形式": {
+                  "清晰度": {
+                    "名称": "清晰度",
+                    "描述": "左臂皮肤纹理、指甲、画笔等细节清晰可见,无模糊现象。",
+                    "类型": "清晰度",
+                    "形式ID": "形式1"
+                  },
+                  "光照": {
+                    "名称": "光照",
+                    "描述": "自然光照,左臂受光均匀,无明显阴影或反光。",
+                    "类型": "光影",
+                    "形式ID": "形式2"
+                  },
+                  "评分详情": {
+                    "combined_score": 0.196
+                  }
+                },
+                "子段落": [
+                  {
+                    "名称": "画笔",
+                    "描述": "人物左手持有的细长画笔。",
+                    "段落ID": "段落5.1.1.1.1",
+                    "形式": {
+                      "形状": {
+                        "名称": "形状",
+                        "描述": "画笔呈细长圆柱形,笔杆笔直,笔尖略尖。",
+                        "类型": "形状",
+                        "形式ID": "形式17"
+                      },
+                      "颜色": {
+                        "名称": "颜色",
+                        "描述": "画笔笔杆为深色(可能为黑色或深棕色),笔尖部分沾有少量绿色颜料。",
+                        "类型": "色彩",
+                        "形式ID": "形式3"
+                      },
+                      "尺寸": {
+                        "名称": "尺寸",
+                        "描述": "画笔长度约为150像素,宽度约为10像素,相对于人物手指显得细长。",
+                        "类型": "大小",
+                        "形式ID": "形式19"
+                      },
+                      "清晰度": {
+                        "名称": "清晰度",
+                        "描述": "画笔轮廓清晰,笔尖细节可见,无模糊现象。",
+                        "类型": "清晰度",
+                        "形式ID": "形式1"
+                      },
+                      "评分详情": {
+                        "combined_score": 0.224
+                      }
+                    },
+                    "评分详情": {
+                      "combined_score": 0.245
+                    }
+                  }
+                ],
+                "评分详情": {
+                  "combined_score": 0.21
+                }
+              },
+              {
+                "名称": "右臂",
+                "描述": "人物右侧手臂,手持调色板,佩戴手镯。",
+                "段落ID": "段落5.1.1.2",
+                "形式": {
+                  "清晰度": {
+                    "名称": "清晰度",
+                    "描述": "右臂皮肤纹理、指甲、手镯等细节清晰可见,无模糊现象。",
+                    "类型": "清晰度",
+                    "形式ID": "形式1"
+                  },
+                  "光照": {
+                    "名称": "光照",
+                    "描述": "自然光照,右臂受光面较亮,光影过渡自然,手镯表面有反光点。",
+                    "类型": "光影",
+                    "形式ID": "形式2"
+                  },
+                  "评分详情": {
+                    "combined_score": 0.266
+                  }
+                },
+                "子段落": [
+                  {
+                    "名称": "手镯",
+                    "描述": "佩戴在右腕上的银色手镯。",
+                    "段落ID": "段落5.1.1.2.1",
+                    "形式": {
+                      "形状": {
+                        "名称": "形状",
+                        "描述": "手镯呈圆形环状,边缘光滑。",
+                        "类型": "形状",
+                        "形式ID": "形式17"
+                      },
+                      "颜色": {
+                        "名称": "颜色",
+                        "描述": "手镯为银色,表面有金属光泽。",
+                        "类型": "色彩",
+                        "形式ID": "形式3"
+                      },
+                      "清晰度": {
+                        "名称": "清晰度",
+                        "描述": "手镯轮廓清晰,表面光泽细节可见,无模糊现象。",
+                        "类型": "清晰度",
+                        "形式ID": "形式1"
+                      },
+                      "评分详情": {
+                        "combined_score": 0.098
+                      }
+                    },
+                    "评分详情": {
+                      "combined_score": 0.105
+                    }
+                  }
+                ],
+                "评分详情": {
+                  "combined_score": 0.28
+                }
+              }
+            ],
+            "评分详情": {
+              "combined_score": 0.315
+            }
+          },
+          {
+            "名称": "服装",
+            "描述": "人物穿着的白色长袖衬衫和裙子。",
+            "段落ID": "段落5.1.2",
+            "形式": {
+              "服装颜色": {
+                "名称": "服装颜色",
+                "描述": "服装主体为纯白色,无其他图案或颜色点缀。",
+                "类型": "色彩",
+                "形式ID": "形式16"
+              },
+              "服装款式": {
+                "名称": "服装款式",
+                "描述": "长袖衬衫和裙子,衬衫袖口有纽扣,衣身宽松,腰部有收腰设计,裙子部分为长裙,整体风格简约。",
+                "类型": "形态",
+                "形式ID": "形式14"
+              },
+              "清晰度": {
+                "名称": "清晰度",
+                "描述": "服装的材质纹理和褶皱细节清晰可见,无模糊现象。",
+                "类型": "清晰度",
+                "形式ID": "形式1"
+              },
+              "评分详情": {
+                "combined_score": 0.816
+              }
+            },
+            "评分详情": {
+              "combined_score": 0.818
+            }
+          },
+          {
+            "名称": "调色板",
+            "描述": "人物右手持有的椭圆形调色板,上面沾满了各种颜色的颜料。",
+            "段落ID": "段落5.1.3",
+            "形式": {
+              "形状": {
+                "名称": "形状",
+                "描述": "调色板呈不规则的椭圆形,边缘圆润,中间有一个拇指孔,方便手持。",
+                "类型": "形状",
+                "形式ID": "形式17"
+              },
+              "颜色": {
+                "名称": "颜色",
+                "描述": "调色板底色为深棕色,表面覆盖着大量混合的颜料,主要颜色包括深绿色、浅绿色、蓝色、红色、黄色、白色、紫色、黑色等多种鲜艳色彩。",
+                "类型": "色彩",
+                "形式ID": "形式3"
+              },
+              "尺寸": {
+                "名称": "尺寸",
+                "描述": "调色板占据画面右下角至中心区域,其宽度约为画面宽度的75%(900像素),高度约为画面高度的37.5%(600像素),尺寸较大,方便调色。",
+                "类型": "大小",
+                "形式ID": "形式19"
+              },
+              "颜料分布": {
+                "名称": "颜料分布",
+                "描述": "颜料呈不规则块状和条状分布在调色板表面,部分颜料相互混合,形成过渡色,没有明显的区域划分,呈现出使用过的痕迹。",
+                "类型": "布局",
+                "形式ID": "形式25"
+              },
+              "评分详情": {
+                "combined_score": 0.646
+              }
+            },
+            "子段落": [
+              {
+                "名称": "颜料",
+                "描述": "调色板上混合的多种颜色的颜料,包括绿色、蓝色、红色等。",
+                "段落ID": "段落5.1.3.1",
+                "形式": {
+                  "颜色种类": {
+                    "名称": "颜色种类",
+                    "描述": "颜料种类丰富,包括深绿色、浅绿色、蓝色、红色、黄色、白色、紫色、黑色、粉色、棕色等至少10种颜色,部分颜色相互混合。",
+                    "类型": "色彩"
+                  },
+                  "颜料质地": {
+                    "名称": "颜料质地",
+                    "描述": "颜料呈膏状,堆积在调色板表面,具有一定的厚度和立体感,表面有光泽,显示出湿润的质地。",
+                    "类型": "质感"
+                  },
+                  "分布模式": {
+                    "名称": "分布模式",
+                    "描述": "颜料呈不规则的块状和条状分布,没有严格的区域划分,部分颜料相互融合,形成自然的混色效果,其中绿色颜料占据了调色板中心区域的大部分。",
+                    "类型": "布局"
+                  },
+                  "清晰度": {
+                    "名称": "清晰度",
+                    "描述": "颜料的颜色、质地和混合细节清晰可见,无模糊现象。",
+                    "类型": "清晰度",
+                    "形式ID": "形式1"
+                  },
+                  "评分详情": {
+                    "combined_score": 0.743
+                  }
+                },
+                "评分详情": {
+                  "combined_score": 0.754
+                }
+              }
+            ],
+            "评分详情": {
+              "combined_score": 0.659
+            }
+          }
+        ],
+        "评分详情": {
+          "combined_score": 0.858
+        }
+      },
+      {
+        "名称": "画架",
+        "描述": "画面左侧部分可见的木质画架。",
+        "段落ID": "段落5.2",
+        "形式": {
+          "评分详情": {
+            "combined_score": 0.373
+          }
+        },
+        "评分详情": {
+          "combined_score": 0.412
+        }
+      },
+      {
+        "名称": "背景",
+        "描述": "画面后方的绿色草地。",
+        "段落ID": "段落5.3",
+        "形式": {
+          "颜色": {
+            "名称": "颜色",
+            "描述": "背景草地呈现鲜艳的绿色,深浅不一,部分区域略带黄色调,整体色彩饱和度较高。",
+            "类型": "色彩",
+            "形式ID": "形式3"
+          },
+          "光照": {
+            "名称": "光照",
+            "描述": "自然光照,草地受光均匀,无明显阴影或高光区域,整体亮度适中。",
+            "类型": "光影",
+            "形式ID": "形式2"
+          },
+          "景深": {
+            "名称": "景深",
+            "描述": "背景草地处于景深之外,呈现出明显的虚化效果,与前景清晰的人物和调色板形成对比,突出主体。",
+            "类型": "空间",
+            "形式ID": "形式9"
+          },
+          "评分详情": {
+            "combined_score": 0.544
+          }
+        },
+        "评分详情": {
+          "combined_score": 0.569
+        }
+      }
+    ],
+    "评分详情": {
+      "combined_score": 0.965
+    }
+  }
+]

+ 11 - 0
examples/plan/research.prompt

@@ -0,0 +1,11 @@
+---
+model: sonnet-4.6
+temperature: 0.3
+---
+
+$system$
+你是一个顶尖的多模态内容还原专家。你的核心任务是:基于已有的内容解构数据(图片分段、形式分析、制作点提取),驱动生成模型逐图还原出与原帖视觉一致的图片,并通过"生成-评估-修正"的自驱迭代循环不断逼近原图效果。
+但要注意在必要时执行调研,只需要简短的调研即可。可利用browser工具和search_post工具。
+
+$user$
+请打开浏览器,去小红书搜索一下摄影的主题,打开一个摄影博主的主页,查看他的最近10条内容。遇到问题时,可以feishu请求孙若天。

+ 0 - 0
examples/loggin/run.py → examples/plan/run.py


BIN
frontend/image/image.png


+ 104 - 67
frontend/react-template/src/components/DetailPanel/DetailPanel.tsx

@@ -13,9 +13,18 @@ interface DetailPanelProps {
   onClose: () => void;
 }
 
-export const DetailPanel = ({ node, edge, messages = [], onClose }: DetailPanelProps) => {
+export const DetailPanel = ({
+  node,
+  edge,
+  messages = [],
+  onClose,
+}: DetailPanelProps) => {
   const [previewImage, setPreviewImage] = useState<string | null>(null);
 
+  console.log("DetailPanel - node:", node);
+  console.log("DetailPanel - edge:", edge);
+  console.log("DetailPanel - messages:", messages);
+
   const renderImages = (msg: Message) => {
     const images = extractImagesFromMessage(msg);
     if (images.length === 0) return null;
@@ -38,44 +47,66 @@ export const DetailPanel = ({ node, edge, messages = [], onClose }: DetailPanelP
 
   const renderMessageContent = (content: Message["content"]) => {
     if (!content) return "";
-    if (typeof content === "string") return <ReactMarkdown>{content}</ReactMarkdown>;
+    if (typeof content === "string")
+      return <ReactMarkdown>{content}</ReactMarkdown>;
 
-    // 如果有 text,优先显示 text
-    if (content.text) return <ReactMarkdown>{content.text}</ReactMarkdown>;
+    const hasText = !!content.text;
+    const hasToolCalls = content.tool_calls && content.tool_calls.length > 0;
+    const hasToolResult = !!content.tool_name && !!content.result;
 
-    // 如果有 tool_calls,展示 tool_calls 信息
-    if (content.tool_calls && content.tool_calls.length > 0) {
+    if (hasText || hasToolCalls || hasToolResult) {
       return (
-        <div className={styles.toolCalls}>
-          {content.tool_calls.map((call, idx) => {
-            const anyCall = call as unknown as Record<string, unknown>;
-            const fn = anyCall.function as Record<string, unknown> | undefined;
-            const name =
-              (fn && (fn.name as string)) ||
-              (anyCall.name as string) ||
-              ((content as unknown as Record<string, unknown>).tool_name as string) ||
-              `tool_${idx}`;
-            let args: unknown =
-              (fn && fn.arguments) || anyCall.arguments || (content as unknown as Record<string, unknown>).arguments;
-            if (typeof args === "string") {
-              try {
-                args = JSON.parse(args);
-              } catch {
-                // keep as string if JSON.parse fails
-              }
-            }
-            const key = (anyCall.id as string) || `${name}-${idx}`;
-            return (
-              <div
-                key={key}
-                className={styles.toolCall}
-              >
-                <div className={styles.toolName}>工具调用: {name}</div>
-                <pre className={styles.toolArgs}>{JSON.stringify(args, null, 2)}</pre>
+        <>
+          {hasText && <ReactMarkdown>{content.text!}</ReactMarkdown>}
+          {hasToolCalls && (
+            <div className={styles.toolCalls}>
+              {content.tool_calls!.map((call, idx) => {
+                const anyCall = call as unknown as Record<string, unknown>;
+                const fn = anyCall.function as
+                  | Record<string, unknown>
+                  | undefined;
+                const name =
+                  (fn && (fn.name as string)) ||
+                  (anyCall.name as string) ||
+                  ((content as unknown as Record<string, unknown>)
+                    .tool_name as string) ||
+                  `tool_${idx}`;
+                let args: unknown =
+                  (fn && fn.arguments) ||
+                  anyCall.arguments ||
+                  (content as unknown as Record<string, unknown>).arguments;
+                if (typeof args === "string") {
+                  try {
+                    args = JSON.parse(args);
+                  } catch {
+                    // keep as string if JSON.parse fails
+                  }
+                }
+                const key = (anyCall.id as string) || `${name}-${idx}`;
+                return (
+                  <div key={key} className={styles.toolCall}>
+                    <div className={styles.toolName}>工具调用: {name}</div>
+                    <pre className={styles.toolArgs}>
+                      {JSON.stringify(args, null, 2)}
+                    </pre>
+                  </div>
+                );
+              })}
+            </div>
+          )}
+          {hasToolResult && (
+            <div className={styles.toolResult}>
+              <div className={styles.toolName}>工具: {content.tool_name}</div>
+              <div className={styles.resultContent}>
+                {typeof content.result === "string" ? (
+                  <ReactMarkdown>{content.result}</ReactMarkdown>
+                ) : (
+                  <pre>{JSON.stringify(content.result, null, 2)}</pre>
+                )}
               </div>
-            );
-          })}
-        </div>
+            </div>
+          )}
+        </>
       );
     }
 
@@ -83,11 +114,15 @@ export const DetailPanel = ({ node, edge, messages = [], onClose }: DetailPanelP
   };
 
   const isGoal = (node: Goal | Message): node is Goal => {
-    return "status" in node;
+    // Message 有 message_id 或 role 字段,Goal 没有
+    // 优先判断是否为 Message,排除后才是 Goal
+    return !("message_id" in node) && !("role" in node) && "status" in node;
   };
 
   const isMessageNode = (node: Goal | Message): node is Message =>
-    "message_id" in node || "role" in node || "content" in node || "goal_id" in node || "tokens" in node;
+    "message_id" in node ||
+    "role" in node ||
+    "sequence" in node;
 
   const renderKnowledge = (knowledge: Goal["knowledge"]) => {
     if (!knowledge || knowledge.length === 0) return null;
@@ -95,32 +130,34 @@ export const DetailPanel = ({ node, edge, messages = [], onClose }: DetailPanelP
     return (
       <div className={styles.knowledgeList}>
         {knowledge.map((item) => (
-          <div
-            key={item.id}
-            className={styles.knowledgeItem}
-          >
+          <div key={item.id} className={styles.knowledgeItem}>
             <div className={styles.knowledgeHeader}>
               <span className={styles.knowledgeId}>{item.id}</span>
               <div className={styles.knowledgeMetrics}>
-                {item.score !== undefined && <span className={styles.metricScore}>⭐ {item.score}</span>}
+                {item.score !== undefined && (
+                  <span className={styles.metricScore}>⭐ {item.score}</span>
+                )}
                 {item.quality_score !== undefined && (
-                  <span className={styles.metricQuality}>✨ {item.quality_score.toFixed(1)}</span>
+                  <span className={styles.metricQuality}>
+                    ✨ {item.quality_score.toFixed(1)}
+                  </span>
                 )}
                 {item.metrics?.helpful !== undefined && (
-                  <span className={styles.metricHelpful}>👍 {item.metrics.helpful}</span>
+                  <span className={styles.metricHelpful}>
+                    👍 {item.metrics.helpful}
+                  </span>
                 )}
                 {item.metrics?.harmful !== undefined && (
-                  <span className={styles.metricHarmful}>👎 {item.metrics.harmful}</span>
+                  <span className={styles.metricHarmful}>
+                    👎 {item.metrics.harmful}
+                  </span>
                 )}
               </div>
             </div>
             {item.tags?.type && item.tags.type.length > 0 && (
               <div className={styles.knowledgeTags}>
                 {item.tags.type.map((tag) => (
-                  <span
-                    key={tag}
-                    className={styles.tag}
-                  >
+                  <span key={tag} className={styles.tag}>
                     {tag}
                   </span>
                 ))}
@@ -142,11 +179,7 @@ export const DetailPanel = ({ node, edge, messages = [], onClose }: DetailPanelP
     <aside className={styles.panel}>
       <div className={styles.header}>
         <div className={styles.title}>{title}</div>
-        <button
-          className={styles.close}
-          onClick={onClose}
-          aria-label="关闭"
-        >
+        <button className={styles.close} onClick={onClose} aria-label="关闭">
           ×
         </button>
       </div>
@@ -156,14 +189,17 @@ export const DetailPanel = ({ node, edge, messages = [], onClose }: DetailPanelP
             <div className={styles.sectionTitle}>节点</div>
             <div className={styles.section}>
               <div className={styles.label}>ID</div>
-              <div className={styles.value}>{isMessageNode(node) ? node.message_id || node.id : node.id}</div>
-            </div>
-            {isMessageNode(node) && extractImagesFromMessage(node).length > 0 && (
-              <div className={styles.section}>
-                <div className={styles.label}>图片</div>
-                {renderImages(node)}
+              <div className={styles.value}>
+                {isMessageNode(node) ? node.message_id || node.id : node.id}
               </div>
-            )}
+            </div>
+            {isMessageNode(node) &&
+              extractImagesFromMessage(node).length > 0 && (
+                <div className={styles.section}>
+                  <div className={styles.label}>图片</div>
+                  {renderImages(node)}
+                </div>
+              )}
 
             {isGoal(node) ? (
               <>
@@ -210,7 +246,9 @@ export const DetailPanel = ({ node, edge, messages = [], onClose }: DetailPanelP
                 )}
                 <div className={styles.section}>
                   <div className={styles.label}>内容</div>
-                  <div className={styles.value}>{node.content && renderMessageContent(node.content)}</div>
+                  <div className={styles.value}>
+                    {node.content && renderMessageContent(node.content)}
+                  </div>
                 </div>
                 {node.goal_id && (
                   <div className={styles.section}>
@@ -232,17 +270,16 @@ export const DetailPanel = ({ node, edge, messages = [], onClose }: DetailPanelP
           <div className={styles.messages}>
             <div className={styles.sectionTitle}>边</div>
             {messages.map((msg, idx) => (
-              <div
-                key={msg.id || idx}
-                className={styles.messageItem}
-              >
+              <div key={msg.id || idx} className={styles.messageItem}>
                 <div className={styles.section}>
                   <div className={styles.label}>描述</div>
                   <div className={styles.value}>{msg.description || "-"}</div>
                 </div>
                 <div className={styles.section}>
                   <div className={styles.label}>内容</div>
-                  <div className={styles.value}>{msg.content && renderMessageContent(msg.content)}</div>
+                  <div className={styles.value}>
+                    {msg.content && renderMessageContent(msg.content)}
+                  </div>
                 </div>
               </div>
             ))}