| # Nano Banana custom block ๐ | |
| Use the following code to use the block standalone: | |
| ```py | |
| from diffusers.modular_pipelines import ModularPipelineBlocks | |
| banana_block = ModularPipelineBlocks.from_pretrained( | |
| "diffusers-internal-dev/nano-banana-modular", | |
| trust_remote_code=True, | |
| ) | |
| banana = banana_block.init_pipeline() | |
| output = banana( | |
| prompt="Create a picture of my cat eating a nano-banana in a fancy restaurant under the Gemini constellation" | |
| ) | |
| print(f"{output.values['output_image'].size=}") | |
| output.values["output_image"].save("generated_banana.png") | |
| ``` | |
| Result: | |
|  | |
| It accepts an image argument, too: | |
| ```py | |
| from diffusers.modular_pipelines import ModularPipelineBlocks | |
| from diffusers.utils import load_image | |
| banana_block = ModularPipelineBlocks.from_pretrained( | |
| "diffusers-internal-dev/nano-banana-modular", | |
| trust_remote_code=True, | |
| ) | |
| banana = banana_block.init_pipeline() | |
| output = banana( | |
| prompt="Make Pikachu hold a sign that says 'Qwen Edit is awesome'", | |
| image=load_image("https://huggingface.co/datasets/huggingface/documentation-images/resolve/main/diffusers/yarn-art-pikachu.png") | |
| ) | |
| print(f"{output.values['output_image'].size=}") | |
| output.values["output_image"].save("edited_banana.png") | |
| ``` | |
| Result: | |
| | Original | Edited | | |
| |---|---| | |
| |  |  | | |
| ### Misc | |
| * Nano Banana: https://ai.google.dev/gemini-api/docs/image-generation |