Varinha cria quadro vazio e taxa de quadros irregular

Eu tenho abaixo o trecho que cria um gif. Este trecho é derivado de dicasaqui. O snippet cria um quadro vazio e os quadros têm um atraso irregular entre eles. Observe o atraso entre o nada e o primeiro quadro e, em seguida, o segundo quadro aparece rapidamente. Por que isso acontece?

Eu tive que criar uma imagem de tamanho específico antes da mão porque, a varinha não está redimensionando a tela de acordo com a sequência de tamanho máximo. Eu tenho que encontrar uma maneira de resolver isso também.

def render(self):

        # map anim gif
        wand = Image2(width=205,height=223)

        #create frames
        for each_frame in self._tree_dot_frames:
            img = Image2(blob=each_frame)
            print('Image width: {} height: {}'.format(img.width,img.height))
            wand.sequence.append(img)

        #set frame rate
        for cursor in range(len(self._tree_dot_frames)):
            with wand.sequence[cursor] as frame:
                print('sequence width: {} height: {}'.format(frame.width,frame.height))
                frame.delay = 100

        #wand.merge_layers('merge')
        wand.format = 'gif'
        wand.save(filename='animated.gif')
        print('No of frames: {} gif width: {} height: {}'.format(len(wand.sequence),wand.width,wand.height))
        self._tree_dot_blob = wand.make_blob()

        return self._tree_dot_blob

Resultado:
Largura da imagem: 175 altura: 136
Largura da imagem: 205 altura: 223
largura de sequência: 205 altura: 223
largura de sequência: 175 altura: 136
Número de quadros: 3 gif largura: 205 altura: 223

PS: Tenho outro problema com um snippet semelhanteaqui, para não ser confundido com esse problema.

Atualização 1:
Abaixo está a saída se eu criar um objeto de varinha sem tamanho predefinido. A animação parece boa, mas a tela é de primeira sequência (que é menor), então o gif final é cortado, agora mostrando a segunda sequência completamente.

    #wand = Image2(width=205,height=223) 
    wand = Image2()

Atualização 2:
Abaixo está a saída se, com a alteração acima, eu também alimentar a sequência no sentido inverso, para que agora a varinha tenha o tamanho da 1ª sequência. Agora o tamanho final do gif está bom, mas como você pode ver, o quadro maior está sempre em segundo plano, o que agora é o novo problema.

    #create frames
    for each_frame in reversed(self._tree_dot_frames):
        img = Image2(blob=each_frame)
        print('Image width: {} height: {}'.format(img.width,img.height))
        wand.sequence.append(img)

Por favor, ajude como eu estou ficando preso se for em qualquer uma das direções acima.

Solução desejada seria aquele que leva o tamanho máximo de quadros alimentados e acomoda todos os quadros nesse tamanho / algo como abaixo deve fazer (eu mostrei apenas os dados dos primeiros 2 quadros no problema acima)

questionAnswers(1)

yourAnswerToTheQuestion