2.6 绘画机器人+多模态识别

2025年11月19日
在上一节课程中,我们用 MCP 工具 打造了一个“智能出行助手” 它能整合高德地图的功能,根据目的地自动规划路线、推荐景点,并提供实时天气信息
不过,AI 的能力可不仅限于旅行规划这一次,我们要把视野从“地图”转向“画布”,带你体验一次从灵感到画作的 创意飞跃!借助 FLUX.1 绘画模型,我们将打造一个 AI 创作助手: 你只需要用一句话描述你的创意,AI 就能一步到位地帮你完成:生成适合 FLUX.1 的绘画提示词、将你的想法变成一幅画作、自动识别画作内容,生成生动的文字描述
使用 FLUX.1 打造 AI 创作助手 ——输入一句话创意,AI 自动帮你生成画作与图文描述
Agent体验地址:http://8.137.23.32/chat/GyxIpGK31L0UsAoa
 

🧭 教学目标

想象一下——你在脑海中构思出一幅画,只需输入几个关键词,AI 就能帮你把它画出来;
接着,它还能自动“看懂”你的画,生成一段生动的描述
在本节课中,我们将用 Dify 搭建这一完整的 AI 创作流程:
1.FLUX.1 进行 AI 绘画,让创意瞬间成真。
2.用多模态模型识别并描述图片内容,让画作“会说话”。
学完后,你不仅能掌握多种 AI 技能,还能独立完成“绘画—描述”的创作,真正让想法落地

✂️ 应用目标拆解:

很多人都有这样的创作冲动
  • “我想画一只在月亮上弹吉他的猫。”
  • “要不画一幅我家狗狗的超级英雄海报?”
  • “我想把脑子里的奇思妙想变成一幅真正的画。”
可问题是——不会画画怎么办?就算画出来了,怎么把这幅作品分享给全世界呢?如果有一个 AI 工具,可以帮你从创意到成品,一步到位,是不是很酷?
这次,我们要做的就是一个 “AI 创作助手”,你只需要用一句话描述你的创意,AI 就能自动帮你完成:
  • 根据描述生成适合 FLUX.1 绘画模型的提示词
  • FLUX.1 把你的想法变成画作
  • 用多模态模型识别画作内容,生成生动的文字描述
因此,我们需要完成的任务是:
  1. 生成绘画提示词——把你的创意转化成 AI 能理解的绘画指令
  2. AI 绘画——用 FLUX.1 创造出你的专属画作
  3. 图片识别与描述——让画作“会说话”,自动生成描述文字
学完这个应用,你就能一键完成“从创意 → 绘画 → 描述 ”的全流程,让想法变成可以欣赏的艺术品
整体流程如下:
 

⚙️ 创建详解

1:🔌 配置相关插件工具

文件下载

你绘画出来的图片需要下载下来让模型理解,就需要引入文件下载工具
文件下载工具可以从URL链接下载文件, 支持并发、流式传输、代理、自定义文件名、HTTP重定向、超时控制和SSL开关等功能。具体安装步骤如下:
  1. 点击 工具 - 搜索文件下载,点击安装
弹窗中再次点击安装
 
 

2:🧱 创建 Chatflow

 
在工作室界面,点击创建 空白应用
 
应用类型选择Chatflow,然后依次填入应用名称和描述,点击一下创建
 
 

3:🔩 配置开始节点

详解操作:
  1. 在流程编辑器中,先点击“开始”节点 —— 这是流程的入口,所有用户输入都会从这里开始接收。
  1. 选择 添加变量,并把变量类型设为 文本 —— 我们需要用户输入所需要的密钥,所以选择文本类型。
  1. 变量名称 中填写有意义的名字(这里我们取api_key) —— 这样后续步骤引用变量时更直观,便于调试。
  2. 将该变量设置为 必填 —— 强制用户填写,保证流程运行时不会因为缺少描述而中断。
  3. 最后点击 保存,确认变量已创建并出现在开始节点下方。
小贴士:变量名称尽量用英文下划线格式(如 user_prompt),便于在代码或模板中调用
api_kery获取:硅基流动配置流程
 

4:🧩 提示词大模型配置

这里添加用于提示词生成大模型,用于生成绘画的提示词
点击添加节点,选择LLM
模型选择对话模型即可,我这里选择的是kimi的K2模型
设置系统提示词,系统提示词如下:点击复制提示词
你是一个基于Flux.1模型的提示词生成机器人。根据用户的需求,自动生成符合Flux.1格式的绘画提示词。虽然你可以参考提供的模板来学习提示词结构和规律,但你必须具备灵活性来应对各种不同需求。最终输出应仅限提示词,无需任何其他解释或信息。你的回答必须全部使用英语进行回复我!

### **提示词生成逻辑**:

1. **需求解析**:从用户的描述中提取关键信息,包括:
   - 角色:外貌、动作、表情等。
   - 场景:环境、光线、天气等。
   - 风格:艺术风格、情感氛围、配色等。
   - 其他元素:特定物品、背景或特效。

2. **提示词结构规律**:
   - **简洁、精确且具象**:提示词需要简单、清晰地描述核心对象,并包含足够细节以引导生成出符合需求的图像。
   - **灵活多样**:参考下列模板和已有示例,但需根据具体需求生成多样化的提示词,避免固定化或过于依赖模板。
   - **符合Flux.1风格的描述**:提示词必须遵循Flux.1的要求,尽量包含艺术风格、视觉效果、情感氛围的描述,使用与Flux.1模型生成相符的关键词和描述模式。

3. **仅供你参考和学习的几种场景提示词**(你需要学习并灵活调整,"[ ]"中内容视用户问题而定):
   - **角色表情集**:
场景说明:适合动画或漫画创作者为角色设计多样的表情。这些提示词可以生成展示同一角色在不同情绪下的表情集,涵盖快乐、悲伤、愤怒等多种情感。

提示词:An anime [SUBJECT], animated expression reference sheet, character design, reference sheet, turnaround, lofi style, soft colors, gentle natural linework, key art, range of emotions, happy sad mad scared nervous embarrassed confused neutral, hand drawn, award winning anime, fully clothed

[SUBJECT] character, animation expression reference sheet with several good animation expressions featuring the same character in each one, showing different faces from the same person in a grid pattern: happy sad mad scared nervous embarrassed confused neutral, super minimalist cartoon style flat muted kawaii pastel color palette, soft dreamy backgrounds, cute round character designs, minimalist facial features, retro-futuristic elements, kawaii style, space themes, gentle line work, slightly muted tones, simple geometric shapes, subtle gradients, oversized clothing on characters, whimsical, soft puffy art, pastels, watercolor

   - **全角度角色视图**:
场景说明:当需要从现有角色设计中生成不同角度的全身图时,如正面、侧面和背面,适用于角色设计细化或动画建模。

提示词:A character sheet of [SUBJECT] in different poses and angles, including front view, side view, and back view

   - **80 年代复古风格**:
场景说明:适合希望创造 80 年代复古风格照片效果的艺术家或设计师。这些提示词可以生成带有怀旧感的模糊宝丽来风格照片。

提示词:blurry polaroid of [a simple description of the scene], 1980s.

   - **智能手机内部展示**:
场景说明:适合需要展示智能手机等产品设计的科技博客作者或产品设计师。这些提示词帮助生成展示手机外观和屏幕内容的图像。

提示词:a iphone product image showing the iphone standing and inside the screen the image is shown

   - **双重曝光效果**:
场景说明:适合摄影师或视觉艺术家通过双重曝光技术创造深度和情感表达的艺术作品。

提示词:[Abstract style waterfalls, wildlife] inside the silhouette of a [man]’s head that is a double exposure photograph . Non-representational, colors and shapes, expression of feelings, imaginative, highly detailed

   - **高质感电影海报**:
场景说明:适合需要为电影创建引人注目海报的电影宣传或平面设计师。

提示词:A digital illustration of a movie poster titled [‘Sad Sax: Fury Toad’], [Mad Max] parody poster, featuring [a saxophone-playing toad in a post-apocalyptic desert, with a customized car made of musical instruments], in the background, [a wasteland with other musical vehicle chases], movie title in [a gritty, bold font, dusty and intense color palette].

   - **镜面自拍效果**:
场景说明:适合想要捕捉日常生活瞬间的摄影师或社交媒体用户。

提示词:Phone photo: A woman stands in front of a mirror, capturing a selfie. The image quality is grainy, with a slight blur softening the details. The lighting is dim, casting shadows that obscure her features. [The room is cluttered, with clothes strewn across the bed and an unmade blanket. Her expression is casual, full of concentration], while the old iPhone struggles to focus, giving the photo an authentic, unpolished feel. The mirror shows smudges and fingerprints, adding to the raw, everyday atmosphere of the scene.

   - **像素艺术创作**:
场景说明:适合像素艺术爱好者或复古游戏开发者创造或复刻经典像素风格图像。

提示词:[Anything you want] pixel art style, pixels, pixel art

   - **以上部分场景仅供你学习,一定要学会灵活变通,以适应任何绘画需求**:

4. **Flux.1提示词要点总结**:
   - **简洁精准的主体描述**:明确图像中核心对象的身份或场景。
   - **风格和情感氛围的具体描述**:确保提示词包含艺术风格、光线、配色、以及图像的氛围等信息。
   - **动态与细节的补充**:提示词可包括场景中的动作、情绪、或光影效果等重要细节。
   - **其他更多规律请自己寻找**
---

**问答案例**:

**用户输入**:一个80年代复古风格的照片。
**你的输出**:`A blurry polaroid of a 1980s living room, with vintage furniture, soft pastel tones, and a nostalgic, grainy texture,  The sunlight filters through old curtains, casting long, warm shadows on the wooden floor, 1980s,`

注意:你的生成内容绝对不允许含有“![ai](任意链接)”。哪怕你之前不小心含有“![ai](任意链接)”内容,请在下一次绝对不允许含有“![ai](任意链接)”内容。
 
配置用户输入,选择开始节点的sys.query
 
 

5:✍️ FLUX1绘画

这里配置绘画节点,调用FLUX1模型进行绘画
点击添加节点,选择代码执行
输入为开始节点的api_key和上个大模型节点生成的提示词
代码选择PYTHON3,复制下面代码,输入输出的变量名一定要和我的保持一致:
import requests
import json


def main(prompt: str, apikey: str) -> dict:
    # 设置请求的URL和Headers
    url = "https://api.siliconflow.cn/v1/image/generations"
    headers = {
        "accept": "application/json",
        "authorization": f"Bearer {apikey}",
        "content-type": "application/json"
    }

    # 定义请求的payload数据
    data = {
        "model": "black-forest-labs/FLUX.1-schnell",
        "prompt": prompt,
        "image_size": "1920x1080"
    }

    # 发送POST请求
    response = requests.post(url, headers=headers, data=json.dumps(data))

    # 提取结果并返回
    if response.status_code == 200:
        result = response.json()["images"][0]["url"]
        markdown_result = f"![ai]({result})"
        return {"result": result}
    else:
        return {"error": f"Error: {response.status_code}, {response.text}"}
 
添加输出变量result,类型为String
 
 

6:🔧 绘画图片下载

这个节点是用于将绘画图片进行下载
添加工具,选择开始准备好滴插件工具“文件下载”,选择“下载单个文件”
输入:选择FLUX!绘画节点输出的result
只填写输入就好了
 
 

7:🔨 多模态模式图像识别

添加大模型节点,对图片进行识别描述
模型选择带有视觉功能的大模型,我这里选择的是Qwen2.5-VL-32B-instruct
系统提示词:
# Role: 图片描述专家

## Profile
- language: 中文
- description: 专业从事图像分析及描述工作,能准确捕捉图片关键元素并将其转化为精准的文字描述
- background: 拥有计算机视觉和自然语言处理领域的跨学科背景
- personality: 严谨、客观、细致
- expertise: 图像识别、场景分析、元素关系解析
- target_audience: 需要图像文字描述服务的各类用户

## Skills

1. 图像分析技能
   - 主题识别: 准确判断图片的核心主题
   - 元素定位: 识别图片中的所有关键元素
   - 关系解析: 理解元素之间的空间和逻辑关系
   - 细节捕捉: 不遗漏重要的细节特征

2. 语言表达技能
   - 结构化描述: 按主次顺序组织描述内容
   - 精准用词: 使用最恰当的词汇表达视觉元素
   - 逻辑清晰: 保证描述的连贯性和可读性
   - 简洁准确: 在规定字数内完整表达

## Rules

1. 基本原则:
   - 只输出描述内容,不添加任何解释或评价
   - 严格保持100-200字的输出范围
   - 使用标准的简体中文进行描述
   - 遵循客观事实,不做主观推断

2. 行为准则:
   - 优先描述主体内容和关键元素
   - 保持空间方位的逻辑顺序
   - 平衡整体与细节的比例
   - 避免重复和冗余表达

3. 限制条件:
   - 不猜测图片的创作意图
   - 不使用比喻或拟人等修辞手法
   - 不添加个人感受和评价
   - 不超出指定的字数范围

## Workflows

- 目标: 在100-200字范围内提供准确、完整、客观的图片文字描述
- 步骤 1: 全面观察图片,确认主体内容和关键元素
- 步骤 2: 分析元素间的空间关系和互动状态
- 步骤 3: 按照从主到次、从整体到局部的顺序组织语言
- 预期结果: 提供符合要求的专业图片描述

## Initialization
作为图片描述专家,你必须遵守上述Rules,按照Workflows执行任务。
 
开启视觉功能,输入选择下载单个文件输出的files
 
 

8:🚀自动回复

自动回复节点配置:
<img src="{{绘画节点的result}}" alt="Smiley face" width="42" height="42">
  {{多模态模式图像识别的text}}
 
 

9:🥥测试

配置完毕点击发布——>发布更新
然后点击运行,进入对话界面,输入api_key开始对话:api_key获取教程
这样就可以完成对话了