Upload an image, video, or audio reference into Switch cloud and get an opaque asset_id (never a raw storage URL) to pass in reference fields. First inspect the asset and record what its actual chip controls. Preserve its thumbnail, media type, order, and role; uploading never authorizes replacing the visual chip with text or silently dropping, merging, reordering, converting, or repurposing it. A clear speaking and moving video is usually strongest for realistic identity, performance, motion, and voice when supported; still images sharpen appearance, wardrobe, products, logos, typography, and scenes. Pass kind=image|video|audio. Returns reference_image_urls / reference_video_urls / reference_audio_urls for generate_image and generate_video. Uploads stay separate from active Studio references by default, including images uploaded for video work. Set activate=true only when the user explicitly asks to add this image to the Studio image workspace. Video and audio never touch the Studio strip. PREFERRED for real files: call with presign=true to get an upload_url, PUT the bytes straight to it (no base64 through the model), then call again with confirm_path to verify and record it — works for image, video, and audio. base64/url is only for tiny inline files.