2人のAI画像では、人物ごとに別々の参照画像を用意し、それぞれの画面内の位置と服装を指定して、体の間に見える隙間があるポーズを生成します。その2人の画像がうまくできてから接触を加えます。 この実例ではSeedream 5.0 Flashの画像編集を使い、2k、3:2、PNGで、1枚あたり$0.029です。小さな部分をマスクで修正する必要がある場合は、採用した2人の画像だけを入力元にしてQwen Image 2.1を使います。
例は、架空の成人であるAdrian(34)とMateo(37)の、服を着たロマンチックなポートレートです。価格は2026年10月時点の現行カタログのUSD価格です。カバーと比較画像はイラストであり、これらのモデルの生成結果ではありません。
1. 手元の入力に合うタスクを選びます
| 出発点 | タスクと初期設定 | 価格と重要な制限 |
|---|---|---|
| 採用済みのポートレートが2枚ある | Seedream 5.0 Flashの画像編集:Imagesに2枚、Resolution 2k、Aspect ratio 3:2、Output format PNG、Background Opaque | $0.029/枚。入力元は1–10枚。マスクやシードのフィールドはありません |
| まだ顔の画像がない | Seedream 5.0 Flashのテキストから画像生成:プロンプトごとに1人、胸から上、両目が見える状態、2k | ポートレート1枚あたり$0.029。人物ごとに1枚を採用し、上の行に進みます |
| 採用済みの2人の画像に小さな欠陥がある | Qwen Image 2.1の画像編集:Imagesに1枚、Maskを指定、Resolution 2k | 入力元1枚、2kで$0.048/枚(1kは$0.036)。マスクは1kと2kでのみ使えます |
Flashは参照画像の枚数や1k、1.5k、2kにかかわらず同じ料金です。そのため2kに追加料金はなく、小さな顔や手を詳しく確認しやすくなります。Qwenのマスク編集タスクには入力元がちょうど1枚必要です。採用した2人の画像を、部分修正の入力元にします。参照画像の料金は解像度とタスク設定によって異なり、上の2k修正価格は入力元1枚の場合です。2枚のポートレートを組み合わせるにはFlashを、マスクが必要になったらQwenを使います。
両モデルとも、コンテンツ切り替えなしで成人向けの2人の画像を処理します(制限なし・検閲なしの選択肢です)。そのため同じワークフローを使えます。2026年9月の当方のテストでは、成人ポートレートを入力したFlash編集が完了しています。タスクにコンテンツ拒否が明示された場合は、再試行する前に場面を変更してください。接続が失敗したり応答が失われたりした場合は、重複タスクを作る前に元のタスクを確認します。
2. 決まった順番でそれぞれのポートレートをアップロードします
各顔の複数バージョンをまとめたコラージュではなく、別々の画像を2枚使います。Adrianを先、Mateoを後にします。プロンプトは順番で参照画像を指定し、指定していない入力元は結果に混ざります。胸から上で両目が見える画像は、人物を明確に示す入力元になります。関係のない人物が写った場所の参照画像を追加しないでください。
| 割り当て | Adrian:最初の参照画像 | Mateo:2番目の参照画像 |
|---|---|---|
| 外見上の特徴 | 短い濃色の巻き毛、幅広い顎 | 短く刈った銀髪、縦に長めの顔 |
| 画面内の位置 | 見る側から左 | 見る側から右 |
| 服装 | 紺色のベルベットジャケット、クリーム色のシャツ | 赤茶色のオーバーシャツ、黒いシャツ |
| 最初の動作 | Mateoの方を向く | Adrianの視線を返す |
| 手 | 自分の体の脇 | 自分の体の脇 |
人物名はこのリクエスト内のラベルであり、以前のセッションの顔を呼び出すものではありません。入力元が別の服を着ている場合は、アップロードしたポートレートは顔と髪を示し、文章の指示が目標の服装を指定すると説明します。
画像の左側には“viewer-left”を使います。“Adrian's left hand”は、その解剖学的な側が重要な場合にだけ使います。カメラに向いている人物の解剖学的な左は、見る側から右です。これらを混同すると、意図した身振りが逆になることがあります。
構図の概念図であり、モデルの結果ではありません。AとBは任意の2人を表し、参照画像の人物と画面内の位置は別々に割り当てます。
3. 体を離したツーショットを生成します
Playgroundで試す
- Seedream 5.0 Flashの画像編集を開き、PlaygroundタブのForm表示のまま、実行のためにログインします。
- ImagesにAdrianのポートレートを先に、Mateoのポートレートを後に追加します。
- Aspect ratioを
3:2、Resolutionを2k、Output formatをpng、BackgroundをOpaqueにします。 - 以下のプロンプトをPromptに貼り付けるか、入力済みのPlaygroundを開きます。
- 実行します。課金の前に価格が表示されます。
コードから実行する方法もあります。 同じリクエストをCLIで呼び出す例です(各ポートレートを1回ずつアップロードし、2つのspicy:// URIをinput.jsonにコピーします。ファイルのimage_urlsフィールドは、同じ順番のImagesリストです)。
spicyapi files upload ./adrian.png && spicyapi files upload ./mateo.png # copy both spicy:// URIs
cat > input.json <<'EOF'
{"image_urls": ["spicy://f/ADRIAN_URI", "spicy://f/MATEO_URI"], "prompt": "<the prompt below>", "aspect_ratio": "3:2", "resolution": "2k", "output_format": "png", "background": "opaque"}
EOF
spicyapi tasks create --model bytedance/seedream-5.0-flash/edit --input-file input.json --wait全フィールドの一覧は画像生成ガイドにあります。
Agentに実行を任せる方法もあります。 MCPサーバーを使うと、アシスタントはポートレートごとにspicyapi_upload_fileを呼び出し、続いてspicyapi_task_create(価格確認のため停止します)とspicyapi_task_waitを呼び出します。Agent Skill(npx skills add spicyapi-ai/spicy-skill)では、コーディングアシスタントがフィールドを推測せず、現行スキーマを読みます。
プロンプト:
Use the first reference for Adrian's facial identity and dark curls, and the second for Mateo's facial identity and silver hair. Create one natural editorial photograph of these two fictional adult men outside a quiet theater at dusk. Adrian, 34, stands on viewer-left in a navy velvet jacket and cream shirt. Mateo, 37, stands on viewer-right in a rust overshirt and black shirt. Waist-up two-shot with both faces visible, torsos separated by a narrow visible gap, and each man's hands resting at his own sides. Adrian turns toward Mateo, who returns his gaze. Both men are at similar distance from the camera. Warm entrance light, understated romantic mood. Use the references for identity, not their original clothing or backgrounds. Exactly two people, no mirrors, no shared props, no lettering.
ポートレートがなく、より速く進めたい場合は、冒頭の参照画像に関する文を2人の顔の説明に置き換え、1つのテキストから画像生成プロンプトで両方の男性を作ります。気に入った2人ができたら保存し、その画像から編集します。名前だけでは顔は維持されません。別々のポートレートの方が混ざりにくくなります。
3人以上の場合も、人物ごとに参照画像を1枚ずつ決まった順番で用意し、それぞれに画面内の位置を指定します。Flashは同じ価格で最大10枚の参照画像を受け付けます。

イラストであり、対象モデルの結果ではありません。体を離した配置では、各袖を持ち主までたどれます。
紺色と赤茶色が両方あっても、着ている人が逆になることがあります。失敗の種類で判断します。ジャケットが逆なら服装の修正、顔が複製されていたら人物の修正が必要です。
4. 失敗した割り当てを具体的に修正します
| 見える失敗 | 次のリクエストの変更方法 |
|---|---|
| 両方の男性がAdrianに似ている | 元の2枚のポートレートに戻ります。体を離したポーズを維持します。プロンプトの冒頭を“Two distinct identities: first reference only for the man on viewer-left; second only for the man on viewer-right.”にします。3枚目のポートレートや競合するスタイル参照があれば外します。 |
| 顔は正しいがジャケットが逆 | 出力された2人の画像を編集します:“Keep both faces and positions. The dark-haired man on viewer-left wears navy velvet and cream; the silver-haired man on viewer-right wears rust and black.” テキストから再生成しないでください。 |
| 位置が逆だが、それ以外は使える | 配置が重要なら、画面内の位置を明示した新しいツーショットをリクエストします。画像を反転すると、時計、文字、その他の非対称な細部もすべて反転します。配置が重要でなければ逆順を採用し、キャプションや台本のラベルを入れ替えます。 |
| 1人が切れている | フレーミングを“medium-wide two-shot with both outer shoulders and elbows inside the frame.”に変更します。3:2を維持し、この段階では狭い縦長の切り抜きを避けます。 |
| 肩で体が融合している | 体を離すプロンプトに戻ります。小さな手の編集で、つながった2つの胴体を再構築させないでください。 |

イラストであり、対象モデルの結果ではありません。ジャケットの割り当てを意図的に交換しても、顔は見分けられます。
服を変える場合は、位置と外見の両方で人物を指定します。“Change his jacket”は、画像に男性が2人いると曖昧になります。具体的なリクエストは次のとおりです:“Replace only the silver-haired man's rust overshirt on viewer-right with a dark green jacket; retain both faces, the navy jacket on viewer-left, the pose and the theater.”

イラストであり、対象モデルの結果ではありません。提案する変更はMateoのジャケットだけで、両方の人物や配色全体ではありません。
5. 接触点を1つ加えます
採用した2人の画像を、Flash編集の入力元1枚として使います。入力元の形に合わせるためaspect_ratio: "auto"を維持し、2k、PNG、不透明な背景にします。場面全体のプロンプトを次に置き換えます。
Keep the same two adult men, identities, outfits, positions and theater setting. Change the pose so the dark-haired man on viewer-left places one hand on the silver-haired man's outer shoulder. Show a continuous navy sleeve leading to his wrist and hand, resting on the rust fabric. The silver-haired man's arms remain at his own sides. Preserve both visible faces and the gap between their torsos.

イラストであり、対象モデルの結果ではありません。紺色の袖から接触する手までたどってください。つながりが隠れると、誰の手かが曖昧になります。
手がMateoの袖から生えている場合は、採用した体の離れた入力元に戻り、同じリクエストに“Adrian's elbow remains on viewer-left”を追加します。そのために両方の胴体を横切る新しい腕が必要になるなら、互いに顔を向けて手を離す、より簡単な身振りを使います。表情がよいというだけで、解剖学的に破綻したマスター画像を残さないでください。
共有する物には、個数と持ち主を指定します:“Mateo holds one glass in his right hand; Adrian's hands remain empty.” 両方が持つ場面では、グラスは1つと明示し、各手の接触を指定します。細い脚の周りに手が2つある配置は、1人が持ち、もう1人が見る配置より難しくなります。
6. ポーズが整ってから部分的な欠陥をマスクします
Qwen編集では、採用した2人の画像だけをアップロードします。元の人物ポートレート2枚を追加で添付しないでください。マスク編集の入力元はちょうど1枚です。その入力元と位置を合わせた白黒画像を作ります。白は描き直す部分、黒は維持する部分を示します。離れた指先だけをマスクするのではなく、問題の手、手首とのつながり、小さな肩の接触部分を含めます。
- Qwen Image 2.1の画像編集をPlaygroundタブ、Form表示で開きます。
- Imagesには採用した2人の画像だけを追加します。
- ResolutionをFlashのマスターに合わせて
2kにします(1kでは修正対象より小さい画像が返ります)。Output formatはPNG、BackgroundはOpaqueにします。 - Advanced parametersを開き、Maskに白黒画像を追加します(コードでのフィールド名は
mask_urlです)。 - 以下の修正指示をPromptに貼り付け、実行します。
結果は入力元の形を維持するので、Aspect ratioは無視されます。また、マスク編集にはプロンプト拡張は適用されません。修正指示の例です。
Repair the marked hand and wrist into one natural hand belonging to the navy-jacketed adult man. It rests on the rust-clothed shoulder. Continue the existing sleeve and lighting. Retain both faces, hairstyles, clothing elsewhere, body positions and theater background.
編集後、両方の顔を採用済みマスターと比較します。顔が変わったらマスターに戻り、変わった顔を次の参照に使わないでください。袖口の端だけなら、通常の合成で、決めた要素を見直す範囲を減らしながら採用画像を仕上げられる場合があります。
7. 奥行きと納品用の切り抜きを揃えます
同じ存在感を持たせるには、両方の顔をカメラから同程度の距離に置きます。Adrianが手前に座っているなら、頭が大きく見えるのは人物のずれではなく、正しい遠近法かもしれません。望まない大きさの差は、体を縮めるのではなく、同程度の奥行きに座るよう指定して直します。

イラストであり、対象モデルの結果ではありません。近くに座ると見かけの大きさが変わります。体の比率を変える前に奥行きを比較します。
正方形に切り抜く前に、両方の顔と肩への接触関係全体を残します。触れられた肩を切り落とすと、説明のつかない手が残ることがあります。切り抜きの範囲を広げるか、その掲載位置には手を離した版を使います。

イラストであり、対象モデルの結果ではありません。狭い切り抜きでは、両方の顔が残っていても身振りが失われます。
ポートレート2枚($0.058)、参照2枚の構図生成とFlashでの接触編集($0.058)は、再試行前で合計$0.116です。2kのQwenマスク修正を加えると$0.048追加になります。体を離した2人から始め、顔と持ち主の割り当てが正しくなってから接触に進みます。次の入力元には、元のポートレートではなく採用した画像を使います。







