Skip to content
OpenSmartRoute
Skillv1.0.0

ideogram-deploy-integration

Deploy Ideogram integrations to Vercel, Cloud Run, and Docker platforms. Use when deploying Ideogram-powered applications to production, configuring platform-specific secrets, or setting up deployment

by jeremylongshore(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from jeremylongshore/tons-of-skills-marketplace (skills/.curated/ideogram-deploy-integration/SKILL.md). Install upstream with npx skills add jeremylongshore/tons-of-skills-marketplace --skill ideogram-deploy-integration. Copyright stays with the author (MIT).

Ideogram Deploy Integration

Overview

Deploy Ideogram image generation endpoints to Vercel, Cloud Run, or Docker. Key concerns: API key security, function timeouts (generation takes 5-15s), image persistence (URLs expire), and CDN integration for serving generated images.

Prerequisites

  • IDEOGRAM_API_KEY configured
  • Cloud storage for generated images (S3, GCS, or R2)
  • Platform CLI installed (vercel, gcloud, or docker)

Instructions

Step 1: API Endpoint (Next.js / Vercel)

// app/api/generate/route.ts
import { NextRequest, NextResponse } from "next/server";
import { S3Client, PutObjectCommand } from "@aws-sdk/client-s3";

const s3 = new S3Client({ region: process.env.AWS_REGION });

export async function POST(req: NextRequest) {
  const { prompt, style, aspectRatio } = await req.json();

  if (!prompt || prompt.length > 10000) {
    return NextResponse.json({ error: "Invalid prompt" }, { status: 400 });
  }

  // Generate image via Ideogram
  const response = await fetch("https://api.ideogram.ai/generate", {
    method: "POST",
    headers: {
      "Api-Key": process.env.IDEOGRAM_API_KEY!,
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      image_request: {
        prompt,
        model: "V_2",
        style_type: style || "AUTO",
        aspect_ratio: aspectRatio || "ASPECT_1_1",
        magic_prompt_option: "AUTO",
      },
    }),
  });

  if (!response.ok) {
    const err = await response.text();
    return NextResponse.json({ error: `Generation failed: ${response.status}` }, { status: 502 });
  }

  const result = await response.json();
  const image = result.data[0];

  // Download and persist to S3 (Ideogram URLs expire)
  const imgResponse = await fetch(image.url);
  const buffer = Buffer.from(await imgResponse.arrayBuffer());
  const key = `generated/${image.seed}-${Date.now()}.png`;

  await s3.send(new PutObjectCommand({
    Bucket: process.env.S3_BUCKET!,
    Key: key,
    Body: buffer,
    ContentType: "image/png",
  }));

  return NextResponse.json({
    url: `https://${process.env.CDN_DOMAIN}/${key}`,
    seed: image.seed,
    resolution: image.resolution,
    style: image.style_type,
  });
}

export const maxDuration = 60; // Vercel function timeout

Step 2: Vercel Configuration

{
  "functions": {
    "app/api/generate/route.ts": {
      "maxDuration": 60
    }
  },
  "env": {
    "IDEOGRAM_API_KEY": "@ideogram-api-key"
  }
}
set -euo pipefail
# Set secrets
vercel env add IDEOGRAM_API_KEY production
vercel env add S3_BUCKET production
vercel env add CDN_DOMAIN production

Step 3: Cloud Run Deployment

FROM node:20-slim
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
RUN npm run build
EXPOSE 3000
# Cloud Run sets PORT automatically
CMD ["node", "dist/server.js"]
set -euo pipefail
# Store API key in Secret Manager
echo -n "$IDEOGRAM_API_KEY" | gcloud secrets create ideogram-api-key --data-file=-

# Deploy with secret mount
gcloud run deploy ideogram-service \
  --image=gcr.io/$PROJECT_ID/ideogram-service \
  --set-secrets=IDEOGRAM_API_KEY=ideogram-api-key:latest \
  --timeout=120 \
  --memory=512Mi \
  --max-instances=10 \
  --allow-unauthenticated

Step 4: Docker Compose (Self-Hosted)

# docker-compose.yml
services:
  ideogram-api:
    build: .
    ports:
      - "3000:3000"
    environment:
      - IDEOGRAM_API_KEY=${IDEOGRAM_API_KEY}
      - S3_BUCKET=${S3_BUCKET}
      - NODE_ENV=production
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
      interval: 30s
      timeout: 10s
      retries: 3
    restart: unless-stopped

Step 5: Health Check Endpoint

// app/api/health/route.ts
export async function GET() {
  const checks = {
    ideogram: {
      configured: !!process.env.IDEOGRAM_API_KEY,
      keyLength: process.env.IDEOGRAM_API_KEY?.length ?? 0,
    },
    storage: {
      configured: !!process.env.S3_BUCKET,
    },
  };

  const healthy = checks.ideogram.configured && checks.storage.configured;

  return Response.json({
    status: healthy ? "healthy" : "degraded",
    checks,
  }, { status: healthy ? 200 : 503 });
}

Error Handling

Issue Cause Solution
Function timeout Generation takes 5-15s Set timeout to 60s+
Content filtered Prompt policy violation Return 422 with user-friendly message
Storage upload fails Bad credentials Verify S3/GCS permissions
Rate limited Too many concurrent users Queue generation jobs with BullMQ
Expired URL Late download Download immediately in same request

Output

  • Deployed API endpoint with image generation
  • Images persisted to durable storage with CDN URLs
  • Health check endpoint for monitoring
  • Platform-specific configuration files

Examples

artifact=sha256:opaque; env=staging; canary=sandbox-gallery; health=pass; rights=test-owned; destination=approved; output_retention=none; rollback=release-r31 supports controlled promotion.

Resources

Next Steps

For event-driven patterns, see ideogram-webhooks-events.

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/jeremylongshore-tons-of-skills-marketplace-ideogram-depl-744785/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

jeremylongshore-tons-of-skills-marketplace-ideogram-depl-744785.ocm.jsonjson
{
  "ocm": "1",
  "id": "jeremylongshore-tons-of-skills-marketplace-ideogram-depl-744785",
  "kind": "skill",
  "name": "ideogram-deploy-integration",
  "description": "Deploy Ideogram integrations to Vercel, Cloud Run, and Docker platforms. Use when deploying Ideogram-powered applications to production, configuring platform-specific secrets, or setting up deployment pipelines. Trigger with phrases like \"deploy ideogram\", \"ideogram Vercel\", \"ideogram production deploy\", \"ideogram Cloud Run\", \"ideogram Docker\".",
  "publisher": "jeremylongshore",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "coding"
    ],
    "tags": [
      "skill-md",
      "saas",
      "ideogram",
      "deployment",
      "skills-sh"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Deploy Ideogram integrations to Vercel, Cloud Run, and Docker platforms. Use when deploying Ideogram-powered applications to production, configuring platform-specific secrets, or setting up deployment pipelines. Trigger with phrases like \"deploy ideogram\", \"ideogram Vercel\", \"ideogram production deploy\", \"ideogram Cloud Run\", \"ideogram Docker\"."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "skills.sh",
      "repository": "https://github.com/jeremylongshore/tons-of-skills-marketplace",
      "path": "skills/.curated/ideogram-deploy-integration/SKILL.md",
      "ref": "HEAD",
      "url": "https://github.com/jeremylongshore/tons-of-skills-marketplace/blob/HEAD/skills/.curated/ideogram-deploy-integration/SKILL.md",
      "key": "jeremylongshore/tons-of-skills-marketplace/skills/.curated/ideogram-deploy-integration/SKILL.md"
    },
    "compatibility": "Designed for Claude Code",
    "allowed_tools": [
      "Read,",
      "Write,",
      "Edit,",
      "Bash(vercel:*),",
      "Bash(gcloud:*),",
      "Bash(docker:*)"
    ],
    "license": "MIT"
  },
  "instructions": "# Ideogram Deploy Integration\n\n## Overview\n\nDeploy Ideogram image generation endpoints to Vercel, Cloud Run, or Docker. Key concerns: API key security, function timeouts (generation takes 5-15s), image persistence (URLs expire), and CDN integration for serving generated images.\n\n## Prerequisites\n\n- `IDEOGRAM_API_KEY` configured\n- Cloud storage for generated images (S3, GCS, or R2)\n- Platform CLI installed (vercel, gcloud, or docker)\n\n## Instructions\n\n### Step 1: API Endpoint (Next.js / Vercel)\n\n```typescript\n// app/api/generate/route.ts\nimport { NextRequest, NextResponse } from \"next/server\";\n",
  "cost": {
    "context_tokens": 1342
  }
}

Fetch it by URL: GET /api/v1/registry/jeremylongshore-tons-of-skills-marketplace-ideogram-depl-744785/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.