用 JSON Prompt 构建 3D 图标:结构化提示词的强大实践
欢迎大家关注「几米宋」的微信公众号,公众号聚焦于云原生、AI、服务网格、工具教程、技术观察以及日常感悟等内容,更多精彩内容请访问个人网站 jimmysong.io。
📄 文章摘要
以生成 Jelly 风格 3D 图标为例,深入解析 JSON Prompt 的写法与最佳实践,让你的 AI 输出更精准、更高效。🔗 在 jimmysong.io 上 阅读原文 体验更佳。
最近在 x.com 上看到一则关于生成 3D 图标的 JSON 格式提示词,让我产生了浓厚兴趣。此前我接触到的提示词大多是自然语言描述,或者仅用简单的标签区分系统和用户输入,而像这样结构化的 JSON Prompting 还是第一次见到。实际尝试后,发现这种方式的效果确实非常出色。
下面是我试用改提示词生成的图标,分别是千问、VS Code 和 Obsidian,可以看到这三个图标在风格上保持了一致性,同时又能清晰地表达各自的品牌特色,唯一有点区别的是背景色调——千问的背景色比起另外两个更加暗淡了一些。
相比传统自然语言提示词(prompt),这种“结构化”的方式更清晰、稳定、强大,特别适合需要精细控制的图像生成任务。在这篇文章中,我将以一个 Jelly 风格的 3D 图标生成为例,详细解析 JSON Prompt 的写法和最佳实践。
什么是 JSON Prompting?
JSON Prompting,顾名思义,是用 JSON 的格式撰写提示词,将任务目标、渲染细节、输出要求等用结构化方式传达给模型。它不是一句话的模糊请求,而是一个\"输入说明书\",就像开发者写配置文件一样。
我使用如下 JSON Prompt 来生成图标:
{ \"style\":\"Jelly 3D Icon\", \"object\":\"User-uploaded logo or emoji (Qwen)\", \"base\":{ \"shape\":\"Rounded square\", \"material\":\"Soft translucent jelly-like material\", \"color\":\"A strong contrasting color to icon (e.g. purple, green, blue)\", \"lighting\":\"Inner glow and soft ambient shadows that gently fade outward\" }, \"icon\":{ \"material\":\"Jelly/glassy translucent look, softly glowing from within\", \"color\":\"Brighter tone or brand color, always with a jelly-glass texture\", \"depth\":\"3D extruded with rounded edges and subtle bottom shadow\", \"placement\":\"Centered with even padding inside base\" }, \"render\":{ \"camera\":\"Front orthographic view with centered framing\", \"lighting\":\"Studio-quality lighting with soft top-left highlight and directional drop shadow underneath icon\", \"shadow\":{ \"style\":\"Soft diffused base shadow with slight blur\", \"position\":\"Directly under icon, slightly offset down\", \"opacity\":0.15, \"spread\":\"Medium, matching other icons in set\" }, \"background\":\"Soft warm grey or pastel cream for consistency\", \"dimensions\":\"1:1 square ratio, minimum 1024x1024\", \"file_format\":\"PNG\" }, \"style_notes\":\"Ensure consistent lighting and shadow softness across the set. Shadows should appear slightly beneath and behind the icon with soft blur — matching the Spotify, Camera, and Weather icon samples exactly. Avoid flat or harsh shadows. Emphasize clean separation between icon and base through shadow and depth.\"}
为什么要用 JSON 格式,而不是自然语言?
-
• 结构清晰:每个需求独立成字段,避免遗漏和歧义。
-
• 机器易解析:AI 更擅长理解结构化数据,参数定位更准确。
-
• 便于复用:模板化、批量生成和修改更方便,适合标准化场景。
-
• 沟通高效:像需求文档一样,团队成员一看就懂。
-
• 易于自动化:方便用脚本生成、校验和分析。
自然语言适合创意任务,JSON 格式适合精确、标准、可控的内容生成。两者可结合使用,根据需求选择。
这段 prompt 看似复杂,其实是由多个语义清晰的模块组成。下面我们逐个拆解。
字段结构与写作要点解析
在了解了整体结构和优势后,我们可以更细致地拆解每个字段的作用和写作技巧。下面将逐项解析 JSON Prompt 的各个部分,帮助你掌握结构化提示词的核心要点与实用写法。
1. 顶层参数:任务风格与目标对象
\"style\": \"Jelly 3D Icon\",\"object\": \"User-uploaded logo or emoji (Qwen)\"
-
• style 决定视觉基调,是整个图标风格的锚点;
-
• object 明确了要被图像化的核心元素,尽可能具体,例如\"logo\"或某个 emoji 表情。
最佳实践:
-
• 使用项目中已有的视觉语言关键词(如\"jelly\"、\"glass\"、\"3D extrusion\"等);
-
• 对对象的描述避免泛泛,要尽量明确具体。
2. base 区块:定义图标底板
\"base\": { \"shape\": \"Rounded square\", \"material\": \"Soft translucent jelly-like material\", \"color\": \"...\", \"lighting\": \"...\"}
-
• 这部分用于设置 icon 背后的底板样式,包括形状、材质、颜色和光照;
-
• 非常适用于生成多个统一风格图标时保持一致性。
最佳实践:
-
• shape 使用常规图形(如圆角方、圆形等),有助于保持现代风格;
-
• color 可以使用对比色引导,例如\"strong contrast to icon\"。
3. icon 区块:定义图标主体
\"icon\": { \"material\": \"...\", \"color\": \"...\", \"depth\": \"...\", \"placement\": \"...\"}
-
• material 与 depth 共同定义图标的质感和立体层次;
-
• placement 用于居中并维持边距对称,强调图形对齐和审美平衡。
最佳实践:
-
• 使用 depth: \"3D extruded\" 明确建模方式;
-
• 统一材质表达,比如都为 jelly-glass 系列,能让图标呈现果冻般通透感。
4. render 区块:定义渲染方式与输出格式
\"render\": { \"camera\": \"...\", \"lighting\": \"...\", \"shadow\": {...}, \"background\": \"...\", \"dimensions\": \"...\", \"file_format\": \"PNG\"}
-
• 控制图像生成的\"拍摄视角\"和\"工作室灯光\"效果;
-
• shadow 子字段提供高度可控的阴影设置;
-
• dimensions 和 file_format 保证输出用于网页或印刷时的稳定性。
最佳实践:
-
• 始终指定分辨率(如 1024x1024),防止 AI 生成模糊图;
-
• 使用 background: pastel cream 统一背景风格,避免杂乱。
5. style_notes:设计师级别的主观审美引导
\"style_notes\": \"Ensure consistent lighting and shadow softness across the set...\"
这一段让 AI 理解美学意图,虽然是补充说明,却能在高质量模型中起到很大作用。
最佳实践:
-
• 模拟你正在对一个人类渲染师下达风格指南;
-
• 多使用相对概念词(如\"avoid harsh shadows\", \"match Spotify-style icons\")。
写作总结:JSON Prompt 的通用模板
你可以将这套模式复制到其他内容生成任务中,比如:
{ \"task\": \"generate image\", \"style\": \"3D glass icon\", \"object\": \"light bulb emoji\", \"base\": { ... }, \"icon\": { ... }, \"render\": { ... }, \"style_notes\": \"...\"}
无论是生成图标、产品展示图还是网页插图,只要结构化表达得当,AI 的输出会更精准。
JSON 提示词的核心优势
JSON 提示是一种结构化的向 AI 传达需求的方式,与常规模糊的指令不同,它通过特定格式清晰地列出任务需求。例如,想要写一篇关于某个应用的公众号文章,常规提示可能是\"写一篇关于[应用名称]的公众号文章\",而 JSON 提示则像\"{\'任务\': \'写公众号文章\', \'主题\': \'[应用名称] 应用\', \'长度\': \'短篇,1000 字以内\', \'语气\': \'专业但亲和\'}\",详细说明了任务、主题、长度和语气等要求。
JSON 提示的优势主要体现在以下几个方面:
-
1. 清晰明确:它避免了 AI 对模糊词汇的猜测,如\"有趣\"这类词在常规提示中可能让 AI 理解模糊,但 JSON 提示可精确界定需求。
-
2. 符合 AI 处理习惯:JSON 格式与 AI 训练所基于的代码类似,符合 AI 处理数据的习惯。
-
3. 节省时间:使用 JSON 提示能节省时间,无需多次调整提示以获取满意结果。
JSON 提示词的使用方法
在使用 JSON 提示词时,应遵循以下原则:
-
1. 使用清晰标签:明确写出\"任务\"并阐述具体任务,如\"写公众号文章\"。
-
2. 详细阐述:添加诸如受众、风格等细节信息。
-
3. 将大任务拆解:对于复杂任务,通过嵌套部分将其细化。
比如为创业者朋友获取书籍推荐,可使用\"{\'任务\': \'推荐书籍\', \'主题\': \'更好的思维\', \'受众\': \'创业人士\', \'格式\': \'5 本书,每本附带简短的一句话总结\'}\"这样的 JSON 提示。
JSON 提示词与常规提示的对比
以撰写关于个人创业者保持专注的公众号文章为例,先使用常规提示\"写一篇关于创业者专注力的公众号文章\",得到的内容普通、缺乏特色;而后使用 JSON 提示,详细规定平台、主题、结构和语气等,结果生成的文章以引人入胜的问题开篇,包含具体实用的技巧和真实案例,结尾还引发了大量读者评论,充分体现了 JSON 提示在生成特定平台内容时的优势。
JSON 提示词的适用场景
JSON 提示适用于需要精确控制 AI 输出的场景,能让用户清晰地传达需求,获得符合预期的结果。但在需要创意和自由发挥的内容创作方面,如创作充满想象力的儿童故事或科幻小说创意,它并不适用,此时常规的自由提示更能激发创意。
结语:结构化提示词是更工程化的创作方式
使用 JSON Prompt 的过程让我意识到一个趋势:我们需要的不只是\"让 AI 懂你\",而是\"教 AI 明确做事\"。
相比自然语言那种带有不确定性的\"请求式\"对话,JSON Prompt 更像是一个规范、一个参数表、一个需求文档。这种方式尤其适合开发者、设计师、产品经理等需要构建稳定创作链条的人。
如果你也在做多图生成、多场景文案、内容模板化创作,不妨试一试 JSON Prompting。你会发现,它不仅让 AI 输出更强,也会让你自己思路更清晰。
🔗 更多精彩内容
-
• 🌐 个人网站:jimmysong.io
-
• 🏠 云原生社区:cloudnativecn.com
-
• 🎥 Bilibili:space.bilibili.com/515485124
💫 如果这篇文章对你有帮助,欢迎点赞、分享给更多朋友!
版权声明
本文首发于 jimmysong.io,遵循 CC BY-NC-SA 4.0 协议。转载请注明出处并保留作者信息。