SaveMyCert
Log in
5 of 5 free questions left today·for 30 a day
AI-103 · Domain 3

Implement computer vision solutions practice questions

Implement computer vision solutions is worth 13% of the AI-103 exam — the 3rd-heaviest of the 5 domains. Image and video generation and editing, multimodal understanding with Azure Content Understanding, and responsible AI for visual content. Official weighting 10–15%. 6 fully worked examples are further down this page, answers included.

Exam weight
13%
the 3rd-heaviest of the 5 domains
Questions
72
across 3 topics
Free, no account
5/day
a free account allows 30 a day
Explanations
Every option
right and wrong

Build a practice session

5 free questions left today.

Domains

How many?

Mode

Ready when you are

10 fresh questions drawn across 1 of 5 domains, in Learn mode.

Focused review

Every question you answer incorrectly, and every question you flag while practising, is saved here automatically. Finish a session and you can come back to re-drill just those.

6 sample Implement computer vision solutions questions, fully explained

Questions from the AI-103 bank mapped to domain 3, with the answer key and the reasoning behind every option. None of them repeat the examples on the main AI-103 practice page.

Question 1Implement computer vision solutions

A developer calls client.videos.create with a sora-2 deployment through the OpenAI client and the resource's /openai/v1/ base URL. The call returns at once with an object whose status is queued and that contains no video data. The developer needs the finished MP4 file. What should the code do next?

Choose one.

  • a
    Read the MP4 location from the url field of the object that videos.create returned

    The create response describes a queued job with an ID, status and progress; it carries no video URL to read.

  • b
    Poll client.videos.retrieve until the job completes, then call download_content Correct

    Video generation is asynchronous: the create call returns a job, its status moves through queued and in_progress, and the MP4 is fetched with download_content once it is completed.

  • c
    Call client.videos.remix with the returned ID so the queued job starts rendering

    Remix starts a new generation from a completed video. It does not start or speed up a queued job.

  • d
    Repeat client.videos.create with stream=True and read the MP4 bytes from the chunks

    The videos API is a job API without a streaming mode; the finished file comes from download_content.

The concept

Sora 2 video generation is an asynchronous job: create, poll, then download.

Why that’s the answer

videos.create starts a render job and returns immediately with status queued. The app polls videos.retrieve (or uses the create_and_poll helper) until the status is completed, failed or cancelled, then downloads the MP4 with videos.download_content(video_id, variant="video"). There is no URL in the create response, no streaming mode, and remix is a separate generation that needs a completed source video.

How to reason it out
  1. Recognise the queued status as a job, not a result.
  2. Recall the job states: queued, in_progress, then completed or failed.
  3. Fetch the file only after completion, with download_content.
  4. Reject options that expect content from the create call itself.

Exam tip: Sora 2: create returns a job ID; poll retrieve until completed, then download_content.

AI-103: Image and Video Generation and Editing in Foundry — GPT-image, FLUX and Sora 2 — the lesson that teaches this.

Question 2Implement computer vision solutions

A travel site uses a gpt-image-1 deployment to edit hotel photos. For one 1024x1024 photo, it must replace only the cloudy sky with a clear sunset while every pixel of the building stays as it is. The developer calls the images edit endpoint with the photo and a prompt. What else must the request include?

Choose one.

  • a
    A JPEG mask that is 1024x1024 with the sky area painted solid white

    A JPEG has no alpha channel, and the edit area is marked by transparency (alpha 0), not by a colour, so this mask marks nothing for editing.

  • b
    A PNG mask that is 1024x1024 with the sky area fully transparent Correct

    The mask must be a PNG with the same dimensions as the input image, and fully transparent pixels mark the area the model may change.

  • c
    A PNG mask that is 512x512 with the sky area painted solid white

    The format is right, but the mask must match the photo's dimensions, and a white-painted area is not an edit area; transparency is.

  • d
    A JPEG mask that is 512x512 with the sky area fully transparent

    The mask must be a PNG, which can carry an alpha channel, and must match the input image's 1024x1024 dimensions.

The concept

Inpainting with GPT-image models uses a PNG mask whose transparent pixels mark the editable area.

Why that’s the answer

A mask-based edit sends the image, a prompt and a mask. Three rules apply together: the mask must be a PNG, it must have the same dimensions as the input image, and the area to edit is the part with fully transparent pixels (alpha 0) while opaque areas are kept. Each wrong mask breaks at least one rule: a JPEG cannot carry transparency, a 512x512 mask does not match the 1024x1024 photo, and painting the sky a colour marks nothing for editing.

How to reason it out
  1. Identify the requirement: change one region and keep the rest.
  2. Recall that a mask confines an edit, and that transparency marks the editable area.
  3. Check the mask format: PNG, because it carries an alpha channel.
  4. Check the mask size against the photo: identical dimensions.

Exam tip: Mask = PNG, same size as the image, transparent where the model may edit.

AI-103: Image and Video Generation and Editing in Foundry — GPT-image, FLUX and Sora 2 — the lesson that teaches this.

Question 3Implement computer vision solutions

A developer moves an image feature from an older model to a gpt-image-1 deployment. The code calls client.images.generate and saves the image by downloading result.data[0].url, which worked before. After the switch the call succeeds, but result.data[0].url is None. The developer wants the smallest code change that saves the image. What should the developer do?

Choose one.

  • a
    Add response_format="url" to the images.generate call so a URL is returned

    GPT-image models do not support response_format; they return base64 data whatever the request asks for.

  • b
    Add output_format="png" to the call so the service stores a hosted copy

    output_format chooses PNG or JPEG for the returned data; it does not make the service host the file or return a URL.

  • c
    Decode result.data[0].b64_json and write the decoded bytes to the image file Correct

    GPT-image models always return the image as base64 in b64_json, so the app decodes it instead of downloading a URL.

  • d
    Read result.data[0].revised_prompt and use it to look up the stored image

    A revised prompt is text about the request; it is not a pointer to stored image data.

The concept

GPT-image models return generated images as base64 data, not URLs.

Why that’s the answer

The GPT-image series always returns b64_json, and response_format is not supported for these models. Code written for URL-returning models must decode the base64 string and write the bytes. output_format only picks the encoding of the returned image (PNG or JPEG), and a revised prompt is just text.

How to reason it out
  1. Note what changed: the model family, not the call.
  2. Recall the GPT-image response shape: data[].b64_json.
  3. Recall that response_format is not supported for GPT-image models.
  4. Decode the base64 string and save the bytes.

Exam tip: GPT-image output is always b64_json: decode it, don't look for a URL.

AI-103: Image and Video Generation and Editing in Foundry — GPT-image, FLUX and Sora 2 — the lesson that teaches this.

Question 4Implement computer vision solutions

A design team uses a gpt-image-1 deployment to create sticker artwork for a mobile app. Each sticker must have a transparent background so it can sit on any screen colour. Which combination of images.generate parameters should the team use?

Choose one.

  • a
    background="transparent" with output_format="jpeg"

    JPEG has no alpha channel, so a transparent background requires PNG output.

  • b
    background="auto" with output_format="png"

    auto lets the model choose the background; it does not request transparency.

  • c
    background="opaque" with output_format="jpeg"

    opaque explicitly asks for a filled background, the opposite of the requirement, even though JPEG is a supported format for opaque images.

  • d
    background="transparent" with output_format="png" Correct

    A transparent background is requested with background="transparent", and it needs PNG output to carry the transparency.

The concept

Transparency is a generation control that depends on the output format.

Why that’s the answer

Setting background to transparent asks the model for an image with no background, and the result must be PNG because only PNG carries the alpha channel among the supported output formats (PNG and JPEG). auto leaves the choice to the model, opaque asks for a filled background, and JPEG cannot hold transparency.

How to reason it out
  1. Identify the requirement: transparent pixels in the output.
  2. Pick the background value that requests transparency.
  3. Pair it with a format that has an alpha channel: PNG.
  4. Reject the auto and opaque values and the format without an alpha channel.

Exam tip: Transparent background = background="transparent" + output_format="png".

AI-103: Image and Video Generation and Editing in Foundry — GPT-image, FLUX and Sora 2 — the lesson that teaches this.

Question 5Implement computer vision solutions

A developer uses the OpenAI Python client with a sora-2 deployment to make social clips. A new request needs a landscape clip that runs for eight seconds. Which arguments should the developer add to client.videos.create?

Choose one.

  • a
    size="720x1280", seconds=8

    720x1280 is the portrait size (and the default), not landscape.

  • b
    size="1280x720", n_seconds=8

    n_seconds belongs to the older video generation jobs API; the Sora 2 videos API names the duration seconds.

  • c
    width=1280, height=720, n_seconds=8

    Separate width, height and n_seconds fields are the older jobs API shape, not the videos.create arguments.

  • d
    size="1280x720", seconds=8 Correct

    Sora 2 takes size as a width x height string, with 1280x720 for landscape, and seconds as 4, 8 or 12.

The concept

Sora 2 output is controlled with size and seconds on videos.create.

Why that’s the answer

The Sora 2 API follows OpenAI's video schema: size is a width x height string (720x1280 portrait is the default, 1280x720 landscape) and seconds picks the duration (4, 8 or 12, default 4). width, height and n_seconds belong to the earlier /video/generations/jobs API and are not videos.create arguments.

How to reason it out
  1. Map landscape to width greater than height: 1280x720.
  2. Use the Sora 2 duration parameter, seconds.
  3. Reject the older jobs-API field names.

Exam tip: Sora 2: size="1280x720" for landscape, seconds = 4, 8 or 12.

AI-103: Image and Video Generation and Editing in Foundry — GPT-image, FLUX and Sora 2 — the lesson that teaches this.

Question 6Implement computer vision solutions

An online shop wants short sora-2 clips that start from its existing product photos. Each photo is 1024x1024. The code passes a photo as input_reference to client.videos.create with size="1280x720" and seconds=8, and every request is rejected. The shop wants landscape clips. What should the developer change?

Choose one.

  • a
    Set size to "1024x1024" so that the requested video matches each photo

    Matching would remove the mismatch, but 1024x1024 is not a Sora 2 video size and the shop wants landscape clips.

  • b
    Convert each photo from PNG to JPEG before passing it as input_reference

    JPEG, PNG and WebP are all accepted, so the file type is not the problem; the dimensions are.

  • c
    Resize or crop each photo to 1280x720 before passing it as input_reference Correct

    The reference image must match the requested video size exactly, and the supported sizes for this are 720x1280 and 1280x720.

  • d
    Keep the photos unchanged and reduce seconds from 8 to 4 for each request

    Duration has no bearing on the reference check; the photo still does not match the video size.

The concept

An image-to-video reference must match the output size exactly.

Why that’s the answer

input_reference supplies one image that anchors the first frame. Its resolution must match the requested size exactly, and the supported sizes are 720x1280 and 1280x720. A 1024x1024 photo therefore has to be resized or cropped to 1280x720 for landscape output. 1024x1024 is not a supported video size, the image type is already acceptable, and the duration is unrelated.

How to reason it out
  1. Find the mismatch: a square photo and a landscape video size.
  2. Recall that the reference must match the output resolution exactly.
  3. Keep the required landscape size and change the image.

Exam tip: Sora 2 input_reference must be the exact size of the video you ask for.

AI-103: Image and Video Generation and Editing in Foundry — GPT-image, FLUX and Sora 2 — the lesson that teaches this.

What AI-103 domain 3 tests, topic by topic

The official exam guide breaks Implement computer vision solutions into 3 topics. The question bank follows the same split, so a weak topic shows up as a cluster of misses you can go back and read.

Published AI-103 practice questions per topic in Implement computer vision solutions
TopicWhat it coversQuestions
Design and implement image- and video-generation solutionsSkills outline section (AI-103, as of April 16, 2026). Implement a solution that generates images from text prompts and reference media; Implement a solution that generates videos from text prompts and reference media; Configure image-editing workflows, including inpainting, mask-based edits, and prompt-driven modifications; Implement workflows to edit generated videos; Select and apply appropriate generation and editing controls provided by the platform.24
Design and implement multimodal understanding workflowsSkills outline section (AI-103, as of April 16, 2026). Build a solution that analyzes visual context by using multimodal models; Configure apps to produce concise or detailed captions for single or multiple images; Implement a solution that enables question-answering grounded in visual evidence; Configure generation of alt-text and extended image descriptions aligned to accessibility guidelines; Implement visual understanding by configuring Azure Content Understanding in Foundry Tools to extract visual characteristics; Implement video analysis workflows to process and interpret video segments; Configure single-task and pro-mode Content Understanding pipelines; Implement solutions that identify objects, components, or regions within images or video.24
Implement responsible AI for multimodal contentSkills outline section (AI-103, as of April 16, 2026). Implement filters to classify unsafe or disallowed visual content; Detect and mitigate indirect prompt injection by using embedded text in images; Enforce visual policy rules, such as applying watermarks, flagging prohibited symbols, upholding brand usage requirements, and detecting potentially inappropriate content.24
Total72

Revise Implement computer vision solutions before you drill it

Other AI-103 domains

Implement computer vision solutions: your questions

Implement computer vision solutions is domain 3 of the AI-103 exam guide and carries 13% of the scored content — the 3rd-heaviest of the 5 domains. On a 50-question paper that works out to roughly 7 questions, though Microsoft Azure does not publish an exact per-domain count and individual exam forms vary.

Source

The domain weight and topic list on this page come from the official AI-103 exam guide.