[{"data":1,"prerenderedAt":727},["ShallowReactive",2],{"guide-\u002Fguides\u002Fimage-generation":3,"developer-code-yv63x7":723,"developer-code-1fplh0u":724,"developer-code-1vu0zq3":725,"developer-code-wmfbhl":726},{"id":4,"title":5,"body":6,"description":713,"extension":714,"meta":715,"navigation":716,"path":719,"seo":720,"stem":721,"__hash__":722},"guides\u002Fguides\u002Fimage-generation.md","AI Image Generation API",{"type":7,"value":8,"toc":705},"minimark",[9,13,23,28,82,86,125,136,301,345,352,356,375,414,459,535,539,556,615,619,681,685,701],[10,11,12],"p",{},"The VisionStory AI Image Generation API creates or edits images from text prompts and optional reference media. The synchronous response returns an image URL that you can download or pass directly into an image-to-video workflow.",[14,15,16],"blockquote",{},[10,17,18,22],{},[19,20,21],"strong",{},"Beta."," Any API key backed by an active Pro plan or above can call this endpoint. No separate capability allowlist is required.",[24,25,27],"h2",{"id":26},"ai-image-api-endpoints","AI image API endpoints",[29,30,31,47],"table",{},[32,33,34],"thead",{},[35,36,37,41,44],"tr",{},[38,39,40],"th",{},"Method",[38,42,43],{},"Path",[38,45,46],{},"What it does",[48,49,50,67],"tbody",{},[35,51,52,59,64],{},[53,54,55],"td",{},[56,57,58],"code",{},"GET",[53,60,61],{},[56,62,63],{},"\u002Fapi\u002Fv1\u002Fimage\u002Fmodels",[53,65,66],{},"List image models with sizes and per-image credit cost",[35,68,69,74,79],{},[53,70,71],{},[56,72,73],{},"POST",[53,75,76],{},[56,77,78],{},"\u002Fapi\u002Fv1\u002Fimage",[53,80,81],{},"Generate an image from a prompt (+ optional references)",[24,83,85],{"id":84},"list-image-generation-models","List image generation models",[87,88,93],"pre",{"className":89,"code":90,"language":91,"meta":92,"style":92},"language-bash shiki shiki-themes github-light github-dark","curl -s -H \"X-API-Key: $VISIONSTORY_API_KEY\" https:\u002F\u002Fopenapi.visionstory.ai\u002Fapi\u002Fv1\u002Fimage\u002Fmodels\n","bash","",[56,94,95],{"__ignoreMap":92},[96,97,100,104,108,111,115,119,122],"span",{"class":98,"line":99},"line",1,[96,101,103],{"class":102},"sScJk","curl",[96,105,107],{"class":106},"sj4cs"," -s",[96,109,110],{"class":106}," -H",[96,112,114],{"class":113},"sZZnC"," \"X-API-Key: ",[96,116,118],{"class":117},"sVt8B","$VISIONSTORY_API_KEY",[96,120,121],{"class":113},"\"",[96,123,124],{"class":113}," https:\u002F\u002Fopenapi.visionstory.ai\u002Fapi\u002Fv1\u002Fimage\u002Fmodels\n",[10,126,127,128,131,132,135],{},"Each model reports its aspect ratios, resolution choices and default, prompt-length limit, reference-image limit, and live pricing. ",[56,129,130],{},"credit_per_image"," is the price at the default resolution; ",[56,133,134],{},"credit_by_resolution"," gives the price for each supported resolution. Drive your integration from this endpoint rather than hardcoding capabilities or prices.",[29,137,138,155],{},[32,139,140],{},[35,141,142,145,148,152],{},[38,143,144],{},"Model",[38,146,147],{},"Resolution",[38,149,151],{"align":150},"right","Prompt limit",[38,153,154],{"align":150},"Reference images",[48,156,157,182,201,223,243,263,282],{},[35,158,159,164,176,179],{},[53,160,161],{},[56,162,163],{},"nano-banana-2",[53,165,166,169,170,172,173],{},[56,167,168],{},"1K"," default; ",[56,171,168],{}," or ",[56,174,175],{},"2K",[53,177,178],{"align":150},"5,000 characters",[53,180,181],{"align":150},"4",[35,183,184,189,197,199],{},[53,185,186],{},[56,187,188],{},"nano-banana-pro",[53,190,191,169,193,172,195],{},[56,192,168],{},[56,194,168],{},[56,196,175],{},[53,198,178],{"align":150},[53,200,181],{"align":150},[35,202,203,208,217,220],{},[53,204,205],{},[56,206,207],{},"seedream-5.0-lite",[53,209,210,169,212,172,214],{},[56,211,175],{},[56,213,175],{},[56,215,216],{},"4K",[53,218,219],{"align":150},"3,000 characters",[53,221,222],{"align":150},"14",[35,224,225,230,238,240],{},[53,226,227],{},[56,228,229],{},"seedream-5.0-pro",[53,231,232,169,234,172,236],{},[56,233,168],{},[56,235,168],{},[56,237,175],{},[53,239,219],{"align":150},[53,241,242],{"align":150},"10",[35,244,245,250,258,260],{},[53,246,247],{},[56,248,249],{},"gpt-image-2.5-flare",[53,251,252,169,254,172,256],{},[56,253,168],{},[56,255,168],{},[56,257,175],{},[53,259,178],{"align":150},[53,261,262],{"align":150},"6",[35,264,265,270,278,280],{},[53,266,267],{},[56,268,269],{},"gpt-image-2.5-sunburst",[53,271,272,169,274,172,276],{},[56,273,168],{},[56,275,168],{},[56,277,175],{},[53,279,178],{"align":150},[53,281,262],{"align":150},[35,283,284,289,297,299],{},[53,285,286],{},[56,287,288],{},"gpt-image-2",[53,290,291,169,293,172,295],{},[56,292,168],{},[56,294,168],{},[56,296,175],{},[53,298,178],{"align":150},[53,300,262],{"align":150},[10,302,303,304,307,308,307,311,307,314,307,317,307,320,307,323,307,326,307,329,332,333,336,337,344],{},"All seven current models support ",[56,305,306],{},"1:1",", ",[56,309,310],{},"2:3",[56,312,313],{},"3:2",[56,315,316],{},"3:4",[56,318,319],{},"4:3",[56,321,322],{},"4:5",[56,324,325],{},"5:4",[56,327,328],{},"9:16",[56,330,331],{},"16:9",", and ",[56,334,335],{},"21:9",". Query ",[338,339,341],"a",{"href":340},"\u002Freference\u002Fimages\u002Fget-image-models",[56,342,343],{},"GET \u002Fapi\u002Fv1\u002Fimage\u002Fmodels"," before every model-selection flow because availability, limits, defaults, and credit costs can change.",[10,346,347,348,351],{},"GPT Image is available through the API. Flare favors faster generation, Sunburst targets precise edits with longer processing, and GPT Image 2 is the previous-generation option. Quality is fixed per model; there is no public quality parameter. GPT Image reference images accept PNG, JPEG (including MPO), and WebP; BMP, TIFF, GIF, and HEIC are converted to PNG by the service. Unreadable references return code ",[56,349,350],{},"37101",".",[24,353,355],{"id":354},"generate-or-edit-an-ai-image","Generate or edit an AI image",[10,357,358,359,362,363,366,367,370,371,374],{},"Send a ",[56,360,361],{},"model_id"," from the models endpoint and a ",[56,364,365],{},"prompt",". You can add ",[56,368,369],{},"refs"," to guide style or subject, or to ",[19,372,373],{},"edit"," an image through prompt instructions without a mask. The accepted prompt length, resolution values, default resolution, and reference-image count all depend on the selected model.",[87,376,378],{"className":89,"code":377,"language":91,"meta":92,"style":92},"curl -s -X POST -H \"X-API-Key: $VISIONSTORY_API_KEY\" -H \"Content-Type: application\u002Fjson\" -d '{\"model_id\": \"seedream-5.0-lite\", \"prompt\": \"A red panda barista in a cozy cafe, warm lighting\", \"aspect_ratio\": \"1:1\", \"resolution\": \"2K\"}' https:\u002F\u002Fopenapi.visionstory.ai\u002Fapi\u002Fv1\u002Fimage\n",[56,379,380],{"__ignoreMap":92},[96,381,382,384,386,389,392,394,396,398,400,402,405,408,411],{"class":98,"line":99},[96,383,103],{"class":102},[96,385,107],{"class":106},[96,387,388],{"class":106}," -X",[96,390,391],{"class":113}," POST",[96,393,110],{"class":106},[96,395,114],{"class":113},[96,397,118],{"class":117},[96,399,121],{"class":113},[96,401,110],{"class":106},[96,403,404],{"class":113}," \"Content-Type: application\u002Fjson\"",[96,406,407],{"class":106}," -d",[96,409,410],{"class":113}," '{\"model_id\": \"seedream-5.0-lite\", \"prompt\": \"A red panda barista in a cozy cafe, warm lighting\", \"aspect_ratio\": \"1:1\", \"resolution\": \"2K\"}'",[96,412,413],{"class":113}," https:\u002F\u002Fopenapi.visionstory.ai\u002Fapi\u002Fv1\u002Fimage\n",[87,415,419],{"className":416,"code":417,"language":418,"meta":92,"style":92},"language-json shiki shiki-themes github-light github-dark","{\n  \"data\": {\n    \"url\": \"https:\u002F\u002Fcdn.visionstory.ai\u002Fexample.png\"\n  }\n}\n","json",[56,420,421,426,435,447,453],{"__ignoreMap":92},[96,422,423],{"class":98,"line":99},[96,424,425],{"class":117},"{\n",[96,427,429,432],{"class":98,"line":428},2,[96,430,431],{"class":106},"  \"data\"",[96,433,434],{"class":117},": {\n",[96,436,438,441,444],{"class":98,"line":437},3,[96,439,440],{"class":106},"    \"url\"",[96,442,443],{"class":117},": ",[96,445,446],{"class":113},"\"https:\u002F\u002Fcdn.visionstory.ai\u002Fexample.png\"\n",[96,448,450],{"class":98,"line":449},4,[96,451,452],{"class":117},"  }\n",[96,454,456],{"class":98,"line":455},5,[96,457,458],{"class":117},"}\n",[460,461,462,475,499,509,529],"ul",{},[463,464,465,468,469,472,473,351],"li",{},[19,466,467],{},"Aspect ratio:"," use a value returned in ",[56,470,471],{},"params.aspect_ratio.values","; the current default is ",[56,474,306],{},[463,476,477,480,481,484,485,488,489,491,492,494,495,491,497,351],{},[19,478,479],{},"Resolution:"," use ",[56,482,483],{},"params.resolution.values"," and ",[56,486,487],{},"params.resolution.default",". In particular, ",[56,490,207],{}," does not accept ",[56,493,168],{},", while ",[56,496,229],{},[56,498,216],{},[463,500,501,504,505,508],{},[19,502,503],{},"Prompt:"," stay within ",[56,506,507],{},"params.prompt.max_length"," for the selected model.",[463,510,511,514,515,307,518,521,522,525,526,351],{},[19,512,513],{},"References:"," each entry uses ",[56,516,517],{},"asset_id",[56,519,520],{},"url",", or ",[56,523,524],{},"inline_data","; stay within the selected model's ",[56,527,528],{},"params.refs.max",[463,530,531,534],{},[19,532,533],{},"Timeout:"," allow at least 180 seconds for GPT Image. The Python SDK, CLI, and local MCP use a minimum 180-second image request timeout and preserve a longer configured timeout. Do not automatically retry a timeout: the first request may still succeed and a repeat can incur another charge.",[24,536,538],{"id":537},"use-a-generated-image-in-a-video","Use a generated image in a video",[10,540,541,542,544,545,172,548,550,551,555],{},"The returned ",[56,543,520],{}," is a normal image URL — pass it straight into other endpoints, e.g. as ",[56,546,547],{},"first_frame",[56,549,369],{}," for ",[338,552,554],{"href":553},"\u002Fguides\u002Fai-video","AI Video",":",[87,557,559],{"className":416,"code":558,"language":418,"meta":92,"style":92},"{\n  \"model_id\": \"seedance-2.0\",\n  \"prompt\": \"the scene gently comes alive, slow camera push-in\",\n  \"first_frame\": {\n    \"url\": \"https:\u002F\u002Fcdn.visionstory.ai\u002Fexample.png\"\n  }\n}\n",[56,560,561,565,578,590,597,605,610],{"__ignoreMap":92},[96,562,563],{"class":98,"line":99},[96,564,425],{"class":117},[96,566,567,570,572,575],{"class":98,"line":428},[96,568,569],{"class":106},"  \"model_id\"",[96,571,443],{"class":117},[96,573,574],{"class":113},"\"seedance-2.0\"",[96,576,577],{"class":117},",\n",[96,579,580,583,585,588],{"class":98,"line":437},[96,581,582],{"class":106},"  \"prompt\"",[96,584,443],{"class":117},[96,586,587],{"class":113},"\"the scene gently comes alive, slow camera push-in\"",[96,589,577],{"class":117},[96,591,592,595],{"class":98,"line":449},[96,593,594],{"class":106},"  \"first_frame\"",[96,596,434],{"class":117},[96,598,599,601,603],{"class":98,"line":455},[96,600,440],{"class":106},[96,602,443],{"class":117},[96,604,446],{"class":113},[96,606,608],{"class":98,"line":607},6,[96,609,452],{"class":117},[96,611,613],{"class":98,"line":612},7,[96,614,458],{"class":117},[24,616,618],{"id":617},"billing-limits-and-storage","Billing, limits, and storage",[460,620,621,637,655,661,675],{},[463,622,623,626,627,630,631,634,635,351],{},[19,624,625],{},"Not stored by default."," The image is returned as a URL but ",[19,628,629],{},"not"," added to your asset library — upload it via ",[56,632,633],{},"POST \u002Fapi\u002Fv1\u002Fasset"," if you want a reusable ",[56,636,517],{},[463,638,639,642,643,645,646,648,649,651,652,654],{},[19,640,641],{},"Billing:"," charged only on success, using ",[56,644,134],{}," for the selected resolution. ",[56,647,130],{}," remains the default-resolution price. The current GPT Image examples show 2 credits for ",[56,650,168],{}," and 3 for ",[56,653,175],{},"; read live prices before submitting. Other current models have the same price across their supported resolutions.",[463,656,657,660],{},[19,658,659],{},"Validation:"," an unsupported resolution returns HTTP 400; exceeding the selected model's reference limit returns HTTP 422.",[463,662,663,666,667,670,671,674],{},[19,664,665],{},"Failures:"," moderation refusal returns HTTP 403 with code ",[56,668,669],{},"37100","; other upstream failures return HTTP 403 with code ",[56,672,673],{},"1",". These failures happen before billing.",[463,676,677,680],{},[19,678,679],{},"Concurrency:"," synchronous generation is capped at a few concurrent requests per key during beta; excess requests are rejected rather than queued.",[24,682,684],{"id":683},"related-visionstory-api-guides","Related VisionStory API guides",[460,686,687,692],{},[463,688,689,691],{},[338,690,554],{"href":553}," — turn a generated image into video.",[463,693,694,700],{},[338,695,697],{"href":696},"\u002Freference\u002Fimages\u002Fcreate-image",[56,698,699],{},"POST \u002Fapi\u002Fv1\u002Fimage"," — full request schema and error behavior.",[702,703,704],"style",{},"html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":92,"searchDepth":428,"depth":428,"links":706},[707,708,709,710,711,712],{"id":26,"depth":428,"text":27},{"id":84,"depth":428,"text":85},{"id":354,"depth":428,"text":355},{"id":537,"depth":428,"text":538},{"id":617,"depth":428,"text":618},{"id":683,"depth":428,"text":684},"Generate or edit images with GPT Image, Seedream 5.0, and Nano Banana through the VisionStory API. Discover resolution pricing, reference limits, and timeouts.","md",{},{"title":717,"order":718},"Image Generation",8,"\u002Fguides\u002Fimage-generation",{"title":5,"description":713},"guides\u002Fimage-generation","VAnMyLkKLNnGpoTTNYA3yNFKkd1sz7osx8FIHHNz3Tw","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">curl\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> -s\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> -H\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> \"X-API-Key: \u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">$VISIONSTORY_API_KEY\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> https:\u002F\u002Fopenapi.visionstory.ai\u002Fapi\u002Fv1\u002Fimage\u002Fmodels\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#FFA657\">curl\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> -s\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> -X\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> POST\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> -H\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> \"X-API-Key: \u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">$VISIONSTORY_API_KEY\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> -H\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> \"Content-Type: application\u002Fjson\"\u003C\u002Fspan>\u003Cspan style=\"color:#79C0FF\"> -d\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> '{\"model_id\": \"seedream-5.0-lite\", \"prompt\": \"A red panda barista in a cozy cafe, warm lighting\", \"aspect_ratio\": \"1:1\", \"resolution\": \"2K\"}'\u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\"> https:\u002F\u002Fopenapi.visionstory.ai\u002Fapi\u002Fv1\u002Fimage\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">  \"data\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">    \"url\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"https:\u002F\u002Fcdn.visionstory.ai\u002Fexample.png\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">  }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>","\u003Cpre class=\"shiki github-dark-default\" style=\"background-color:#0d1117;color:#e6edf3\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">{\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">  \"model_id\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"seedance-2.0\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">  \"prompt\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"the scene gently comes alive, slow camera push-in\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">,\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">  \"first_frame\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: {\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#7EE787\">    \"url\"\u003C\u002Fspan>\u003Cspan style=\"color:#E6EDF3\">: \u003C\u002Fspan>\u003Cspan style=\"color:#A5D6FF\">\"https:\u002F\u002Fcdn.visionstory.ai\u002Fexample.png\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">  }\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E6EDF3\">}\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>",1790231923840]