Fidelidad al diseño del producto
Si se conservan la forma, las proporciones, el color, el logotipo y el texto del envase.
guía del modelo
gemini-3-pro-image
Pensado para instrucciones complejas y generación en alta resolución. La edición y las referencias aún no están verificadas.
Estos son los ajustes disponibles actualmente en YingTu.
A premium campaign key visual for a design-led audio product, precise industrial details, controlled studio reflections, cinematic depth.
A layered architectural scene with people, signage, landscaping, and coherent late-afternoon lighting, realistic material detail.
A refined still life of precision stationery and sculptural desk objects, controlled studio lighting, accurate materials, crisp micro-detail, high-resolution finish.
Estos son los ajustes disponibles actualmente en el estudio de imágenes.
El ejemplo usa el mismo formato de petición que el estudio.
import base64
import mimetypes
import os
import sys
import requests
API_KEY = os.environ.get("LAOZHANG_API_KEY")
if not API_KEY:
raise RuntimeError("Set the LAOZHANG_API_KEY environment variable before running this example.")
API_URL = "https://api2.laozhang.ai/v1beta/models/gemini-3-pro-image:generateContent"
REQUEST_TIMEOUT_SECONDS = 500
headers = {
"Authorization": f"Bearer {API_KEY}",
"Content-Type": "application/json",
}
payload = {
"contents": [{
"parts": [
{"text": "A premium campaign key visual for a design-led audio product, precise industrial details, controlled studio reflections, cinematic depth."}
]
}],
"generationConfig": {
"responseModalities": ["IMAGE"],
"imageConfig": {
"imageSize": "2K"
}
}
}
try:
response = requests.post(
API_URL,
headers=headers,
json=payload,
timeout=REQUEST_TIMEOUT_SECONDS,
)
except requests.Timeout as error:
print(
"Request timed out after 500 seconds. The result status may be unknown; "
"check call and billing logs before retrying.",
file=sys.stderr,
)
raise SystemExit(1) from error
if response.status_code != 200:
print(f"API error {response.status_code}: {response.text}", file=sys.stderr)
raise SystemExit(1)
try:
result = response.json()
except ValueError as error:
print("API returned a non-JSON response.", file=sys.stderr)
raise SystemExit(1) from error
if not isinstance(result, dict):
print("API returned an unexpected JSON shape.", file=sys.stderr)
raise SystemExit(1)
image_part = None
for candidate in result.get("candidates", []):
for part in candidate.get("content", {}).get("parts", []):
inline_data = part.get("inlineData") or part.get("inline_data")
if inline_data and inline_data.get("data"):
image_part = inline_data
break
if image_part:
break
if not image_part:
response_id = result.get("responseId", "not provided")
print(f"No image data in response. responseId={response_id}", file=sys.stderr)
raise SystemExit(1)
mime_type = image_part.get("mimeType") or image_part.get("mime_type") or "image/png"
encoded_image = image_part["data"]
if encoded_image.startswith("data:"):
header, encoded_image = encoded_image.split(",", 1)
mime_type = header[5:].split(";", 1)[0] or mime_type
extension_by_mime = {
"image/jpeg": "jpg",
"image/png": "png",
"image/webp": "webp",
"image/gif": "gif",
}
extension = extension_by_mime.get(mime_type, "bin")
output_path = f"output.{extension}"
with open(output_path, "wb") as output_file:
output_file.write(base64.b64decode(encoded_image, validate=True))
print(f"Image saved: {output_path} ({mime_type})")
Estas imágenes no incluyen el modelo ni el prompt usados para crearlas. Son ejemplos visuales, no resultados de una prueba del modelo.



Ficha de la prueba
Aquí solo mostramos resultados públicos que pueden revisarse con el mismo procedimiento. El contenido no publicado no aparece.
Si se conservan la forma, las proporciones, el color, el logotipo y el texto del envase.
Si se conservan el sujeto y sus bordes, aparece el fondo solicitado y no hay cambios no deseados.