' . esc_html__( 'Settings', '45squared-ai-powered-image-generator' ) . '' ); ?>

sanitize_text_field( wp_unslash( $_POST['model'] ?? '' ) ), 'aspect_ratio' => sanitize_text_field( wp_unslash( $_POST['aspect_ratio'] ?? '1:1' ) ), 'image_size' => sanitize_text_field( wp_unslash( $_POST['image_size'] ?? '1K' ) ), 'count' => absint( $_POST['count'] ?? 1 ), ); $api = new Nano_Banana_API(); $images = $api->generate_image( $prompt, $options ); if ( is_wp_error( $images ) ) { wp_send_json_error( $images->get_error_message() ); } $results = array(); foreach ( $images as $image ) { $results[] = array( 'data' => base64_encode( $image['data'] ), // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_encode 'mimeType' => $image['mime_type'], ); } // Log to history. Nano_Banana_History::log_generation( $prompt, $options['model'], count( $images ) ); wp_send_json_success( $results ); } /** * AJAX: Save a generated image to the Media Library. */ public function ajax_save_image() { check_ajax_referer( 'nano_banana_nonce', 'nonce' ); if ( ! current_user_can( 'upload_files' ) ) { wp_send_json_error( __( 'Unauthorized.', '45squared-ai-powered-image-generator' ) ); } $image_b64 = sanitize_text_field( wp_unslash( $_POST['image_data'] ?? '' ) ); $mime_type = sanitize_text_field( wp_unslash( $_POST['mime_type'] ?? 'image/png' ) ); $prompt = sanitize_textarea_field( wp_unslash( $_POST['prompt'] ?? '' ) ); $model = sanitize_text_field( wp_unslash( $_POST['model'] ?? '' ) ); if ( empty( $image_b64 ) ) { wp_send_json_error( __( 'No image data provided.', '45squared-ai-powered-image-generator' ) ); } $image_data = array( 'data' => base64_decode( $image_b64 ), // phpcs:ignore WordPress.PHP.DiscouragedPHPFunctions.obfuscation_base64_decode 'mime_type' => $mime_type, ); $api = new Nano_Banana_API(); $attach_id = $api->save_to_media_library( $image_data, $prompt, $model ); if ( is_wp_error( $attach_id ) ) { wp_send_json_error( $attach_id->get_error_message() ); } wp_send_json_success( array( 'attachmentId' => $attach_id, 'editUrl' => get_edit_post_link( $attach_id, 'raw' ), 'url' => wp_get_attachment_url( $attach_id ), ) ); } }