Skip to content

[bot] Google GenAI: Image editing API (models.edit_image()) not instrumented #394

@braintrust-bot

Description

@braintrust-bot

Summary

The Google GenAI image editing API (Models.edit_image() / AsyncModels.edit_image()) is not instrumented. Calls to edit images using Imagen models produce zero Braintrust tracing. This is the image-editing counterpart to Models.generate_images(), which IS instrumented in this repo.

What is missing

Google GenAI Method Instrumented?
models.generate_content() Yes
models.generate_content_stream() Yes
models.embed_content() Yes
models.generate_images() Yes
models.edit_image() No
async_models.edit_image() No
models.generate_videos() No (tracked in #236)

The edit_image() method is the SDK entry point for AI-powered image editing operations including inpainting, outpainting, style transfer, and subject-based editing using Imagen models. It accepts a prompt, a reference image, and editing config, and returns an edited image result.

Minimum instrumentation

At minimum, both sync and async edit_image() should create spans capturing:

  • Input: prompt text, reference image metadata, model name, editing config
  • Output: edited image metadata (format, dimensions)
  • Metrics: latency
  • Metadata: model, editing parameters

The pattern should mirror the existing ModelsGenerateImagesPatcher / AsyncModelsGenerateImagesPatcher and reuse the _generate_images_wrapper / _async_generate_images_wrapper infrastructure if the response format is compatible, or define new _edit_image_wrapper / _async_edit_image_wrapper functions if not.

Braintrust docs status

not_found — The Gemini integration page documents generate_content, streaming, function calling, structured outputs, thinking tokens, and context caching. Image generation (generate_images) is supported. Image editing (edit_image) is not mentioned.

Upstream sources

Local files inspected

  • py/src/braintrust/integrations/google_genai/patchers.py — defines ModelsGenerateImagesPatcher and AsyncModelsGenerateImagesPatcher but no edit_image patchers; zero references to edit_image
  • py/src/braintrust/integrations/google_genai/tracing.py — contains _generate_images_wrapper and _async_generate_images_wrapper but no edit_image wrappers
  • py/src/braintrust/integrations/google_genai/integration.py — integration class registers image generation patchers but no image editing patchers
  • py/src/braintrust/integrations/google_genai/test_google_genai.py — no edit_image test cases
  • py/pyproject.toml — Google GenAI matrix: latest pinned to google-genai==1.74.0

Relationship to existing issues

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions