CF Flux Remix 是一个基于 Cloudflare Workers 和 Remix 框架的图像生成应用。它利用 Cloudflare 的 AI 模型来生成图像,并提供了一个用户友好的界面和 API 接口来与这些模型进行交互。
- 使用 Cloudflare 的 AI 模型生成图像【免费】
- 支持多种图像生成模型,包括 Flux 和标准模型
- 提供 API 接口以便集成到其他应用中
- 支持提示词翻译和优化
- 一键部署
- 响应式设计,现代设计
- 图片生成不受限制(不经审查),你懂的
- CloudFlare账号
- Github/Gitlab账号
-
克隆(Fork)仓库:
https://github.com/yourusername/cf-flux-remix
-
完成部署: 在CloudFlare中操作
1、新建一个worker 名称为 free-flux . 注意此名称必须与Github中的Wrangler.toml文件中的名称一致。 2、worker后台设置中绑定Github仓库 绑定Fork的本仓库 3、填入构建命令等 构建命令(可选): pnpm i 部署命令: pnpm run deploy 4、触发CF Workers中部署 随便改动一下仓库readme文件,提交后自动触发部署 5、部署完成 部署完成后打开相应网站来使用,API使用看下面的说明 记得在worker后台设置环境变量,替换自己的CF账号ID及API令牌 API令牌要有Workers AI 的读取及编辑权限。
运行开发服务器:
pnpm run dev
- 另一种方法部署到 Cloudflare Workers:
pnpm run deploy
在 wrangler.toml
文件中设置以下程序变量:
API_KEY
: API 密钥,用于身份验证CF_ACCOUNT_LIST
: Cloudflare 账户列表,JSON 格式CF_TRANSLATE_MODEL
: 翻译模型 IDCF_IS_TRANSLATE
: 是否启用翻译功能USE_EXTERNAL_API
: 是否使用外部 APIEXTERNAL_API
: 外部 API 地址EXTERNAL_MODEL
: 外部模型 IDEXTERNAL_API_KEY
: 外部 API 密钥FLUX_NUM_STEPS
: Flux 模型的步数CUSTOMER_MODEL_MAP
: 模型映射,JSON 格式
- 端点:
/api/image
- 方法:POST
- 请求头:
Authorization: Bearer your_api_key_here
Content-Type: application/json
- 请求体:
{ "messages": [{"role": "user", "content": "图像描述"}], "model": "模型ID", "stream": false }
- 响应:
{ "prompt": "原始提示词", "translatedPrompt": "翻译后的提示词", "image": "生成的图像数据(Base64编码)" }
- 端点:
/api/models
- 方法:GET
- 请求头(可选):
Authorization: Bearer your_api_key_here
- 响应:
{ "models": [ {"id": "DS-8-CF", "name": "DreamShaper 8"}, {"id": "SD-XL-Bash-CF", "name": "Stable Diffusion XL Base"}, {"id": "SD-XL-Lightning-CF", "name": "Stable Diffusion XL Lightning"}, {"id": "FLUX.1-Schnell-CF", "name": "Flux 1 Schnell"} ] }
bash
curl -X POST https://your-worker-url.workers.dev/api/image \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"messages": [{"role": "user", "content": "一只可爱的猫咪"}],
"model": "DS-8-CF"
}'
python
import requests
import json
url = "https://your-worker-url.workers.dev/api/image"
headers = {
"Authorization": "Bearer your_api_key_here",
"Content-Type": "application/json"
}
data = {
"messages": [{"role": "user", "content": "一只可爱的猫咪"}],
"model": "DS-8-CF"
}
response = requests.post(url, headers=headers, data=json.dumps(data))
result = response.json()
print(f"原始提示词: {result['prompt']}")
print(f"翻译后的提示词: {result['translatedPrompt']}")
print(f"生成的图像数据: {result['image'][:50]}...") # 只打印前50个字符
欢迎提交 Pull Requests 来改进这个项目。对于重大更改,请先开 issue 讨论您想要改变的内容。
本项目采用 MIT 许可证。详情请见 LICENSE 文件。
-
Q: 如何添加新的模型? A: 在
wrangler.toml
文件中的CUSTOMER_MODEL_MAP
变量中添加新的模型 ID 和对应的 Cloudflare AI 模型路径。 -
Q: 如何禁用翻译功能? A: 在
wrangler.toml
文件中将CF_IS_TRANSLATE
设置为 "false"。 -
Q: 如何调整 Flux 模型的步数? A: 修改
wrangler.toml
文件中的FLUX_NUM_STEPS
值。
如果遇到问题,请检查以下几点:
- 确保所有环境变量都已正确设置。
- 检查 Cloudflare 账户和 API 令牌是否有效。
- 确保使用的模型 ID 在
CUSTOMER_MODEL_MAP
中存在。 - 查看 Cloudflare Workers 的日志以获取更详细的错误信息。
- The name in
wrangler.toml
must match the name of your Worker.
如果问题仍然存在,请开一个 issue 并提供详细的错误信息和复现步骤。