Skip to content

feat(image-generation): Image generation using Gemini Flash #13334

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
May 2, 2025

Conversation

msampathkumar
Copy link
Member

Description

Fixes b/406524712

  • Please merge this PR for me once it is approved

Copy link

snippet-bot bot commented May 1, 2025

Here is the summary of changes.

You are about to add 3 region tags.

This comment is generated by snippet-bot.
If you find problems with this result, please file an issue at:
https://github.com/googleapis/repo-automation-bots/issues.
To update this comment, add snippet-bot:force-run label or use the checkbox below:

  • Refresh this comment

@product-auto-label product-auto-label bot added the samples Issues that are directly related to samples. label May 1, 2025
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello @msampathkumar, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

Summary of Changes

This pull request introduces image generation capabilities using the Gemini Flash model. It adds three new example scripts demonstrating different use cases: generating an image from text, editing an existing image with text, and generating an illustrated recipe with both text and images. Additionally, it includes corresponding tests to verify the functionality of these new features. The PR addresses the issue b/406524712.

Highlights

  • New Feature: Introduces image generation using the Gemini Flash model.
  • Example Scripts: Adds three new example scripts showcasing different image generation use cases.
  • Testing: Includes tests to verify the functionality of the new image generation features.

Changelog

Click here to see the changelog
  • genai/image_generation/imggen_mmflash_edit_img_with_txt_img.py
    • Added a new script to demonstrate editing an existing image using text prompts with the Gemini Flash model.
    • The script takes an image (example-image.png) and a text prompt ('Edit this image to make it look like a cartoon.') as input.
    • It generates a cartoon-style version of the image and saves it as bw-example-image.png.
  • genai/image_generation/imggen_mmflash_txt_and_img_with_txt.py
    • Added a new script to demonstrate generating an illustrated recipe using the Gemini Flash model.
    • The script generates a paella recipe with accompanying images.
    • It saves the recipe as a markdown file (paella-recipe.md) and the images as example-image-*.png.
  • genai/image_generation/imggen_mmflash_with_txt.py
    • Added a new script to demonstrate generating an image from a text prompt using the Gemini Flash model.
    • The script generates an image of the Eiffel Tower with fireworks based on the prompt.
    • It saves the generated image as example-image.png.
  • genai/image_generation/test_image_generation.py
    • Imported the new image generation example scripts.
    • Added new test functions to verify the functionality of the new image generation examples.
    • The tests check if the generated image files and markdown file are created successfully and cleans up the generated files after the test.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in issue comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.


From text, an image,
Gemini Flash takes the stage,
New art is born now.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

The pull request introduces image generation capabilities using the Gemini Flash model. The changes include three new example scripts and corresponding tests. Overall, the code is well-structured and easy to follow. However, there are a few areas that could be improved for clarity and robustness.

Summary of Findings

  • Image file handling: The example scripts directly save generated images to the local filesystem without considering potential permission issues or cleanup failures. It would be better to handle these files within a temporary directory and ensure proper cleanup.
  • Return values of example functions: The example functions return the name of the image file created. This is not very informative. Consider returning a success status or more detailed information about the generated content.
  • Missing error handling: The code does not include any error handling for the API calls. This could lead to unexpected behavior if the API fails.

Merge Readiness

The pull request introduces useful functionality and the code is generally well-written. However, the lack of error handling and potential issues with file management should be addressed before merging. I am unable to approve this pull request, and recommend that others review and approve this code before merging.

@msampathkumar
Copy link
Member Author

CICD Error - RESOURCE_EXHAUSTED !

Please re-run this CICD test after sometime. Thanks

@msampathkumar msampathkumar added the kokoro:force-run Add this label to force Kokoro to re-run the tests. label May 1, 2025
@kokoro-team kokoro-team removed the kokoro:force-run Add this label to force Kokoro to re-run the tests. label May 1, 2025
@msampathkumar msampathkumar requested a review from holtskinner May 2, 2025 14:25
@holtskinner holtskinner merged commit eb074de into main May 2, 2025
14 checks passed
@holtskinner holtskinner deleted the b_406524712 branch May 2, 2025 15:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
samples Issues that are directly related to samples.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants