文本生成图片
传入一段描述,返回一张图。支持多种生成模型,可根据场景灵活选择——快速出稿、内容配图、游戏美术都适用。
典型应用场景
- 快速出稿:用文字描述换概念图,省掉来回沟通
- 内容配图:文章封面、社媒素材批量生成
- 游戏美术:角色设定、场景氛围图快速迭代
最佳实践
TIP
- 结构化 Prompt 出图更稳:[主体] + [动作/姿势] + [环境] + [光影] + [风格]
- 有复杂描述时,先调 Prompt 增强接口再生图,效果更可控
- 人脸或复杂纹理类内容建议多试几个模型,不同模型审美倾向差异明显
本页使用的 API 参考 POST /images/generations
基础示例
curl -X POST 'https://api.v2fun.ai/api/v1/images/generations' \
-H 'Authorization: Bearer $V2FUN_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"prompt": "A beautiful sunset over the mountains"
}'const response = await fetch('https://api.v2fun.ai/api/v1/images/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer $V2FUN_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"prompt": "A beautiful sunset over the mountains"
}),
});
const data = await response.json();import requests
resp = requests.post(
'https://api.v2fun.ai/api/v1/images/generations',
headers={
'Authorization': 'Bearer $V2FUN_API_KEY',
'Content-Type': 'application/json',
},
json={
"prompt": "A beautiful sunset over the mountains"
},
)
print(resp.json())import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
String body = "{\"prompt\":\"A beautiful sunset over the mountains\"}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.v2fun.ai/api/v1/images/generations"))
.header("Authorization", "Bearer $V2FUN_API_KEY")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();
HttpResponse<String> response = client.send(
request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());核心用例
按需选模型
各模型特性不同,按场景选择:
Qwen 系列qwen-image(默认)— 速度快,中英文文字排版能力突出,指令跟随准确。
Gemini 系列nano-banana-2-lite — 出图速度最快,成本最低,仅支持 1K 分辨率。nano-banana-2 — 语义理解最强,可引用多张参考图,综合表现均衡。nano-banana-pro — 画质最佳,擅长光影和材质细节,适合高要求的商业场景。
GPT 系列gpt-image-2 — 真实感强,文字渲染精准,适合品牌和产品类图片。gpt-image-2.5-flare — 速度优先的轻量模型,适合高频、日常的图像生成与编辑;在保持接近 GPT Image 2 画质的同时降低等待时间。gpt-image-2.5-sunburst — 质量优先的高能力模型,适合高要求图像生成和精细编辑,在指令遵循、主体保持和细节表现方面更强。
model: qwen-image · nano-banana-pro · nano-banana-2 · nano-banana-2-lite · gpt-image-2 · gpt-image-2.5-sunburst · gpt-image-2.5-flare
curl -X POST 'https://api.v2fun.ai/api/v1/images/generations' \
-H 'Authorization: Bearer $V2FUN_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"prompt": "a cinematic shot of a lone traveler in a vast desert, golden hour lighting",
"model": "nano-banana-pro"
}'const response = await fetch('https://api.v2fun.ai/api/v1/images/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer $V2FUN_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"prompt": "a cinematic shot of a lone traveler in a vast desert, golden hour lighting",
"model": "nano-banana-pro"
}),
});
const data = await response.json();import requests
resp = requests.post(
'https://api.v2fun.ai/api/v1/images/generations',
headers={
'Authorization': 'Bearer $V2FUN_API_KEY',
'Content-Type': 'application/json',
},
json={
"prompt": "a cinematic shot of a lone traveler in a vast desert, golden hour lighting",
"model": "nano-banana-pro"
},
)
print(resp.json())import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
String body = "{\"prompt\":\"a cinematic shot of a lone traveler in a vast desert, golden hour lighting\",\"model\":\"nano-banana-pro\"}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.v2fun.ai/api/v1/images/generations"))
.header("Authorization", "Bearer $V2FUN_API_KEY")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();
HttpResponse<String> response = client.send(
request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
调整画面比例
比例直接决定构图。横图(1280x720)适合风景和场景类内容,竖图(720x1280)适合人物主体或手机壁纸,方图(1024x1024)适合头像、商品图等需要居中展示的内容。
size: 1024x1024 · 1152x864 · 864x1152 · 1280x720 · 720x1280
curl -X POST 'https://api.v2fun.ai/api/v1/images/generations' \
-H 'Authorization: Bearer $V2FUN_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"prompt": "a tall cyberpunk skyscraper reaching the clouds",
"size": "720x1280"
}'const response = await fetch('https://api.v2fun.ai/api/v1/images/generations', {
method: 'POST',
headers: {
'Authorization': 'Bearer $V2FUN_API_KEY',
'Content-Type': 'application/json',
},
body: JSON.stringify({
"prompt": "a tall cyberpunk skyscraper reaching the clouds",
"size": "720x1280"
}),
});
const data = await response.json();import requests
resp = requests.post(
'https://api.v2fun.ai/api/v1/images/generations',
headers={
'Authorization': 'Bearer $V2FUN_API_KEY',
'Content-Type': 'application/json',
},
json={
"prompt": "a tall cyberpunk skyscraper reaching the clouds",
"size": "720x1280"
},
)
print(resp.json())import java.net.URI;
import java.net.http.*;
HttpClient client = HttpClient.newHttpClient();
String body = "{\"prompt\":\"a tall cyberpunk skyscraper reaching the clouds\",\"size\":\"720x1280\"}";
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.v2fun.ai/api/v1/images/generations"))
.header("Authorization", "Bearer $V2FUN_API_KEY")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(body))
.build();
HttpResponse<String> response = client.send(
request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
