Godot: import a Sume image as a texture, WebP or PNG
Godot imports PNG, JPEG and WebP. Drop a Sume image into res://, pick Lossless or VRAM Compressed, and use 1024x1024 where power-of-two sizes help.

Put the file in your project folder and Godot imports it; you do not have to convert a Sume image first. Godot's image import guide lists PNG, JPEG and WebP among the formats it imports, so any of the three output_format values in Sume's image API works. The real choices are the compression mode and the size.
Godot's page names five compression modes: Lossless, Lossy, VRAM Compressed, VRAM Uncompressed and Basis Universal. It also says power-of-two sizes are optimal but not required.
Which mode fits which generated asset?
| Mode | Where it fits a generated image | Watch for |
|---|---|---|
| Lossless | UI art, icons, 2D sprites you will edit again | Larger memory use for big images |
| Lossy | Backgrounds and splash art where size matters | Visible artefacts on sharp text |
| VRAM Compressed | 3D textures on desktop and mobile GPUs | Blocky detail on fine lines |
| VRAM Uncompressed | Textures that must stay exact | Highest GPU memory cost |
| Basis Universal | One texture shipped to many GPU targets | Longer import time |
What size should I request?
For GPT Image 2.5, OpenAI's guide lists 1024x1024, 1536x1024 and 1024x1536 as the recommended sizes, and 1024x1024 is a power of two. For a tileable ground or wall texture, ask for the square size and a prompt that says seamless; then check the edges in the editor, because the model does not guarantee a perfect tile.
Keep prototypes cheap. quality: "low" is a valid value on every GPT Image 2.5 request, and you can raise it for the one asset you keep. The usage.cost field on each 200 response tells you what the call billed.
A fetch command for your asset folder
This request saves a square draft straight into the project. It needs jq and a key in the environment; swap png for webp if you prefer the smaller file, since Godot imports both.
curl -s https://api.sume.com/v1/images \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"openai/gpt-image-2.5","prompt":"seamless mossy stone floor texture, top-down","quality":"low","aspect_ratio":"1:1","output_format":"png"}' \
| jq -r '.data[0].url' \
| xargs curl -s -o res/textures/moss.pngIf the first call returns 202, jq finds no data and xargs downloads nothing; the jobs guide shows how to poll the status_url in that case.
Name files by purpose, not by the prompt, and keep the Sume response's data[0].url in a text file next to each asset. When an art lead asks which prompt made moss.png, the note beside it answers faster than a search through shell history. Godot reimports a changed file the next time the editor regains focus, so you can overwrite a draft with a higher-quality regeneration and keep the same resource path in every scene.
Sources
Related posts
More in Use cases
- Google Ads AI label: on-ad overlays only for EU, India and New York
Google's AI label always lands in the My Ad Center panel, but on-ad overlays follow campaign location. Which Sume assets to flag and how to log it.
- Google video enhancements add English-only voiceover: opt out or ship
Google video enhancements can flip, shorten and add English-only AI voiceover to your clip. Opt out per campaign, or ship a finished cut.
- Google Ads video upload formats: MP4 is accepted, cap is 256 GB
Google recommends MPG but accepts MP4, MOV, WebM and more under 256 GB for video ads. Sume returns MP4 from timeline, trim and filter. Sizes: 16:9, 9:16, 1:1.
- Can I call my AI video human-made? Google's rule and a job record
Google's policy bars claiming AI output was made solely by a human to deceive. Keep a per-clip record from Sume's poll response to show origin.
Written by Sume