|
# 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 |