Como reduzir o uso de memória da varinha?

Estou usando wand e pytesseract para obter o texto dos pdfs enviados para um site do django da seguinte forma:

image_pdf = Image(blob=read_pdf_file, resolution=300)
image_png = image_pdf.convert('png')

req_image = []
final_text = []

for img in image_png.sequence:
    img_page = Image(image=img)
    req_image.append(img_page.make_blob('png'))

for img in req_image:
    txt = pytesseract.image_to_string(PI.open(io.BytesIO(img)).convert('RGB'))
    final_text.append(txt)

return " ".join(final_text)

Eu o execute no aipo em um servidor ec2 separado. No entanto, como o image_pdf cresce para aproximadamente 4 GB, mesmo para um arquivo pdf de 13,7 mb, está sendo interrompido pelo oom killer. Em vez de pagar por uma RAM mais alta, quero tentar reduzir a memória usada pelo wand e pelo ImageMagick. Como já é assíncrono, não me importo com o aumento dos tempos de computação. Eu já passei por isso:http: //www.imagemagick.org/Usage/files/#massiv, mas não tenho certeza se ele pode ser implementado com varinha. Outra correção possível é uma maneira de abrir um pdf na varinha, uma página de cada vez, em vez de colocar a imagem completa na RAM de uma vez. Como alternativa, como eu poderia interagir diretamente com o ImageMagick usando python para poder usar essas técnicas de limitação de memória?