Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions src/libs/neural_restore.c
Original file line number Diff line number Diff line change
Expand Up @@ -995,13 +995,17 @@ static void _import_image(const char *filename,
dt_print(DT_DEBUG_AI, "[neural_restore] imported imgid=%d: %s", newid, filename);
if(dt_is_valid_imgid(source_imgid))
{
dt_grouping_add_to_group(source_imgid, newid);
const dt_image_t *src = dt_image_cache_get(source_imgid, 'r');
// get source image group ID; fallback to source_imgid if cache miss to
// avoid invalid 0 (NO_IMGID) group ID
const dt_imgid_t grpid = (src && dt_is_valid_imgid(src->group_id)) ?
src->group_id : source_imgid;
dt_image_cache_read_release(src);
dt_grouping_add_to_group(grpid, newid);
// promote the output as group leader, but only when the source
// was the current leader — preserves any manually-set leader the
// user deliberately chose
const dt_image_t *src = dt_image_cache_get(source_imgid, 'r');
const gboolean source_is_leader = src && src->group_id == source_imgid;
dt_image_cache_read_release(src);
const gboolean source_is_leader = (grpid == source_imgid);
if(source_is_leader)
dt_grouping_change_representative(newid);

Expand Down
Loading