Ideogram 是一种帮助用户以图形格式可视化数据的工具。它提供了一个简单易用的界面来创建表示数据点、关系和趋势的图表。用户还可以加入候补名单以接收更新并加入社区。

3 个月前
AI图片生成集成指南:从API到SDK的完整实现路径 在腾讯EdgeOne Pages模版详情页面点击“Deploy”按钮,填写必要的API密钥,点击“开始部署”——短短几分钟内,一个完整的AI图片生成应用就这样上线了。 随着人工智能技术的快速发展,AI图片生成功能已成为现代应用中不可或缺的一部分。无论是内容创作、产品设计还是营销素材制作,AI图片生成技术都能提供高效、创新的解决方案。 对于开发者而言,如何将这项能力快速、安全地集成到自己的应用中,成为了一个值得深入探讨的课题。 01 理解两种集成路径 原生API调用和AI SDK封装调用是当前将AI图片生成能力集成到应用中的两种主要技术路径,每种路径都有其独特的优势和应用场景。 原生API调用提供了精细控制和高度灵活性,开发者可以直接与底层API交互,定制化程度高。AI SDK则通过统一接口简化了开发流程,实现了多厂商模型的轻松切换。 以EdgeOne Pages为例,这两种集成方式都有对应的模版:ai-image-generator-starter用于原生接口调用,而ai-sdk-image-generator-starter则适用于AI SDK封装调用。 在开始集成之前,开发者需要根据自身需求选择合适的技术路径。对于追求控制和定制化的项目,原生API调用是更好的选择;而对于希望快速上线并支持多种模型的项目,AI SDK封装调用则更为合适。 02 快速入门:环境准备与部署 要实现AI图片生成功能,首先需要申请API Key。主流AI图片生成提供商的API Key获取地址包括: Hugging Face:huggingface.co/settings/tokens OpenAI:platform.openai.com/api-keys Replicate:replicate.com/account/api-tokens Fal:fal.ai/dashboard/keys Nebius:nebius.com/console 部署过程简单直观。以ai-sdk-image-generator-starter模版为例,在模版详情页面点击“Deploy”按钮,系统将跳转到EdgeOne Pages控制台。 在部署界面,开发者需要配置环境变量,这些配置项对应不同AI图片生成服务的API Key。不同模版会呈现不同的配置项列表,但必须确保至少有一个API Key配置正确且可用。 完成配置后点击“start deployment”按钮,项目就会开始自动部署。部署成功后,GitHub帐户下会生成一个与模版相同的项目,开发者可以通过git clone命令将其下载到本地进行进一步的开发和定制。 03 原生API调用详解 原生API调用方式让开发者能够精细控制每一个请求细节。在这一模式下,图片生成的基本流程是:前端发送生图参数到边缘函数,边缘函数调用AI模型API,最后将生成的图片返回给前端显示。 在前端部分,用户需要配置可用的AI模型列表。以src/pages/index.tsx文件中的核心代码为例: const res = await fetch("/v1/generate", { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ image: `${prompt} (${modelInfo.name} style)`, platform: platform.id, model: modelInfo.value || selectedModel, }), }); 边缘函数的处理逻辑位于functions/v1/generate/index.js文件中。函数首先接收前端传递的参数,然后检查对应平台的环境变量是否配置正确。 const validateToken = (platform) => { const tokens = { nebius: env.NEBIUS_TOKEN, huggingface: env.HF_TOKEN, replicate: env.REPLICATE_TOKEN, openai: env.OPENAI_API_KEY, fal: env.FAL_KEY, }; if (!tokens[platform]) { throw new Error( `${platform} API token is not configured. Please check your environment variables.` ); } }; 这种通过env访问环境变量的方式,有效防止了API密钥在代码中明文暴露,提高了应用的安全性。敏感信息存储在环境变量中,而非硬编码在源代码里。 环境变量检查完成后,函数会直接请求对应平台的图片生成模型API。以HuggingFace为例,其标准API请求核心代码如下: const response = await PROVIDERS.fetch(url, { headers: { Authorization: `Bearer ${token}`, "Content-Type": "application/json", }, method: "POST", body: JSON.stringify(data), }); EdgeOne Pages的AI图片生成模版已经支持了多种主流模型,包括HuggingFace、OpenAI、Replicate、Fal、Nebius等。生成图片后,函数将结果返回给前端,模版项目内已经内置了图片显示的完整逻辑。 04 AI SDK封装调用解析 与原生API调用方式相比,AI SDK封装调用通过统一接口简化了开发流程。它允许开发者使用相同的代码结构调用不同厂商的AI图片模型,显著提高了开发效率和多模型切换的便利性。 在AI SDK方式下,前端通过/api/generate接口发送请求: const response = await fetch(apiUrl, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify({ prompt, model, size, }), }); 这里需要注意的是,size参数需要提前设置,因为不同的模型支持的尺寸列表可能不一致。 例如,DALL-E 3支持“1024x1024”、“1024x1792”、“1792x1024”等尺寸,而Stable Diffusion可能支持“512x512”、“768x768”等不同规格。 EdgeOne Pages的AI SDK图片生成模版已经梳理了AI SDK支持模型对应的尺寸列表,相关配置位于components/modelSizeMapping.ts文件中。开发者可以直接使用这些预配置的尺寸映射,无需手动处理不同模型的尺寸兼容性问题。 AI SDK同样避免了密钥泄漏风险。函数在调用AI图片模型时,使用AI SDK暴露的experimental_generateImage对象来统一生成图片内容,密钥的获取由experimental_generateImage在内部自动处理。 const imageResult = await experimental_generateImage({ model: imageModel, prompt: prompt, size: size, // Use frontend-provided size }); 调用experimental_generateImage后,只需要读取函数返回的标准格式内容即可: const imageUrl = `data:image/png;base64,${imageResult.image.base64}`; return new Response( JSON.stringify({ images: [ { url: imageUrl, base64: imageResult.image.base64, }, ], }) ); 05 本地调试与持续集成 开发者在下载项目到本地后,可能需要进行本地开发、调试或预览。为了简化本地环境配置,EdgeOne提供了专门的CLI工具。 使用EdgeOne CLI需要先安装并登录,具体步骤可以参考EdgeOne CLI的文档介绍。在安装和登录后,开发者可以在本地项目下执行edgeone pages link命令,将项目与EdgeOne Pages控制台的项目进行关联。 执行该命令后,系统会提示输入EdgeOne Pages的项目名,即上文部署的模版项目的项目名称。输入项目名后,EdgeOne Pages控制台的环境变量会自动同步到本地。 关联成功后,本地项目根目录下会生成.env文件,包含所有已配置的环境变量列表。关联后,可以执行edgeone pages dev命令来进行本地部署,部署后可以在localhost:8088进行访问。 对于代码的自定义修改,开发者可以直接通过git提交项目到GitHub。EdgeOne Pages会检测GitHub的提交记录并自动进行重新部署,实现真正的持续集成与持续部署。 部署完成后,控制台会显示部署状态和预览界面,开发者可以立即验证功能是否正常工作。 AI图片生成集成后的应用界面,简洁直观。模板提供了开箱即用的用户界面,用户可以直接输入提示词、选择模型和调整参数,生成结果会即时显示在右侧区域。 在本地测试过程中,如果对生成效果或性能有特定要求,开发者可以灵活切换不同的AI模型提供商。不同的模型在风格表现、细节处理等方面各有特色,有些专注于写实风格,有些擅长艺术创作,实际测试是找到最适合项目的关键一步。 ( 文章来源:Tencent Cloud )

5 个月前
2025年10月29日,苹果公司发布了名为Pico-Banana-400K的大规模研究数据集,旨在推动文本引导图像编辑技术的发展。 数据集概况:Pico-Banana-400K包含40万张图像,其研究论文题为《Pico-Banana-400K:面向文本引导图像编辑的大规模数据集》。该数据集采用非商业性研究许可发布,学术机构和研究人员可免费使用。 构建过程:研究团队首先从OpenImages数据集中选取大量真实照片,以确保图像内容的多样性,涵盖人物、物体及含文字场景等。然后设计了35种不同类型的图像修改指令,将其归入像素与光度调整、以人为中心的编辑、场景构成与多主体编辑等八大类别。接着,把原始图像与编辑指令输入至Nanon-Banana模型进行图像编辑,生成结果由Gemini 2.5-Pro模型进行自动评估,只有通过双重验证的结果才会被纳入最终数据集。 数据集构成: 单轮监督微调整子集:包含25.8万个成功的单轮图像编辑示例,涵盖了35种编辑分类法的全部范围,为模型训练提供强大的监督信号。 多轮编辑集:包含7.2万个按顺序进行的编辑交互示例,序列长度从2到5轮不等,用于研究连续修改中的顺序编辑、推理与规划。 偏好集:包含5.6万个示例,由原始图像、指令、成功编辑和失败编辑组成的三联体,可用于训练奖励模型和应用直接偏好优化等对齐技术。 长短指令配对集:用于发展指令重写与摘要能力。 发布意义:尽管Nanon-Banana在精细空间控制、布局外推和文字排版处理方面仍存在局限,但Pico-Banana-400K为下一代文本引导图像编辑模型提供了一个坚实、可复现的训练与评测基础。目前,相关研究论文已发布于预印本平台arXiv,完整的Pico-Banana-400K数据集也已在GitHub上向全球研究者免费开放。 (新闻来源:github.com/apple/pico-banana-400k )

9 个月前
2024年8月,德国黑森林AI实验室(Black Forest Labs)正式从隐身模式走向公众视野,发布了备受瞩目的FLUX.1模型套件。这套模型在各个方面都达到了新的行业标准,迅速在AI图像生成领域掀起波澜。FLUX.1模型在用户评价中超越了Midjourney和OpenAI的DALL-E,在Hugging Face平台上的下载量占据榜首。 黑森林AI实验室在今年五月份推出的名为“Kontext”的AI模型系列,不仅能生成图像,还能在图像生成之后进行复杂的编辑。这种双重能力让Kontext在拥挤的AI视觉模型市场中脱颖而出,与市面上的DALL·E或Stable Diffusion不同,Kontext在统一架构中同时训练图像生成和编辑任务,实现更准确的图像理解与上下文编辑能力。 .

1 年前
Shadcn/ui 是一个功能强大的 UI 组件库,结合文本提示和图像生成来创建 UI 可以为用户带来独特的设计体验。

1 年前
语言大模型(LLM)能够生成图片和视频的能力主要依赖于其多模态学习和生成技术。

1 年前
DALL·E 2可以根据文本生成图像以及对现有图像进行编辑等。DALL·E 3相比DALL·E 2在生成的图像质量、对提示词的理解、上下文理解、处理复杂任务等方面有提升。

1 天前
AiPPT: 一句话、一分钟、一键搞定

8 天前
Ralph 就是一个让 AI "自己干活直到做完"的循环机制,特别适合复杂的编程任务,解放人力。这里介绍具体怎么搭建和使用 Ralph 循环。 📋 前置准备 你需要准备以下内容: 工具 用途 Claude Code Anthropic 的 AI 编程助手 CLI Docker Desktop 提供隔离的沙盒环境 Anthropic API Key 调用 Claude API 🛠️ 搭建步骤 方法一:使用 Claude Code 插件(推荐) Step 1: 安装 Claude Code # 安装 Claude Code CLI npm install -g @anthropic-ai/claude-code Step 2: 初始化项目 mkdir my-ralph-project cd my-ralph-project claude init Step 3: 添加插件市场 claude plugins add-marketplace Step 4: 安装 Ralph Wiggum 插件 claude plugins install ralph-wiggum Step 5: 配置 Stop Hook 在 .claude/hooks/ 目录下创建 stop-hook.json: { "hook_type": "stop", "decision": "block", "conditions": { "check_tests": true, "check_type_errors": true, "check_git_changes": true }, "max_iterations": 20, "prompt": "任务未完成,请继续迭代修复问题" } 方法二:手动搭建(完全控制) Step 1: 创建项目结构 my-ralph-project/ ├── .claude/ │ ├── hooks/ │ │ └── stop-hook.sh │ ├── skills/ │ │ └── ralph-loop.json │ └── config.json ├── prd/ │ └── requirements.json └── workspace/ Step 2: 配置核心文件 config.json - 核心配置 { "max_iterations": 15, "auto_commit": true, "run_tests_after_each_iteration": true, "stop_conditions": { "all_tests_pass": true, "no_type_errors": true, "prd_completed": true } } skills/ralph-loop.json - 技能定义 { "name": "ralph-loop", "description": "自主迭代循环实现 PRD 任务", "trigger": "when_task_incomplete", "actions": [ "analyze_current_state", "identify_blockers", "fix_issues", "run_tests", "commit_if_passing" ] } hooks/stop-hook.sh - Stop Hook 脚本 #!/bin/bash # 检查测试是否通过 TESTS_PASS=$(npm test 2>&1 | grep -c "passed") # 检查是否有类型错误 TYPE_ERRORS=$(npx tsc --noEmit 2>&1 | grep -c "error") # 检查 PRD 是否完成 PRD_COMPLETE=$(node check-prd.js) if [ "$TESTS_PASS" -eq 0 ] || [ "$TYPE_ERRORS" -gt 0 ] || [ "$PRD_COMPLETE" = "false" ]; then echo "BLOCK: 任务未完成,继续迭代" exit 1 else echo "ALLOW: 任务已完成" exit 0 fi Step 3: 准备 PRD 文件 prd/requirements.json { "project_name": "My Feature", "tasks": [ { "id": 1, "description": "创建用户登录页面", "criteria": ["表单验证正常", "API 调用成功", "错误处理完善"], "status": "pending" }, { "id": 2, "description": "实现用户注册功能", "criteria": ["邮箱验证", "密码强度检查", "重复密码确认"], "status": "pending" } ] } 🚀 使用方法 启动 RALPH 循环 # 方法一:插件方式 claude run --skill ralph-loop --prd ./prd/requirements.json # 方法二:Docker 隔离环境 docker run -it \ -v $(pwd):/workspace \ -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \ claude-ralph:latest 监控循环状态 # 查看当前迭代次数 cat .ralph/iteration_count # 查看任务完成状态 cat .ralph/task_status.json # 查看日志 tail -f .ralph/loop.log 🔧 高级配置 1. 自定义 Stop Hook 规则 { "stop_conditions": { "all_tests_pass": { "enabled": true, "command": "npm test", "success_pattern": "all tests passed" }, "no_lint_errors": { "enabled": true, "command": "npm run lint", "success_pattern": "no problems" }, "coverage_threshold": { "enabled": true, "threshold": 80 } } } 2. 添加代码审查步骤 { "after_each_iteration": [ "run_tests", "run_linter", "code_review", "commit_if_passing" ], "code_review_prompt": "审查代码质量、安全性、性能问题" } 3. 设置成本控制 { "cost_limits": { "max_tokens_per_iteration": 50000, "max_total_cost": 50, "alert_at_cost": 30 } } 📊 典型工作流程 ┌─────────────────────────────────────────────┐ │ 1. Claude 读取 PRD 任务列表 │ └─────────────────┬───────────────────────────┘ ↓ ┌─────────────────────────────────────────────┐ │ 2. 选择下一个待完成任务 │ └─────────────────┬───────────────────────────┘ ↓ ┌─────────────────────────────────────────────┐ │ 3. 实现代码、编写测试 │ └─────────────────┬───────────────────────────┘ ↓ ┌─────────────────────────────────────────────┐ │ 4. 运行测试套件 │ └─────────────────┬───────────────────────────┘ ↓ ┌─────────────────────────────────────────────┐ │ 5. Stop Hook 检查是否完成 │ │ • 测试通过? │ │ • 无类型错误? │ │ • PRD 要求满足? │ └─────────────────┬───────────────────────────┘ ↓ ┌───────┴───────┐ ↓ ↓ 未完成 完成 ↓ ↓ 返回步骤 2 结束循环 💡 最佳实践 建议 说明 PRD 要清晰 任务描述具体、可验证,避免模糊需求 设置最大迭代 防止无限循环消耗过多成本 使用 Docker 隔离环境,避免污染本地系统 定期检查 每 10 轮查看一次进度和日志 成本监控 设置预算警报,避免超支 ⚠️ 注意事项 成本控制:每次迭代消耗 tokens,长时间运行成本较高 质量检查:AI 可能"认为"完成但实际有 bug,需要严格测试 安全边界:在沙盒环境运行,避免 AI 误删重要文件 人工介入:复杂任务仍需人工审查结果
Minimax(海螺AI)已由大模型名Minimax替换原海螺AI。现海螺AI为Minimax视频生成产品名。
海螺AI