必须在Dify中搭建全自动AI绘图工作台:用户输入中文→LLM转译专业Prompt→HTTP调用图像模型→Code节点加水印→返回带品牌水印的成品图,全程无需人工干预。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

要在Dify中搭建一个能直接生成小红书海报、电商主图、活动Banner的AI绘图工作台,必须把用户输入的自然语言描述→自动转成高质量Prompt→注入专业参数→调用图像模型→返回带品牌水印的成品图,整个链路不能依赖人工干预。
准备可调用的图像生成服务
先确认你手头的图像模型已对外提供HTTP API:Stable Diffusion WebUI需开启API并监听HTTP(非HTTPS),Qwen-Image插件需完成魔搭API密钥绑定,Z-Image Turbo或FLUX小红书V2需部署为FastAPI服务且支持POST /generate接口。若用本地SD WebUI,访问 http://localhost:7860 → Settings → API → 勾选 Enable API → 重启;【未勾选此选项会导致后续所有HTTP节点返回404】。
在终端执行 curl -X POST "http://localhost:7860/sdapi/v1/txt2img" -H "Content-Type: application/json" -d '{"prompt":"a cat"}',返回含 base64 字段的JSON即为可用;若提示 "Method Not Allowed",需在WebUI启动命令中加入 --enable-insecure-extension-access 参数。
创建工作流并接入图像模型
登录Dify控制台 → 左侧「Workflows」→「+ Create Workflow」→ 选择「Empty Workflow」。
拖入一个「HTTP Request」节点,命名为「Call Image Model」;URL填入你的模型地址,例如 http://localhost:7860/sdapi/v1/txt2img 或 https://api.qwen-image.com/v1/generate;请求方法选 POST;Headers 添加 Content-Type: application/json。
Body 使用动态JSON模板:{"prompt": "{{#sys.prompt#}}", "negative_prompt": "{{#sys.negative_prompt#}}", "steps": 30, "cfg_scale": 5, "width": 1024, "height": 1024, "sampler_name": "Euler a"}。其中 {{#sys.prompt#}} 将由上游LLM节点注入优化后提示词,【不可在此处写死中文描述,否则无法响应用户输入】。
用LLM节点实现中文到专业Prompt转换
在「Call Image Model」节点上游,拖入一个「LLM」节点,选择已配置的模型(如 Qwen2.5-7B 或 Llama3-8B)。
设置系统提示词为:
你是一个专为海报生成优化的提示词工程师,擅长将中文需求转译为Stable Diffusion可理解的专业Prompt。输出仅包含英文Prompt和Negative Prompt两行,用换行分隔,不加任何说明文字。例如用户说“小红书风格咖啡馆打卡照,女生穿米色风衣,窗边午后阳光”,你输出:“photorealistic, soft natural light from window, woman wearing beige trench coat, coffee cup on wooden table, shallow depth of field, Fujifilm XT4, f/1.8 —ar 4:5” + “deformed hands, text, logo, watermark, lowres, blurry”。
用户输入字段填写:{{#user_input#}}。这一步确保用户说“生成三张夏日奶茶促销海报,蓝色渐变背景,突出‘第二杯半价’”时,LLM自动补全构图、字体位置、光影逻辑等细节,而不是简单拼接关键词。
添加水印与格式处理节点
方法一:使用Code节点做base64图像后处理
在「Call Image Model」下游拖入「Code」节点,语言选 Python;输入变量设为 image_data(来自上一节点的 response.image 或 response.images[0]);代码模板如下:
import base64, io
from PIL import Image, ImageDraw, ImageFont
img = Image.open(io.BytesIO(base64.b64decode(image_data)))
draw = ImageDraw.Draw(img)
try:
font = ImageFont.truetype("arial.ttf", 48)
except:
font = ImageFont.load_default()
draw.text((30, 30), "© BrandName", fill=(255, 255, 255, 128), font=font)
buffer = io.BytesIO()
img.save(buffer, format="PNG")
result = base64.b64encode(buffer.getvalue()).decode()
方法二:若调用的是Qwen-Image或Z-Image Turbo API,直接在HTTP节点Body中加入watermark参数,例如 "watermark": "© BrandName",前提是该API原生支持该字段。
配置海报专用参数模板
第一步:在工作流顶部添加「Input」节点,字段名设为 user_request,类型为 Text。
第二步:在LLM节点前插入「Variable Assignment」节点,预设常用海报场景参数:
poster_aspect_ratio = {"小红书笔记": "4:5", "电商主图": "1:1", "横版Banner": "16:9"}
poster_style = {"胶片感": "Kodak Portra 400, grainy", "高清商务": "studio lighting, product shot, white background", "手绘风": "line art, watercolor texture, flat color"}
第三步:修改LLM的用户输入模板,将参数注入提示词生成逻辑:
"用户需求:{{#user_input#}};指定画幅:{{#poster_aspect_ratio['小红书笔记']#}};指定风格:{{#poster_style['胶片感']#}};请输出适配该场景的专业Prompt"
这一步让同一句“生成新品发布会海报”能根据预设自动匹配16:9横版+商务光效,无需用户每次手动说明尺寸和风格。
发布并测试端到端流程
点击右上角「Publish」→ 填写工作流名称(如“海报生成工作台”)→ 点击「Save and Publish」。
发布成功后,进入「Testing」标签页,在输入框中输入:“生成三张儿童节主题海报,蓝黄撞色,卡通大象主角,适合微信公众号首图”,点击「Run」。
观察日志:LLM节点应输出含 —ar 1:1 的英文Prompt;HTTP节点状态码为200且返回base64字符串;Code节点输出带水印的base64图;最终结果以PNG形式展示在测试面板。


















