调整图标规范提示词生成逻辑

支持参考图解析
优化提示词结构
This commit is contained in:
2026-08-05 20:27:59 +08:00
parent d4a4d0ba3a
commit 3c9039d08b
2 changed files with 27 additions and 90 deletions
@@ -212,7 +212,13 @@ pub(crate) async fn generate_icon_spec(
let extra_prompt = build_extra_param_prompt(&payload.request_param);
let extra_param = run_icon_spec_extra_param_llm(&state, extra_prompt).await?;
let final_prompt = get_gen_icon_spec_prompt(&payload.request_param, &extra_param);
let has_reference_image = payload
.reference_image_srcs
.as_ref()
.map(|r| !r.is_empty())
.unwrap_or(false);
let final_prompt =
get_gen_icon_spec_prompt(&payload.request_param, &extra_param, has_reference_image);
let generation_inputs = build_icon_spec_generation_inputs(
&payload.request_param,
extra_param.genre,
@@ -143,103 +143,34 @@ pub(crate) fn build_extra_param_prompt(param: &RequestParam) -> String {
)
}
pub(crate) fn get_gen_icon_spec_prompt(param: &RequestParam, extra_param: &ExtraParam) -> String {
pub(crate) fn get_gen_icon_spec_prompt(
param: &RequestParam,
extra_param: &ExtraParam,
has_reference_image: bool,
) -> String {
let genre_name = extra_param.genre.as_slug();
let reference_image_prompt = if has_reference_image {
"参考图生成规范:严格参考参考图的构图、风格、材质、色彩、形状语言和视觉层级生成本次规范图;参考图只作为美术方向和规范语义依据,不要直接复制参考图中的文字、水印或无关背景。\n"
} else {
""
};
format!(
r#"角色设定和任务目标
你是一名经验丰富的游戏视觉设计师与游戏图标设计师(Game Icon Designer),擅长从零设计高质量、商业化、游戏开发就绪(Game Development-Ready)、可以导入游戏引擎或应用商店直接使用的游戏图标
你的核心任务是根据用户选择的游戏风格、题材、类型、核心玩法和目标用户等,设计一款主体明确、辨识度高、视觉冲击力强的游戏图标。图标需要在缩小尺寸后依然清晰,并让用户一眼识别游戏类型与核心玩法。
核心提示词
设计一款风格为【{art_style}】,题材为【{theme}】的核心玩法。
美术风格
采用【{art_style}】的游戏图标,画面必须保持统一的造型语言、线条、材质、光影和配色方案。
核心玩法
画面重点表现【{play_setting}】的核心玩法。
使用场景
使用场景为【{use_case}】。默认app;如果用户明确了使用端则按用户填写。
适用目标用户
图标需要一眼看出是【{genre}】游戏,适合目标用户【{target_user}】玩家。
r#"
生成一张游戏图标素材视觉规范展板,纯白色干净背景,展示按钮图标的统一视角、线条粗细、填充风格、描边、阴影、圆角、材质、状态层级和色彩规范,图标样例需要成组排列且风格高度统一
输入内容
玩法设定{play_setting}
美术风格{art_style}
带参考图(上传参考图)
参考图生成规范:严格参考图1的构图、风格、材质、色彩、形状语言和视觉层级生成本次规范图;参考图只作为美术方向和规范语义依据,不要直接复制参考图中的文字、水印或无关背景。
画面设计要求
1. 主体明确
图标必须拥有一个清晰的核心视觉主体,例如英雄、武器、载具、卡牌、建筑、农作物或代表核心玩法的标志性道具。主体应当具有强烈的轮廓辨识度,避免多个元素争夺视觉焦点。
2. 核心玩法可视化
使用角色动作、道具状态、特效方向或场景关系表现核心玩法,不能只展示普通角色头像。画面应让用户快速理解战斗、射击、竞速、经营、消除、建造或召唤等玩法特征。
3. 游戏类型辨识
图标中的角色、武器、道具、特效和氛围必须与所选游戏类型一致。例如:
- FPS突出枪械、准星或瞄准开火。
- MOBA突出英雄对抗、技能释放或阵营冲突。
- RPG突出英雄形象、武器、成长感或冒险氛围。
- 卡牌游戏突出卡牌、角色立绘或召唤效果。
- 塔防突出防御塔、敌人路线或攻击范围。
- 模拟经营突出建筑、资源、建设或升级成果。
- 三消突出色彩鲜明的消除物与连锁反馈。
- 竞速游戏突出车辆、速度感、漂移和赛道元素。
4. 缩略图适配
图标在小尺寸显示时仍需保持主体清楚、轮廓鲜明、颜色关系明确。避免依赖只有放大后才能看到的微小细节。
5. 色彩与光影
使用与游戏风格和题材匹配的主色调。主体与背景必须形成明确的明度、色相或冷暖对比。光影应强化视觉焦点和空间层次,但不得遮挡主体关键特征。
6. 动势与冲击力
根据玩法加入合理的动作方向、速度线、能量轨迹、爆发光效、粒子或环境反馈。特效只能用于突出主体,不得覆盖角色面部、武器或核心道具。
7. 角色一致性
如果用户提供角色参考图,必须保持角色的脸型、发型、服装、配饰、武器、标志性颜色和整体气质一致。不得擅自更换服装、增加肢体或移除关键配饰。
8. 商业化品质
最终效果应接近成熟商业游戏的应用商店图标,具有精致完成度、明确卖点和良好的点击吸引力,避免廉价素材拼贴感、简单截图感或未完成草稿感。
9. 文字限制
默认不添加文字、字母、数字、游戏名称、角标、商店徽章、公司标志、签名或水印。仅在用户明确要求时,才可加入简短且易读的文字。
10. 不出现布局规范部分。
11. 画面必须保持统一的造型语言、线条、材质、光影和配色方案。角色、道具与特效应属于同一套视觉体系,不得出现画风混杂、材质冲突或渲染风格漂移。避免信息过多、复杂细节、过度杂乱、文字过多、过暗压抑、主体不清晰。
操作流程
1. 分析游戏风格、题材、类型和目标用户。
2. 从游戏核心玩法中提取最具辨识度的视觉动作或标志性元素。
3. 确定唯一的核心主体和次要辅助元素。
4. 根据游戏类型设计角色动作、道具状态和视觉特效。
5. 根据目标用户调整角色造型、色彩强度、细节密度和整体氛围。
6. 使用明确的色彩对比与光影关系强化视觉焦点。
7. 检查图标缩小后能否快速识别主体、游戏类型和核心玩法。
8. 检查是否存在文字、水印、多余角色、无关道具或过度复杂的信息。
9. 按照指定画面比例和清晰度输出最终游戏图标。
最终检查
- 图标具有明确且唯一的核心主体。
- 能够快速识别游戏类型和核心玩法。
- 美术风格符合用户选择。
- 主体与背景具有清晰对比。
- 缩小显示后仍然具有较高辨识度。
- 画面没有过多或相互冲突的信息。
- 没有风格漂移、结构变形或配饰消失。
- 没有错误肢体、错误武器或不合理姿势。
- 没有未经要求的文字、数字、标志或水印。
- 符合移动端游戏图标、应用商店或社交传播的展示需求。
负面提示词
text, letters, numbers, labels, logo, signature, watermark, inconsistent style,
inconsistent perspective, inconsistent line width, inconsistent rounded corners,
mixed materials, color shift, incorrect lighting, incorrect shadow direction,
green outline, green base plate, green shadow, green glow, green reflection,
textured background, gradient background, background shadow, ground, environment,
props, disconnected fragments, floating particles, overlapping icons, touching icons,
cropped icon, off-center icon, inconsistent scale, blurry edges, color bleeding,
green spill, visible grid lines, borders,"#,
玩法设定: {play_setting}
美术风格: {art_style}
游戏类型: {genre_name}
题材: {theme}】
{reference_image_prompt}
使用场景为【{use_case}】。图标设计需适配该平台的展示规范和缩略图尺寸。适合目标用户【{target_user}】玩家。
"#,
play_setting = escape_xml_prompt_data(&param.play_setting),
art_style = escape_xml_prompt_data(&param.art_style),
theme = escape_xml_prompt_data(&extra_param.theme),
use_case = escape_xml_prompt_data(&extra_param.use_case),
genre = genre_name,
genre_name = genre_name,
target_user = escape_xml_prompt_data(&extra_param.target_user),
)
}