Wymagania wstępne
- Konto APIXO (zarejestruj się za darmo)
- Klucz API (uzyskaj go tutaj)
Krok 1: Zgłoś zadanie generowania
- cURL
- JavaScript
- Python
Kopiuj
Zapytaj AI
curl -X POST https://api.apixo.ai/api/v1/generateTask/nano-banana \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"request_type": "async",
"input": {
"mode": "text-to-image",
"prompt": "A serene Japanese garden with cherry blossoms, golden hour lighting, photorealistic",
"aspect_ratio": "16:9"
}
}'
Kopiuj
Zapytaj AI
const API_KEY = 'YOUR_API_KEY';
const MODEL = 'nano-banana';
// Step 1: Submit task
const submitResponse = await fetch(
`https://api.apixo.ai/api/v1/generateTask/${MODEL}`,
{
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
request_type: 'async',
input: {
mode: 'text-to-image',
prompt: 'A serene Japanese garden with cherry blossoms, golden hour lighting, photorealistic',
aspect_ratio: '16:9',
},
}),
}
);
const { data } = await submitResponse.json();
console.log('Task ID:', data.taskId);
Kopiuj
Zapytaj AI
import requests
import time
API_KEY = 'YOUR_API_KEY'
MODEL = 'nano-banana'
# Step 1: Submit task
response = requests.post(
f'https://api.apixo.ai/api/v1/generateTask/{MODEL}',
headers={
'Authorization': f'Bearer {API_KEY}',
'Content-Type': 'application/json',
},
json={
'request_type': 'async',
'input': {
'mode': 'text-to-image',
'prompt': 'A serene Japanese garden with cherry blossoms, golden hour lighting, photorealistic',
'aspect_ratio': '16:9',
},
}
)
task_id = response.json()['data']['taskId']
print(f'Task ID: {task_id}')
Kopiuj
Zapytaj AI
{
"code": 200,
"message": "success",
"data": {
"taskId": "task_abc123xyz"
}
}
Krok 2: Odpytywanie o wyniki
Poczekaj kilka sekund, a następnie sprawdź status zadania:- cURL
- JavaScript
- Python
Kopiuj
Zapytaj AI
curl "https://api.apixo.ai/api/v1/statusTask/nano-banana?taskId=task_abc123xyz" \
-H "Authorization: Bearer YOUR_API_KEY"
Kopiuj
Zapytaj AI
// Step 2: Poll for results
const pollForResult = async (taskId) => {
while (true) {
await new Promise(resolve => setTimeout(resolve, 3000)); // Wait 3s
const statusResponse = await fetch(
`https://api.apixo.ai/api/v1/statusTask/${MODEL}?taskId=${taskId}`,
{
headers: { 'Authorization': `Bearer ${API_KEY}` },
}
);
const result = await statusResponse.json();
if (result.data.state === 'success') {
const urls = JSON.parse(result.data.resultJson).resultUrls;
console.log('Generated images:', urls);
return urls;
}
if (result.data.state === 'failed') {
throw new Error(result.data.failMsg);
}
console.log('Status:', result.data.state);
}
};
const imageUrls = await pollForResult(data.taskId);
Kopiuj
Zapytaj AI
# Step 2: Poll for results
def poll_for_result(task_id):
while True:
time.sleep(3) # Wait 3 seconds
response = requests.get(
f'https://api.apixo.ai/api/v1/statusTask/{MODEL}',
params={'taskId': task_id},
headers={'Authorization': f'Bearer {API_KEY}'},
)
result = response.json()['data']
if result['state'] == 'success':
import json
urls = json.loads(result['resultJson'])['resultUrls']
print(f'Generated images: {urls}')
return urls
if result['state'] == 'failed':
raise Exception(result['failMsg'])
print(f"Status: {result['state']}")
image_urls = poll_for_result(task_id)
Kopiuj
Zapytaj AI
{
"code": 200,
"message": "success",
"data": {
"taskId": "task_abc123xyz",
"state": "success",
"resultJson": "{\"resultUrls\":[\"https://cdn.apixo.ai/generated/abc123.jpg\"]}",
"costTime": 12500,
"createTime": 1704067200000,
"completeTime": 1704067212500
}
}
Krok 3: Pobierz swój obraz
TablicaresultUrls zawiera bezpośrednie linki do wygenerowanych obrazów. Otwórz URL w przeglądarce lub pobierz programowo.
Wygenerowane obrazy są dostępne przez 24 godziny. Pobierz i przechowuj ważne wyniki.
Kompletny przykład
Oto kompletny działający przykład:- JavaScript
- Python
Kopiuj
Zapytaj AI
const generateImage = async (prompt) => {
const API_KEY = process.env.APIXO_API_KEY;
const MODEL = 'nano-banana';
// Submit
const submit = await fetch(`https://api.apixo.ai/api/v1/generateTask/${MODEL}`, {
method: 'POST',
headers: {
'Authorization': `Bearer ${API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
request_type: 'async',
input: { mode: 'text-to-image', prompt, aspect_ratio: '1:1' },
}),
});
const { data: { taskId } } = await submit.json();
// Poll
while (true) {
await new Promise(r => setTimeout(r, 3000));
const status = await fetch(
`https://api.apixo.ai/api/v1/statusTask/${MODEL}?taskId=${taskId}`,
{ headers: { 'Authorization': `Bearer ${API_KEY}` } }
);
const { data } = await status.json();
if (data.state === 'success') {
return JSON.parse(data.resultJson).resultUrls;
}
if (data.state === 'failed') {
throw new Error(data.failMsg);
}
}
};
// Usage
const urls = await generateImage('A cute robot drinking coffee');
console.log(urls);
Kopiuj
Zapytaj AI
import requests
import json
import time
import os
def generate_image(prompt: str) -> list[str]:
api_key = os.environ['APIXO_API_KEY']
model = 'nano-banana'
base_url = 'https://api.apixo.ai/api/v1'
headers = {
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json',
}
# Submit
response = requests.post(
f'{base_url}/generateTask/{model}',
headers=headers,
json={
'request_type': 'async',
'input': {'mode': 'text-to-image', 'prompt': prompt, 'aspect_ratio': '1:1'},
}
)
task_id = response.json()['data']['taskId']
# Poll
while True:
time.sleep(3)
response = requests.get(
f'{base_url}/statusTask/{model}',
params={'taskId': task_id},
headers=headers,
)
data = response.json()['data']
if data['state'] == 'success':
return json.loads(data['resultJson'])['resultUrls']
if data['state'] == 'failed':
raise Exception(data['failMsg'])
# Usage
urls = generate_image('A cute robot drinking coffee')
print(urls)