news 2026/8/24 9:53:50

SwiftOpenAI图像生成实战:DALL-E与新ImageGen API创建、编辑一步到位

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
SwiftOpenAI图像生成实战:DALL-E与新ImageGen API创建、编辑一步到位

SwiftOpenAI图像生成实战:DALL-E与新ImageGen API创建、编辑一步到位

【免费下载链接】SwiftOpenAIThe most complete open-source Swift package for interacting with OpenAI's public API.项目地址: https://gitcode.com/gh_mirrors/sw/SwiftOpenAI

SwiftOpenAI是一个功能完整的开源 Swift 包,封装了 OpenAI 的全部公开 API。本文聚焦它的图像生成能力:从经典 DALL·E 到新的 ImageGen API(gpt-image-1),创建、编辑、变体一套接口一步到位,iOS、macOS、Linux 均可用。

🎨 为什么选择 SwiftOpenAI 做 AI 图像生成?

  • 原生 Swiftasync/await风格,与 SwiftUI 无缝集成
  • 一套接口覆盖三大模型dall-e-2dall-e-3gpt-image-1(新 ImageGen API)
  • 平滑升级:同时保留旧版 DALL·E 接口(legacyCreateImages系列),新老代码互不干扰
  • 跨平台:支持 iOS 15+、macOS 13+、watchOS 9+ 和 Linux

新版 ImageGen API 的参数定义在 CreateImageParameters.swift,是 2025 年专为gpt-image-1引入的现代化参数类型。

🚀 快速安装 SwiftOpenAI:SPM 三步接入

  1. Xcode 中打开项目,选择FileAdd Package Dependency
  2. 填入仓库地址https://gitcode.com/gh_mirrors/sw/SwiftOpenAI
  3. 手动填写版本下限(不要接受 Xcode 默认的上限),点击Add Package

拿到 OpenAI API Key 后,初始化服务只需一行:

import SwiftOpenAI let service = OpenAIServiceFactory.service(apiKey: "<YOUR_KEY>")

⚡ 新 ImageGen API:一句话生成 AI 图片

生成图片只需三步:描述 → 建参数 → 发请求

let params = CreateImageParameters( prompt: "A watercolor dragon-unicorn flying above snowy mountains", model: .gptImage1, // 也支持 .dallE2 / .dallE3 quality: .high, background: .transparent, // 透明背景,gpt-image-1 专属能力 outputFormat: .png, size: "1024x1024" ) let result = try await service.createImages(parameters: params) let b64 = result.data?.first?.b64Json // 解码后直接保存

返回格式小知识⚠️:gpt-image-1固定返回 Base64 图片数据;dall-e-2/dall-e-3默认返回 URL,且URL 只在 60 分钟内有效,务必及时下载落盘。

🖌️ DALL·E 经典用法:legacyCreateImages 三步出图

旧版接口使用Dalle枚举,把"模型 + 尺寸"绑定在一起,从源头避免写错宽高:

let params = ImageCreateParameters( prompt: "A cute robot barista in a cozy café", model: .dalle3(.landscape), // 1792x1024 宽幅 quality: "hd", style: "vivid" ) let urls = try await service.legacyCreateImages(parameters: params) .data.map(\.url)

枚举定义见 Dalle.swift,旧参数结构见 ImageCreateParameters.swift。

✂️ 图片编辑与变体:editImage 与 createImageVariations

编辑(editImage支持"原图 + 提示词 + 可选 mask 精准修改"。CreateImageEditParameters.swift 提供了便捷构造器:iOS 直接传UIImage、macOS 直接传NSImage,无需手动转 Data:

let params = CreateImageEditParameters( image: uiImage, // PlatformImage 便捷入口 prompt: "Turn it into an oil painting", model: .gptImage1 ) let result = try await service.editImage(parameters: params)

⚠️ 编辑接口只支持dall-e-2gpt-image-1(另有gpt-image-1-mini):gpt-image-1可一次传多张图做融合编辑(png/webp/jpg,单张 < 25MB);dall-e-2只接受一张正方形 PNG(< 4MB),mask 必须与原图同尺寸。

变体(createImageVariations传一张图即可生成"同款不同版",目前仅支持dall-e-2,参数见 CreateImageVariationParameters.swift。

📋 模型参数速查表(新手避坑)

参数dall-e-2dall-e-3gpt-image-1
质量 qualitystandardstandard / hdlow / medium / high
尺寸 size256² / 512² / 1024²1024² / 1792x1024 / 1024x17921024² / 1536x1024 / 1024x1536 / auto
数量 n1–10仅 11–10
风格 stylevivid / natural
返回格式URL / Base64URL / Base64固定 Base64
提示词上限1000 字符4000 字符32000 字符

两个最常见的坑:给dall-e-3n > 1会直接失败;给gpt-image-1responseFormat没有意义。

📱 在 SwiftUI 示例 App 中体验图像生成

示例项目内置了完整的图像生成 Demo:输入提示词 → 点击发送 →AsyncImage直接渲染出图,可作为 SwiftUI 集成的参考实现:

  • 界面:ImagesDemoView.swift
  • 业务逻辑:ImagesProvider.swift(封装创建 / 编辑 / 变体三个调用)

三个服务方法的完整签名见 OpenAIService.swift,返回模型定义在 CreateImageResponse.swift,更多细节可查阅 README.md 的 Images 章节。

✅ 总结

  • 新项目:直接用新 ImageGen API 的createImages/editImage/createImageVariationsgpt-image-1的透明背景、多图编辑能力开箱即用
  • 老项目:DALL·E 代码继续走legacyCreateImages系列,平滑共存
  • 记住一句话gpt-image-1出 Base64,DALL·E 出 URL(60 分钟有效),保存逻辑按此分流即可

【免费下载链接】SwiftOpenAIThe most complete open-source Swift package for interacting with OpenAI's public API.项目地址: https://gitcode.com/gh_mirrors/sw/SwiftOpenAI

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 9:52:47

vim-toml 开发者指南:如何读懂项目结构并提交你的第一个 PR

vim-toml 开发者指南&#xff1a;如何读懂项目结构并提交你的第一个 PR 【免费下载链接】vim-toml Vim syntax for TOML 项目地址: https://gitcode.com/gh_mirrors/vi/vim-toml vim-toml 是一个为 Vim 与 Neovim 提供 TOML 语法高亮与文件类型检测的轻量插件&#xff0…

作者头像 李华
网站建设 2026/8/24 9:52:20

UART协议与IP核验证:从波形到寄存器的工程闭环

1. 为什么UART验证要从协议和IP开始——一个被90%新手跳过的致命盲区我带过三届校招新人&#xff0c;几乎每届都有人卡在“串口发不出数据”上。他们花三天调驱动、查线序、换USB转接芯片&#xff0c;最后发现&#xff1a;连UART帧结构里起始位是高电平还是低电平都没搞清。这不…

作者头像 李华
网站建设 2026/8/24 9:50:10

论文复现升级:随机性、依赖和评测脚本逐项核对

论文复现升级&#xff1a;随机性、依赖和评测脚本逐项核对 跑了一夜的 Loss 突然发散&#xff1a;对比上一周的代码库&#xff0c;明明只改了 requirements.txt 复现论文时&#xff0c;依赖、随机性和评测入口常常比模型代码更早造成差异。本文把它们拆开说明&#xff1b;任何版…

作者头像 李华
网站建设 2026/8/24 9:47:15

分布式机器学习中激励相容的梯度上报机制设计与收敛性分析

1. 项目概述&#xff1a;当分布式机器学习遇上“聪明”的参与者想象一下&#xff0c;你正在组织一场全球性的协作学习项目&#xff0c;比如训练一个超大规模的图像识别模型。你不可能把所有数据都集中到一台超级计算机上&#xff0c;因为数据隐私、法规和传输成本都不允许。于是…

作者头像 李华