Hey, thanks for the detailed report. There’s an important detail about how image generation works in Cursor, and it explains almost everything you’re seeing.
Image generation in Cursor is text-to-image, not img2img or an image editor. The reference images you attach are sent to the model as style and content guidance, but they’re not treated as a base image that gets a composition-preserving edit on top. So:
- Composition, character placement, and framing aren’t preserved at a pixel level. A new image is generated each time.
- “Maintain characters intact, only add creatures to environment” is localized edit or inpainting behavior, and it isn’t supported right now. This isn’t a regression, that pipeline was never there.
- If it looked like the composition stayed the same before, it was most likely just lucky generations with a similar prompt and seed.
About the repeated 400 errors, some of them are refusals from the upstream provider due to prompt content filtering. Prompts with alien creatures, hidden beings, weapons, and similar themes can trigger this inconsistently from request to request.
What you can try for better stability:
- Describe the final scene in one go, instead of “edit the first image, add…”. For example: “jungle scene in the style of […], with characters X and Y in poses …, alien creatures hidden in foliage”.
- Rephrase parts that might read as threats or violence in a more neutral way.
- For real composition-preserving editing, external img2img tools are still the better option for now, then you can use the result in Cursor.
Also, this looks like the same case you opened here: Image editing regression + repeated 400 errors + inconsistent content filtering five days ago. Let’s continue in that thread, and I’ll close this one as a duplicate.