Commit 3aa33f49 authored by yaoke.yk's avatar yaoke.yk

生成场景图片失败修复api

parent 7d9fd30b
......@@ -361,6 +361,12 @@ public class AssetGenPipelineServiceImpl implements AssetGenPipelineService {
@Override
public Scene saveScene(Scene scene) {
if (scene.getId() != null) {
Scene existing = sceneMapper.selectById(scene.getId());
if (existing != null && shouldRefreshSceneImagePrompt(scene, existing)) {
scene.setImagePrompt(buildSceneImagePromptFallback(scene));
}
}
if (scene.getImagePrompt() == null || scene.getImagePrompt().isBlank()) {
scene.setImagePrompt(buildSceneImagePromptFallback(scene));
}
......@@ -395,6 +401,27 @@ public class AssetGenPipelineServiceImpl implements AssetGenPipelineService {
return prompt.toString();
}
private boolean shouldRefreshSceneImagePrompt(Scene incoming, Scene existing) {
if (incoming == null || existing == null) {
return false;
}
String incomingPrompt = normalizeSceneField(incoming.getImagePrompt());
String existingPrompt = normalizeSceneField(existing.getImagePrompt());
if (incomingPrompt.isBlank()) {
return true;
}
if (!incomingPrompt.equals(existingPrompt)) {
return false;
}
return !normalizeSceneField(incoming.getName()).equals(normalizeSceneField(existing.getName()))
|| !normalizeSceneField(incoming.getDescription()).equals(normalizeSceneField(existing.getDescription()))
|| !normalizeSceneField(incoming.getSceneType()).equals(normalizeSceneField(existing.getSceneType()));
}
private String normalizeSceneField(String value) {
return value == null ? "" : value.trim();
}
@Override
public void deleteCharacter(Long id, Long tenantId) {
Character character = characterMapper.selectById(id);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment