AI个人学习
和实操指南
豆包Marscode1

基于Cloudflare Worker的AI图片生成脚本

综合介绍

CloudFlare-AI-Image 是一个开源项目,托管在 GitHub 上,通过 Cloudflare Workers 平台提供免费的 AI 图像生成服务。它支持文生图和图生图功能,基于五种模型,包括 Flux.1 [schnell]、Stable Diffusion XL 等,默认使用 SD-XL-Base-CF。用户输入文本描述或上传参考图像,即可生成高质量图片。项目接口兼容 OpenAI 格式,易于集成,部署简单,适合开发者、设计师和创意爱好者。借助 Cloudflare 的全球网络,生成速度快且稳定,代码开源可自由修改。

基于Cloudflare Worker的AI图片生成脚本-1


 

功能列表

  • 支持文生图,输入文本描述生成高质量图像。
  • 支持图生图,基于上传的参考图像生成新图片。
  • 提供五种可选模型: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,你需要完成以下部署步骤。过程简单,但需仔细配置环境。

  1. 注册 Cloudflare 账户
    访问 Cloudflare 官网,注册或登录账户。免费计划足以支持此项目。确保账户有 Workers AI 和 KV 命名空间权限。
  2. 克隆项目代码
    在终端运行以下命令,将项目克隆到本地:

    git clone https://github.com/justlovemaki/CloudFlare-AI-Image.git
    

    进入项目目录:

    cd CloudFlare-AI-Image
    
  3. 安装 Wrangler
    Wrangler 是部署 Cloudflare Workers 的工具。安装命令:

    npm install -g @cloudflare/wrangler
    

    登录 Wrangler:

    wrangler login
    

    按提示在浏览器中授权。

  4. 配置环境变量
    项目需要绑定 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 令牌。

  5. 部署项目
    在项目目录运行:

    wrangler publish
    

    部署成功后,获得 Workers URL,例如 https://cloudflare-ai-image.your-account.workers.dev

  6. 本地测试
    若需本地调试,运行:

    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 密钥,防止未授权访问。
  • 提示词限制:避免敏感或不当内容,模型会自动过滤。

 

应用场景

  1. 内容创作
    博客作者需要为文章配图,输入 "一片热带雨林,阳光穿透树叶",几秒生成高质量图片,节省设计成本。
  2. 应用开发
    开发者为电商平台生成商品展示图,通过 API 动态调用,输入描述如 "现代风格的沙发,白色背景",提升用户体验。
  3. 艺术探索
    学生或艺术家上传草图,使用图生图功能,输入 "赛博朋克风格",生成独特作品,用于学习或展示。
  4. 教育培训
    教师生成教学素材,如输入 "古代中国的城市街道",用于历史课程,直观展示场景。

 

QA

  1. 生成一张图片需要多久?
    2-15 秒,取决于模型、步数和网络。FLUX.1-Schnell-CF 最快,SD-XL-Bash-CF 稍慢。
  2. 支持哪些图像类型?
    支持风景、人物、物体、艺术风格等。复杂场景需优化提示词,敏感内容会被过滤。
  3. 部署需要付费吗?
    不需要。项目开源,Cloudflare 免费计划足够使用。SF-Kolors 模型需申请免费 SF_TOKEN。
  4. 如何切换模型?
    在 API 请求中指定模型名称,或修改配置文件中的默认模型。推荐测试 FLUX.1-Schnell-CF。
  5. 图生图功能如何使用?
    上传参考图像,输入描述(如 "卡通风格"),通过 API 或页面生成新图像。
未经允许不得转载:首席AI分享圈 » 基于Cloudflare Worker的AI图片生成脚本
zh_CN简体中文