🤖

儿童故事绘本工作流

暂无描述

⬡ 7 节点 ↓ 11 下载 ⚙ advanced-chat ⭐ 90/100 2026-05-28

工作流图谱

YAML 源码

app:
  description: ''
  icon: 🤖
  icon_background: '#FFEAD5'
  mode: advanced-chat
  name: 儿童故事绘本工作流
  use_icon_as_answer_icon: false
kind: app
version: 0.1.5
workflow:
  conversation_variables: []
  environment_variables: []
  features:
    file_upload:
      allowed_file_extensions:
      - .JPG
      - .JPEG
      - .PNG
      - .GIF
      - .WEBP
      - .SVG
      allowed_file_types:
      - image
      allowed_file_upload_methods:
      - local_file
      - remote_url
      enabled: false
      fileUploadConfig:
        audio_file_size_limit: 50
        batch_count_limit: 5
        file_size_limit: 15
        image_file_size_limit: 10
        video_file_size_limit: 100
        workflow_file_upload_limit: 10
      image:
        enabled: false
        number_limits: 3
        transfer_methods:
        - local_file
        - remote_url
      number_limits: 3
    opening_statement: ''
    retriever_resource:
      enabled: true
    sensitive_word_avoidance:
      enabled: false
    speech_to_text:
      enabled: false
    suggested_questions: []
    suggested_questions_after_answer:
      enabled: false
    text_to_speech:
      enabled: false
      language: ''
      voice: ''
  graph:
    edges:
    - data:
        isInIteration: false
        sourceType: start
        targetType: llm
      id: 1738820318265-source-1738820355489-target
      source: '1738820318265'
      sourceHandle: source
      target: '1738820355489'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        sourceType: llm
        targetType: llm
      id: 1738820355489-source-1738820559172-target
      source: '1738820355489'
      sourceHandle: source
      target: '1738820559172'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        sourceType: http-request
        targetType: code
      id: 1738832929810-source-1738832999117-target
      source: '1738832929810'
      sourceHandle: source
      target: '1738832999117'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        sourceType: llm
        targetType: http-request
      id: 1738820559172-source-1738832929810-target
      source: '1738820559172'
      sourceHandle: source
      target: '1738832929810'
      targetHandle: target
      type: custom
      zIndex: 0
    - data:
        isInIteration: false
        sourceType: code
        targetType: answer
      id: 1738832999117-source-answer-target
      source: '1738832999117'
      sourceHandle: source
      target: answer
      targetHandle: target
      type: custom
      zIndex: 0
    nodes:
    - data:
        desc: ''
        selected: false
        title: 开始
        type: start
        variables:
        - label: 提示词
          max_length: 256
          options: []
          required: true
          type: text-input
          variable: prompt
        - label: 分镜数量
          max_length: 48
          options:
          - '2'
          - '3'
          - '4'
          - '5'
          - '6'
          - '1'
          - '7'
          required: true
          type: select
          variable: promptCount
      height: 114
      id: '1738820318265'
      position:
        x: 46.12178553319774
        y: 268
      positionAbsolute:
        x: 46.12178553319774
        y: 268
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
    - data:
        answer: '{{#1738832999117.result#}}'
        desc: ''
        selected: false
        title: 直接回复
        type: answer
        variables: []
      height: 101
      id: answer
      position:
        x: 840.0443580160011
        y: 487.26103684076145
      positionAbsolute:
        x: 840.0443580160011
        y: 487.26103684076145
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
    - data:
        context:
          enabled: false
          variable_selector: []
        desc: 根据用户输入提示词生成简短故事绘本
        model:
          completion_params:
            temperature: 0.7
          mode: chat
          name: internlm3-8b-instruct
          provider: openai_api_compatible
        prompt_template:
        - edition_type: basic
          id: a00cb45d-af10-4c6f-8216-7f6f53bccc82
          role: system
          text: "根据主题\"{{#1738820318265.prompt#}}\"写一个短故事。要求:\n        1. 用简体中文写作\n\
            \        2. 不要使用特殊字符、星号或markdown格式\n        3. 故事要有趣且富有想象力\n        4.\
            \ 保持在200-300字之间\n        5. 分成3-4个自然段落\n        6. 使用简单明了的语言\n       \
            \ 7. 避免使用括号、方括号或任何可能影响文本转语音的符号`\n      : `Write a short story based on\
            \ the topic \"${topic}\". Requirements:\n        1. Write the story in\
            \ English using only regular letters and basic punctuation\n        2.\
            \ Do not use any special characters, asterisks, or markdown formatting\n\
            \        3. Make it interesting and imaginative\n        4. Keep it between\
            \ 200-300 words\n        5. Divide it into 3-4 natural paragraphs\n  \
            \      6. Use simple and clear language\n        7. Avoid using parentheses,\
            \ brackets, or any symbols that might interfere with text-to-speech"
        selected: false
        title: 生成故事绘本
        type: llm
        variables: []
        vision:
          enabled: false
      height: 124
      id: '1738820355489'
      position:
        x: 348
        y: 268
      positionAbsolute:
        x: 348
        y: 268
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
    - data:
        context:
          enabled: false
          variable_selector: []
        desc: 根据用户输入提示词输入的故事转换成N不同场景AI绘画提示词
        model:
          completion_params:
            temperature: 0.7
          mode: chat
          name: llama-3.3-70b-versatile
          provider: groq
        prompt_template:
        - edition_type: basic
          id: 9f7a1c88-10d1-428a-a10f-44f75674d7db
          role: system
          text: '你是一个专业的儿童绘本插画师和AI绘画提示词专家,精通中英文双语。 请为这段文字{{#1738820355489.text#}}生成{{#1738820318265.promptCount#}}个不同场景的绘图提示词。

            重要提示:

            不要在提示词中使用角色名字,而是用具体的外观特征来描述角色。

            例如:不要用"小白兔"这样的名字,而是描述"一只白色的小兔子,有着蓬松的毛发和红色的眼睛"。

            生成的提示词中,text_snippet 必须是与画面相符的中文文本片段。

            要求:

            角色形象和风格的严格一致性:

            用具体的视觉特征描述角色,而不是用名字。

            主角的外观特征(服装、毛色、体型等)在所有场景中必须保持一致。

            主角的性格特征要通过外观和动作来体现。

            配角的设计风格要与主角协调统一。

            场景连续性:

            场景之间要有清晰的故事发展脉络。

            环境元素的设计要前后呼应。

            艺术风格的统一:

            所有场景使用相同的绘画风格(如:水彩风格、插画风格等)。

            色彩方案要保持一致。

            光影效果要统一。

            适合儿童绘本的表现方式:

            画面要富有童趣和想象力。

            构图要简单清晰。

            情感表达要生动直观。

            每个场景需要包含:

            场景描述(中文,简短精炼)。

            详细的中文提示词,提示词字符总长度不超过800个字,分段描述以下要素:

            Character: 角色的具体外观特征、表情、动作描述(不使用角色名字)。

            Scene: 场景环境、氛围、天气等。

            Lighting: 光线效果、时间、色调。

            Composition: 画面构图、视角、重点。

            Style: 具体的艺术风格、绘画技法。

            Additional: 其他重要细节。

            对应的文本片段(中文)。

            输出格式:

            [

            {

            "description": "场景描述",

            "prompt": "Character:\n[角色具体特征描述]\n\nScene:\n[场景描述]\n\nLighting:\n[光影描述]\n\nComposition:\n[构图描述]\n\nStyle:\n[风格描述]\n\nAdditional:\n[补充细节]",

            "text_snippet": "对应的文本片段",

            "importance": "场景重要性评分(1-5)"

            },

            ...

            ] '
        selected: false
        title: AI绘画提示词专家
        type: llm
        variables: []
        vision:
          enabled: false
      height: 140
      id: '1738820559172'
      position:
        x: 716
        y: 268
      positionAbsolute:
        x: 716
        y: 268
      selected: false
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
    - data:
        authorization:
          config: null
          type: no-auth
        body:
          data:
          - id: key-value-5
            key: ''
            type: text
            value: '{{#1738820559172.text#}}'
          type: json
        desc: ''
        headers: Content-Type:application/json
        method: post
        params: ''
        retry_config:
          max_retries: 3
          retry_enabled: true
          retry_interval: '4997'
        selected: false
        timeout:
          connect: 300
          max_connect_timeout: 0
          max_read_timeout: 0
          max_write_timeout: 0
          read: 300
          write: 597
        title: HTTP 请求
        type: http-request
        url: http://111.119.215.74:8080/jimeng/make_AI_picture_audio/
        variables: []
      height: 135
      id: '1738832929810'
      position:
        x: 89.72684834493947
        y: 519.146220837225
      positionAbsolute:
        x: 89.72684834493947
        y: 519.146220837225
      selected: true
      sourcePosition: right
      targetPosition: left
      type: custom
      width: 242
    - data:
        code: "def main(arg1: str) -> dict:\n    import json\n\n    # 解析输入的 JSON 数据\n\
          \    try:\n        data = json.loads(arg1)\n    except json.JSONDecodeError:\n\
          \        return \"输入的字符串不是有效的 JSON 格式,请检查输入数据。\"\n\n    # 确保解析后的数据是一个列表\n\
          \    if not isinstance(data, list):\n        return \"输入的数据格式不正确,请确保输入是一个\
          \ JSON 数组对象。\"\n\n    # 初始化结果字符串\n    markdown_result = \"\"\n\n    # 遍历每条数据\n\
          \    for item in data:\n        # 检查每条数据是否是字典,并且包含所需的字段\n        if not\
          \ isinstance(item, dict) or not all(key in item for key in ('description',\
          \ 'image_url', 'audio_url')):\n            markdown_result += \"数据格式不完整,缺少必要的字段(description,\
          \ image_url, audio_url)。\\n\"\n            continue\n\n        # 提取字段值\n\
          \        description = item['description']\n        image_url = item['ima...(过长已截断)