当前位置: 首页 > article >正文

从 0 到 1:构建一个供 AI Agent 使用的图像生成技能系统

前言当我们把 AI Agent 接进工作流后几乎每天都会遇到一个痛点图像生成这件事每次都要靠 Agent 自己拼提示词。没有风格库、没有模板、没有搜索——结果全靠手感输出质量参差不齐。image-craft这个项目就是为了解决这个问题而生的。它是一套面向 AI Agent 的图像生成技能系统内置风格库、提示词模板、色彩方案和智能推荐引擎Agent 只需描述意图系统自动完成剩下的工作。项目地址https://github.com/Chelase/image-craft1. 背景为什么需要技能化的图像生成工具目前主流的图像生成 APIOpenAI DALL-E、GPT Image 2、Midjourney 等都只提供最底层的能力你给 prompt它出图。但在实际 Agent 工作流中我们真正需要的是需求现状批量尝试不同艺术风格需要手动查资料写 prompt风格可复用、可搜索没有集中管理的风格库提示词模板化、参数化每次都要从零拼装给 Agent 下达帮我找个赛博朋克风格Agent 只能靠幻觉瞎猜image-craft的目标就是把图像生成技能化——像搭积木一样把风格、模板、配色组合起来Agent 和人类都能用。2. 整体架构image-craft/ ├── data/ # 本地知识库 │ ├── styles.csv # 53 种艺术风格 │ ├── prompts.csv # 118 个提示词模板 │ └── colors.csv # 49 个配色方案 ├── scripts/ │ ├── search.py # 统一搜索引擎Phase 2 │ ├── prompts_enhancer.py # 提示词增强器Phase 4 │ ├── image_craft.py # Python 主脚本 │ └── image_craft.ps1 # PowerShell 主脚本 ├── SKILL.md # Agent 技能定义 ├── README.md └── ROADMAP.md设计原则无硬编码配置——所有配置来自private_config.json或环境变量双前端——PowerShell 面向 Windows 用户Python 脚本兼容全平台搜索引擎独立——search.py是纯搜索服务不依赖图像生成逻辑3. 核心数据结构3.1 风格库styles.csv53 种风格涵盖 8 大类别类别示例风格传统艺术油画、水彩、素描、版画、国画数字艺术赛博朋克、蒸汽波、故障艺术、像素风摄影风格胶片、黑白、宝丽来、长曝光、微距插画风格扁平、等距、日系、美漫、儿童插画3D 渲染低多边形、体素、C4D、Blender特殊效果双重曝光、光绘、红外摄影、移轴每条风格记录包含风格名称中英文、描述、关键词标签、提示词模板、负面提示词、适用场景、推荐参数。3.2 提示词模板库prompts.csv118 个模板覆盖场景 风格 光影 构图四大维度{ id: portrait-cinematic, name: 电影感人像, category: portrait, template: A cinematic portrait of {subject}, {lighting}, {mood}, shot on 35mm film, shallow depth of field, dramatic lighting, variables: [subject, lighting, mood], tags: [portrait, cinematic, film] }3.3 配色方案库colors.csv49 个经典配色支持通过自然语言搜索如赛博朋克莫兰迪日式自动在提示词末尾追加配色描述。4. Phase 2搜索引擎设计4.1 为什么不用数据库最初考虑过 SQLite但很快放弃了——AI Agent 的使用场景需要快速、灵活的模糊搜索而不是结构化查询。Python 原生实现更轻量也更容易与提示词增强逻辑集成。4.2 search.py 核心实现搜索算法有两个关键设计① 加权模糊匹配# 多字段加权name_en name_cn keywords description WEIGHTS {name_en: 3.0, name_cn: 3.0, keywords: 2.0, description: 1.0} ​ def score(record, query): total 0.0 for field, weight in WEIGHTS.items(): total weight * fuzzy_match(record.get(field, ), query) return total② CJK 字符级匹配中文没有空格分词需要对 CJK 字符做特殊的 N-gram 处理def cjk_chargrams(text, n2): 对中文文本生成字符级 n-gram chars [c for c in text if not c.isascii()] return set(.join(chars[i:in]) for i in range(len(chars) - n 1))英文部分走标准单词匹配中文部分走字符级匹配两者独立计算后再合并。4.3 CLI 接口# 搜索风格默认 python scripts/search.py 赛博朋克 ​ # 指定域 分类 python scripts/search.py 人像 --domain style --category portrait ​ # 组合设计系统风格 模板 配色推荐 python scripts/search.py 未来城市 --design-system ​ # 随机推荐 python scripts/search.py --random --domain style --limit 5 ​ # JSON 输出供 Agent 调用 python scripts/search.py cyberpunk --domain all --format json5. Phase 3与主脚本集成5.1 image_craft.py 新增命令suggest命令是最重要的新功能——它让 Agent 在生成前先做规划# 风格 模板 配色组合推荐 python scripts/image_craft.py suggest 东京街头 --domain all ​ # 机器可读的 JSON 输出 python scripts/image_craft.py suggest cyberpunk future --domain all --format json ​ # 按类别筛选 python scripts/image_craft.py suggest 人像 --category portrait --limit 3generate / transform命令也获得了新参数# 使用风格 模板 变量替换 配色 python scripts/image_craft.py generate \ --prompt 东京街头 \ --template urban landscape \ --var cityTokyo \ --var time of daynight \ --color midnight blue \ --style-name cyberpunk \ --output tokyo.png ​ # 加上负面提示词自动避免 lowres/bad anatomy 等常见缺陷 python scripts/image_craft.py generate \ --prompt 东京街头 \ --style-name cyberpunk \ --negative \ --output tokyo_clean.png5.2 PowerShell 等效命令# 风格建议JSON 格式 pwsh -File scripts/image_craft.ps1 -Command suggest -Prompt 赛博朋克 -Limit 3 -Format json ​ # 生成图像 pwsh -File scripts/image_craft.ps1 -Command generate -Prompt 东京街头 -StyleName 赛博朋克 -Output outputs/cyberpunk.pngPowerShell 侧实现了 fuzzy 风格的本地搜索直接读 CSV搜不到时自动回退调用python scripts/search.py。6. Phase 4提示词增强器6.1 质量关键词注入不传入--no-quality时系统自动在提示词前注入masterpiece, best quality, high resolution, detailed, professional, trending on artstation6.2 负面提示词生成传入--negative时追加风格相关的负面提示词DEFAULT_NEGATIVE lowres, bad anatomy, blurry, worst quality, low quality ​ STYLE_NEGATIVE { photography: noise, grain, overexposed, underexposed, distorted, illustration: deformed, disfigured, amateur, primitive, cyberpunk: natural, organic, rustic, medieval, }6.3 模板变量替换与去重模板中{subject}变量替换时自动处理常见重复描述def _deduplicate_subject(template: str, subject: str) - str: 去掉 template 开头与 subject 重复的 A/An 描述 article_match re.match(r^(A|An)\s(.), template.strip(), re.I) if article_match: desc article_match.group(2).rstrip(,;) if desc.lower() subject.lower(): template re.sub(r^(A|An)\s, , template, count1) return template6.4 风格自动推荐委托给 search.pydef suggest_styles_for_prompt(prompt: str, category: str None) - list[Style]: results search_styles(prompt, limit3, categorycategory) if not results and category: # 搜不到时去掉类别限制宽松重试 results search_styles(prompt, limit3) return results7. 实际使用示例示例 1Agent 智能规划流程用户: 帮我画一个赛博朋克风格的城市夜景Agent 执行: $ python scripts/image_craft.py suggest 赛博朋克城市 --domain all --format json ​ 返回: { styles: [{id: cyberpunk, name_cn: 赛博朋克, score: 0.95}, ...], prompts: [{id: urban-night, name: 城市夜景, ...}], colors: [{id: neon-blue, name: 霓虹蓝, ...}] }Agent 选定风格执行生成: $ python scripts/image_craft.py generate \ --prompt 城市夜景霓虹灯光高楼林立 \ --style-id cyberpunk \ --template urban landscape \ --var cityTokyo \ --color neon-blue \ --negative \ --output cyberpunk_city.png示例 2批量风格探索# 同一个主题尝试 5 种不同风格 for style in 赛博朋克 蒸汽波 像素风 低多边形 光绘; do python scripts/image_craft.py generate \ --prompt 东京街头 \ --style-name $style \ --negative \ --output tokyo_${style}.png done8. 技术亮点技术点实现方式无硬编码配置private_config.json 环境变量双轨CJK 搜索字符级 N-gram 与英文单词匹配分开处理搜索引擎独立search.py 纯搜索不耦合图像生成逻辑双重前端PowerShellWindows Python全平台提示词去重正则去掉模板开头的 A/An 描述 重复Agent JSON 通信suggest --format json 提供机器可读输出结语image-craft的核心价值是把图像生成的隐式知识变成显式的可搜索资产。53 种风格、118 个模板、49 个配色方案——这些原本只存在于设计师脑海里的东西现在 Agent 也能调用了。如果你也在做 Agent 相关的工作或者对图像生成的工程化感兴趣欢迎 Star / Fork参与讨论。GitHub: https://github.com/Chelase/image-craft

相关文章:

从 0 到 1:构建一个供 AI Agent 使用的图像生成技能系统

前言 当我们把 AI Agent 接进工作流后,几乎每天都会遇到一个痛点:图像生成这件事,每次都要靠 Agent 自己拼提示词。没有风格库、没有模板、没有搜索——结果全靠"手感",输出质量参差不齐。 image-craft 这个项目&…...

氨基酸表活洁面慕斯科普

一、什么是洁面慕斯洁面慕斯是一种预发泡型的洁面产品,和传统膏状、洗面奶不同,它从泵头挤出来就是细腻绵密的泡沫,不需要消费者手动打泡,使用起来更加方便快捷。从成分体系来看,洁面慕斯本质还是表面活性剂清洁产品&a…...

异常处理与性能调优:熬夜、加班与医美术后的“内服架构”实战指南

在互联网与高科技行业,系统的稳定运行往往伴随着开发者的极度透支。作为常年面对高并发需求和深夜发版的“IT 民工”或高压职场人,我们经常会遇到这样的尴尬场景:连续两周的 996 之后,面对电脑屏幕黑屏时的倒影,发现自…...

RVC-WebUI语音克隆:如何在5分钟内打造你的专属AI声优

RVC-WebUI语音克隆:如何在5分钟内打造你的专属AI声优 【免费下载链接】rvc-webui liujing04/Retrieval-based-Voice-Conversion-WebUI reconstruction project 项目地址: https://gitcode.com/gh_mirrors/rv/rvc-webui 想象一下,用你自己的声音为…...

告别手动Coding:用EB tresos Studio配置TC3xx芯片MCAL的保姆级图文指南

告别手动Coding:用EB tresos Studio配置TC3xx芯片MCAL的保姆级图文指南 当TC3xx系列芯片遇上AUTOSAR架构,传统寄存器级开发方式正在被图形化配置彻底革新。对于每天需要面对微控制器底层驱动的嵌入式工程师而言,EB tresos Studio提供的可视化…...

告别WMMA API:用PTX的LDMATRIX和MMA指令在Ampere架构上重构你的FP16矩阵乘法内核

从WMMA到PTX:在Ampere架构上重构FP16矩阵乘法的深度实践 当开发者第一次接触Nvidia的Tensor Core编程时,WMMA(Warp Matrix Multiply Accumulate)API往往是首选方案。这套高层抽象接口屏蔽了硬件细节,让开发者能够快速实…...

搞懂对数收益率:为什么金融圈都在悄悄用它?

搞懂对数收益率:为什么金融圈都在悄悄用它?如果你曾经被“涨10%再跌10%,怎么还亏了?”这个问题困扰过,那么读完这篇文章,你会豁然开朗。一、一个让你“感觉不对”的小实验 假设朋友向你推荐一只期货合约&am…...

SAP查询字段定义的字符数

用户常会问到“***的文本描述可以输入多少个字符”。 操作步骤: 输入事物代码:SE11就能看到字段配置的字符数量。如何获得表名称:(OBB8举例) 操作步骤: 输入事物代码:OBB8...

告别Keil破解!用STM32CubeIDE + HAL库点亮你的第一颗Blue Pill LED(保姆级图文)

从Keil到STM32CubeIDE:零成本玩转Blue Pill开发板 第一次接触STM32开发时,我被Keil的破解流程劝退了——注册机、license管理、版本兼容性问题接踵而至。直到发现STM32CubeIDE这款完全免费的官方工具,配合HAL库的抽象层设计,终于能…...

保姆级教程:在小米/华为手机上从零安装AidLux,并解决首次启动卡顿问题

保姆级教程:在小米/华为手机上从零安装AidLux,并解决首次启动卡顿问题 对于移动端开发者和AI爱好者来说,在安卓手机上运行Linux环境一直是个痛点。AidLux作为一款创新的跨生态AI应用开发平台,完美解决了这一需求。本文将针对小米和…...

多平台矩阵账号防关联技术深度解析:2026年IP隔离与设备指纹的攻防战

一、问题背景:矩阵运营最大的风险不是限流,是封号做矩阵的人都知道一个残酷的事实:你不是被限流死的,你是被关联死的。2025年某MCN机构一次封号事件:32个抖音账号、18个小红书账号、7个视频号账号,一夜之间…...

PotPlayer百度翻译插件终极指南:免费实现20+语言实时字幕翻译

PotPlayer百度翻译插件终极指南:免费实现20语言实时字幕翻译 【免费下载链接】PotPlayer_Subtitle_Translate_Baidu PotPlayer 字幕在线翻译插件 - 百度平台 项目地址: https://gitcode.com/gh_mirrors/po/PotPlayer_Subtitle_Translate_Baidu PotPlayer字幕…...

【双AI论文写作】基于claude code、codex双AI协同论文写作撰写与质量校准:从“数据分析→论文初稿→交叉审稿“全流程

AI科研新范式不是让模型替你写论文,而是把论文变成一条可追踪、可审稿、可迭代的科研生产线——数据→写作依据文件→AI初稿→独立AI压测→逐轮提分→投稿包,全程文件可复查、责任在人。 【AI写论文的新范式&论文总体结构】: 科研新范式…...

G-Helper:华硕笔记本轻量化控制工具完整指南

G-Helper:华硕笔记本轻量化控制工具完整指南 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, Scar, ProArt, Vivobook, Zenbook, Expertbook,…...

ClaudeCode安装与使用全攻略

一、安装 Claude Code 1. 安装 Claude Code 1.1 安装 Git 根据需求选择对应的安装方式: https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%AE%89%E8%A3%85-Git windows 版本下载地址: https://git-scm.com/install/windows 1.2 安装 node…...

2026年婚礼背景音乐素材下载网站TOP5:从版权、曲库到实用场景全面评测

引言:为什么婚礼背景音乐素材越来越需要“可商用、可溯源、可快速下载” 2026年,婚礼内容已经不再只是一支婚礼纪录片,而是拆分成婚礼预告片、接亲快剪、仪式短片、First Look、婚礼跟拍花絮、短视频平台竖版成片、婚庆公司案例展示等多个内…...

《流畅的Python》读书笔记03(补充01): 丰富的序列 - Python序列类型核心解析

《流畅的 Python》第 2 章“丰富的序列”系统性地阐述了 Python 序列类型的体系结构、核心操作及其背后的设计哲学。本章内容可归纳为以下四个核心模块: 一、序列类型的分类体系 Python 序列从两个正交维度进行分类,形成了清晰的类型矩阵。 分类维度类…...

从零到一:用Air724UG 4G模块和Python,手把手教你搭建一个物联网数据上报系统(含完整代码)

从零构建物联网数据上报系统:Air724UG与Python实战指南 在万物互联的时代,物联网技术正悄然改变着我们的生活和工作方式。想象一下,您只需轻点手机,就能实时查看千里之外温湿度数据;或是远程监控设备运行状态&#xff…...

《流畅的Python》读书笔记03(补充02): 丰富的序列 - deque高效应对高并发序列处理

Python序列分类体系在高并发数据处理中的选型优化,需要综合考虑序列类型的内存模型、可变性、线程安全性以及操作性能。在高并发场景下,错误的选型可能导致性能瓶颈、数据竞争或内存溢出。以下是基于序列分类体系的详细选型策略与优化建议。 一、序列分类…...

生产报工软件哪个好用?工厂扫码报工神器:企丰小工单详细介绍

现在很多中小型加工厂、五金机械、汽配、组装制造工厂,还在使用纸质单据手写报工。每天员工手写工单、文员加班录表、月底核算计件工资头疼不已。不仅工序混乱、产量统计不准,还容易出现虚报产量、工序漏报、薪资对账纠纷等问题。想要数字化管理&#xf…...

告别mmWave Studio报错:手把手教你搞定AWR2243数据采集的6个常见故障

告别mmWave Studio报错:手把手教你搞定AWR2243数据采集的6个常见故障 毫米波雷达开发者在数据采集阶段常会遇到各种技术障碍。AWR2243作为工业级高频雷达模块,其配套的mmWave Studio软件在实际操作中可能出现多种报错,影响开发效率。本文将针…...

告别模型水土不服:用TENT的熵最小化,5分钟搞定测试时域自适应(附PyTorch代码)

实战TENT:5行代码解决模型部署中的“水土不服”问题 想象一下这样的场景:你花费数月训练的自动驾驶视觉模型在实验室测试中准确率高达98%,但当它遇到真实世界的暴雨天气时,识别率瞬间暴跌至60%。这种"实验室王者,…...

仅限内部团队使用的Perplexity航班缓存穿透防护策略——含Redis布隆过滤器+航班时刻表TTL动态算法

更多请点击: https://intelliparadigm.com 第一章:Perplexity航班信息查询 Perplexity 是一款以实时网络检索与引用驱动为特色的 AI 智能问答工具,其在航空旅行场景中可高效辅助用户获取最新、最准确的航班动态。不同于传统静态知识库模型&a…...

dSPACE ControlDesk实战:从虚拟CAN信号注入到动态仪表板构建

1. 虚拟CAN信号注入实战 第一次接触dSPACE ControlDesk时,最让我头疼的就是在没有实体ECU的情况下如何模拟CAN总线信号。后来发现ControlDesk自带的CAN Generator工具简直就是虚拟测试的"救命稻草"。这个工具可以完美模拟真实ECU发出的CAN信号&#xff0c…...

汇编新手避坑指南:搞懂AX、BX、CX、DX这些“双面”寄存器,才算入门

汇编新手避坑指南:搞懂AX、BX、CX、DX这些“双面”寄存器,才算入门 第一次接触汇编语言时,那些神秘的寄存器名称总让人望而生畏。尤其是AX、BX、CX、DX这几个"双面人",一会儿能拆成AH和AL,一会儿又能合体使用…...

LAV Filters深度解析:开源DirectShow媒体解码器的架构原理与性能优化指南

LAV Filters深度解析:开源DirectShow媒体解码器的架构原理与性能优化指南 【免费下载链接】LAVFilters LAV Filters - Open-Source DirectShow Media Splitter and Decoders 项目地址: https://gitcode.com/gh_mirrors/la/LAVFilters LAV Filters是一套基于F…...

照片直播如何实现?Android 通过 PTP/MTP 有线连接相机的技术方案

一、应用场景 在婚礼摄影、赛事记录、电商拍摄等业务中,客户往往希望: 摄影师按下快门,手机或平板立刻能看到照片。 常见传输方式的对比: 方式 问题 WiFi 延迟高、断连频繁 蓝牙 传输速度慢 有线 OTG ✅ 稳定、实时、低…...

拯救者工具箱终极指南:3大场景化解决方案提升笔记本使用体验

拯救者工具箱终极指南:3大场景化解决方案提升笔记本使用体验 【免费下载链接】LenovoLegionToolkit Lightweight Lenovo Vantage and Hotkeys replacement for Lenovo Legion laptops. 项目地址: https://gitcode.com/gh_mirrors/le/LenovoLegionToolkit 联想…...

一线观察:赣州新房装修公司的可靠细节

上个月,有个老朋友找我帮他参谋新房装修的事。赣州章江新区某刚交付的高端盘,精装改毛坯,180平的大户型。他跟我说,前后跑了五六家装修公司,聊完最大的感觉是——云里雾里。报价单看不懂方案,总觉得藏着坑&…...

保姆级教程:用Python脚本一键搞定OPIXray/HIXray数据集转YOLO格式(附避坑指南)

Python实战:OPIXray/HIXray数据集高效转YOLO格式全流程解析 在目标检测领域,数据格式转换往往是项目落地的第一道门槛。当我第一次拿到OPIXray和HIXray这两个专业X光安检数据集时,面对原始标注格式与YOLO训练需求的不匹配,也经历过…...