igpapi — Instagram private API Simulator for Node.js (API reference) 4.14.0
    Preparing search index...

    Variable DirectImagineCreationScreenConst

    DirectImagineCreationScreen: ScreenDefinition<
        "DirectImagineCreation",
        "screen",
        { surface_session_id: string; thread_id: string },
        { surface_session_id: string; thread_id: string },
        { surface_session_id: string; thread_id: string },
        IgApiError | RequestError | ParseError | TransportError,
        GraphqlJsonHttp | MobileApplication | MobileNavigation,
        DirectImagineCreationActions,
        Record<never, never>,
        never,
        never,
    > = ...

    imaginecreationflow (reported in the chain as IgCdsScreenNavigationLoggerModule:ImagineCreationFlow, the CDS container's logger), the composer's Imagine screen (the 2026-10-28 capture's direct-message-ai-image): a typed prompt, six generated images, and the send.

    The app's own loading screen under it is DirectImagineLoadingScreen, the chain's entry 9; the flow's entry is 10.

    Its enter asks the account's GenAIImagineHasMEmuProfile from the conversation (the capture's 146, whose chain is the inbox and the thread), then shows the app's loading screen and asks GenAIImagineSuggestionsQuery from it (147, whose chain carries both entries). generate(prompt) submits the prompt: the app asks for six images at once (GenAIImagineGenerateMutation ×6, one client_mutation_id each, one submission event), and once the images are shown it asks GenAIEditSuggestions of the first one. send() leaves the flow and sends the chosen image: the photo upload and the composer's photo_attachment broadcast with imagine_type (send_attribution is the app's send_attribution_overflow_composer_imagine), the conversation's chain without the flow on it.

    How it is reached: DirectThreadScreen.openImagine() (the composer's "+"): the flow's loading screen is the chain's entry 9 and the flow's own is 10.

    The recording asks the edit suggestions once: GenAIEditSuggestions at +668.363 s, 13.0 s after the last of the six generation answers (+651.793 s…+655.378 s, submitted at +644.833 s…+644.844 s), with no other request of the cut between them. The capture holds requests and no UI event stream, and it carries no answer sidecars for the generations, so nothing in it can show a tap on an image; a pick that asked for the suggestions would be another request, and the cut has one. The model therefore asks about the first generated image after the six answers — the only request the recording shows — and leaves to the server what the suggestions answer.

    Guide: A conversation