1. DALL·E模型介绍
OpenAI的DALL·E模型是一个能够从文本提示中生成图像的人工智能系统。DALL·E合成图像的能力涵盖了从简单的图像复制到创造性地重新想象文本描述的场景。该模型的名字来源于画家萨尔瓦多·达利(Salvador Dalí)和动画角色沃利(WALL·E)的混合,意在表达它在艺术创作与自动化领域的交汇。
DALL·E模型通过深度学习训练来理解文本提示,并将这些提示转化为视觉表示。无论是摄影作品、绘画、数字艺术还是任何其他形式的图像,DALL·E均能够根据描述生成匹配的图像。
2. DALL·E图片生成模型的基本使用
OpenAI为DALL·E提供了API接口,使开发者能够将模型集成到自己的应用或服务中。以下是使用DALL·E 3和DALL·E 2 API接口生成图片的基本流程和参数含义:
curl -X POST https://api.openai.com/v1/images/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "dall-e-2", # 模型版本,可以是"dall-e-3"或"dall-e-2"。
"prompt": "文本提示", # 用于生成图像的文本。
"n": 1, # 请求生成的图像数量。
"size": "1024x1024", # 图像的尺寸。
"quality": "standard" # 图像的质量,可以是"hd"。
}'
model
: 指定所使用的DALL·E模型版本。prompt
: 提供给模型的文本提示,模型会根据此文本生成图像。n
: 指定要生成的图片数量,DALL·E 3一次只能生成1张图像,而DALL·E 2可以同时生成最多10张图像。size
: 生成图像的大小。对于dall-e-2,必须为256x256、512x512或1024x1024中的一个。dall-e-3型号必须为1024x1024、1792x1024或1024x1792之一。quality
: 设置生成图像的质量,standard
为标准质量,hd
为高清质量。
3. 图片编辑与变体生成(仅限DALL·E 2)
3.1. 图片编辑(编辑或扩展图片)
使用DALL·E 2的图片编辑功能,可以上传一个图片和相应的蒙层(mask),蒙层的透明区域表示将要编辑的部分,模型会根据新的文本提示在这些区域中生成内容。这个功能可以创造出不同于原有图片元素的新元素,从而生成编辑过的版本。
继续使用curl命令的API请求示例:
curl -X POST https://api.openai.com/v1/images/edits \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F "model=dall-e-2" \
-F "prompt=新的文本描述" \
-F "image=@/path_to_your_original_image.png" \
-F "mask=@/path_to_your_mask.png" \
-F "n=1" \
-F "size=1024x1024"
image
: 包含原始图片的文件。mask
: 包含蒙层,其中透明区域表示应该被模型处理的区域。prompt
: 新的文本提示,描述整个新图像的内容,而不仅仅是被擦除的区域。
要注意,上传的原始图片和蒙层都必须是正方形PNG图片,且大小不超过4MB,并具有相同的尺寸。
例子:
curl https://api.openai.com/v1/images/edits \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-F image="@sunlit_lounge.png" \
-F mask="@mask.png" \
-F model="dall-e-2" \
-F prompt="阳光充足的室内休息区,有一个游泳池,里面有一只火烈鸟" \
-F n=1 \
-F size="1024x1024"
原始图片
蒙层图片
生成后的图片
3.2. 图片变体生成
使用DALL·E 2生成图片的变体是从已有的图像出发,生成一些在内容上或风格上的不同版本。这个功能可以用来探索某个图像的不同可能性或创造性演变。
同样地,利用curl发送一个API请求:
curl -X POST https://api.openai.com/v1/images/variations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: multipart/form-data" \
-F "image=@/path_to_your_image.png" \
-F "n=2" \
-F "size=1024x1024"
image
: 包含要生成变体的原始图片文件。n
: 要生成变体的数量,可以通过此参数控制。
和之前一样,输入的图像必须是小于4MB的正方形PNG文件。