Display Suite: how can I generate a render array for a field that is not being displayed
I got it worked out, so here is my new code that actually renders the image fields instead of relying on them being prerendered for me:

/**
 * Implements hook_ds_fields_info().
 */
function MY_MODULE_ds_fields_info($entity_type) {
    if ($entity_type == 'node') {
        $fields = array();
        $fields['generated_cover'] = array(
            'title' =&gt; 'Generated Cover',
            'field_type' =&gt; DS_FIELD_TYPE_FUNCTION,
            'function' =&gt; '_MY_MODULE_ds_field_generated_cover',
            'formatters' =&gt; array(
                'standard' =&gt; 'Standard output',
            ),
        );
        return array('node' =&gt; $fields,);
    }
}

/*
 * Generate the output for the generated cover image field
 */
function _MY_MODULE_ds_field_generated_cover($field) {

    // Get information about the entity being rated and the formatter we're using.
    $entity = $field['entity'];
    $image_style = ($field['view_mode'] == 'teaser') ? 'list_view_cover' : 'medium';

    if (!empty($entity-&gt;field_doc_cover)) {
//        $output = "cover";
        $display = array(
            'settings' =&gt; array(
                'image_style' =&gt; $image_style,
            ),
            'label' =&gt; 'hidden',
        );
        $to_render = field_view_field('node', $entity, 'field_doc_cover', $display);
        $output = render($to_render[0]);

    //    $output = render(entity_view('doc_publication_files', $entity-&gt;field_doc_cover, 'teaser', $entity-&gt;language));
    } else if (!empty($entity-&gt;field_doc_pub_files)) {
//        $output = "preview";
        $display = array(
            'settings' =&gt; array(
                'image_style' =&gt; $image_style,
            ),
            'type' =&gt; 'pdfpreview',
            'label' =&gt; 'hidden',
        );
        $to_render = field_view_field('node', $entity, 'field_doc_pub_files', $display);
        $output = render($to_render[0]);
    } else {
        $output = "";
    }
    return $output;
}