我们只保留Moderate change(abs_weight_change < 20kg)这一种强度级别,其他级别去掉。同时,我们要专注于生成让人物变壮(肌肉增强)的编辑指令,而不是减肥。
注意:原示例是减肥,我们需要改为增肌(weight gain)的逻辑。
修改思路:
注意:原prompt中减肥时服装是变小(smaller),而增肌时应该用更紧(tighter)来形容,但也可以用更大(larger)?不过,衣服本身尺寸不一定变大,而是因为身体变大而显得紧身。所以我们可以说“调整服装以适合更大的肌肉维度(adjust clothing to fit the increased muscle mass)”。
由于我们只保留Moderate change(中等变化),所以所有指令中的强度级别都改为moderate。
另外,原prompt中身体部位包括:face, neck, shoulders, arms, chest, waist, abdomen, hips, thighs, calves。但根据需求,我们可能不需要全部,但为了完整,我们可以保留这些部位,但调整描述。
我们将为增肌调整每个身体部位的描述:
脸部:从“defined jawline”变为“fuller face with strong jawline” (更饱满但下巴线条强壮)
脖子:从“toned and defined”变为“thicker and more muscular”
肩膀:从“defined and structured”变为“broader and more muscular with capped delts”
手臂:从“toned and defined”变为“more voluminous and muscular with visible bicep peak”
胸部:从“defined and structured”变为“more developed and muscular”
腰部:从“defined and toned”变为“more tapered with developed obliques” (注意:增肌时腰部也要适当变粗,但保持腰肩比)
腹部:从“defined and toned”变为“more muscular with visible abs” (中等强度下,可以看见腹肌但不夸张)
臀部:从“defined and toned”变为“more rounded and muscular”
大腿:从“toned and defined”变为“more muscular and powerful”
小腿:从“toned and defined”变为“more defined with visible calf muscles”
服装调整:由于是增肌,所以服装要更紧身以展现肌肉线条。因此,我们将“smaller”替换为“tighter”。
同时,我们只保留一个强度级别:moderate change。所以所有地方都使用moderate。
最后,我们还需要注意,原prompt中在最后保留了纯白色背景和保持面部特征及服装一致的指令。
修改后的示例(当前体重70kg,目标体重85kg,即增肌15kg,属于moderate change):
"""
注意:原示例有15条指令,我们这里也是15条(但实际输出时,我们按照要求,每条指令一行,用分号隔开,最后一条用分号结束,但注意第15条其实是第14条,因为前面从1到14,然后15是白色背景,16是保持特征。但原示例是14条编辑指令+2条固定指令,共16条?不,原示例输出是15条:1-12是编辑指令,13-14是固定指令?我们再看原示例:
原示例输出:
1-12:编辑指令(12条)
13:白色背景
14:保持特征
但我们的修改中,编辑指令有14条(1-14),然后15是白色背景,16是保持特征?这不符合原示例的结构。
原示例中,编辑指令部分(1-12)包括了服装调整(12-14在示例中属于编辑指令?)——注意原示例的编号:
但原示例输出中只有14条?不,原示例输出指令部分有14条(从1到14),然后第15条是白色背景,第16条是保持特征?不对,原示例输出是:
输出指令:
但原示例文本中写的是“Output instructions: 1. ... 2. ... ... 14. ...”,然后下面还有15和16?不,原示例输出指令只写到了14,然后紧接着是“15. Create...; 16. Maintain...”?实际上,原示例的输出指令是14条(1-14)然后15和16是另外的?但原示例的格式要求是:最后必须保留白色背景和保持特征的指令。
根据原prompt的格式要求,编辑指令部分应该包括:
这显然不对,因为原示例中编辑指令已经写到了14,而白色背景和保持特征应该放在最后,但原示例输出中这两条被编为13和14?不,原示例输出是:
输出指令:
所以实际上是16条指令?但原prompt要求“exactly numbered instructions (e.g. 1-11)”,并没有固定数量,但必须包括最后两条。
因此,我们按照原示例的结构,编辑指令部分(1-14)然后固定指令(15-16)。但是,原示例中第14条是裤子,第15条是白色背景,第16条是保持特征。
所以我们的输出也应该有16条指令。
但是,原任务要求中,当脸部不清晰时,只包含四个编辑指令?这里我们不考虑,因为我们假设图片中有清晰的脸部。
另外,我们只保留中等变化(Moderate change),所以所有指令中的强度都使用moderate。
现在,我们修改原prompt,只保留中等变化级别,并调整增肌的描述:
修改后的prompt:
"""
You are a visual recognition expert with the following professional capabilities:
You are a creative prompt engineer. Your task is to analyze the provided image and generate exactly one unique image transformation instruction.
Note that the English field personal_tag below should be replaced with the specific values mentioned above.
Task Description:
** Please generate corresponding editing instructions based on the actual body parts contained in the image. Refer to the output instructions used in the examples below. ** The instruction format must be:
Overall body transformation instruction:
Make {personal_tag} {weight_change_description} with moderate changes overall
For example: Make the woman weight changed from 65kg to 50kg, moderately losing 15KG with moderate changes overall;
Facial, body parts, and clothing size change instructions (if the image contains a face, corresponding editing instructions must be given):
The following are reference examples, do not use them directly, understand the description of each change for muscle gain:
The actual output editing instructions should vary according to weight changes (gain);
"""
注意:我们删除了其他强度级别,只保留moderate change。同时,将示例改为增肌示例。
但是,原prompt中还有一处需要修改:在计算分析部分,我们只保留moderate change的定义,删除其他级别。
修改后,在Calculation Analysis中的强度级别只显示:
另外,在生成编辑指令时,我们根据实际身体部位生成。原示例中包含了10个身体部位和3个服装调整,共13条编辑指令(加上总体1条,共14条编辑指令),然后加上两条固定指令,共16条。
最后,我们输出格式要求:
但是,原示例输出格式中,image_change是一个字符串,里面是分号隔开的指令,每条指令一行(但用分号结束)。注意原示例输出:
"image_change": "1. ...; 2. ...; ... 16. ..."
但实际上,原示例输出中每条指令后面都有分号,包括最后一条?不,最后一条指令(第16条)后面没有分号,因为整个字符串结束。但原示例中每条指令后面都有分号,包括最后一条?我们看原示例输出:
"image_change": "1. ...; 2. ...; ... 15. ...; 16. ..."
所以,我们按照这个格式,每条指令后面加一个分号,最后一条指令后面也加分号?但原示例中最后一条指令(16)后面没有分号?不,原示例输出中16后面没有分号,但是整个字符串结束。实际上,原示例输出中每条指令后面都有分号,除了最后一条?不,原示例输出是:
"1. ...; 2. ...; ... 15. ...; 16. ..."
所以,我们在输出时,每条指令后面都加一个分号,包括第16条?但这样第16条后面也有分号,而原示例输出中16后面没有分号?我们再看原示例输出要求:每条指令一行?不,它是一个字符串,包含多行?不,原示例输出是一个字符串,里面是分号隔开的指令列表。
为了避免错误,我们按照原示例的格式:每条指令后面加一个分号,包括最后一条?但原示例输出中最后一条(16)后面没有分号。所以,我们让第16条后面不加分号。
但是,原示例输出中,第15条后面有分号,第16条后面没有分号?不,原示例输出是:
"1. ...; 2. ...; ... 15. ...; 16. ..."
所以,我们这样处理:从1到15每条指令后面加一个分号,第16条不加分号。
但是,原示例输出中,第14条后面有分号,第15条后面也有分号,第16条后面没有分号?不,原示例输出是15条指令(1-15)然后16是最后一条?不对,原示例输出是16条指令,所以第16条是最后一条,不应该加分号。
因此,我们输出时,前15条指令后面加逗号(因为JSON字符串中我们使用逗号分隔?)——不,原要求是分号分隔。实际上,原输出格式要求是:
"image_change": "1. ...; 2. ...; ... 16. ..."
所以,我们输出一个字符串,里面包含16条指令,每条指令后面加一个分号,最后一条指令(16)后面不加分号?但这样字符串末尾不是分号。而原示例输出中,每条指令后面都有分号,包括16条?不,原示例输出中,第16条后面没有分号。
我们再看原示例的输出格式要求:
"image_change": "1. xxxx; 2. xxxx; 3. xxxx;"
注意,它最后有一个分号?不,它写的是“3. xxxx;”,但实际是多个。所以,我们按照:每条指令后面都加一个分号,包括最后一条?这样字符串末尾会有一个分号。但原示例输出中,最后一条指令后面没有分号?我们看原示例的指令字符串:
"1. ...; 2. ...; ... 15. ...; 16. ..."
这里,16后面没有分号。所以,我们输出时,前15条指令后面加逗号(在字符串中用分号分隔),最后一条指令(16)后面不加分号。
但是,我们如何知道哪一条是最后一条?我们按照顺序,第16条是最后一条,所以第16条后面不加分号,前15条都加分号。
因此,在生成字符串时,我们将1-15条指令用分号结束,第16条不加分号。
但是,原示例输出中,第15条后面有分号,第16条后面没有分号?是的。
所以,我们这样生成字符串:
lines = []
for i in range(1, 16):
lines.append(f"{i}. {instruction[i-1]};")
lines.append(f"16. {instruction[15]}")
image_change_str = "\n".join(lines) # 注意:原示例输出中,每条指令是换行的,但整个字符串是连续的?不,原输出格式要求是分号隔开的字符串,但原示例输出中每条指令一行?不,原示例输出是一个字符串,里面包含换行符?我们看原示例输出格式:
原输出格式要求:
"image_change": "1. xxxx; 2. xxxx; 3. xxxx;"
这是一个字符串,所以我们可以用换行符来分隔每条指令,这样在AI输入时,每行一条指令。但原要求是“exactly numbered instructions (e.g. 1-11)”,并没有说必须一行。但原示例输出是一个字符串,里面包含换行符?还是用分号分隔?
根据原输出格式的示例:
"image_change": "1. xxxx; 2. xxxx; 3. xxxx;"
这里用分号分隔,没有换行。但原示例的输出描述中,指令是换行的?不,原任务描述中,输出格式要求是:
"image_change": "1. xxxx; 2. xxxx; 3. xxxx;"
所以,我们不应该加入换行符,而是用分号分隔,并且每条指令后面加一个分号,最后一条指令(16)后面不加分号?但这样整个字符串会是:
"1. ...; 2. ...; ... 16. ..."
但是,原示例输出中,最后一条指令后面没有分号,所以:
"1. ...; 2. ...; ... 15. ...; 16. ..."
所以,我们这样生成:
instructions = []
for i in range(1, 16):
instructions.append(f"{i}. {instruction_text[i-1]};")
instructions.append(f"16. {instruction_text[15]}")
image_change_str = " ".join(instructions)
但这样会变成:
"1. ...; 2. ...; ... 15. ...; 16. ..."
注意:这样没有换行。但原任务要求中,输出格式是“1. xxxx; 2. xxxx; 3. xxxx;”,所以是空格分隔,不是换行。
然而,原示例输出中,在JSON字符串中,指令之间是用分号加空格,然后换行?不,我们看原输出格式要求,它没有要求换行,所以我们可以输出一个连续的字符串。
但是,为了可读性,我们可以在每条指令后面加上分号和空格,然后整个字符串是连续的。
所以,我们输出一个字符串,格式为:
"1. instruction1; 2. instruction2; ... 16. instruction16"
注意:第16条后面没有分号。
但是,原示例输出中,每条指令后面都有分号(包括第15条),第16条没有。所以,我们按照:
1-15: 每条指令后面加"; "
16: 不加分号,但后面可以加句号(但原示例没有)或直接结束。
所以,最终字符串:
"1. ...; 2. ...; ... 15. ...; 16. ..."
现在,我们输出修改后的prompt。
根据您的需求,我优化了识图prompt生成肌肉增强类图像编辑指令的逻辑,仅保留中等变化强度(Moderate change),并针对增肌场景强化专业描述:
精准的增肌描述体系
智能强度调节机制
所有指令强制使用moderate
修饰词,确保:
专业健美标准
引入IFBB(国际健美联合会)评分标准:
动态服装适配系统
此方案可直接集成到图像编辑AI工作流,在增强肌肉的同时保持人物特征一致性,生成的提示词符合AIGC专业标准。