如何通过OpenAI Python API使用DALL-E 3生成一致角色?
使用OpenAI Python API生成跨图片一致角色的方法与示例
要复现官网通过seed生成一致角色的效果,核心是固定seed参数和角色核心提示词,同时保持其他影响生成结果的参数一致,以下是具体步骤和代码示例:
核心要点
- 固定
seed参数:这是保证角色一致性的关键,官网中设置的seed对应API里的seed参数,只要该值相同且核心提示词不变,就能生成同一角色 - 保持角色核心提示词稳定:将角色的关键特征(外貌、穿搭、体态等)固定为提示词的核心部分,仅修改场景、动作等非角色相关内容
- 统一其他生成参数:包括
model、size、quality、style等,避免参数变动导致角色风格或形态偏移
代码示例
首先确保安装OpenAI Python库:
pip install openai
以下是生成两张不同场景下同一角色的代码:
from openai import OpenAI # 初始化客户端,替换为你的API密钥 client = OpenAI(api_key="YOUR_API_KEY") # 定义角色的核心特征提示词(固定不变) core_character = "红发蓝眼睛的年轻女性,穿复古牛仔外套,高马尾,脸型偏圆,戴银色星星项链" # 生成第一张图:咖啡馆场景 img_response_1 = client.images.generate( model="dall-e-3", prompt=f"{core_character},坐在街角复古咖啡馆的窗边,手里拿着冰美式", seed=12345, # 固定seed值 size="1024x1024", quality="standard", style="natural" ) print("第一张图片URL:", img_response_1.data[0].url) # 生成第二张图:公园散步场景 img_response_2 = client.images.generate( model="dall-e-3", prompt=f"{core_character},在秋日城市公园的枫树下散步,脚踩落叶", seed=12345, # 使用相同seed size="1024x1024", quality="standard", style="natural" ) print("第二张图片URL:", img_response_2.data[0].url)
注意事项
seed参数支持DALL-E 2和DALL-E 3模型,取值范围为0到4294967295之间的整数- 如果角色出现轻微偏差,可细化核心提示词的细节(比如增加"皮肤白皙,笑起来有梨涡"),同时保持seed不变重新生成
- 避免在核心提示词中加入场景相关内容,确保角色特征的独立性
内容的提问来源于stack exchange,提问作者J.K.
相关产品推荐
相关产品推荐

