Gemini 2.5 Flash Image
IMAGEFeaturedgoogle-gemini-2-5-flash-image
Gemini 2.5 Flash Image leverages the advanced multimodal reasoning of Google’s Gemini architecture to power next-generation image synthesis. As a ‘Flash’ model, it is optimized for extremely fast performance, making it ideal for real-time and conversational AI applications. For the AI art community, this model excels at interpreting complex, multi-step prompts and can generate contextually rich images that align deeply with the user’s creative vision.
curl --request POST \ --url https://api.app.layer.ai/api/v2/workspaces/:workspace_id/base-models/google-gemini-2-5-flash-image/inferences \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "prompt": "a knight standing in a snowy forest", "aspect_ratio": "SQUARE_1K", "transparency": false, "guidance_file_init_image": [ { "url": "<file_url>" } ], "guidance_file_reference_image": [ { "url": "<file_url>" } ]}'import requests
url = "https://api.app.layer.ai/api/v2/workspaces/:workspace_id/base-models/google-gemini-2-5-flash-image/inferences"
payload = { "prompt": "a knight standing in a snowy forest", "aspect_ratio": "SQUARE_1K", "transparency": False, "guidance_file_init_image": [{ "url": "<file_url>" }], "guidance_file_reference_image": [{ "url": "<file_url>" }]}headers = { "Authorization": "Bearer <token>", "Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.json())const url = 'https://api.app.layer.ai/api/v2/workspaces/:workspace_id/base-models/google-gemini-2-5-flash-image/inferences';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"prompt":"a knight standing in a snowy forest","aspect_ratio":"SQUARE_1K","transparency":false,"guidance_file_init_image":[{"url":"<file_url>"}],"guidance_file_reference_image":[{"url":"<file_url>"}]}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}package main
import ( "fmt" "strings" "net/http" "io")
func main() {
url := "https://api.app.layer.ai/api/v2/workspaces/:workspace_id/base-models/google-gemini-2-5-flash-image/inferences"
payload := strings.NewReader("{\n \"prompt\": \"a knight standing in a snowy forest\",\n \"aspect_ratio\": \"SQUARE_1K\",\n \"transparency\": false,\n \"guidance_file_init_image\": [\n {\n \"url\": \"<file_url>\"\n }\n ],\n \"guidance_file_reference_image\": [\n {\n \"url\": \"<file_url>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>") req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [ CURLOPT_URL => "https://api.app.layer.ai/api/v2/workspaces/:workspace_id/base-models/google-gemini-2-5-flash-image/inferences", CURLOPT_RETURNTRANSFER => true, CURLOPT_ENCODING => "", CURLOPT_MAXREDIRS => 10, CURLOPT_TIMEOUT => 30, CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, CURLOPT_CUSTOMREQUEST => "POST", CURLOPT_POSTFIELDS => json_encode([ 'prompt' => 'a knight standing in a snowy forest', 'aspect_ratio' => 'SQUARE_1K', 'transparency' => null, 'guidance_file_init_image' => [ [ 'url' => '<file_url>' ] ], 'guidance_file_reference_image' => [ [ 'url' => '<file_url>' ] ] ]), CURLOPT_HTTPHEADER => [ "Authorization: Bearer <token>", "Content-Type: application/json" ],]);
$response = curl_exec($curl);$err = curl_error($curl);
curl_close($curl);
if ($err) { echo "cURL Error #:" . $err;} else { echo $response;}OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");RequestBody body = RequestBody.create(mediaType, "{\n \"prompt\": \"a knight standing in a snowy forest\",\n \"aspect_ratio\": \"SQUARE_1K\",\n \"transparency\": false,\n \"guidance_file_init_image\": [\n {\n \"url\": \"<file_url>\"\n }\n ],\n \"guidance_file_reference_image\": [\n {\n \"url\": \"<file_url>\"\n }\n ]\n}");Request request = new Request.Builder() .url("https://api.app.layer.ai/api/v2/workspaces/:workspace_id/base-models/google-gemini-2-5-flash-image/inferences") .post(body) .addHeader("Authorization", "Bearer <token>") .addHeader("Content-Type", "application/json") .build();
Response response = client.newCall(request).execute();require 'uri'require 'net/http'
url = URI("https://api.app.layer.ai/api/v2/workspaces/:workspace_id/base-models/google-gemini-2-5-flash-image/inferences")
http = Net::HTTP.new(url.host, url.port)http.use_ssl = true
request = Net::HTTP::Post.new(url)request["Authorization"] = 'Bearer <token>'request["Content-Type"] = 'application/json'request.body = "{\n \"prompt\": \"a knight standing in a snowy forest\",\n \"aspect_ratio\": \"SQUARE_1K\",\n \"transparency\": false,\n \"guidance_file_init_image\": [\n {\n \"url\": \"<file_url>\"\n }\n ],\n \"guidance_file_reference_image\": [\n {\n \"url\": \"<file_url>\"\n }\n ]\n}"
response = http.request(request)puts response.read_bodyvar client = new RestClient("https://api.app.layer.ai/api/v2/workspaces/:workspace_id/base-models/google-gemini-2-5-flash-image/inferences");var request = new RestRequest("", Method.Post);request.AddHeader("Authorization", "Bearer <token>");request.AddHeader("Content-Type", "application/json");request.AddParameter("application/json", "{\n \"prompt\": \"a knight standing in a snowy forest\",\n \"aspect_ratio\": \"SQUARE_1K\",\n \"transparency\": false,\n \"guidance_file_init_image\": [\n {\n \"url\": \"<file_url>\"\n }\n ],\n \"guidance_file_reference_image\": [\n {\n \"url\": \"<file_url>\"\n }\n ]\n}", ParameterType.RequestBody);var response = client.Execute(request);Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Id of the workspace that owns the resource.
Id of the workspace that owns the resource.
Query Parameters
Section titled “Query Parameters”Organize this run under a named session. A new session is created if none matches.
Organize this run under a named session. A new session is created if none matches.
Header Parameters
Section titled “Header Parameters”Opaque key making a retry of this request return the first result. A 2xx response is replayed for 24 hours with Idempotent-Replayed: true. A 4xx releases the key. A 5xx, or a request still running, holds the key for 120 seconds, during which a retry gets 409; after that a retry executes again. The key covers the method, path, query, and byte-identical body it was first used with; reusing it for a different request is rejected with 422. Protection is best effort: if the key store is unavailable, or a record is lost early, a retry can execute again even after an earlier 409. See the Idempotency section of the API description.
Request Bodyrequired
Section titled “Request Bodyrequired”object
Describe what to generate, or the change to make.
The shape and size of the output.
The starting point for the model’s randomness. The same seed and settings give the same result.
Advanced field.
Output the subject alone, with no backdrop behind it.
The image to modify
A single guidance/reference file supplied to a reference_image_list field.
The slot’s guidance type is fixed by the field it’s attached to; the caller
supplies the file (its URL, or the id of a file it can read) and, where the model supports
per-file weighting, a weight.
object
The file’s URL, or the id of a file in this workspace or a public file.
Guides the edit
A single guidance/reference file supplied to a reference_image_list field.
The slot’s guidance type is fixed by the field it’s attached to; the caller
supplies the file (its URL, or the id of a file it can read) and, where the model supports
per-file weighting, a weight.
object
The file’s URL, or the id of a file in this workspace or a public file.
Where the light comes from, how bright it is and its colour.
object
object
object
object
Trim the transparent margin, and place the image on a canvas of a fixed size.
object
How the drawing goes onto a fixed canvas. The names follow the workflow Resize node’s.
The point of the drawing that lands on the same point of the canvas.
BASE is a game tile’s base: its anchor, the bottom centre of the cell it stands on, lands
at the bottom centre of the canvas, so tiles of one grid stand on the same point whatever rises above them.
The language the prompt is written in, so it reaches the model as you meant it.
Advanced field.
Example
{ "prompt": "a knight standing in a snowy forest", "aspect_ratio": "SQUARE_1K", "transparency": false, "guidance_file_init_image": [ { "url": "<file_url>" } ], "guidance_file_reference_image": [ { "url": "<file_url>" } ]}Responses
Section titled “Responses”Successful Response
object
Unique identifier for this forge run.
Current status: IN_PROGRESS.
Estimated price in Creative Units.
Suggested polling interval in seconds.
Timestamp of when the run was created.
Session ID the run was added to, if a session was specified.
Inference parameters after model-specific normalization.
These reflect the actual values used for generation, including model defaults applied for any parameters not explicitly set.
object
Resolved output width in pixels.
Resolved output height in pixels.
Number of outputs to generate.
Resolved number of diffusion steps.
Resolved guidance scale.
Resolved output length in seconds — video duration or audio clip length.
Resolved FPS.
Example
{ "status": "in_progress"}Unauthenticated — missing or invalid Bearer token.
object
Example
{ "type": "https://api.layer.ai/errors/ERROR_CODE", "title": "Error Title", "status": 400, "detail": "Human-readable description."}Forbidden — insufficient permissions, or the access token lacks the scope the operation requires.
object
Example
{ "type": "https://api.layer.ai/errors/ERROR_CODE", "title": "Error Title", "status": 400, "detail": "Human-readable description."}Resource not found.
object
Example
{ "type": "https://api.layer.ai/errors/ERROR_CODE", "title": "Error Title", "status": 400, "detail": "Human-readable description."}The outcome of the request with this Idempotency-Key is not known yet: it is still running, or it failed without a stored response. Retry after the number of seconds in Retry-After.
object
Example
{ "type": "https://api.layer.ai/errors/ERROR_CODE", "title": "Error Title", "status": 400, "detail": "Human-readable description."}Invalid input parameters, or an Idempotency-Key reused for a different request.
object
Example
{ "type": "https://api.layer.ai/errors/ERROR_CODE", "title": "Error Title", "status": 400, "detail": "Human-readable description."}Rate limited — retry after the number of seconds in Retry-After.
object
Example
{ "type": "https://api.layer.ai/errors/ERROR_CODE", "title": "Error Title", "status": 400, "detail": "Human-readable description."}Internal server error.
object
Example
{ "type": "https://api.layer.ai/errors/ERROR_CODE", "title": "Error Title", "status": 400, "detail": "Human-readable description."}