PixAIというサイトのPython用APIラッパー、すぐ対策されそう
pip install pix-chan
必須:requests
from Pix_Chan import PixAI
pix=PixAI("メールアドレス","パスワード",login=False,proxy=None)#login=Falseでアカウント生成される、生成されたアカウントには3000クオータがついてくる
print(pix.token)
print(pix.user_id)#ユーザーIDはアンケート以外に用途なしな上に自動入力
pix.claim_daily_quota()#デイリー報酬の10000クオータを手に入れる、すでに受け取っていたらエラーになる
pix.claim_questionnaire_quota()#アンケートに答えて15000クオータを手に入れる、これもすでに受け取っていたらエラーになる
#アカウント生成したら合計で28000クオータ手に入る
pix=PixAI("メールアドレス","パスワード",proxy=None)#loginはデフォルトでTrue、トークンログインもあるけどべつにしなくていい
print(pix.get_quota())#ゆいいつintで数字だけ返ってくる
query_id=pix.generate_image("プロンプト")
#プロンプトは, で区切る、例えば 1girl, pinkなど
#widthとheightをintで指定できる、なんと課金しなくても課金専用の解像度でリクエストしてもちゃんと生成される...
#x4=Trueにして4枚同時生成、後述するメディアIDのリストに4つIDが格納されるようになる
#日本以外から接続するとエロに系にかなり厳しい制限がかかる (特にloliや固有名詞 + nakedみたいな)
#↑になっても直接的な表現を控えると通ったりする (loli, nakedは生成されないけど、loli, no clothは生成される)
#query_idがクエリーIDになる、これはstr
media_ids=pix.get_task_by_id(query_id)#クエリーIDからメディアIDを取得する、リストが返ってくる
for media_id in media_ids:
print(pix.get_media(media_id))#メディアIDを使って、生成された画像のURLを取得してお仕事完了
media_ids=pix.get_latest_task()#クエリーIDがわからなくても1番最後にリクエストしたタスクを取得する、これもリストでメディアIDが返ってくる
media_ids=pix.get_all_tasks()#すべてのタスクを取得する、リストにリストが格納される -> [["メディアID","メディアID","メディアID","メディアID"],["メディアID"],["メディアID"]] 的な
#コメントで書いてあるのが全部、悪用したら対策されるのが早くなりそう
pix=PixAI("メールアドレス","パスワード",login=False,proxy=None)
login=Trueがデフォルトで、Falseにしたら入力したメールアドレスとパスワードでアカウントを作成する
レート制限は思ったより緩いけどちゃんとかかる
アカウント生成にメールアドレス認証は不用 (2024/10/18) なのでテキトーなメールアドレスを入力してOK
これだけで3000クオータ (PixAIの通貨で、デフォルト設定で1枚生成するのに2200クオータ消費する) 入ったアカウントが手に入る
pix.claim_daily_quota()#デイリー報酬の10000クオータを手に入れる、すでに受け取っていたらエラーになる
pix.claim_questionnaire_quota()#アンケートに答えて15000クオータを手に入れる、これもすでに受け取っていたらエラーになる
1日1回ログインボーナスで10000クオータもらえる、デフォルト設定なら2200クオータ / 1枚 なので4つ生成できる
アンケート報酬のクオータはアカウントごとに1回、15000クオータもらえる
アンケートはGoogleFormsにユーザーIDを入れて回答されたものを送信するとクオータ入手クエストのとこから15000クオータを申請できるようになる
pix.claim_questionnaire_quota()
はフォーム送信とクオータの申請を自動化している
これでアカウント生成すると28000クオータチャージされたアカウントが手に入るということ...
クオータが尽きたら次のアカウントを生成してまた画像生成すればOK、対策されるまでは遊べる
query_id=pix.generate_image("プロンプト")
#プロンプトは, で区切る、例えば 1girl, pinkなど
#widthとheightをintで指定できる、なんと課金しなくても課金専用の解像度でリクエストしてもちゃんと生成される...
#x4=Trueにして4枚同時生成、後述するメディアIDのリストに4つIDが格納されるようになる
#日本以外から接続するとエロに系にかなり厳しい制限がかかる (特にloliや固有名詞 + nakedみたいな)
#↑になっても直接的な表現を控えると通ったりする (loli, nakedは生成されないけど、loli, no clothは生成される)
#query_idがクエリーIDになる、これはstr
コメントに書いてある通り、プロンプトと必要あれば横幅・高さをintで指定したり、x4=Trueで4枚同時に生成したりできる
この時、課金アカウント限定の解像度を指定してもふつうに生成できてしまう...
日本以外から接続するとえっち系の絵に厳しい制限がかかって、趣味を盛り込むとことごとく弾かれるようになる
どういう判定かはよくわからない -> nsfw
は弾かれないけど naked
は弾かれる、loli, nsfw
は弾かれるけど loli, no cloth
は弾かれない し、なんか別のプロンプトまぜてるとうまくいったりいかなかったり
そんな状態で生成するのはさすがにありえないので、海外のバーチャルマシンを使う場合は日本のプロキシを使おう
ソースコードには samplingSteps
samplingMethod
cfgScale
seed
modelId
...など生成に使える引数は1通りあるけどこだわるならそこだけ自分で修正してください...
media_ids=pix.get_task_by_id(query_id)#クエリーIDからメディアIDを取得する、リストが返ってくる
for media_id in media_ids:
print(pix.get_media(media_id))#メディアIDを使って、生成された画像のURLを取得してお仕事完了
example.pyにはクエリーIDがわからない時用の pix.get_latest_task()
や全取得の pix.get_all_tasks()
も書いてあるけど画像生成をリクエストする際にクエリーIDが返されるので基本的にはIDからタスクをゲットすると思う
あたりまえだけど生成が終わってないのに画像URLを取得することはできない -> なので生成が終わってないタスクに関しては None
を返すようにしてる
ようするに
while True:
media_ids=pix.get_task_by_id(query_id)
if media_ids:
break
sleep(10)
#ここから生成された画像のURLを取得する処理を書いたり
いずれメディアIDの入ったリストが返ってくるのでそれまでWhileで無限ループでOK
for media_id in media_ids:
print(pix.get_media(media_id))#メディアIDを使って、生成された画像のURLを取得してお仕事完了
pix.get_media(media_id)
は画像URLだけを返すのでブラウザーで開くなりなにかに埋め込むなりで画像ゲット、これで全部完了
こんなのでいいの?って思うほどアカウントを作りまくって28000クオータ使って無限に画像を生成できる
その気になればいつでもすぐに対策できそうな内容ばかりなので動作は保証できません (PixAI自体が他のサーバーを使ってるなら対策する意味ないし放置だと思う)
いちおうアカウント生成 / ログインにinvisible reCaptchaのレスポンスを要求されるけどふつうに入手できるのでBot検知という面ではあんまり役に立ってなかったりする
VRAM 12GB以上のGPU、買いませんか?(買えない)
Discord サーバー / https://discord.gg/aSyaAK7Ktm
Discord ユーザー名 / .taka.