> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xhuoapi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Instrucciones de integración de la API de generación de imágenes de Flux

> Flux Image Generation 集成指南 - XHuoAPI

Este documento presentará una guía de integración de la API de generación de imágenes de Flux, que permite generar imágenes oficiales de Flux mediante la entrada de parámetros personalizados.

## Proceso de solicitud

Para utilizar la API, primero debe ir a la página correspondiente de la [API de generación de imágenes de Flux](https://api.xhuoapi.ai/documents/6b9197c5-7a3f-4878-a43f-7f94e7e66394) para solicitar el servicio correspondiente. Una vez en la página, haga clic en el botón "Acquire", como se muestra en la imagen:

![](https://cdn.xhuoapi.ai/q6ytrc.png)

Si aún no ha iniciado sesión o se ha registrado, será redirigido automáticamente a la página de inicio de sesión que le invita a registrarse e iniciar sesión. Después de registrarse e iniciar sesión, será redirigido automáticamente a la página actual.

En la primera solicitud, se le otorgará un crédito gratuito, lo que le permitirá utilizar la API de forma gratuita.

## Uso básico

Primero, debe comprender la forma básica de uso, que consiste en ingresar la palabra clave `prompt`, la acción `action` y el tamaño de la imagen `size`, para obtener el resultado procesado. Primero, necesita pasar un campo `action`, cuyo valor es `generate`, y luego también necesitamos ingresar la palabra clave, el contenido específico es el siguiente:

<p>
  <img src="https://cdn.xhuoapi.ai/wz85jt.png" width="500" className="m-auto" />
</p>

Aquí podemos ver que hemos configurado los encabezados de la solicitud, que incluyen:

* `accept`: el formato de respuesta que desea recibir, aquí se establece como `application/json`, es decir, formato JSON.
* `authorization`: la clave para llamar a la API, que puede seleccionarse directamente después de la solicitud.

Además, se ha configurado el cuerpo de la solicitud, que incluye:

* `action`: la acción de la tarea de generación de imágenes.
* `size`: el tamaño de la imagen generada.
* `count`: la cantidad de imágenes generadas, el valor predeterminado es 1, este parámetro solo es válido para tareas de generación de imágenes, no es válido para tareas de edición.
* `prompt`: la palabra clave.
* `model`: el modelo de generación, predeterminado `flux-dev`.
* `callback_url`: la URL donde se necesita la respuesta.

El parámetro `size` tiene algunas restricciones especiales, que se dividen principalmente en dos tipos: proporción de ancho x alto y proporción de imagen `x:y`, los detalles son los siguientes:

| Modelo             | Rango                                                             |
| ------------------ | ----------------------------------------------------------------- |
| flux-2-flex        | Soporta proporción de ancho x >= 64, debe ser múltiplo de 32      |
| flux-2-pro         | Soporta proporción de ancho x >= 64, debe ser múltiplo de 32      |
| flux-2-max         | Soporta proporción de ancho x >= 64, debe ser múltiplo de 32      |
| flux-pro-1.1       | Soporta proporción de 256 \<= x \<= 1440, debe ser múltiplo de 32 |
| flux-dev           | Soporta proporción de 256 \<= x \<= 1440, debe ser múltiplo de 32 |
| flux-pro-1.1-ultra | No soporta proporción de ancho, soporta proporción de imagen      |
| flux-kontext-pro   | No soporta proporción de ancho, soporta proporción de imagen      |
| flux-kontext-max   | No soporta proporción de ancho, soporta proporción de imagen      |

Proporciones de imagen de referencia: "1:1", "16:9", "21:9", "3:2", "2:3", "4:5", "5:4", "3:4", "4:3", "9:16", "9:21",

Después de seleccionar, puede ver que a la derecha también se ha generado el código correspondiente, como se muestra en la imagen:

<p>
  <img src="https://cdn.xhuoapi.ai/8q7aux.png" width="500" className="m-auto" />
</p>

Haga clic en el botón "Try" para realizar la prueba, como se muestra en la imagen anterior, aquí hemos obtenido el siguiente resultado:

```json theme={null}
{
  "success": true,
  "task_id": "226eb763-9eab-4d06-ad57-d59753a03307",
  "trace_id": "089f8b46-0167-4f25-88ee-3c3f88d80e84",
  "data": [
    {
      "prompt": "a white siamese cat",
      "image_url": "https://fal.media/files/lion/NVhtlwwGYQD6HrGaEfrzu_341484fad6d84b21b73f4f8824a3f98a.png",
      "timings": 1752743801
    },
    {
      "prompt": "a white siamese cat",
      "image_url": "https://fal.media/files/monkey/8UEQpFbQCYVOK1wKP3aV0_9bbc26fad64049b18d0244b99ef66ad1.png",
      "timings": 1752743801
    }
  ]
}
```

El resultado devuelto tiene varios campos, que se describen a continuación:

* `success`, el estado de la tarea de generación de video en este momento.
* `task_id`, el ID de la tarea de generación de video en este momento.
* `trace_id`, el ID de seguimiento de la generación de video en este momento.
* `data`, la lista de resultados de la tarea de generación de imágenes en este momento.
  * `image_url`, el enlace de la tarea de generación de imágenes en este momento.
  * `prompt`, la palabra clave.

Como se puede ver, hemos obtenido información de imagen satisfactoria, solo necesitamos obtener la imagen de Flux generada según la dirección del enlace de imagen en `data`.

Además, si desea generar el código de integración correspondiente, puede copiarlo directamente, por ejemplo, el código de CURL es el siguiente:

```shell theme={null}
curl -X POST 'https://api.xhuoapi.ai/v1/flux/images' \
-H 'authorization: Bearer {token}' \
-H 'accept: application/json' \
-H 'content-type: application/json' \
-d '{
  "action": "generate",
  "prompt": "a white siamese cat",
  "model": "flux-kontext-pro",
  "count": 2
}'
```

## Tarea de edición de imágenes

Si desea editar una imagen, primero debe pasar el enlace de la imagen que necesita editar en el parámetro `image_url`, en este momento `action` solo admite `edit`, y puede especificar el siguiente contenido:

* model: el modelo utilizado para la tarea de edición de imágenes, actualmente admite `flux-kontext-max`, `flux-kontext-pro`.
* image\_url: subir la imagen que necesita editar.

El ejemplo de llenado es el siguiente:

<p>
  <img src="https://cdn.xhuoapi.ai/jn9da5.png" width="500" className="m-auto" />
</p>

Después de completar, se generó automáticamente el siguiente código:

<p>
  <img src="https://cdn.xhuoapi.ai/6cwxb8.png" width="500" className="m-auto" />
</p>

El código correspondiente:

```python theme={null}
import requests

url = "https://api.xhuoapi.ai/v1/flux/images"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "action": "edit",
    "prompt": "a white siamese cat",
    "model": "flux-kontext-pro",
    "image_url": "https://cdn.xhuoapi.ai/ytj2qy.png"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
```

Al hacer clic en ejecutar, puede ver que se obtiene un resultado de inmediato, como se muestra a continuación:

```json theme={null}
{
  "success": true,
  "task_id": "2a7979ff-1f77-4380-92c6-a2dc37c3b4c8",
  "trace_id": "732b65c0-48d9-49f7-b568-64e5acffe4c0",
  "data": [
    {
      "prompt": "a white siamese cat",
      "image_url": "https://fal.media/files/monkey/aEUXJZ6Faj9YXUCQVs01Q_af0cea56c558441c9ba8df67b200812d.png",
      "timings": 1752744073
    }
  ]
}
```

Como se puede ver, el efecto generado es el resultado de editar la imagen original, similar al resultado anterior.

## Callback asíncrono

Debido a que el tiempo de generación de la API de Flux Images Generation es relativamente largo, aproximadamente de 1 a 2 minutos, si la API no responde durante mucho tiempo, la solicitud HTTP mantendrá la conexión, lo que provocará un consumo adicional de recursos del sistema. Por lo tanto, esta API también ofrece soporte para callbacks asíncronos.

El flujo general es el siguiente: cuando el cliente inicia la solicitud, debe especificar un campo adicional `callback_url`. Después de que el cliente realiza la solicitud a la API, la API devolverá inmediatamente un resultado que incluye un campo `task_id`, que representa el ID de la tarea actual. Cuando la tarea se complete, el resultado de la imagen generada se enviará al `callback_url` especificado por el cliente en formato JSON POST, que también incluirá el campo `task_id`, de modo que el resultado de la tarea se pueda asociar mediante el ID.

A continuación, entenderemos cómo operar específicamente a través de un ejemplo.

Primero, el callback de Webhook es un servicio que puede recibir solicitudes HTTP, y los desarrolladores deben reemplazarlo con la URL de su propio servidor HTTP. Para facilitar la demostración, utilizamos un sitio web de ejemplo de Webhook público [https://webhook.site/](https://webhook.site/), al abrir este sitio se obtiene una URL de Webhook, como se muestra en la imagen:

![](https://cdn.xhuoapi.ai/cjjfly.png)

Copie esta URL y podrá usarla como Webhook, el ejemplo aquí es `https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8ab`.

A continuación, podemos establecer el campo `callback_url` como la URL de Webhook mencionada anteriormente, al mismo tiempo que llenamos los parámetros correspondientes, el contenido específico se muestra en la imagen:

<p>
  <img src="https://cdn.xhuoapi.ai/wm6caw.png" width="500" className="m-auto" />
</p>

Al hacer clic en ejecutar, se puede observar que se obtiene inmediatamente un resultado, como se muestra a continuación:

```
{
  "task_id": "6a97bf49-df50-4129-9e46-119aa9fca73c"
}
```

Después de un momento, podemos observar el resultado de la imagen generada en `https://webhook.site/3d32690d-6780-4187-a65c-870061e8c8ab`, como se muestra en la imagen:

![](https://cdn.xhuoapi.ai/v23lot.png)

El contenido es el siguiente:

```json theme={null}
{
  "success": true,
  "task_id": "6a97bf49-df50-4129-9e46-119aa9fca73c",
  "trace_id": "9b4b1ff3-90f2-470f-b082-1061ec2948cc",
  "data": [
    {
      "prompt": "un gato siamés blanco",
      "image_url": "https://sf-maas-uat-prod.oss-cn-shanghai.aliyuncs.com/outputs/f4f8d407-377a-408a-82d0-427a5a836f09_0.png",
      "seed": 1698551532,
      "timings": {
        "inference": 3.328
      }
    }
  ]
}
```

Se puede ver que en el resultado hay un campo `task_id`, los otros campos son similares a los mencionados anteriormente, y a través de este campo se puede lograr la asociación de la tarea.

## Manejo de errores

Al llamar a la API, si se encuentra con un error, la API devolverá el código de error y la información correspondiente. Por ejemplo:

* `400 token_mismatched`: Solicitud incorrecta, posiblemente debido a parámetros faltantes o inválidos.
* `400 api_not_implemented`: Solicitud incorrecta, posiblemente debido a parámetros faltantes o inválidos.
* `401 invalid_token`: No autorizado, token de autorización inválido o faltante.
* `429 too_many_requests`: Demasiadas solicitudes, ha superado el límite de tasa.
* `500 api_error`: Error interno del servidor, algo salió mal en el servidor.

### Ejemplo de respuesta de error

```json theme={null}
{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "la recuperación falló"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}
```

## Conclusión

A través de este documento, ha aprendido cómo utilizar la API de Flux Images Generation para generar imágenes mediante la entrada de palabras clave. Esperamos que este documento le ayude a integrar y utilizar mejor esta API. Si tiene alguna pregunta, no dude en ponerse en contacto con nuestro equipo de soporte técnico.
