curl --request POST \ --url https://aireiter.com/api/openapi/submit \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "model": "qwen_image_3_pro", "params": { "prompt": "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution": "2K", "aspect_ratio": "3:4", "output_n": 1, "prompt_extend": true, "prompt_extend_mode": "agent", "negative_prompt": "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" }, "out_task_id": "qwen_image_3_pro_task_001" }'
curl --request POST \ --url https://aireiter.com/api/openapi/submit \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "model": "qwen_image_3_pro", "params": { "prompt": "첫 번째 이미지의 상품 주체, 두 번째 이미지의 색감, 세 번째 이미지의 레이아웃을 사용하여, 라벨 텍스트가 선명하게 유지되는 고급 가로형 광고를 생성하세요", "image_url": [ "https://example.com/product.png", "https://example.com/color-reference.png", "https://example.com/layout-reference.png" ], "resolution": "2K", "aspect_ratio": "16:9", "output_n": 1 }, "out_task_id": "qwen_image_3_pro_edit_001" }'
import requestsurl = "https://aireiter.com/api/openapi/submit"payload = { "model": "qwen_image_3_pro", "params": { "prompt": "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution": "2K", "aspect_ratio": "3:4", "output_n": 1, "prompt_extend": True, "prompt_extend_mode": "agent", "negative_prompt": "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" }, "out_task_id": "qwen_image_3_pro_task_001"}headers = { "Authorization": "Bearer <token>", "Content-Type": "application/json"}response = requests.post(url, json=payload, headers=headers)print(response.json())
const url = "https://aireiter.com/api/openapi/submit";const payload = { model: "qwen_image_3_pro", params: { prompt: "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", resolution: "2K", aspect_ratio: "3:4", output_n: 1, prompt_extend: true, prompt_extend_mode: "agent", negative_prompt: "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" }, out_task_id: "qwen_image_3_pro_task_001"};const headers = { "Authorization": "Bearer <token>", "Content-Type": "application/json"};fetch(url, { method: "POST", headers: headers, body: JSON.stringify(payload)}) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Error:', error));
package mainimport ( "bytes" "encoding/json" "fmt" "io/ioutil" "net/http")func main() { url := "https://aireiter.com/api/openapi/submit" payload := map[string]interface{}{ "model": "qwen_image_3_pro", "params": map[string]interface{}{ "prompt": "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution": "2K", "aspect_ratio": "3:4", "output_n": 1, "prompt_extend": true, "prompt_extend_mode": "agent", "negative_prompt": "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크", }, "out_task_id": "qwen_image_3_pro_task_001", } jsonData, _ := json.Marshal(payload) req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData)) req.Header.Set("Authorization", "Bearer <token>") req.Header.Set("Content-Type", "application/json") client := &http.Client{} resp, err := client.Do(req) if err != nil { panic(err) } defer resp.Body.Close() body, _ := ioutil.ReadAll(resp.Body) fmt.Println(string(body))}
import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;import java.net.URI;public class Main { public static void main(String[] args) throws Exception { String url = "https://aireiter.com/api/openapi/submit"; String payload = """ { "model": "qwen_image_3_pro", "params": { "prompt": "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution": "2K", "aspect_ratio": "3:4", "output_n": 1, "prompt_extend": true, "prompt_extend_mode": "agent", "negative_prompt": "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" }, "out_task_id": "qwen_image_3_pro_task_001" } """; HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(url)) .header("Authorization", "Bearer <token>") .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString(payload)) .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); }}
<?php$url = "https://aireiter.com/api/openapi/submit";$payload = [ "model" => "qwen_image_3_pro", "params" => [ "prompt" => "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution" => "2K", "aspect_ratio" => "3:4", "output_n" => 1, "prompt_extend" => true, "prompt_extend_mode" => "agent", "negative_prompt" => "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" ], "out_task_id" => "qwen_image_3_pro_task_001"];$ch = curl_init($url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));curl_setopt($ch, CURLOPT_HTTPHEADER, [ "Authorization: Bearer <token>", "Content-Type: application/json"]);$response = curl_exec($ch);curl_close($ch);echo $response;?>
require 'net/http'require 'json'require 'uri'url = URI("https://aireiter.com/api/openapi/submit")payload = { model: "qwen_image_3_pro", params: { prompt: "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", resolution: "2K", aspect_ratio: "3:4", output_n: 1, prompt_extend: true, prompt_extend_mode: "agent", negative_prompt: "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" }, out_task_id: "qwen_image_3_pro_task_001"}http = Net::HTTP.new(url.host, url.port)request = Net::HTTP::Post.new(url)request["Authorization"] = "Bearer <token>"request["Content-Type"] = "application/json"request.body = payload.to_jsonresponse = http.request(request)puts response.body
import Foundationlet url = URL(string: "https://aireiter.com/api/openapi/submit")!let payload: [String: Any] = [ "model": "qwen_image_3_pro", "params": [ "prompt": "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution": "2K", "aspect_ratio": "3:4", "output_n": 1, "prompt_extend": true, "prompt_extend_mode": "agent", "negative_prompt": "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" ], "out_task_id": "qwen_image_3_pro_task_001"]var request = URLRequest(url: url)request.httpMethod = "POST"request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")request.setValue("application/json", forHTTPHeaderField: "Content-Type")request.httpBody = try? JSONSerialization.data(withJSONObject: payload)let task = URLSession.shared.dataTask(with: request) { data, response, error in if let error = error { print("Error: \(error)") return } if let data = data, let responseString = String(data: data, encoding: .utf8) { print(responseString) }}task.resume()
using System;using System.Net.Http;using System.Text;using System.Threading.Tasks;class Program{ static async Task Main(string[] args) { var url = "https://aireiter.com/api/openapi/submit"; var payload = @" { ""model"": ""qwen_image_3_pro"", ""params"": { ""prompt"": ""프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요"", ""resolution"": ""2K"", ""aspect_ratio"": ""3:4"", ""output_n"": 1, ""prompt_extend"": true, ""prompt_extend_mode"": ""agent"", ""negative_prompt"": ""텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크"" }, ""out_task_id"": ""qwen_image_3_pro_task_001"" }"; using var client = new HttpClient(); client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>"); var content = new StringContent(payload, Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); var result = await response.Content.ReadAsStringAsync(); Console.WriteLine(result); }}
#include <stdio.h>#include <curl/curl.h>int main(void) { CURL *curl; CURLcode res; curl_global_init(CURL_GLOBAL_DEFAULT); curl = curl_easy_init(); if(curl) { const char *url = "https://aireiter.com/api/openapi/submit"; const char *payload = "{\"model\":\"qwen_image_3_pro\",\"params\":{\"prompt\":\"프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요\",\"resolution\":\"2K\",\"aspect_ratio\":\"3:4\",\"output_n\":1,\"prompt_extend\":true,\"prompt_extend_mode\":\"agent\",\"negative_prompt\":\"텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크\"},\"out_task_id\":\"qwen_image_3_pro_task_001\"}"; struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer <token>"); headers = curl_slist_append(headers, "Content-Type: application/json"); curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, payload); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); res = curl_easy_perform(curl); if(res != CURLE_OK) { fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } curl_slist_free_all(headers); curl_easy_cleanup(curl); } curl_global_cleanup(); return 0;}
(* Requires cohttp and yojson libraries *)open Lwtopen Cohttpopen Cohttp_lwt_unixlet url = "https://aireiter.com/api/openapi/submit"let payload = {|{ "model": "qwen_image_3_pro", "params": { "prompt": "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution": "2K", "aspect_ratio": "3:4", "output_n": 1, "prompt_extend": true, "prompt_extend_mode": "agent", "negative_prompt": "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" }, "out_task_id": "qwen_image_3_pro_task_001"}|}let () = let headers = Header.init () |> fun h -> Header.add h "Authorization" "Bearer <token>" |> fun h -> Header.add h "Content-Type" "application/json" in let body = Cohttp_lwt.Body.of_string payload in let response = Client.post ~headers ~body (Uri.of_string url) >>= fun (resp, body) -> body |> Cohttp_lwt.Body.to_string >|= fun body_str -> print_endline body_str in Lwt_main.run response
import 'dart:convert';import 'package:http/http.dart' as http;void main() async { final url = Uri.parse('https://aireiter.com/api/openapi/submit'); final payload = { "model": "qwen_image_3_pro", "params": { "prompt": "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution": "2K", "aspect_ratio": "3:4", "output_n": 1, "prompt_extend": true, "prompt_extend_mode": "agent", "negative_prompt": "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" }, "out_task_id": "qwen_image_3_pro_task_001" }; final response = await http.post( url, headers: { 'Authorization': 'Bearer <token>', 'Content-Type': 'application/json' }, body: jsonEncode(payload), ); print(response.body);}
library(httr)library(jsonlite)url <- "https://aireiter.com/api/openapi/submit"payload <- list( model = "qwen_image_3_pro", params = list( prompt = "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", resolution = "2K", aspect_ratio = "3:4", output_n = 1, prompt_extend = TRUE, prompt_extend_mode = "agent", negative_prompt = "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" ), out_task_id = "qwen_image_3_pro_task_001")response <- POST( url, add_headers( Authorization = "Bearer <token>", `Content-Type` = "application/json" ), body = toJSON(payload, auto_unbox = TRUE), encode = "raw")cat(content(response, "text"))
{ "error": { "code": 401, "message": "인증에 실패했습니다. API 키를 확인하세요" }}
{ "error": { "code": 433, "message": "계정 잔액이 부족합니다. 충전 후 다시 시도하세요" } }
{ "error": { "code": 500, "message": "서버 내부 오류입니다. 나중에 다시 시도하세요" }}
Qwen Image 3.0
Qwen Image 3.0 Pro 이미지 생성 및 편집
포스터, 텍스트 레이아웃, 메뉴, 인포그래픽 및 고디테일 이미지 편집에 적합
비동기 처리 모드로, 후속 조회를 위한 작업 ID를 반환합니다
텍스트-이미지 생성, 최대 3장의 참고 이미지, 한 번에 1-6장의 이미지 생성을 지원합니다
1K / 2K 해상도와 7가지 일반적인 이미지 비율을 지원합니다
제출된 prompt는 플랫폼 민감어 / 안전 검사를 거치며, 위반 콘텐츠는 직접 거절됩니다
POST
/
api
/
openapi
/
submit
curl --request POST \ --url https://aireiter.com/api/openapi/submit \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "model": "qwen_image_3_pro", "params": { "prompt": "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution": "2K", "aspect_ratio": "3:4", "output_n": 1, "prompt_extend": true, "prompt_extend_mode": "agent", "negative_prompt": "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" }, "out_task_id": "qwen_image_3_pro_task_001" }'
curl --request POST \ --url https://aireiter.com/api/openapi/submit \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "model": "qwen_image_3_pro", "params": { "prompt": "첫 번째 이미지의 상품 주체, 두 번째 이미지의 색감, 세 번째 이미지의 레이아웃을 사용하여, 라벨 텍스트가 선명하게 유지되는 고급 가로형 광고를 생성하세요", "image_url": [ "https://example.com/product.png", "https://example.com/color-reference.png", "https://example.com/layout-reference.png" ], "resolution": "2K", "aspect_ratio": "16:9", "output_n": 1 }, "out_task_id": "qwen_image_3_pro_edit_001" }'
import requestsurl = "https://aireiter.com/api/openapi/submit"payload = { "model": "qwen_image_3_pro", "params": { "prompt": "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution": "2K", "aspect_ratio": "3:4", "output_n": 1, "prompt_extend": True, "prompt_extend_mode": "agent", "negative_prompt": "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" }, "out_task_id": "qwen_image_3_pro_task_001"}headers = { "Authorization": "Bearer <token>", "Content-Type": "application/json"}response = requests.post(url, json=payload, headers=headers)print(response.json())
const url = "https://aireiter.com/api/openapi/submit";const payload = { model: "qwen_image_3_pro", params: { prompt: "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", resolution: "2K", aspect_ratio: "3:4", output_n: 1, prompt_extend: true, prompt_extend_mode: "agent", negative_prompt: "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" }, out_task_id: "qwen_image_3_pro_task_001"};const headers = { "Authorization": "Bearer <token>", "Content-Type": "application/json"};fetch(url, { method: "POST", headers: headers, body: JSON.stringify(payload)}) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Error:', error));
package mainimport ( "bytes" "encoding/json" "fmt" "io/ioutil" "net/http")func main() { url := "https://aireiter.com/api/openapi/submit" payload := map[string]interface{}{ "model": "qwen_image_3_pro", "params": map[string]interface{}{ "prompt": "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution": "2K", "aspect_ratio": "3:4", "output_n": 1, "prompt_extend": true, "prompt_extend_mode": "agent", "negative_prompt": "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크", }, "out_task_id": "qwen_image_3_pro_task_001", } jsonData, _ := json.Marshal(payload) req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData)) req.Header.Set("Authorization", "Bearer <token>") req.Header.Set("Content-Type", "application/json") client := &http.Client{} resp, err := client.Do(req) if err != nil { panic(err) } defer resp.Body.Close() body, _ := ioutil.ReadAll(resp.Body) fmt.Println(string(body))}
import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;import java.net.URI;public class Main { public static void main(String[] args) throws Exception { String url = "https://aireiter.com/api/openapi/submit"; String payload = """ { "model": "qwen_image_3_pro", "params": { "prompt": "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution": "2K", "aspect_ratio": "3:4", "output_n": 1, "prompt_extend": true, "prompt_extend_mode": "agent", "negative_prompt": "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" }, "out_task_id": "qwen_image_3_pro_task_001" } """; HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(url)) .header("Authorization", "Bearer <token>") .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString(payload)) .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); }}
<?php$url = "https://aireiter.com/api/openapi/submit";$payload = [ "model" => "qwen_image_3_pro", "params" => [ "prompt" => "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution" => "2K", "aspect_ratio" => "3:4", "output_n" => 1, "prompt_extend" => true, "prompt_extend_mode" => "agent", "negative_prompt" => "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" ], "out_task_id" => "qwen_image_3_pro_task_001"];$ch = curl_init($url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));curl_setopt($ch, CURLOPT_HTTPHEADER, [ "Authorization: Bearer <token>", "Content-Type: application/json"]);$response = curl_exec($ch);curl_close($ch);echo $response;?>
require 'net/http'require 'json'require 'uri'url = URI("https://aireiter.com/api/openapi/submit")payload = { model: "qwen_image_3_pro", params: { prompt: "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", resolution: "2K", aspect_ratio: "3:4", output_n: 1, prompt_extend: true, prompt_extend_mode: "agent", negative_prompt: "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" }, out_task_id: "qwen_image_3_pro_task_001"}http = Net::HTTP.new(url.host, url.port)request = Net::HTTP::Post.new(url)request["Authorization"] = "Bearer <token>"request["Content-Type"] = "application/json"request.body = payload.to_jsonresponse = http.request(request)puts response.body
import Foundationlet url = URL(string: "https://aireiter.com/api/openapi/submit")!let payload: [String: Any] = [ "model": "qwen_image_3_pro", "params": [ "prompt": "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution": "2K", "aspect_ratio": "3:4", "output_n": 1, "prompt_extend": true, "prompt_extend_mode": "agent", "negative_prompt": "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" ], "out_task_id": "qwen_image_3_pro_task_001"]var request = URLRequest(url: url)request.httpMethod = "POST"request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")request.setValue("application/json", forHTTPHeaderField: "Content-Type")request.httpBody = try? JSONSerialization.data(withJSONObject: payload)let task = URLSession.shared.dataTask(with: request) { data, response, error in if let error = error { print("Error: \(error)") return } if let data = data, let responseString = String(data: data, encoding: .utf8) { print(responseString) }}task.resume()
using System;using System.Net.Http;using System.Text;using System.Threading.Tasks;class Program{ static async Task Main(string[] args) { var url = "https://aireiter.com/api/openapi/submit"; var payload = @" { ""model"": ""qwen_image_3_pro"", ""params"": { ""prompt"": ""프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요"", ""resolution"": ""2K"", ""aspect_ratio"": ""3:4"", ""output_n"": 1, ""prompt_extend"": true, ""prompt_extend_mode"": ""agent"", ""negative_prompt"": ""텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크"" }, ""out_task_id"": ""qwen_image_3_pro_task_001"" }"; using var client = new HttpClient(); client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>"); var content = new StringContent(payload, Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); var result = await response.Content.ReadAsStringAsync(); Console.WriteLine(result); }}
#include <stdio.h>#include <curl/curl.h>int main(void) { CURL *curl; CURLcode res; curl_global_init(CURL_GLOBAL_DEFAULT); curl = curl_easy_init(); if(curl) { const char *url = "https://aireiter.com/api/openapi/submit"; const char *payload = "{\"model\":\"qwen_image_3_pro\",\"params\":{\"prompt\":\"프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요\",\"resolution\":\"2K\",\"aspect_ratio\":\"3:4\",\"output_n\":1,\"prompt_extend\":true,\"prompt_extend_mode\":\"agent\",\"negative_prompt\":\"텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크\"},\"out_task_id\":\"qwen_image_3_pro_task_001\"}"; struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer <token>"); headers = curl_slist_append(headers, "Content-Type: application/json"); curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, payload); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); res = curl_easy_perform(curl); if(res != CURLE_OK) { fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } curl_slist_free_all(headers); curl_easy_cleanup(curl); } curl_global_cleanup(); return 0;}
(* Requires cohttp and yojson libraries *)open Lwtopen Cohttpopen Cohttp_lwt_unixlet url = "https://aireiter.com/api/openapi/submit"let payload = {|{ "model": "qwen_image_3_pro", "params": { "prompt": "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution": "2K", "aspect_ratio": "3:4", "output_n": 1, "prompt_extend": true, "prompt_extend_mode": "agent", "negative_prompt": "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" }, "out_task_id": "qwen_image_3_pro_task_001"}|}let () = let headers = Header.init () |> fun h -> Header.add h "Authorization" "Bearer <token>" |> fun h -> Header.add h "Content-Type" "application/json" in let body = Cohttp_lwt.Body.of_string payload in let response = Client.post ~headers ~body (Uri.of_string url) >>= fun (resp, body) -> body |> Cohttp_lwt.Body.to_string >|= fun body_str -> print_endline body_str in Lwt_main.run response
import 'dart:convert';import 'package:http/http.dart' as http;void main() async { final url = Uri.parse('https://aireiter.com/api/openapi/submit'); final payload = { "model": "qwen_image_3_pro", "params": { "prompt": "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution": "2K", "aspect_ratio": "3:4", "output_n": 1, "prompt_extend": true, "prompt_extend_mode": "agent", "negative_prompt": "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" }, "out_task_id": "qwen_image_3_pro_task_001" }; final response = await http.post( url, headers: { 'Authorization': 'Bearer <token>', 'Content-Type': 'application/json' }, body: jsonEncode(payload), ); print(response.body);}
library(httr)library(jsonlite)url <- "https://aireiter.com/api/openapi/submit"payload <- list( model = "qwen_image_3_pro", params = list( prompt = "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", resolution = "2K", aspect_ratio = "3:4", output_n = 1, prompt_extend = TRUE, prompt_extend_mode = "agent", negative_prompt = "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" ), out_task_id = "qwen_image_3_pro_task_001")response <- POST( url, add_headers( Authorization = "Bearer <token>", `Content-Type` = "application/json" ), body = toJSON(payload, auto_unbox = TRUE), encode = "raw")cat(content(response, "text"))
Image generation or editing instruction. Supports Chinese and English.The Pro model is suitable for tasks that require readable text, complex hierarchy, dense layouts, and high-detail rendering. It is recommended to clearly describe the text content, font style, hierarchy, position, whitespace, and the reference image features that need to be preserved.
Negative prompt, used to describe content you do not want to appear in the result, such as blur, garbled text, crowded layout, or structural distortion.
작업 상태에는 pending, processing, completed, failed가 포함됩니다. 작업이 완료되면 이미지 배열은 data.output에 있습니다.
curl --request POST \ --url https://aireiter.com/api/openapi/submit \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "model": "qwen_image_3_pro", "params": { "prompt": "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution": "2K", "aspect_ratio": "3:4", "output_n": 1, "prompt_extend": true, "prompt_extend_mode": "agent", "negative_prompt": "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" }, "out_task_id": "qwen_image_3_pro_task_001" }'
curl --request POST \ --url https://aireiter.com/api/openapi/submit \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "model": "qwen_image_3_pro", "params": { "prompt": "첫 번째 이미지의 상품 주체, 두 번째 이미지의 색감, 세 번째 이미지의 레이아웃을 사용하여, 라벨 텍스트가 선명하게 유지되는 고급 가로형 광고를 생성하세요", "image_url": [ "https://example.com/product.png", "https://example.com/color-reference.png", "https://example.com/layout-reference.png" ], "resolution": "2K", "aspect_ratio": "16:9", "output_n": 1 }, "out_task_id": "qwen_image_3_pro_edit_001" }'
import requestsurl = "https://aireiter.com/api/openapi/submit"payload = { "model": "qwen_image_3_pro", "params": { "prompt": "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution": "2K", "aspect_ratio": "3:4", "output_n": 1, "prompt_extend": True, "prompt_extend_mode": "agent", "negative_prompt": "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" }, "out_task_id": "qwen_image_3_pro_task_001"}headers = { "Authorization": "Bearer <token>", "Content-Type": "application/json"}response = requests.post(url, json=payload, headers=headers)print(response.json())
const url = "https://aireiter.com/api/openapi/submit";const payload = { model: "qwen_image_3_pro", params: { prompt: "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", resolution: "2K", aspect_ratio: "3:4", output_n: 1, prompt_extend: true, prompt_extend_mode: "agent", negative_prompt: "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" }, out_task_id: "qwen_image_3_pro_task_001"};const headers = { "Authorization": "Bearer <token>", "Content-Type": "application/json"};fetch(url, { method: "POST", headers: headers, body: JSON.stringify(payload)}) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Error:', error));
package mainimport ( "bytes" "encoding/json" "fmt" "io/ioutil" "net/http")func main() { url := "https://aireiter.com/api/openapi/submit" payload := map[string]interface{}{ "model": "qwen_image_3_pro", "params": map[string]interface{}{ "prompt": "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution": "2K", "aspect_ratio": "3:4", "output_n": 1, "prompt_extend": true, "prompt_extend_mode": "agent", "negative_prompt": "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크", }, "out_task_id": "qwen_image_3_pro_task_001", } jsonData, _ := json.Marshal(payload) req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData)) req.Header.Set("Authorization", "Bearer <token>") req.Header.Set("Content-Type", "application/json") client := &http.Client{} resp, err := client.Do(req) if err != nil { panic(err) } defer resp.Body.Close() body, _ := ioutil.ReadAll(resp.Body) fmt.Println(string(body))}
import java.net.http.HttpClient;import java.net.http.HttpRequest;import java.net.http.HttpResponse;import java.net.URI;public class Main { public static void main(String[] args) throws Exception { String url = "https://aireiter.com/api/openapi/submit"; String payload = """ { "model": "qwen_image_3_pro", "params": { "prompt": "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution": "2K", "aspect_ratio": "3:4", "output_n": 1, "prompt_extend": true, "prompt_extend_mode": "agent", "negative_prompt": "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" }, "out_task_id": "qwen_image_3_pro_task_001" } """; HttpClient client = HttpClient.newHttpClient(); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create(url)) .header("Authorization", "Bearer <token>") .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString(payload)) .build(); HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString()); System.out.println(response.body()); }}
<?php$url = "https://aireiter.com/api/openapi/submit";$payload = [ "model" => "qwen_image_3_pro", "params" => [ "prompt" => "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution" => "2K", "aspect_ratio" => "3:4", "output_n" => 1, "prompt_extend" => true, "prompt_extend_mode" => "agent", "negative_prompt" => "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" ], "out_task_id" => "qwen_image_3_pro_task_001"];$ch = curl_init($url);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);curl_setopt($ch, CURLOPT_POST, true);curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));curl_setopt($ch, CURLOPT_HTTPHEADER, [ "Authorization: Bearer <token>", "Content-Type: application/json"]);$response = curl_exec($ch);curl_close($ch);echo $response;?>
require 'net/http'require 'json'require 'uri'url = URI("https://aireiter.com/api/openapi/submit")payload = { model: "qwen_image_3_pro", params: { prompt: "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", resolution: "2K", aspect_ratio: "3:4", output_n: 1, prompt_extend: true, prompt_extend_mode: "agent", negative_prompt: "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" }, out_task_id: "qwen_image_3_pro_task_001"}http = Net::HTTP.new(url.host, url.port)request = Net::HTTP::Post.new(url)request["Authorization"] = "Bearer <token>"request["Content-Type"] = "application/json"request.body = payload.to_jsonresponse = http.request(request)puts response.body
import Foundationlet url = URL(string: "https://aireiter.com/api/openapi/submit")!let payload: [String: Any] = [ "model": "qwen_image_3_pro", "params": [ "prompt": "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution": "2K", "aspect_ratio": "3:4", "output_n": 1, "prompt_extend": true, "prompt_extend_mode": "agent", "negative_prompt": "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" ], "out_task_id": "qwen_image_3_pro_task_001"]var request = URLRequest(url: url)request.httpMethod = "POST"request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")request.setValue("application/json", forHTTPHeaderField: "Content-Type")request.httpBody = try? JSONSerialization.data(withJSONObject: payload)let task = URLSession.shared.dataTask(with: request) { data, response, error in if let error = error { print("Error: \(error)") return } if let data = data, let responseString = String(data: data, encoding: .utf8) { print(responseString) }}task.resume()
using System;using System.Net.Http;using System.Text;using System.Threading.Tasks;class Program{ static async Task Main(string[] args) { var url = "https://aireiter.com/api/openapi/submit"; var payload = @" { ""model"": ""qwen_image_3_pro"", ""params"": { ""prompt"": ""프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요"", ""resolution"": ""2K"", ""aspect_ratio"": ""3:4"", ""output_n"": 1, ""prompt_extend"": true, ""prompt_extend_mode"": ""agent"", ""negative_prompt"": ""텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크"" }, ""out_task_id"": ""qwen_image_3_pro_task_001"" }"; using var client = new HttpClient(); client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>"); var content = new StringContent(payload, Encoding.UTF8, "application/json"); var response = await client.PostAsync(url, content); var result = await response.Content.ReadAsStringAsync(); Console.WriteLine(result); }}
#include <stdio.h>#include <curl/curl.h>int main(void) { CURL *curl; CURLcode res; curl_global_init(CURL_GLOBAL_DEFAULT); curl = curl_easy_init(); if(curl) { const char *url = "https://aireiter.com/api/openapi/submit"; const char *payload = "{\"model\":\"qwen_image_3_pro\",\"params\":{\"prompt\":\"프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요\",\"resolution\":\"2K\",\"aspect_ratio\":\"3:4\",\"output_n\":1,\"prompt_extend\":true,\"prompt_extend_mode\":\"agent\",\"negative_prompt\":\"텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크\"},\"out_task_id\":\"qwen_image_3_pro_task_001\"}"; struct curl_slist *headers = NULL; headers = curl_slist_append(headers, "Authorization: Bearer <token>"); headers = curl_slist_append(headers, "Content-Type: application/json"); curl_easy_setopt(curl, CURLOPT_URL, url); curl_easy_setopt(curl, CURLOPT_POSTFIELDS, payload); curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers); res = curl_easy_perform(curl); if(res != CURLE_OK) { fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res)); } curl_slist_free_all(headers); curl_easy_cleanup(curl); } curl_global_cleanup(); return 0;}
(* Requires cohttp and yojson libraries *)open Lwtopen Cohttpopen Cohttp_lwt_unixlet url = "https://aireiter.com/api/openapi/submit"let payload = {|{ "model": "qwen_image_3_pro", "params": { "prompt": "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution": "2K", "aspect_ratio": "3:4", "output_n": 1, "prompt_extend": true, "prompt_extend_mode": "agent", "negative_prompt": "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" }, "out_task_id": "qwen_image_3_pro_task_001"}|}let () = let headers = Header.init () |> fun h -> Header.add h "Authorization" "Bearer <token>" |> fun h -> Header.add h "Content-Type" "application/json" in let body = Cohttp_lwt.Body.of_string payload in let response = Client.post ~headers ~body (Uri.of_string url) >>= fun (resp, body) -> body |> Cohttp_lwt.Body.to_string >|= fun body_str -> print_endline body_str in Lwt_main.run response
import 'dart:convert';import 'package:http/http.dart' as http;void main() async { final url = Uri.parse('https://aireiter.com/api/openapi/submit'); final payload = { "model": "qwen_image_3_pro", "params": { "prompt": "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", "resolution": "2K", "aspect_ratio": "3:4", "output_n": 1, "prompt_extend": true, "prompt_extend_mode": "agent", "negative_prompt": "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" }, "out_task_id": "qwen_image_3_pro_task_001" }; final response = await http.post( url, headers: { 'Authorization': 'Bearer <token>', 'Content-Type': 'application/json' }, body: jsonEncode(payload), ); print(response.body);}
library(httr)library(jsonlite)url <- "https://aireiter.com/api/openapi/submit"payload <- list( model = "qwen_image_3_pro", params = list( prompt = "프리미엄 커피숍을 위한 세로형 메뉴 포스터를 디자인하세요. 제목은 MORNING ROAST로 하고, 가격 계층이 명확하게 읽히며, 현대적인 편집 레이아웃과 사실적인 커피 사진을 사용하세요", resolution = "2K", aspect_ratio = "3:4", output_n = 1, prompt_extend = TRUE, prompt_extend_mode = "agent", negative_prompt = "텍스트 깨짐, 흐림, 빽빽한 레이아웃, 워터마크" ), out_task_id = "qwen_image_3_pro_task_001")response <- POST( url, add_headers( Authorization = "Bearer <token>", `Content-Type` = "application/json" ), body = toJSON(payload, auto_unbox = TRUE), encode = "raw")cat(content(response, "text"))