Flux Development Model API

Fast development model for quick iterations and prototyping

✓ Fast generation

✓ Development optimized

✓ 50 credits

✓ All aspect ratios

Authenticatie

Gebruik je Doitong API-key om toegang te krijgen tot Flux Dev API via de Doitong API. Voeg deze toe aan de GraphQL-mutatie of de REST API-headers.

Belangrijk: Houd je Doitong API-key veilig en deel deze nooit in client-side code. Voer API-aanroepen altijd uit vanaf je eigen backend-server.
// GraphQL Header
{
  "Authorization": "Bearer YOUR_API_KEY"
}

// REST Header
"X-API-Key": "YOUR_API_KEY"

Snel aan de slag

Ga binnen enkele minuten aan de slag met Flux Dev API. Volg deze eenvoudige stappen om je eerste text to image te genereren.

Stap 1: Ontvang je API-key

Maak een Doitong-account aan en ga naar je dashboard om een API-key te genereren.

Stap 2: Doe je eerste verzoek

Gebruik een van de onderstaande codevoorbeelden voor je eerste API-aanroep.

curl -X POST https://api.doitong.com/graphql \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "query": "mutation Generate($input: GenerateInput!) { generate(input: $input) { id status type provider url metadata creditCost } }",
    "variables": {
      "input": {
        "type": "IMAGE",
        "provider": "flux-dev",
        "input": {
          "text": "A futuristic city with flying cars and neon lights"
        },
        "options": {
          "width": 1024,
          "height": 1024
        }
      }
    }
  }'
const response = await fetch('https://api.doitong.com/graphql', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': 'Bearer YOUR_API_KEY'
  },
  body: JSON.stringify({
    query: `
      mutation GenerateImage($input: ImageGenerationInput!) {
        generateImage(input: $input) {
          id
          url
          width
          height
        }
      }
    `,
    variables: {
      input: {
        service: 'flux-dev',
        prompt: 'A futuristic city with flying cars and neon lights',
        width: 1024,
        height: 1024
      }
    }
  })
});

const data = await response.json();
console.log('Image:', data.data.generateImage);
import requests
import json

url = "https://api.doitong.com/graphql"
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer YOUR_API_KEY"
}

query = """
mutation Generate($input: GenerateInput!) {
  generate(input: $input) {
    id
    status
    type
    provider
    url
    metadata
    creditCost
  }
}
"""

variables = {
    "input": {
        "type": "IMAGE",
        "provider": "flux-dev",
        "input": {
            "text": "A futuristic city with flying cars and neon lights"
        },
        "options": {
            "width": 1024,
            "height": 1024
        }
    }
}

response = requests.post(url, json={
    "query": query,
    "variables": variables
}, headers=headers)

data = response.json()
print("Result:", data["data"]["generate"])
mutation Generate($input: GenerateInput!) {
  generate(input: $input) {
    id
    status
    type
    provider
    url
    metadata
    creditCost
    createdAt
  }
}

# Variables
{
  "input": {
    "type": "IMAGE",
    "provider": "flux-dev",
    "input": {
      "text": "A futuristic city with flying cars and neon lights"
    },
    "options": {
      "width": 1024,
      "height": 1024,
      "version": "flux-dev",
      "quality": "high"
    }
  }
}

Tarieven

Flux Dev API maakt gebruik van een prijsmodel op basis van credits. Credits worden verbruikt op basis van de complexiteit en de duur van de gegenereerde content.

Functie Credits Beschrijving
Standaardresolutie 10-20 Credits 512x512 tot 1024x1024 pixels
Hoge resolutie 30-50 Credits 2048x2048 pixels en hoger

API-endpoints

Flux Dev API is beschikbaar via ons universele GraphQL-endpoint.

GraphQL-endpoint

POST https://api.doitong.com/graphql

REST-endpoint

POST https://api.doitong.com/v1/text_to_image

Parameters

Beschikbare parameters voor Flux Dev API-aanvragen:

Parameter Type Verplicht Beschrijving
service String Yes Service-ID: "flux-dev"
prompt String Yes Tekstuele beschrijving van wat er gegenereerd moet worden
width Integer No Afbeeldingsbreedte in pixels (standaard: 1024)
height Integer No Afbeeldingshoogte in pixels (standaard: 1024)
version String No Model version: "flux-dev"
webhookUrl String No URL voor het ontvangen van voltooiingsmeldingen

Responsformaat

Alle API-antwoorden volgen een consistent formaat:

Succesvolle respons

{
  "data": {
    "generateimage": {
      "id": "abc123xyz",
      "status": "processing",
      "url": null,
      "webhookUrl": "https://your-webhook.com/callback",
      "createdAt": "2024-01-01T00:00:00Z"
    }
  }
}

Voltooide respons

{
  "data": {
    "generateimage": {
      "id": "abc123xyz",
      "status": "completed",
      "url": "https://cdn.doitong.com/outputs/abc123xyz.jpg",
      "duration": null,
      "createdAt": "2024-01-01T00:00:00Z"
    }
  }
}

Foutafhandeling

De API maakt gebruik van standaard HTTP-statuscodes en retourneert gedetailleerde foutmeldingen.

Veelvoorkomende foutcodes

Statuscode Fouttype Beschrijving
400 Bad Request Invalid parameters or malformed request
401 Unauthorized Missing or invalid API key
402 Payment Required Insufficient credits
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Server error, please retry

Foutrespons-formaat

{
  "errors": [
    {
      "message": "Insufficient credits for this operation",
      "extensions": {
        "code": "INSUFFICIENT_CREDITS",
        "creditsRequired": 100,
        "creditsAvailable": 50
      }
    }
  ]
}

Webhooks

Ontvang realtime meldingen zodra de generatie van je text to image is voltooid.

Webhooks instellen

Include a <code>webhookUrl</code> parameter in your request to receive a POST notification when processing is complete.

Webhook-payload

{
  "id": "abc123xyz",
  "status": "completed",
  "url": "https://cdn.doitong.com/outputs/abc123xyz.jpg",
  "service": "flux-dev",
  "createdAt": "2024-01-01T00:00:00Z",
  "completedAt": "2024-01-01T00:01:00Z",
  "metadata": {
    "duration": null,
    "width": 1920,
    "height": 1080
  }
}

Webhook-beveiliging

Alle webhook-verzoeken bevatten een signature-header ter verificatie:

X-Doitong-Signature: sha256=abc123...

Rate limits

Om eerlijk gebruik en systeemstabiliteit te garanderen, gelden de volgende limieten:

Abonnement Requests/minuut Gelijktijdige taken Dagelijkse limiet
Gratis 10 1 100
Starter 30 3 1,000
Pro 60 10 10,000
Enterprise Maatwerk Maatwerk Onbeperkt
Rate limit-headers: Controleer de respons-headers voor de huidige status van je limieten:
  • X-RateLimit-Limit: Maximum requests per window
  • X-RateLimit-Remaining: Requests remaining
  • X-RateLimit-Reset: Window reset timestamp

Best practices

1. Optimaliseer je prompts

Schrijf duidelijke, beschrijvende prompts voor de beste resultaten:

  • Be specific about visual elements, style, and mood
  • Include details about lighting, camera angles, and composition
  • Avoid contradictory or impossible requests

2. Verwerk asynchrone processen

Generatie is asynchroon. Implementeer polling of webhooks op de juiste manier:

// Polling example
async function pollStatus(jobId) {
  let status = 'processing';
  while (status === 'processing') {
    await sleep(2000); // Wait 2 seconds
    const result = await checkJobStatus(jobId);
    status = result.status;
  }
  return result;
}

3. Foutherstel

Implementeer retry-logica met exponential backoff:

async function retryWithBackoff(fn, maxRetries = 3) {
  for (let i = 0; i < maxRetries; i++) {
    try {
      return await fn();
    } catch (error) {
      if (i === maxRetries - 1) throw error;
      await sleep(Math.pow(2, i) * 1000);
    }
  }
}

4. Monitor je creditverbruik

Houd je verbruik bij om onderbrekingen te voorkomen:

  • Check credit balance before large batch operations
  • Set up alerts for low credit thresholds
  • Implement credit-aware request queuing

Klaar om te beginnen?

Sluit je aan bij duizenden developers die Flux Dev API gebruiken om geweldige content te maken

Ontvang nu je API-key Bekijk tarieven