当前位置: 首页 > news >正文

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),仅供参考

http://www.cnnetsun.cn/news/4191182.html

相关文章:

  • vim-toml 开发者指南:如何读懂项目结构并提交你的第一个 PR
  • Shadplay 源码拆解:Bevy Material trait、AsBindGroup 着色器数据绑定与插件注册完整指南
  • UART协议与IP核验证:从波形到寄存器的工程闭环
  • 论文复现升级:随机性、依赖和评测脚本逐项核对
  • 文本摘要评估框架sumeval完全解析:ROUGE/BLEU一站搞定,多语言支持让评测不再头疼
  • 分布式机器学习中激励相容的梯度上报机制设计与收敛性分析
  • REAP项目解析:从生产日志构建真实AI编程助手评测基准
  • Dockerless验证器:AI代码生成时代的高效安全验证方案
  • 网盘直链下载助手使用指南:8 大平台直链解析与下载器配置
  • 数学建模竞赛复盘:从葡萄酒评价赛题看数据分析与机器学习实战
  • 数学建模竞赛中的炉温曲线优化:从传热模型到工艺参数求解
  • cljfmt、clojure-lsp与depot如何依赖rewrite-clj:构建你自己的Clojure代码工具实战手册
  • 马尔可夫链核心原理与应用:从状态转移矩阵到平稳分布
  • Agentic AI故障诊断:构建分类法与系统性解决方案
  • MediaHelp豆瓣推荐与TMDB智能集成:零配置API密钥,快速构建私人媒体库
  • C++模板类中友元机制深度解析:从语法陷阱到工程实践
  • 手机硬件研发全链路:从SoC选型到量产良率的硬核实践
  • Songloft完整使用指南:从扫描曲库到手机播放的6步快速上手
  • TypeGo:面向具身智能体的类型安全实时操作系统运行时
  • Executor执行内核揭秘:QuickJS WASM沙箱如何安全运行LLM生成的代码
  • Tomcat Docker 官方镜像 JDK 与 JRE 变体揭秘:同一 Tomcat 为何体积能省一半?
  • 没有调音台也能开唱:KaraokeEternal推荐的音频与麦克风连接方案
  • 数学建模竞赛获奖名单解读:从能力培养到职业发展的核心价值
  • 如何检测GPT系统提示词泄露:TheBigPromptLibrary实用提取方法全清单
  • 时间序列分析实战:从ARIMA建模到数学建模竞赛应用
  • 如何15分钟搭建微信公众号RSS订阅服务:wewe-rss完整部署指南
  • 层次分析法(AHP)详解:从多准则决策到量化权重的完整指南
  • ModelScope 命令行速查:从下载到发布只需9条命令
  • LKY Office Tools一键安装Office指南
  • LabEvolver:免训练经验进化让AI智能体在湿实验室中安全可靠