综合介绍
CloudFlare-AI-Image 是一个开源项目,托管在 GitHub 上,通过 Cloudflare Workers 平台提供免费的 AI 图像生成服务。它支持文生图和图生图功能,基于五种模型,包括 Flux.1 [schnell]、Stable Diffusion XL 等,默认使用 SD-XL-Base-CF。用户输入文本描述或上传参考图像,即可生成高质量图片。项目接口兼容 OpenAI 格式,易于集成,部署简单,适合开发者、设计师和创意爱好者。借助 Cloudflare 的全球网络,生成速度快且稳定,代码开源可自由修改。
功能列表
- 支持文生图,输入文本描述生成高质量图像。
- 支持图生图,基于上传的参考图像生成新图片。
- 提供五种可选模型:DS-8-CF、SD-XL-Bash-CF、SD-XL-Lightning-CF、FLUX.1-Schnell-CF、SF-Kolors。
- 兼容 OpenAI 格式的 REST API,方便集成到第三方应用。
- 可自定义生成参数,如图像风格、步数和分辨率。
- 部署在 Cloudflare Workers 上,无需管理服务器。
- 支持 KV 存储,用于缓存生成的图像。
- 开源代码,用户可修改和扩展功能。
使用帮助
安装流程
要使用 CloudFlare-AI-Image,你需要完成以下部署步骤。过程简单,但需仔细配置环境。
- 注册 Cloudflare 账户
访问 Cloudflare 官网,注册或登录账户。免费计划足以支持此项目。确保账户有 Workers AI 和 KV 命名空间权限。 - 克隆项目代码
在终端运行以下命令,将项目克隆到本地:git clone https://github.com/justlovemaki/CloudFlare-AI-Image.git
进入项目目录:
cd CloudFlare-AI-Image
- 安装 Wrangler
Wrangler 是部署 Cloudflare Workers 的工具。安装命令:npm install -g @cloudflare/wrangler
登录 Wrangler:
wrangler login
按提示在浏览器中授权。
- 配置环境变量
项目需要绑定 Workers AI 和 KV 命名空间,并配置账户信息。- 登录 Cloudflare 仪表板,找到账户 ID(Account ID)。
- 创建 API 令牌,权限需包括 Workers AI、Workers 脚本编辑和 KV 存储。
- 编辑
wrangler.toml
文件,填入账户 ID 和 KV 命名空间:account_id = "你的账户ID" name = "cloudflare-ai-image" compatibility_date = "2023-09-01" [[kv_namespaces]] binding = "IMAGE_KV" id = "你的KV命名空间ID"
- 创建 KV 命名空间:
wrangler kv:namespace create IMAGE_KV
复制返回的 ID,填入
wrangler.toml
。 - 设置 API 令牌:
wrangler secret put CLOUDFLARE_API_TOKEN
输入你的 API 令牌。
- (可选)如果使用硅基流动平台的模型,设置 SF_TOKEN:
wrangler secret put SF_TOKEN
输入从硅基流动平台申请的 API 令牌。
- 部署项目
在项目目录运行:wrangler publish
部署成功后,获得 Workers URL,例如
https://cloudflare-ai-image.your-account.workers.dev
。 - 本地测试
若需本地调试,运行:wrangler dev
这会启动本地服务器,访问
http://localhost:8787
测试功能。
使用方法
部署完成后,你可以通过 API、客户端或 Workers URL 使用图像生成。以下是详细操作指南。
选择模型
项目支持五种模型,推荐 FLUX.1-Schnell-CF,效果最佳,但有每日使用限制。其他模型如下:
- DS-8-CF:基于 Dreamshaper-8-LCM,适合快速生成艺术风格图像。
- SD-XL-Bash-CF:默认模型,基于 Stable Diffusion XL,平衡速度与质量。
- SD-XL-Lightning-CF:优化速度,适合简单场景。
- FLUX.1-Schnell-CF:高质量模型,细节丰富,推荐用于复杂场景。
- SF-Kolors:基于 Kwai-Kolors,适合亚洲风格图像,需配置 SF_TOKEN。
选择模型时,在 API 请求或配置文件中指定模型名称,例如 "model": "@cf/black-forest-labs/flux-1-schnell"
。
文生图
文生图通过文本描述生成图像。
- 通过 API:
使用 POST 请求调用 API 端点:curl -X POST https://your-project.workers.dev/api/generate \ -H "Content-Type: application/json" \ -d '{"prompt": "一片星空下的雪山,月光照耀", "model": "@cf/black-forest-labs/flux-1-schnell", "steps": 8}'
返回 JSON 包含图像 URL 或 Base64 数据。
- 通过客户端:
项目接口兼容 OpenAI 格式,可用支持 OpenAI 的客户端(如 ChatGPT 客户端)。配置客户端的 API 地址为你的 Workers URL,输入提示词生成图像。 - 通过 Workers URL:
访问https://your-project.workers.dev
,输入提示词,点击生成,浏览器显示图像。
优化提示词:
清晰的提示词能提升图像质量。例如:
- 模糊:
"一朵花"
- 优化:
"一朵盛开的红玫瑰,背景是绿色草地,阳光明媚"
英文提示词可能效果更好,如"A red rose in bloom on a green meadow under bright sunlight"
。
图生图
图生图基于参考图像生成新图片。
- 通过 API:
上传图像并提供提示词:curl -X POST https://your-project.workers.dev/api/generate \ -H "Content-Type: application/json" \ -d '{"prompt": "将这张图片变成卡通风格", "image": "base64编码的图像数据", "model": "@cf/stabilityai/stable-diffusion-xl-base-1.0"}'
- 通过 Workers URL:
访问页面,上传参考图像,输入描述(如"卡通风格"
),生成新图像。
自定义参数
支持调整以下参数:
- 步数(steps):默认 8,范围 1-50。步数越高,细节越丰富,但耗时增加。
- 分辨率:默认 512x512,可调整至 1024x1024(视模型支持)。
- 风格:通过提示词控制,如
"油画风格"
、"赛博朋克"
。
在 API 请求中添加参数:
{
"prompt": " futuristic city at night",
"steps": 12,
"width": 1024,
"height": 1024
}
强制翻译选项
- --ntl:禁用翻译,保留原始提示词,适合多语言用户。
- --tl:强制翻译提示词为英文,提升生成质量。
在 API 请求中添加"translate": "tl"
或"translate": "ntl"
。
查看日志
登录 Cloudflare 仪表板,进入 Workers 概览,查看请求日志、生成记录和资源使用情况。KV 命名空间会缓存图像,减少重复生成。
注意事项
- 免费额度:Cloudflare Workers 免费计划每天 10 万次请求,足以支持个人使用。Workers AI 的模型调用可能有额外限制(如 FLUX.1 的每日限额)。
- 模型性能:FLUX.1-Schnell-CF 效果最佳,但高负载时可能受限。SD-XL-Bash-CF 适合日常使用。
- 安全性:建议设置 API 密钥,防止未授权访问。
- 提示词限制:避免敏感或不当内容,模型会自动过滤。
应用场景
- 内容创作
博客作者需要为文章配图,输入"一片热带雨林,阳光穿透树叶"
,几秒生成高质量图片,节省设计成本。 - 应用开发
开发者为电商平台生成商品展示图,通过 API 动态调用,输入描述如"现代风格的沙发,白色背景"
,提升用户体验。 - 艺术探索
学生或艺术家上传草图,使用图生图功能,输入"赛博朋克风格"
,生成独特作品,用于学习或展示。 - 教育培训
教师生成教学素材,如输入"古代中国的城市街道"
,用于历史课程,直观展示场景。
QA
- 生成一张图片需要多久?
2-15 秒,取决于模型、步数和网络。FLUX.1-Schnell-CF 最快,SD-XL-Bash-CF 稍慢。 - 支持哪些图像类型?
支持风景、人物、物体、艺术风格等。复杂场景需优化提示词,敏感内容会被过滤。 - 部署需要付费吗?
不需要。项目开源,Cloudflare 免费计划足够使用。SF-Kolors 模型需申请免费 SF_TOKEN。 - 如何切换模型?
在 API 请求中指定模型名称,或修改配置文件中的默认模型。推荐测试 FLUX.1-Schnell-CF。 - 图生图功能如何使用?
上传参考图像,输入描述(如"卡通风格"
),通过 API 或页面生成新图像。