diff --git a/.agents/skills/cookbooks/cosmos3/reasoner/README.md b/.agents/skills/cookbooks/cosmos3/reasoner/README.md index 6ad50f53..cf44a004 100644 --- a/.agents/skills/cookbooks/cosmos3/reasoner/README.md +++ b/.agents/skills/cookbooks/cosmos3/reasoner/README.md @@ -129,6 +129,33 @@ response = client.chat.completions.create( print(response.choices[0].message.content) ``` +For video requests, frame-sampling controls are multimodal processor options. +Assuming `messages` contains the video content for your request, pass those +controls via `extra_body` when using the OpenAI client: + +```python +response = client.chat.completions.create( + model=client.models.list().data[0].id, + messages=messages, + extra_body={"mm_processor_kwargs": {"fps": 4, "do_sample_frames": True}}, +) +``` + +For direct `/v1/chat/completions` HTTP requests, put `mm_processor_kwargs` +inside the JSON body as shown below. Do not send `fps` or +`do_sample_frames` as standalone top-level chat-completion fields. + +```python +payload = { + "model": "Cosmos3-Super", + "messages": messages, + "mm_processor_kwargs": {"fps": 4, "do_sample_frames": True}, +} +``` + +This matters for motion-dependent tasks such as physical plausibility analysis, +where frame sampling determines which temporal events are visible to the Reasoner. + ### Notebook walkthrough [`run_with_vllm.ipynb`](./run_with_vllm.ipynb) uses the **Cosmos3-Super** launch