首页 > 其他分享 >OpenAI ChatGPT 图片生成API

OpenAI ChatGPT 图片生成API

时间:2023-11-16 21:58:30浏览次数:32  
标签:DALL image API OpenAI 图像 openai ChatGPT data

图像生成

了解如何使用 DALL·E 在 API 中。

想要在 ChatGPT 中生成图像?前往 chat.openai.com。

介绍

图像 API 提供了三种与图像交互的方法:

  1. 基于文本提示从头开始创建图像(DALL·E 3 和 DALL·E 2)
  2. 通过让模型根据新的文本提示替换预先存在的图像的某些区域来创建图像的编辑版本(DALL·仅限 E 2)
  3. 创建现有图像的变体 (DALL·仅限 E 2)

本指南通过有用的代码示例介绍了使用这三个 API 端点的基础知识。试试DALL·E 3,前往 ChatGPT。试试DALL·E 2、查看DALL·电子预览应用程序。

用法

生成
图像生成终结点允许您在给定文本提示的情况下创建原始图像。使用DALL·E 3,图像的大小可以是 1024x1024、1024x1792 或 1792x1024 像素。

默认情况下,图像是以质量生成的,但在使用 DALL·E 3 您可以设置以增强细节。方形、标准质量的图像生成速度最快。standardquality: "hd"

您可以使用DALL·E 3(通过并行请求请求更多)或使用 DALL·带有 n 参数的 E 2。

from openai import OpenAI
client = OpenAI()

response = client.images.generate(
  model="dall-e-3",
  prompt="a white siamese cat",
  size="1024x1024",
  quality="standard",
  n=1,
)

image_url = response.data[0].url

提示词

随着DALL·E 3,该模型现在采用提供的默认提示,并出于安全原因自动重写它,并添加更多细节(更详细的提示通常会导致更高质量的图像)。

虽然目前无法禁用此功能,但您可以通过在提示中添加以下内容来使用提示来使输出更接近您请求的图像: .I NEED to test how the tool works with extremely simple prompts. DO NOT add any detail, just use it AS-IS:

更新的提示在数据响应对象的字段中可见。revised_prompt

示例 DALL·E 3生成

提示 生成
一只白色暹罗猫的照片。

可以使用 response_format 参数将每个图像作为 URL 或 Base64 数据返回。URL 将在一小时后过期。

编辑 (仅限DALL· E2)

图像编辑端点也称为“修复”,允许您通过上传图像和蒙版来编辑或扩展图像,并指示应替换哪些区域。蒙版的透明区域指示应编辑图像的位置,提示应描述完整的新图像,而不仅仅是擦除的区域。此终结点可以启用类似 DALL·电子预览应用程序。

from openai import OpenAI
client = OpenAI()

response = client.images.edit((
  model="dall-e-2",
  image=open("sunlit_lounge.png", "rb"),
  mask=open("mask.png", "rb"),
  prompt="A sunlit indoor lounge area with a pool containing a flamingo",
  n=1,
  size="1024x1024"
)
image_url = response.data[0].url
图像 面具 输出
提示:一个阳光明媚的室内休息区,有一个有火烈鸟的游泳池

上传的图片和蒙版必须都是小于 4MB 的方形 PNG 图片,并且尺寸必须相同。生成输出时不使用蒙版的非透明区域,因此它们不一定需要像上面的示例那样与原始图像匹配。

变量 (仅限DALL·E2)

图像变量端点允许您生成给定图像的变体。

from openai import OpenAI
client = OpenAI()

response = client.images.create_variation(
  image=open("image_edit_original.png", "rb"),
  n=2,
  size="1024x1024"
)

image_url = response.data[0].url
图像 输出

与编辑端点类似,输入图像必须是大小小于 4MB 的方形 PNG 图像。

内容审核

系统会根据我们的内容政策对提示和图片进行过滤,并在提示或图片被标记时返回错误。

特定于语言的提示

使用内存中图像数据

上述指南中的 Node.js 示例使用该模块从磁盘读取图像数据。在某些情况下,您可能将图像数据保存在内存中。下面是一个示例 API 调用,它使用存储在 Node.js 对象中的图像数据:fsBuffer

import OpenAI from "openai";

const openai = new OpenAI();

// This is the Buffer object that contains your image data
const buffer = [your image data];

// Set a `name` that ends with .png so that the API knows it's a PNG image
buffer.name = "image.png";

async function main() {
  const image = await openai.images.createVariation({ model: "dall-e-2", image: buffer, n: 1, size: "1024x1024" });
  console.log(image.data);
}
main();

使用 TypeScript

如果您使用的是 TypeScript,您可能会遇到一些带有图像文件参数的怪癖。下面是通过显式强制转换参数来解决类型不匹配的示例:

import fs from "fs";
import OpenAI from "openai";

const openai = new OpenAI();

async function main() {
  // Cast the ReadStream to `any` to appease the TypeScript compiler
  const image = await openai.images.createVariation({
    image: fs.createReadStream("image.png") as any,
  });

  console.log(image.data);
}
main();

下面是内存中图像数据的类似示例:

import fs from "fs";
import OpenAI from "openai";

const openai = new OpenAI();

// This is the Buffer object that contains your image data
const buffer: Buffer = [your image data];

// Cast the buffer to `any` so that we can set the `name` property
const file: any = buffer;

// Set a `name` that ends with .png so that the API knows it's a PNG image
file.name = "image.png";

async function main() {
  const image = await openai.images.createVariation({
    file,
    1,
    "1024x1024"
  });
  console.log(image.data);
}
main();

错误处理

由于输入无效、速率限制或其他问题,API 请求可能会返回错误。这些错误可以使用语句进行处理,错误详细信息可以在以下任一位置找到:try...catcherror.responseerror.message

import fs from "fs";
import OpenAI from "openai";

const openai = new OpenAI();

try {
    const response = openai.images.createVariation(
        fs.createReadStream("image.png"),
        1,
        "1024x1024"
    );
    console.log(response.data.data[0].url);
} catch (error) {
    if (error.response) {
        console.log(error.response.status);
        console.log(error.response.data);
    } else {
        console.log(error.message);
    }
}

原文引用链接

OpenAI ChatGPT生成图片API
OpenAI ChatGPT文字转语音API
OpenAI ChatGPT语音转文字API

标签:DALL,image,API,OpenAI,图像,openai,ChatGPT,data
From: https://www.cnblogs.com/jerryqm/p/17837345.html

相关文章

  • Fastapi框架:Starlette,Pydantic 与 FastAPI 框架是什么关系?
    【一】介绍Starlette是个什么项目;IDE开发时Python3.5+版本的"typehints"的好处:简短、直观和标准的Python类型声明;介绍Pydantic包,FastAPI项目的开发为什么要使用Pydantic【二】Starlette【1】介绍Starlette是一种轻量级的ASGI框架/工具包,是构建高性能A......
  • Fastapi框架:引入
    【一】为什么新秀FastAPI火成这样介绍FastAPI有哪些突出特点,浏览官网文档中的Feasures一览【二】FastAPI的突出特点性能优越开发效率提升200%~300%直接减少约40%的人为BUG直观易学易用经简代码/代码重复率低自带API交互文档,开发成果随时交付API开发标准化......
  • 白嫖ChatGPT4
    大家好,我是柒八九字数越少,事情越大。号外,号外。现在ChatGPT4由于月费有点小贵,所以我也在观望之中。但是呢,今天在某个论坛中无意中刷到一个帖子。然后说是「白嫖ChatGPT4」的功能。然后,抱着试一试的态度把玩了一下。发现真的好用。所以,「独乐乐不如众乐乐」,所以把这个方式给大家。(但......
  • 内网走nginx代理访问高德webapi2.0
    需求:客户的电脑都只能访问内,服务器可以访问外网,客户电脑使用的项目中用到了高德webapi2.0。10.200.31.45:32100是我们的web服务器。网上基本上都是对高德webapi1.4的配置方式,而web2.0有一些差别。1.前端修改高德地图的js应用如果是index.html引入,修改之前的应用:<script......
  • CreateCollection API执行流程(addCollectionMetaStep)_milvus源码解析
    CreateCollectionAPI执行流程(addCollectionMetaStep)源码解析milvus版本:v2.3.2CreateCollection这个API流程较长,也是milvus的核心API之一,涉及的内容比较复杂。这里介绍和channel相关的流程。整体架构:CreateCollection(addCollectionMetaStep)的数据流向:1.客户端sdk发......
  • IDEA插件推荐:Apipost-Helper
    IDEA是一款功能强大的集成开发环境(IDE),它可以帮助开发人员更加高效地编写、调试和部署软件应用程序。我们在编写完接口代码后需要进行接口调试等操作,一般需要打开额外的调试工具。今天给大家介绍一款IDEA插件:Apipost-Helper-2.0。代码写完直接编辑器内调试、还支持生成接口文档、接......
  • Apipost 推出IDEA插件一键生成API文档
    今天给大家推荐一款IDEA插件:Apipost-Helper-2.0,写完代码IDEA内一键生成API文档,无需安装、打开任何其他软件;写完代码IDEA内一键调试,无需安装、打开任何其他软件;生成API目录树,双击即可快速定位API定义的代码…非常好用!而且完全免费!在IDEA编辑器插件中心输入Apipost搜索安装:Apipost-......
  • 软件测试/人工智能|一文告诉你ChatGPT原理与架构
    简介ChatGPT是今年最火的互联网应用,ChatGPT给我们的工作和生活带来了巨大便利,帮我们写文案,帮我们写代码等,但是当我们在于ChatGPT对话时,我们是否有想过,这么强大的一个工具,它背后的技术原理是什么?它的技术架构是怎样的?本文就告诉大家ChatGPT的原理与架构。ChatGPT的主要特点OpenAI使......
  • Apipost 推出IDEA插件一键生成API文档
    今天给大家推荐一款IDEA插件:Apipost-Helper-2.0,写完代码IDEA内一键生成API文档,无需安装、打开任何其他软件;写完代码IDEA内一键调试,无需安装、打开任何其他软件;生成API目录树,双击即可快速定位API定义的代码…非常好用!而且完全免费!在IDEA编辑器插件中心输入Apipost搜索安装:Apipost......
  • 软件测试/人工智能|利用ChatGPT进行项目需求分析
    简介在我们的开发和测试工作中,需求分析是必不可少的一个步骤,很多时候,我们可以拿到产品的PRD文档或者产品架构图原型图进行分析,为产品的功能实现保驾护航,为后续的优化提供建议。在需求分析的时候,我们也可以借助ChatGPT来帮我们进行需求分析,本文就来给大家介绍一下如何使用ChatGPT来......