Hi everyone
I’m working on a real estate automation project using callin.io, where images are generated daily based on prompts stored in a Google Sheet (scheduled execution). The image generator is Leonardo.ai and I’m using the official module.
Here’s the flow I’m trying to implement:
- Scenario runs on schedule, pulling prompts from Google Sheets (one per row).
- Leonardo.ai is supposed to generate an image based on the prompt.
- Once the image is ready, the download URL should be retrieved and saved back to the Google Sheet.
- Image is then posted on social media using modules like Facebook/Instagram.
The main problems:
- Even with Sleep 300s or longer, Leonardo.ai rarely returns the final image correctly.
- The output is either missing, null, or just contains placeholder data, even though credits were deducted and generation completed on Leonardo’s side.
- Images are not ready when callin.io resumes execution — it proceeds too early.
- Tried switching to All-Images.ai → triggers work, but clicking “Voir” gives a blank screen or leads to no usable image output.
- The generated image, when received, often contains major rendering errors (e.g. missing hands, broken faces) or completely wrong content (e.g. military scene if prompt contains “Russian”).
- Can’t use Watch Image Generation from Leonardo.ai in a clean way without breaking scheduled flow from Google Sheets.
- Additionally, we would like to use advanced features like photoReal, alchemy, or upscaling, but can’t see where to insert these parameters in the current module.
What I need:
-
A stable and recommended structure that allows me to:
- Run on a fixed schedule
- Pull data from Google Sheets
- Generate image via Leonardo.ai using advanced settings
- Wait until image is 100% ready
- Capture working image URL
- Post-process or publish that image
If there’s a working solution using Leonardo + Watch webhook + Google Sheets in a clean, multi-step setup, I’d love to see an example or blueprint!
Thanks in advance to anyone who can guide me. Happy to share full JSON blueprint privately if that helps.
– Ashot
|
Leonardo.ai Module (callin.io) | Returns image URL
immediately after requesting generation |
|
Problem | The image physically does not exist on the server yet (the server returns 403 Access Denied
or 404 Not Found
) |
|
Effect | Facebook and Instagram modules receive an invalid link → error Missing value of required parameter 'url'
or invalid URL
|
|
Consequence | The entire scenario crashes or the post is not published |
|
Sleep (even 300s) | Does not solve the problem - time needed for generation may vary (sometimes 2 min, sometimes 10 min) |
|
Leonardo does not have a webhook | You cannot use Watch Image Generation
like in All-Images.ai
Hi there.
Could you share screenshots of your scenario?
It shouldn't be necessary to include a Sleep. The Generate an Image
module executes synchronously, waiting up to 300s for Leonardo.ai to generate the image (which should be sufficient for most uses - but see below).
Rendering errors or incorrect content are potential issues with any AI image generator; these are unlikely to be caused by the callin.io app.
Biases exist in the training data for all AI models. Other examples include model biases towards facial hair for all male characters, for instance. Careful prompt engineering (and the use of Leonardo.ai negative prompts) can help with this. Leonardo.ai has some great tips on this in their help archive.
Alchemy and PhotoReal options are available if you toggle the Show advanced settings
switch at the bottom of the Generate an Image
panel.
You can generate upscaled images in a few different ways:
- For an existing image, you can use the separate
Upscale an Image (Universal Upscaler)
module, which utilizes the Ultra upscaler. - Generating a new image with the Phoenix model and selecting the
Ultra
mode in the module (Ultra mode is not available in theGenerate an Image
module at present - requires using theMake an API Call
module). - Using the
upscaleRatio
parameter in the module (available under the Show advanced settings switch - requires Leonardo.ai Enterprise subscription).
If 300s might not be enough time for some of your generations, you would need to adopt a different approach. Leonardo.ai’s API does not provide a webhook notification, as you noted, so instead, it would be necessary to implement a polling mechanism.
In this case, you would use the Make an API Call
module to send your own request payload to Leonardo.ai’s Create a Generation of Images endpoint.
Using the returned generationId
, you would need to loop or recurse using the Make an API Call
module and the Get a Single Generation endpoint to check the status of the request and receive the image upon completion.